:root{--forest:#0b3d2e;--green:#176b4d;--lime:#b7d532;--ink:#17231f;--muted:#65736e;--line:#dce5e1;--paper:#fff;--bg:#f4f7f5;--danger:#b42318;--warn:#b54708;--blue:#175cd3;--shadow:0 20px 45px rgba(18,57,45,.10)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}.hidden{display:none!important}.eyebrow{margin:0 0 .4rem;color:var(--green);font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.muted{color:var(--muted)}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.auth-brand{padding:clamp(3rem,7vw,7rem);color:#fff;background:radial-gradient(circle at 20% 10%,rgba(183,213,50,.22),transparent 30%),linear-gradient(145deg,#082c21,#0d4b38);display:flex;flex-direction:column;justify-content:center}.auth-brand>img{width:92px;height:92px;object-fit:contain;margin-bottom:2rem}.auth-brand .eyebrow{color:#d9ea8c}.auth-brand h1{font-size:clamp(2.5rem,5vw,5rem);max-width:760px;line-height:.96;letter-spacing:-.055em;margin:.5rem 0 1.5rem}.auth-brand>p:not(.eyebrow){font-size:1.08rem;max-width:630px;color:#d3e1db;line-height:1.7}.brand-points{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:2rem;color:#e8f0ed;font-size:.85rem}.auth-card{padding:clamp(2rem,7vw,7rem);display:flex;flex-direction:column;justify-content:center;background:#fff}.auth-card h2{font-size:2.2rem;margin:.3rem 0}.auth-card form{display:grid;gap:1rem;margin-top:2rem}.auth-card label,.field{display:grid;gap:.45rem;color:#34443e;font-size:.78rem;font-weight:750}.auth-card input,input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:.82rem .9rem;color:var(--ink);outline:none;transition:.2s}.auth-card input:focus,input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(23,107,77,.12)}button{border:0;cursor:pointer}.primary{background:var(--forest);color:#fff;border-radius:12px;padding:.9rem 1.1rem;font-weight:800}.primary:hover{background:#10513c}.text-button{background:transparent;color:var(--green);font-weight:750;padding:.8rem 0;margin-top:.5rem}.mobile-logo{display:none}.app{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:var(--forest);color:#fff;padding:1.3rem;display:flex;flex-direction:column;z-index:20}.logo{display:flex;align-items:center;gap:.8rem;padding:.4rem .4rem 1.5rem}.logo img{width:44px;height:44px;object-fit:contain}.logo strong,.logo small{display:block}.logo small{color:#a9c0b7;font-size:.7rem}.sidebar nav{display:grid;gap:.28rem}.sidebar nav p{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:#789a8e;font-weight:800;margin:1.3rem .7rem .45rem}.sidebar nav button{display:flex;align-items:center;gap:.8rem;padding:.78rem .85rem;border-radius:10px;background:transparent;color:#c9d9d3;text-align:left;font-weight:700}.sidebar nav button span{font-size:1.1rem;width:1.4rem}.sidebar nav button:hover,.sidebar nav button.active{background:rgba(255,255,255,.1);color:#fff}.sidebar nav button.active{box-shadow:inset 3px 0 var(--lime)}.user-box{margin-top:auto;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:.65rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12)}.avatar{width:38px;height:38px;border-radius:50%;background:var(--lime);color:#193520;display:grid;place-items:center;font-weight:900}.user-box strong,.user-box small{display:block;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-box strong{font-size:.75rem}.user-box small{color:#9eb8ae;font-size:.6rem}.user-box button{background:transparent;color:#fff;font-size:1.1rem}.workspace{grid-column:2;min-width:0}.workspace header{height:92px;padding:0 clamp(1.2rem,4vw,3rem);display:flex;align-items:center;gap:1rem;background:rgba(244,247,245,.88);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(220,229,225,.7)}.workspace header h2{margin:0;font-size:1.55rem}.header-date{margin-left:auto;font-size:.78rem;color:var(--muted);font-weight:650}.icon-button{display:none;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.55rem}.view{padding:clamp(1.2rem,4vw,3rem)}.hero{background:linear-gradient(135deg,var(--forest),#176b4d);color:#fff;border-radius:22px;padding:clamp(1.5rem,4vw,3rem);display:flex;justify-content:space-between;gap:1rem;align-items:end;box-shadow:var(--shadow)}.hero h1{font-size:clamp(1.7rem,3vw,2.8rem);margin:.35rem 0;letter-spacing:-.035em}.hero p{color:#cce0d8;margin:.3rem 0}.hero .eyebrow{color:#d9ea8c}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:1.2rem;box-shadow:0 7px 22px rgba(18,57,45,.04)}.stat strong{display:block;font-size:1.8rem;color:var(--forest)}.stat span{font-size:.72rem;color:var(--muted);font-weight:700}.section-title{display:flex;align-items:center;justify-content:space-between;margin:2rem 0 .8rem}.section-title h3{margin:0}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;padding:.8rem .9rem;border-bottom:1px solid #edf1ef;font-size:.76rem}th{font-size:.63rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#f9fbfa}tr:last-child td{border-bottom:0}.toolbar{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:.75rem}.actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.secondary{padding:.68rem .85rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-weight:750}.secondary:hover{background:#f4f7f5}.badge{display:inline-block;padding:.28rem .5rem;border-radius:999px;background:#edf6f2;color:var(--green);font-size:.61rem;font-weight:850}.status-select{min-width:120px;padding:.55rem}.roster-name{font-weight:750}.roster-doc{font-size:.63rem;color:var(--muted)}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.module-card{min-height:170px;display:flex;flex-direction:column}.module-card .module-icon{font-size:1.8rem}.module-card h3{margin:.8rem 0 .4rem}.module-card p{color:var(--muted);font-size:.78rem;line-height:1.5}.module-card .badge{margin-top:auto;align-self:flex-start}.empty{padding:2rem;text-align:center;color:var(--muted)}.toast{position:fixed;right:1.25rem;bottom:1.25rem;z-index:100;background:#15241f;color:#fff;padding:.9rem 1rem;border-radius:12px;box-shadow:var(--shadow);transform:translateY(140%);transition:.25s;max-width:360px}.toast.show{transform:translateY(0)}.toast.error{background:#7a271a}.loader{position:fixed;inset:0;background:rgba(8,23,18,.38);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;gap:.8rem;color:#fff;font-weight:750;z-index:200}.spinner{width:22px;height:22px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.toolbar{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.auth-shell{grid-template-columns:1fr}.auth-brand{display:none}.auth-card{min-height:100vh;padding:2rem}.mobile-logo{display:flex;align-items:center;gap:.7rem;margin-bottom:3rem}.mobile-logo img{width:48px;height:48px}.app{display:block}.sidebar{transform:translateX(-105%);transition:.25s}.sidebar.open{transform:translateX(0)}.workspace{grid-column:auto}.icon-button{display:block}.header-date{display:none}.view{padding:1rem}.hero{align-items:start}.stats{grid-template-columns:1fr 1fr}.toolbar{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr}.roster-observation{min-width:180px}}@media(max-width:420px){.stats{grid-template-columns:1fr}.hero{border-radius:16px}.auth-card h2{font-size:1.8rem}}
.module-tabs{display:flex;gap:.55rem;overflow:auto;padding:.9rem 0 1.1rem}.module-tabs button{white-space:nowrap;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:.65rem .9rem;font-weight:800}.module-tabs button span{margin-right:.35rem}.module-tabs button.active{background:var(--forest);border-color:var(--forest);color:#fff}.dynamic-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem;align-items:start}.dynamic-fields>.field{align-content:start;align-self:start}.dynamic-fields select{min-height:44px;height:auto}.dynamic-fields textarea{resize:vertical}.records-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.record-card{display:flex;flex-direction:column;gap:.65rem}.record-card h3,.record-card p{margin:0}.record-head{display:flex;justify-content:space-between;align-items:center}.record-head small,.record-card>small{color:var(--muted)}.record-data{display:grid;gap:.35rem;padding:.65rem;background:#f7faf8;border-radius:10px}.record-data div{display:grid;grid-template-columns:minmax(100px,.7fr) 1.3fr;gap:.5rem;font-size:.69rem}.record-data span{color:var(--muted);text-transform:capitalize}.record-data strong{font-weight:700}.record-card .actions{margin-top:auto}.record-card select{width:auto}@media(max-width:900px){.records-grid{grid-template-columns:1fr}.dynamic-fields{grid-template-columns:1fr}}@media(max-width:760px){.module-tabs{margin-inline:-1rem;padding-inline:1rem}.record-data div{grid-template-columns:1fr}.hero>.primary{white-space:nowrap}}
.settings-notice{display:flex;align-items:center;gap:.75rem;padding:1rem 1.2rem;margin-bottom:1rem;border-radius:14px;background:#ecfdf3;border:1px solid #abefc6;color:#067647}.settings-notice span{font-size:.75rem}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.settings-section{display:grid;gap:.85rem;align-content:start}.settings-title{display:flex;gap:.8rem;align-items:flex-start;padding-bottom:.8rem;border-bottom:1px solid var(--line)}.settings-title>span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#edf6f2;color:var(--green);font-weight:900}.settings-title h3,.settings-title p{margin:0}.settings-title p{margin-top:.2rem;font-size:.7rem;color:var(--muted)}.settings-row{display:grid;grid-template-columns:1fr 100px;gap:.65rem}.configured,.not-configured{float:right;font-size:.61rem;padding:.2rem .45rem;border-radius:999px}.configured{background:#dcfae6;color:#067647}.not-configured{background:#fff4e5;color:#b54708}.settings-save{position:sticky;bottom:1rem;display:flex;justify-content:flex-end;margin-top:1rem;padding:1rem;border-radius:14px;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border:1px solid var(--line)}.status-card{background:linear-gradient(135deg,#f6fbf8,#fff)}@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.settings-notice{align-items:flex-start;flex-direction:column}}
.settings-live-box{display:grid;gap:.65rem;padding:.85rem;border:1px solid #b9d6eb;border-radius:13px;background:#f5faff}.settings-live-box>strong{color:#075b9c}.settings-live-box>p{margin:0}.settings-live-box .field{margin:0}
.choice-list{display:grid;gap:.45rem;max-height:280px;overflow:auto;padding:.65rem;border:1px solid var(--line);border-radius:12px;background:#f8fbff}.choice-item{display:flex;gap:.55rem;align-items:flex-start;padding:.55rem .65rem;border-radius:9px;background:#fff;border:1px solid #dce7f3;font-weight:650;line-height:1.35}.choice-item:hover{border-color:#7aa8d6;background:#f3f8ff}.choice-item input{width:auto;margin-top:.18rem}.route-editors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#f7faff}.route-editors-title,.route-wide{grid-column:1/-1}.route-editors-title{display:flex;flex-direction:column;gap:.2rem}.route-editors textarea{resize:vertical}@media(max-width:760px){.route-editors{grid-template-columns:1fr}.route-editors-title,.route-wide{grid-column:auto}}
.field-heading{display:flex;align-items:center;justify-content:space-between;gap:.65rem}.compact-ai{padding:.5rem .7rem;font-size:.72rem;white-space:nowrap}.ai-field textarea{min-height:150px}.convivencia-completion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem;padding:1rem;border:1px solid #b9d8c8;border-radius:14px;background:#f4fbf7}.assistant-prefill-notice{position:sticky;top:102px;z-index:4;box-shadow:0 8px 22px rgba(6,63,120,.12)}@media(max-width:760px){.field-heading{align-items:stretch;flex-direction:column}.compact-ai{width:100%}.convivencia-completion{grid-template-columns:1fr}.convivencia-completion .route-wide{grid-column:auto}.assistant-prefill-notice{top:82px}}
.professional-review-warning{border-color:#e9a23b;background:#fff8e9}.assistant-protocol-card{display:grid;gap:.85rem;margin:1rem 0;padding:1rem 1.1rem;border:1px solid #b9d8c8;border-radius:16px;background:#f5fbf8}.assistant-protocol-card h3,.assistant-protocol-card p{margin:.2rem 0}.assistant-protocol-card ol,.assistant-protocol-card ul{margin:.45rem 0 0;padding-left:1.35rem}.assistant-protocol-card li+li{margin-top:.4rem}.assistant-protocol-immediate{padding:.8rem;border-left:4px solid #0b65a7;border-radius:8px;background:#eef7ff}.assistant-protocol-card small{color:var(--muted,#5f7086);font-weight:700}@media(max-width:760px){.assistant-protocol-card{padding:.85rem}.professional-review-warning{position:static}}
.pedagogical-support-notice{margin:.8rem 0;border-color:#77b69a;background:#edf9f3}.pedagogical-support-notice strong{color:#075b3d}
.followup-editor{display:grid;gap:.75rem;margin-top:.9rem;padding:1rem;border:1px solid #b9d8c8;border-radius:12px;background:#f4fbf7}.followup-editor p{margin:0}.followup-editor .actions{margin-top:.25rem}
.signature-ok{background:#dcfae6;color:#067647;align-self:center}.signature-pending{background:#fff4e5;color:#b54708;align-self:center}
.agenda-hero{display:flex;justify-content:space-between;gap:2rem;align-items:end;padding:2rem;border-radius:22px;background:linear-gradient(135deg,#0b3d2e,#23684e);color:#fff;margin-bottom:1rem}.agenda-hero h1{font-size:2.4rem;margin:.2rem 0}.agenda-hero p{color:#d5e4de}.agenda-hero .eyebrow{color:#d8f148}.agenda-hero .secondary{background:transparent;color:#fff;border-color:#82aa9b}.agenda-filters{display:grid;grid-template-columns:1fr 1fr auto;gap:.8rem;align-items:end;margin-bottom:1rem}.agenda-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.agenda-form-grid .wide{grid-column:1/-1}.checkbox-field{display:flex;grid-template-columns:auto 1fr;align-items:center}.checkbox-field input{width:auto}.agenda-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.agenda-day{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.agenda-day-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;background:#eaf3ed;border-bottom:3px solid #d8f148;text-transform:capitalize}.agenda-day-head span{font-size:1.15rem;font-weight:900;color:var(--forest)}.agenda-day-head strong{font-size:.72rem;color:var(--muted)}.agenda-item{padding:1.1rem 1.2rem;border-bottom:1px solid var(--line);border-left:4px solid #75ad4f}.agenda-item:last-child{border-bottom:0}.agenda-thumb{width:100%;height:180px;object-fit:cover;border-radius:12px;margin-bottom:.8rem}.agenda-item h3{margin:.55rem 0 .35rem}.agenda-item>p{color:var(--muted);font-size:.78rem;line-height:1.5}.agenda-item dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.agenda-item dt{font-size:.6rem;color:var(--muted);text-transform:uppercase;font-weight:800}.agenda-item dd{font-size:.7rem;margin:.2rem 0 0;font-weight:700}.agenda-status{float:right;font-size:.62rem;font-weight:900;color:var(--green)}.status-pendiente{border-left-color:#f59e0b}.status-aplazado{border-left-color:#94a3b8}.status-rechazado{border-left-color:#dc2626}.agenda-decisions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}.agenda-decisions button{padding:.55rem .65rem;font-size:.68rem}.birthday-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.birthday-card{display:grid;grid-template-columns:72px 1fr;gap:1rem}.birthday-card img,.birthday-avatar{width:72px;height:72px;border-radius:50%;object-fit:cover}.birthday-avatar{display:grid;place-items:center;background:#fff7cf;font-size:1.8rem}.birthday-card h3{margin:.5rem 0 .2rem}.birthday-card p{margin:.2rem 0;color:var(--muted)}@media(max-width:900px){.agenda-days,.birthday-grid{grid-template-columns:1fr}.agenda-hero{align-items:flex-start;flex-direction:column}.agenda-form-grid{grid-template-columns:1fr}.agenda-form-grid .wide{grid-column:auto}}@media(max-width:600px){.agenda-filters{grid-template-columns:1fr}.agenda-item dl{grid-template-columns:1fr}.agenda-hero h1{font-size:1.8rem}}
.blog-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.blog-admin-card{padding:0;overflow:hidden}.blog-admin-card>img{width:100%;height:220px;object-fit:cover}.blog-admin-card>div{padding:1.2rem}.blog-admin-card h3{font-size:1.25rem;margin:.7rem 0}.blog-admin-card p{color:var(--muted);line-height:1.55}.blog-admin-card small{color:var(--muted)}@media(max-width:850px){.blog-admin-grid{grid-template-columns:1fr}}
.auth-message{margin-top:1rem;padding:.85rem 1rem;border-radius:12px;background:#edf6f2;color:var(--forest);font-size:.78rem;line-height:1.5}.import-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.import-card h3,.import-card p{margin:.2rem 0}.profile-form{margin-top:1rem}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.profile-form input[readonly]{background:#f2f5f3;color:#63736c;cursor:not-allowed}@media(max-width:760px){.import-card{align-items:flex-start;flex-direction:column}.profile-grid{grid-template-columns:1fr}}
.integrated-app-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem}.integrated-app-head h3{font-size:1.55rem;margin:.2rem 0}.integrated-app-head p:not(.eyebrow){max-width:760px;margin:.2rem 0;color:var(--muted);font-size:.8rem}.integrated-app-head .actions{align-items:center;margin:0}.integrated-app-shell{height:calc(100vh - 205px);height:calc(100dvh - 205px);min-height:680px;border:1px solid #c8dcee;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 18px 48px rgba(5,54,109,.12)}.integrated-app-frame{display:block;width:100%;height:100%;border:0;background:#f5f8fd}@media(max-width:900px){.integrated-app-head{align-items:flex-start;flex-direction:column}.integrated-app-shell{height:calc(100vh - 245px);height:calc(100dvh - 245px);min-height:620px}}@media(max-width:600px){.integrated-app-shell{height:calc(100vh - 260px);height:calc(100dvh - 260px);min-height:580px;border-radius:12px}}

/* Experiencia táctil y segura para teléfonos. */
@media(max-width:760px){body.menu-open{overflow:hidden}body.menu-open:after{content:"";position:fixed;inset:0;background:rgba(3,24,48,.55);backdrop-filter:blur(2px);z-index:15}.sidebar{width:min(86vw,310px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(1.3rem,env(safe-area-inset-bottom));box-shadow:18px 0 45px rgba(3,24,48,.28)}.workspace header{height:72px;padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.icon-button{width:44px;height:44px;padding:0;font-size:1.15rem}.workspace header h2{font-size:1.18rem}.workspace header .eyebrow{font-size:.6rem}.sidebar nav button,.primary,.secondary{min-height:44px}.table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}.section-title{align-items:flex-start;gap:.75rem}.section-title>.actions{margin-top:0}.toast{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));max-width:none}.integrated-app-head{gap:.65rem}.integrated-app-head h3{font-size:1.28rem}.integrated-app-head p:not(.eyebrow){font-size:.74rem;line-height:1.45}.integrated-app-head .actions{width:100%;display:grid;grid-template-columns:auto 1fr}.integrated-app-head .secondary{text-align:center}.integrated-app-shell{height:calc(100vh - 240px);height:calc(100dvh - 240px);min-height:520px}.agenda-hero .actions,.hero .actions{width:100%}.agenda-hero .actions>*{flex:1 1 100%;text-align:center}.record-card .actions>*{flex:1 1 auto}.settings-save{bottom:max(.5rem,env(safe-area-inset-bottom))}}
@media(max-width:420px){.view{padding:.75rem}.card{border-radius:13px}.hero,.agenda-hero{padding:1.25rem;border-radius:15px}.hero{flex-direction:column}.stats{grid-template-columns:1fr}.section-title{flex-direction:column}.section-title>.actions{width:100%}.section-title>.actions>*{flex:1}.integrated-app-head .actions{grid-template-columns:1fr}.integrated-app-head .badge{text-align:center;padding:.55rem}.integrated-app-shell{height:calc(100vh - 275px);height:calc(100dvh - 275px);min-height:500px}.auth-card{padding:1.35rem}.auth-card input,input,select,textarea{font-size:16px}.module-tabs{scroll-snap-type:x proximity}.module-tabs button{scroll-snap-align:start}.agenda-day-head{align-items:flex-start;gap:.4rem;flex-direction:column}.birthday-card{grid-template-columns:56px 1fr}.birthday-card img,.birthday-avatar{width:56px;height:56px}}

.danger{background:#fff1ef;color:#9f2d20;border:1px solid #f1b9b1}.danger:hover{background:#8b2b20;color:#fff}.badge-off{background:#edf0f3!important;color:#627080!important}.user-actions{display:flex;flex-wrap:wrap;gap:.45rem}.user-actions button{white-space:nowrap}.section-title.compact{margin-bottom:.7rem}.login-help{margin:.7rem 0 0;color:var(--muted);font-size:.74rem;line-height:1.5}
.student-admin-card{display:grid;gap:1rem;margin-bottom:1rem;background:linear-gradient(135deg,#f4f9ff,#fffdf2);border-color:#bdd4ea}.student-admin-card h3{margin:.55rem 0 .25rem}.student-admin-card p{margin:0;max-width:900px;color:var(--muted);line-height:1.55}.student-import-actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.file-picker{position:relative;display:inline-flex;align-items:center;min-height:44px;max-width:320px;padding:.7rem 1rem;border:1px dashed #73a2cf;border-radius:10px;background:#fff;color:#134f86;font-weight:800;cursor:pointer;overflow:hidden}.file-picker span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}@media(max-width:650px){.student-import-actions{display:grid;grid-template-columns:1fr}.student-import-actions>*{width:100%;text-align:center}.file-picker{max-width:none;justify-content:center}}
.module-student-quick{margin-bottom:.8rem}.module-student-filters{display:grid;grid-template-columns:1fr 1fr 2fr;gap:.8rem;margin-bottom:.8rem;padding:1rem;border:1px solid #cbddee;border-radius:14px;background:#f5f9fd}.student-profile-card{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;padding:1rem 1.1rem;border:1px solid #b9d3ea;border-left:5px solid #1769aa;border-radius:13px;background:#f7fbff}.student-profile-card>div{display:grid;gap:.2rem}.student-profile-card strong{color:#102a43}.student-profile-card small{color:var(--muted)}.student-profile-label{font-size:.61rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#1769aa}.student-profile-details{grid-column:1/-1;padding:.75rem;border:1px solid #d4e3ef;border-radius:10px;background:#fff}.student-profile-details summary{cursor:pointer;color:#07589b;font-weight:850}.student-profile-details>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:.75rem 0}.student-profile-details span{display:grid;gap:.15rem;padding:.45rem .55rem;border-radius:8px;background:#f2f7fb;color:#334e68}.student-profile-details b{font-size:.62rem;color:#1769aa}.module-record-filters{display:grid;grid-template-columns:1fr 1fr 1fr 2fr auto;gap:.7rem;align-items:end;margin-bottom:1rem}@media(max-width:1050px){.module-record-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.module-record-filters button{width:100%}.student-profile-details>div{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.module-student-filters,.student-profile-card,.module-record-filters{grid-template-columns:1fr}.student-profile-details>div{grid-template-columns:1fr}}
.executive-hero{background:linear-gradient(135deg,#082f5f,#0b5f93)}.executive-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.executive-stats .accent{background:#eaf5ff;border-color:#96c6eb}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.dashboard-panel{min-width:0}.dashboard-panel.wide{grid-column:1/-1}.dashboard-panel h3{margin:.2rem 0 1rem}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.dashboard-rate{font-size:2rem;color:#07589b}.mini-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.mini-stats span,.attention-list span{padding:.7rem;border-radius:10px;background:#f4f7f9;color:var(--muted);font-size:.72rem}.mini-stats b,.attention-list b{display:block;color:var(--ink);font-size:1rem}.attention-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.dash-bar{margin:.75rem 0}.dash-bar>div{display:flex;justify-content:space-between;gap:1rem;font-size:.75rem}.dash-bar i{display:block;height:9px;margin-top:.35rem;background:#e7edf2;border-radius:999px;overflow:hidden}.dash-bar i b{display:block;height:100%;background:linear-gradient(90deg,#07589b,#2b91c8);border-radius:999px}.signature-flow{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;padding:.8rem;margin:.8rem 0;background:#f3f8fc;border:1px solid #cbddea;border-radius:12px}.evidence-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:.8rem 0}.evidence-flow>div{display:grid;gap:.45rem;padding:.8rem;border:1px dashed #9db6c9;border-radius:12px;background:#fbfdff}.evidence-flow small{color:var(--muted);line-height:1.45}.compact-file{margin:0;max-width:none;padding:.65rem .8rem}.followup-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.followup-editor>strong,.followup-editor>p,.followup-editor>.route-wide{grid-column:1/-1}@media(max-width:900px){.executive-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.dashboard-grid,.evidence-flow,.followup-editor{grid-template-columns:1fr}.dashboard-panel.wide,.followup-editor>.route-wide{grid-column:auto}.signature-flow>*{width:100%;text-align:center}}@media(max-width:420px){.executive-stats,.mini-stats,.attention-list{grid-template-columns:1fr}}
.executive-filters{margin-bottom:1rem}.executive-filter-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.8rem}.executive-filter-head h3{margin:.15rem 0}.dashboard-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem}.hierarchy-list,.dashboard-activity-list{display:grid;gap:.55rem;max-height:360px;overflow:auto;padding-right:.2rem}.hierarchy-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.7rem;padding:.7rem;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.hierarchy-row>div:first-child{display:grid;gap:.12rem}.hierarchy-row span,.hierarchy-row small{color:var(--muted);font-size:.68rem}.hierarchy-row>div:not(:first-child){text-align:right}.hierarchy-row b{display:block;color:var(--blue)}.dashboard-activity{display:flex;justify-content:space-between;gap:1rem;padding:.65rem;border-bottom:1px solid var(--line);font-size:.72rem}.dashboard-activity>div{display:grid;gap:.18rem}.dashboard-activity>div:last-child{text-align:right}.dashboard-activity span,.dashboard-activity time{color:var(--muted);font-size:.66rem}.attention-danger{background:#fff0ed!important;color:#9b2d22!important}.attention-danger b{color:#9b2d22!important}.dashboard-records{margin-bottom:1rem}@media(max-width:1180px){.dashboard-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.dashboard-filter-grid{grid-template-columns:1fr 1fr}.executive-filter-head{align-items:stretch}.dashboard-activity{display:grid}.dashboard-activity>div:last-child{text-align:left}}@media(max-width:460px){.dashboard-filter-grid{grid-template-columns:1fr}.executive-filter-head{display:grid}.executive-filter-head button{width:100%}}@media print{.sidebar,.topbar,.executive-filters .actions,.executive-filter-head button,.section-title button{display:none!important}.main{margin:0!important}.content{padding:0!important}.card{box-shadow:none!important;break-inside:avoid}.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-activity-list,.hierarchy-list{max-height:none;overflow:visible}}
.compliance-cumplida{background:#def7e8!important;color:#12733d!important}.compliance-incumplida{background:#fde7e4!important;color:#9f2e22!important}.compliance-parcial{background:#fff0c7!important;color:#8b5a00!important}
.sidebar>.logo,.sidebar>.user-box{flex:0 0 auto}.sidebar nav{min-height:0;overflow-y:auto;overflow-x:hidden;align-content:start;padding-right:.25rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}.dashboard-warning{margin:1rem 0;background:#fff8e8;border-color:#e7c66a;color:#795100}
.ria-form{display:grid;grid-template-columns:1fr;gap:1rem}.ria-intro{margin:0}.ria-section{border:1px solid #cdddc5;border-radius:15px;background:#fbfdf9;overflow:hidden}.ria-section-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;background:#e7f0cd;color:#234722}.ria-section-title>div{display:grid;gap:.2rem}.ria-section-title .muted{font-size:.7rem;font-weight:600}.ria-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;padding:1rem}.ria-grid .ria-wide{grid-column:1/-1}.ria-ai-section{border-color:#9ec8e8;background:#f8fbff}.ria-ai-section .ria-section-title{background:#e8f3fc;color:#0a4f84}.ria-ai-section textarea{min-height:120px}@media(max-width:1050px){.ria-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.ria-grid{grid-template-columns:1fr}.ria-grid .ria-wide{grid-column:auto}.ria-section-title{align-items:stretch;flex-direction:column}.ria-section-title .compact-ai{width:100%}}
.ria-other-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;margin-top:.45rem;padding:.65rem;border:1px dashed #8db39a;border-radius:10px;background:#f1f8f2}.ria-other-editor input{min-width:0}.ria-other-editor button{white-space:nowrap}.ria-other-editor small{grid-column:1/-1;color:#52677c}.ria-other-editor.hidden{display:none}@media(max-width:560px){.ria-other-editor{grid-template-columns:1fr}.ria-other-editor button,.ria-other-editor small{grid-column:1}}
.ria-dashboard{margin:1rem 0 1.4rem}.ria-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.ria-stat-grid .card{padding:1rem;display:flex;flex-direction:column;gap:.3rem}.ria-stat-grid strong{font-size:1.75rem;color:var(--forest)}.ria-stat-grid span{font-size:.72rem;color:var(--muted);font-weight:700}.ria-dashboard-table td{vertical-align:top}.mini-progress{height:7px;min-width:90px;margin-top:.35rem;border-radius:99px;background:#e7eef5;overflow:hidden}.mini-progress i{display:block;height:100%;background:var(--green);border-radius:inherit}.progress-label{font-weight:850}.badge.warning{background:#fff1c7;color:#8b5a00}@media(max-width:900px){.ria-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ria-stat-grid .card:last-child{grid-column:1/-1}}@media(max-width:760px){.ria-dashboard-table{overflow-x:auto}.ria-dashboard-table table{min-width:880px}}
.dossier-filters{margin:1rem 0}.dossier-filter-grid{display:grid;grid-template-columns:.7fr 1fr 1fr 1.6fr auto 2fr auto;gap:.75rem;align-items:end}.dossier-print-title{display:none}.dossier-analytics-title{margin-top:1.25rem}.dossier-analytics-stats{margin:.8rem 0 1rem}.dossier-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}.dossier-bar small{display:block;margin-top:.25rem;color:var(--muted);font-size:.64rem}.dossier-profile{display:grid;grid-template-columns:1.4fr 1fr auto;gap:1rem;align-items:center;margin-top:1rem;background:linear-gradient(135deg,#f4f9ff,#fff)}.dossier-profile h2,.dossier-profile p{margin:.2rem 0}.dossier-actions{display:flex;flex-direction:column;gap:.55rem}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}.dossier-label{display:block;color:#1769aa;font-size:.63rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.dossier-stats{margin:1rem 0}.dossier-module-summary{margin-bottom:1rem}.dossier-module-summary>.mini-stats{margin-top:.8rem;grid-template-columns:repeat(4,minmax(0,1fr))}.dossier-timeline{position:relative;display:grid;gap:1rem;padding-left:1.5rem}.dossier-timeline:before{content:"";position:absolute;left:.45rem;top:.3rem;bottom:.3rem;width:3px;border-radius:9px;background:#bdd7eb}.dossier-event{position:relative}.dossier-event-marker{position:absolute;left:-2.05rem;top:1.3rem;width:15px;height:15px;border:3px solid #fff;border-radius:50%;background:#1769aa;box-shadow:0 0 0 2px #1769aa}.dossier-event-student{display:block;margin-top:.65rem;color:#07589b;font-size:.68rem;font-weight:850;text-transform:uppercase}.dossier-event h3{margin:.35rem 0}.dossier-event>p{margin:.2rem 0 .75rem;color:var(--muted)}.dossier-event time{color:var(--muted);font-size:.7rem}@media(max-width:1280px){.dossier-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dossier-filter-grid .dossier-query-field{grid-column:span 2}.dossier-filter-grid .dossier-student-select{grid-column:span 2}}@media(max-width:900px){.dossier-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dossier-filter-grid .dossier-query-field,.dossier-filter-grid .dossier-student-select{grid-column:span 2}.dossier-module-summary>.mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dossier-charts{grid-template-columns:1fr}}@media(max-width:760px){.dossier-filter-grid,.dossier-profile{grid-template-columns:1fr}.dossier-filter-grid .dossier-query-field,.dossier-filter-grid .dossier-student-select{grid-column:auto}.dossier-filter-grid button,.dossier-profile button,.dossier-profile .button-link{width:100%}.dossier-timeline{padding-left:1.15rem}.dossier-event-marker{left:-1.7rem}.dossier-module-summary>.mini-stats{grid-template-columns:1fr}}@media print{#view-student-records .hero,#view-student-records .dossier-filters,#view-student-records #dossier-print,#view-student-records #dossier-excel,#view-student-records .actions{display:none!important}#view-student-records .dossier-print-title{display:block;margin-bottom:1rem;border-bottom:2px solid #07589b}.dossier-print-title span{font-size:9pt;font-weight:800}.dossier-print-title h1{font-size:18pt;margin:.25rem 0 .7rem}#view-student-records .dossier-event,#view-student-records .dashboard-panel{break-inside:avoid}#view-student-records .dossier-timeline:before,#view-student-records .dossier-event-marker{display:none}#view-student-records .dossier-timeline{padding-left:0}#view-student-records .dossier-charts{grid-template-columns:1fr 1fr}}
.dossier-summary-title{margin:1.25rem 0 .65rem}.dossier-summary-table table{min-width:980px}.dossier-summary-table td{vertical-align:middle}.dossier-summary-table button{white-space:nowrap}.dossier-signature-status{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin:.65rem 0}.dossier-signature-status small{color:var(--muted)}
.assistant-required{padding:.55rem;border:2px solid #d98b18;border-radius:12px;background:#fff8e8}.assistant-required>span:first-child:after{content:" · pendiente";color:#a85d00;font-size:.68rem;font-weight:850}.assistant-required input,.assistant-required textarea{border-color:#d98b18}
.observatory-filters{margin:1rem 0}.observatory-filters .dashboard-filter-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.observatory-search{grid-column:span 2}.observatory-charts{margin:1rem 0}.observatory-table table{min-width:1250px}.observatory-table td{vertical-align:top}.observatory-table small{color:var(--muted);line-height:1.45}.observatory-docs{display:grid;gap:.4rem;min-width:190px}.observatory-docs .compact{min-height:36px;padding:.45rem .6rem;font-size:.66rem}.compliance-pendiente{background:#edf0f3!important;color:#596979!important}.observatory-table .compliance-cumplida,.observatory-table .compliance-incumplida,.observatory-table .compliance-parcial{display:inline-block}@media(max-width:1180px){.observatory-filters .dashboard-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.observatory-search{grid-column:span 2}}@media(max-width:760px){.observatory-filters .dashboard-filter-grid{grid-template-columns:1fr}.observatory-search{grid-column:auto}.observatory-filters .actions{display:grid;grid-template-columns:1fr}.observatory-filters .actions button{width:100%}}@media print{#view-observatory .hero,#view-observatory .observatory-filters,#view-observatory .observatory-table{display:none!important}#view-observatory .observatory-charts{grid-template-columns:1fr 1fr}}
.absence-followup{margin-top:1rem;padding:1rem;background:#f7fafc;border:1px solid #cbdceb}.absence-followup .section-title{margin-top:0}.absence-advance{display:flex;align-items:center;gap:.55rem;padding:.75rem;background:#fff8e8;border:1px solid #ead08a;border-radius:10px}.absence-advance input{width:auto}.absence-stage{background:#fff1d6;color:#8a4a00}.shared-case{background:#e8f3ff;color:#064b88}
.puntoedu-absence-sync{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;background:linear-gradient(135deg,#eef8ff,#fffdf2);border-color:#9bc4e5}.puntoedu-absence-sync h3,.puntoedu-absence-sync p{margin:.25rem 0}.puntoedu-absence-sync p{max-width:850px;color:var(--muted);line-height:1.5}.absence-timeline{margin-top:1rem;padding:1rem;background:#f8fbfe;border-color:#a9c9e2}.absence-timeline .section-title{margin-top:0}.absence-cuts{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin:.7rem 0 1rem;padding:.75rem;border:1px solid #c8dcec;border-radius:12px;background:#fff}.absence-cuts strong{width:100%}.absence-timeline table{min-width:760px}@media(max-width:760px){.puntoedu-absence-sync{align-items:stretch;flex-direction:column}.puntoedu-absence-sync button{width:100%}.absence-cuts{display:grid}.absence-cuts a{width:100%}}
.orientation-events{display:grid;gap:.8rem}.orientation-event{position:relative;padding:.9rem 1rem .9rem 1.2rem;border:1px solid #c8dcec;border-radius:12px;background:#fff}.orientation-event:before{content:"";position:absolute;left:.42rem;top:1rem;bottom:1rem;width:3px;border-radius:3px;background:#1767a6}.orientation-event>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.orientation-event p{margin:.55rem 0;line-height:1.45}.orientation-event small{color:var(--muted)}.orientation-followup{margin-top:1rem}.orientation-followup .file-picker{align-self:end}@media(max-width:760px){.orientation-event .actions a{width:100%}.orientation-followup{grid-template-columns:1fr}}
.permission-reminder{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;background:linear-gradient(135deg,#f1f7ff,#fffdf3);border-color:#a9c9e2}.permission-reminder h3,.permission-reminder p{margin:.25rem 0}.permission-reminder p{max-width:850px;color:var(--muted);line-height:1.5}.permission-history{margin-top:.35rem;padding:.7rem;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.permission-history summary{cursor:pointer;color:#07589b;font-size:.73rem;font-weight:850}.permission-history ol{display:grid;gap:.65rem;margin:.8rem 0 0;padding-left:1.2rem}.permission-history li{font-size:.72rem}.permission-history li span{display:block;color:var(--muted);font-size:.65rem}.permission-history li p{margin:.2rem 0 0;color:var(--muted)}@media(max-width:760px){.permission-reminder{align-items:stretch;flex-direction:column}.permission-reminder .actions{display:grid}.permission-reminder button{width:100%}}

/* Centro personal de pendientes y recordatorios. */
.pending-center{position:relative;margin-left:auto}.header-date{margin-left:0}.pending-bell{position:relative;display:grid;place-items:center;width:46px;height:46px;border:1px solid #c9d8e5;border-radius:50%;background:#fff;color:#07589b;font-size:1.2rem;box-shadow:0 6px 18px rgba(5,54,109,.08)}.pending-bell:hover,.pending-bell.has-pending{background:#eff7ff;border-color:#74a8d2}.pending-bell b{position:absolute;right:-5px;top:-6px;min-width:22px;height:22px;padding:0 5px;display:grid;place-items:center;border:2px solid #fff;border-radius:999px;background:#b42318;color:#fff;font-size:.64rem;line-height:1}.pending-panel{position:absolute;right:0;top:56px;width:min(460px,calc(100vw - 28px));max-height:min(680px,calc(100vh - 115px));display:flex;flex-direction:column;border:1px solid #bdd1e2;border-radius:18px;background:#fff;box-shadow:0 24px 60px rgba(4,39,72,.22);overflow:hidden;z-index:80}.pending-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem .75rem;border-bottom:1px solid #dce7ef}.pending-panel-head h3,.pending-panel-head p{margin:0}.pending-close{width:36px;height:36px;border-radius:50%;background:#edf4fa;color:#17496f;font-size:1.35rem}.pending-summary{display:flex;justify-content:space-between;gap:.75rem;padding:.7rem 1rem;background:#f5f9fc;font-size:.72rem}.pending-summary span{color:var(--muted)}.pending-items{display:grid;gap:.55rem;padding:.75rem;overflow:auto;overscroll-behavior:contain}.pending-item{display:grid;gap:.3rem;width:100%;padding:.78rem .85rem;border:1px solid #d9e4ec;border-left:5px solid #6b8aa2;border-radius:12px;background:#fff;color:var(--ink);text-align:left}.pending-item:hover{background:#f6faff;border-color:#9fc1dc}.pending-item.priority-alta{border-left-color:#b42318}.pending-item.priority-media{border-left-color:#d47700}.pending-item.priority-baja{border-left-color:#178052}.pending-item-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.pending-item-top b{color:#07589b;font-size:.61rem;letter-spacing:.05em}.pending-item-top em{font-style:normal;color:var(--muted);font-size:.56rem;font-weight:850}.pending-item>strong{font-size:.78rem;line-height:1.35}.pending-item small{color:var(--muted);font-size:.67rem;line-height:1.4}.pending-item time{color:#8a5100;font-size:.62rem;font-weight:800}.pending-item i{color:#07589b;font-size:.64rem;font-style:normal;font-weight:850}.pending-empty{display:grid;place-items:center;padding:1.5rem;color:var(--muted);text-align:center}.pending-empty span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#dcfae6;color:#067647;font-size:1.2rem}.pending-empty p{margin:.6rem 0}.pending-error{margin:.5rem;padding:.75rem;border-radius:9px;background:#fff0ed;color:#9b2d22;font-size:.72rem}.pending-admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;padding:.75rem;border-top:1px solid #dce7ef;background:#f8fafc}.pending-admin-actions button{font-size:.68rem}.record-highlight{animation:pendingPulse 2.2s ease-out;outline:4px solid rgba(255,191,0,.42);scroll-margin-top:110px}@keyframes pendingPulse{0%,45%{box-shadow:0 0 0 8px rgba(255,191,0,.22)}100%{box-shadow:0 7px 22px rgba(18,57,45,.04)}}
@media(max-width:760px){.pending-center{margin-left:auto}.pending-bell{width:42px;height:42px}.pending-panel{position:fixed;left:10px;right:10px;top:78px;width:auto;max-height:calc(100dvh - 92px);border-radius:15px}.pending-admin-actions{grid-template-columns:1fr}.pending-admin-actions button{width:100%}.record-highlight{scroll-margin-top:82px}}
.exit-time-controls{display:grid;grid-template-columns:minmax(10rem,1fr) auto;gap:.65rem;align-items:center}
.exit-time-controls input[type="time"]{min-width:0;width:100%}
.exit-time-voice{white-space:nowrap;min-height:3rem}
.exit-time-voice.listening{background:#fff2c7;border-color:#ffbe18;color:#16324f;animation:exit-time-pulse 1s ease-in-out infinite}
.exit-time-transcript{display:block;min-height:1.15rem;margin-top:.25rem;color:#0b5ea8;font-size:.84rem;font-weight:700}
@keyframes exit-time-pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,190,24,.15)}50%{box-shadow:0 0 0 .35rem rgba(255,190,24,.22)}}
@media(max-width:560px){.exit-time-controls{grid-template-columns:1fr}.exit-time-voice{width:100%}}
.portal-home-auth{display:block;margin-top:.45rem;padding:.8rem 0;color:var(--green);font-size:.82rem;font-weight:800;text-decoration:none}
.portal-home-auth:hover{text-decoration:underline}
.sidebar nav .sidebar-home-link{display:flex;align-items:center;gap:.8rem;padding:.78rem .85rem;border-radius:10px;color:#c9d9d3;text-decoration:none;font-weight:700}
.sidebar nav .sidebar-home-link span{width:1.4rem;font-size:1.1rem}
.sidebar nav .sidebar-home-link:hover{background:rgba(255,255,255,.1);color:#fff}

/* Gestión académica y vista previa segura de perfiles. */
.academic-hero{align-items:center}.academic-year-picker{display:grid;gap:.35rem;min-width:150px;color:#52677c;font-size:.7rem;font-weight:850}.academic-source-note{margin:1rem 0;padding:.85rem 1rem;border:1px solid #a9c9e2;border-radius:12px;background:#f1f8fd;color:#36566e;font-size:.73rem;line-height:1.45}.academic-assignment-card{margin:1rem 0;background:linear-gradient(135deg,#f7fbff,#fffdf5)}.academic-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.academic-student-field small{margin-top:.25rem;color:var(--muted)}.academic-custom-subject{margin:1rem 0}.academic-custom-subject summary{cursor:pointer;color:#07589b;font-weight:850}.academic-custom-subject .academic-form-grid{margin:1rem 0}.academic-table table{min-width:900px}.academic-area{color:#07589b;font-size:.65rem;font-weight:850;text-transform:uppercase}.academic-row-actions{display:flex;flex-wrap:wrap;gap:.4rem}.academic-roster{margin:1rem 0;border-color:#87b6d8;scroll-margin-top:100px}.academic-catalog-title{margin-top:1.4rem}.academic-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.academic-area-card{border:1px solid #cbdce9;border-radius:13px;background:#fff;overflow:hidden}.academic-area-card summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;cursor:pointer;color:#173a57;font-weight:850}.academic-area-card summary b{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:#eaf4fb;color:#07589b}.academic-area-card ul{display:grid;gap:.55rem;margin:0;padding:0 1rem 1rem;list-style:none}.academic-area-card li{display:grid;gap:.18rem;padding:.55rem .65rem;border-radius:9px;background:#f6f9fb}.academic-area-card li small{color:var(--muted)}
.role-preview-launcher{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;border-color:#d2b04c;background:linear-gradient(135deg,#fff9df,#fff)}.role-preview-launcher h3,.role-preview-launcher p{margin:.2rem 0}.role-preview-controls{display:flex;align-items:center;gap:.55rem;min-width:min(100%,430px)}.role-preview-controls select{flex:1}.role-preview-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;border:2px solid #dda900;background:#fffaf0}.role-preview-banner h2,.role-preview-banner p{margin:.35rem 0}.role-preview-stats{display:grid;grid-template-columns:repeat(3,minmax(70px,1fr));gap:.5rem}.role-preview-stats span{display:grid;place-items:center;padding:.65rem;border-radius:10px;background:#fff;color:#52677c;font-size:.63rem;text-align:center}.role-preview-stats b{color:#07589b;font-size:1.25rem}.role-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.role-preview-menu,.role-preview-modules{display:grid;gap:.5rem}.role-preview-menu>div,.role-preview-modules>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.65rem;border:1px solid #dbe5ec;border-radius:9px}.role-preview-menu>div.disabled{opacity:.48;background:#f4f4f4}.role-preview-menu small,.role-preview-modules small{color:var(--muted)}.role-preview-modules>div{grid-template-columns:auto 1fr}.role-preview-modules p{display:grid;gap:.15rem;margin:0}
@media(max-width:900px){.academic-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-preview-grid{grid-template-columns:1fr}}
@media(max-width:760px){.academic-hero,.role-preview-launcher,.role-preview-banner{align-items:stretch;flex-direction:column}.academic-form-grid,.academic-catalog{grid-template-columns:1fr}.academic-year-picker,.role-preview-controls{width:100%;min-width:0}.role-preview-controls{display:grid}.role-preview-controls button{width:100%}.role-preview-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.academic-row-actions{display:grid}.academic-row-actions button{width:100%}}
.academic-source-note a{color:#07589b;font-weight:850;text-decoration:underline}

/* Perfiles restringidos y control operativo de portería. */
body.role-gate-only .quindia-launch,body.role-gate-only .quindia-panel,body.role-gate-only .pending-center{display:none!important}
.gate-hero{background:linear-gradient(135deg,#073763,#0b6595)}
.gate-dashboard-callout{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;border-color:#9dc6df;background:linear-gradient(135deg,#f2f9ff,#fff)}
.gate-dashboard-callout h3,.gate-dashboard-callout p{margin:.2rem 0}.gate-dashboard-callout p{color:var(--muted);line-height:1.5}
.gate-filters{display:grid;grid-template-columns:minmax(160px,.75fr) minmax(260px,2fr) minmax(160px,.8fr) auto;gap:.75rem;align-items:end;margin:1rem 0}
.gate-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.gate-records{display:grid;gap:.75rem}.gate-record{display:grid;grid-template-columns:105px minmax(0,1fr) minmax(210px,.65fr);gap:1rem;align-items:center;border-left:5px solid #0b6595}
.gate-record-time{display:grid;gap:.2rem;text-align:center}.gate-record-time strong{font-size:1.35rem;color:#073763}.gate-record-time span{color:var(--muted);font-size:.68rem}
.gate-record-main h3{margin:0 0 .35rem}.gate-record-main p{margin:.25rem 0;color:#425c6f;font-size:.74rem;line-height:1.45}.gate-record-main small{color:var(--muted)}
.gate-record-action{display:grid;justify-items:start;gap:.45rem}.gate-record-action small{color:var(--muted);font-size:.63rem;line-height:1.4}.gate-record-action .primary{width:100%}
.gate-ready{background:#dcfae6;color:#067647}.gate-invalid{background:#fff0ed;color:#9b2d22}.gate-verified{background:#e6f2ff;color:#07589b}
@media(max-width:960px){.gate-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.gate-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.gate-record{grid-template-columns:90px 1fr}.gate-record-action{grid-column:1/-1;padding-top:.65rem;border-top:1px solid var(--line)}}
@media(max-width:600px){.gate-dashboard-callout{align-items:stretch;flex-direction:column}.gate-dashboard-callout .actions,.gate-dashboard-callout button{width:100%}.gate-filters,.gate-record{grid-template-columns:1fr}.gate-filters button{width:100%}.gate-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.gate-record-time{text-align:left;grid-template-columns:auto 1fr;align-items:baseline}.gate-record-action{grid-column:auto}.gate-record-action .badge{white-space:normal}}
/* Caracterización y PIAR por asignatura */
.student-support-filters{grid-template-columns:1fr 1fr minmax(220px,2fr) minmax(220px,1.3fr) auto}
.support-check>span:last-child,.review-confirm{display:flex;align-items:center;gap:.55rem;min-height:44px}
.support-check input,.review-confirm input{width:18px;height:18px}
.support-privacy-notice{margin:1rem 0}
.student-support-actions,.support-editor-tabs,.support-save-actions{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
.student-support-actions button{white-space:nowrap}
.student-support-editor{margin-top:1.2rem;border-top:5px solid var(--primary,#0b3d73)}
.student-support-editor h4{margin:1rem 0 .6rem;color:#14385e}
.support-editor-tabs{margin:.8rem 0 1rem}
.support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1rem 0}
.support-field textarea{width:100%;resize:vertical;min-height:110px}
.support-periods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0}
.support-table-guide{display:grid;grid-template-columns:1.05fr .55fr 2.3fr 1.8fr 2fr;border:1px solid #aabccc;border-radius:12px 12px 0 0;overflow:hidden;margin:1rem 0 .2rem;background:#edf3f7}.support-table-guide>div{padding:10px 8px;text-align:center;border-right:1px solid #aabccc}.support-table-guide>div:last-child{border-right:0}.support-table-guide b,.support-table-guide small{display:block}.support-table-guide small{margin-top:4px;color:#526981;line-height:1.3}
.support-period{padding:1rem}.support-period textarea{min-height:100px}
.support-save-actions{justify-content:space-between;margin:1rem 0}
.support-upload{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,2fr);gap:.7rem;align-items:center}
.support-upload textarea{resize:vertical}.support-file-list{line-height:1.8;margin:.8rem 0 0;padding-left:1.2rem}
@media(max-width:980px){.student-support-filters,.support-grid,.support-periods,.support-upload{grid-template-columns:1fr}.support-table-guide{display:none}.student-support-actions button,.support-editor-tabs button,.support-save-actions button{min-height:44px}.student-support-editor{padding:1rem}}
/* Diagnóstico administrativo de QuindIA y privacidad */
.ai-diagnostic-hero{margin-bottom:18px}.ai-privacy-summary{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,1fr) auto;gap:22px;align-items:center;margin-bottom:18px;border-left:5px solid #d69e00}.ai-privacy-summary.is-zdr{border-left-color:#138a55;background:#f3fbf7}.ai-privacy-summary h3{margin:4px 0 8px}.ai-privacy-summary p{margin:0;color:#52677c;line-height:1.5}.ai-privacy-summary ul{margin:0;padding-left:20px;color:#324b63;line-height:1.65}.ai-diagnostic-stats{grid-template-columns:repeat(5,minmax(135px,1fr));margin-bottom:18px}.ai-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ai-check{display:flex;gap:12px;align-items:flex-start;border:1px solid #dbe5ee;border-radius:14px;padding:14px;background:#fff}.ai-check>span{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;font-weight:900}.ai-check.ok>span{background:#dff7e9;color:#087640}.ai-check.warning>span{background:#fff0d2;color:#925d00}.ai-check strong,.ai-check small{display:block}.ai-check small{margin-top:4px;color:#60758a;line-height:1.4}.ai-simulator{margin-top:18px}.ai-simulator-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ai-sim-case{grid-column:1/-1}.ai-difficult-cases{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.ai-difficult-cases>strong{flex-basis:100%;font-size:13px}.ai-difficult-cases button{white-space:normal;text-align:left}.ai-sim-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.ai-sim-result-grid article{border:1px solid #d9e5ef;border-radius:14px;padding:16px;background:#f9fbfd}.ai-sim-result-grid h4{margin:4px 0 8px;font-size:17px}.ai-sim-result-grid p{color:#455d74;line-height:1.45}.ai-sim-result-grid ul{padding-left:20px;color:#455d74}.ai-sanitized-preview{margin-top:14px;border:1px solid #d8e4ed;border-radius:12px;padding:12px}.ai-sanitized-preview summary{cursor:pointer;font-weight:800}.ai-sanitized-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#10283c;color:#e9f4fc;border-radius:10px;padding:14px;max-height:300px;overflow:auto}.ai-not-saved{margin:14px 0 0;color:#087640;font-weight:800}
@media(max-width:900px){.ai-privacy-summary{grid-template-columns:1fr}.ai-diagnostic-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-check-grid,.ai-sim-result-grid{grid-template-columns:1fr}}
@media(max-width:620px){.ai-simulator-grid{grid-template-columns:1fr}.ai-sim-case{grid-column:auto}.ai-diagnostic-stats{grid-template-columns:1fr 1fr}.ai-privacy-summary{padding:18px}.ai-difficult-cases button{width:100%}}
/* Administración académica: perfiles, SIEE y horario institucional. */
.academic-admin-suite{margin-top:2rem}.academic-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}.academic-admin-grid>.card{margin:0}.academic-wide{grid-column:1/-1}.check-field{justify-content:flex-end}.compact-table{margin-top:1rem;max-height:230px}.academic-admin-suite h2{margin:.15rem 0}.academic-admin-suite h3{margin-top:0}.academic-admin-suite select{max-width:100%}
@media(max-width:900px){.academic-admin-grid{grid-template-columns:1fr}.academic-wide{grid-column:auto}.academic-admin-suite .academic-form-grid{grid-template-columns:1fr}.academic-admin-suite button{width:100%}}
.faculty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.faculty-item{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #dbe5ee;border-radius:12px;padding:12px;background:#f9fbfd}.faculty-item strong,.faculty-item small{display:block}.faculty-item small{margin-top:3px;color:#61768a}.faculty-item select{min-width:155px}
.faculty-presets{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px;border:1px solid #bfd7ec;border-radius:14px;background:#f2f8fd}.faculty-presets>strong,.faculty-presets>small{flex-basis:100%}.faculty-presets>small{color:#567087}
@media(max-width:760px){.faculty-grid{grid-template-columns:1fr}.faculty-item{align-items:stretch;flex-direction:column}.faculty-item select{width:100%}}
