/* Sugerencias opcionales para conectar cada cargo con el expediente final de asesoría. */
.course-planning-tip{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;margin-top:14px;padding:15px 17px;border:1px solid #efd28d;border-radius:15px;background:linear-gradient(135deg,#fffaf0,#fff4cf);color:#654b13}.course-planning-tip>span{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;background:#ffe7a0;font-size:1.35rem;filter:drop-shadow(0 0 7px rgba(255,190,40,.55))}.course-planning-tip p{margin:0;line-height:1.55}@media(max-width:560px){.course-planning-tip{grid-template-columns:1fr}.course-planning-tip>span{width:36px;height:36px}}

.guided-answer-action{display:inline-flex!important;width:auto!important;margin-top:12px;padding:9px 13px!important;font-size:.78rem!important}

/* NutriIAFF v61: acceso seguro para repetir el tutorial sin borrar avances. */
.nutriaff-profile-actions form{display:inline-flex;margin:0}.nutriaff-tutorial-restart{display:inline-flex!important;align-items:center;gap:8px;color:#0d5f78!important;border:1px solid #9fd9df!important;background:#effbfb!important}.nutriaff-tutorial-restart:hover{color:#fff!important;background:#087f89!important}.nutriaff-tutorial-restart span{font-size:1.15rem;font-weight:900}@media(max-width:650px){.nutriaff-profile-actions,.nutriaff-profile-actions form{display:grid!important;width:100%}.nutriaff-profile-actions .button{width:100%;text-align:center;justify-content:center}}

/* Recorrido v60: explicación, objetivo aislado y regreso de NutriIAFF. */
html body .onboarding-focus-target.onboarding-target-dismissed{opacity:0!important;filter:blur(14px)!important;transform:scale(.965)!important;box-shadow:none!important;animation:none!important}
html body .course-onboarding.is-pointing.is-sequence-intro,html body .course-onboarding.is-pointing.is-nudging{place-items:center!important;padding:20px!important}
html body .course-onboarding.is-pointing.is-nudging .course-onboarding-card,html body .course-onboarding.is-pointing.is-nudging .course-onboarding-copy,html body .course-onboarding.is-pointing.is-nudging [data-onboarding-next]{filter:none!important;opacity:1!important}
html body .course-onboarding.is-pointing.is-sequence-intro .course-onboarding-card,html body .course-onboarding.is-pointing.is-nudging .course-onboarding-card{position:relative!important;z-index:11003!important;opacity:1!important;filter:none!important;background:#fff!important;border-color:#d9e6f2!important;box-shadow:0 24px 70px rgba(0,0,0,.34)!important}
html body .course-onboarding.is-pointing.is-sequence-intro .course-onboarding-card:before,html body .course-onboarding.is-pointing.is-nudging .course-onboarding-card:before{display:none!important}
html body .course-onboarding.is-pointing.is-sequence-intro [data-onboarding-next]{animation:none!important}
html body .course-onboarding.is-pointing.is-target-only .course-onboarding-card{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
html body .course-onboarding.is-pointing.is-target-only .onboarding-focus-target{opacity:1!important;visibility:visible!important;filter:none!important}

/* Recorrido v53: a los seis segundos, NutriIAFF y el objetivo intercambian protagonismo. */
.course-onboarding.is-pointing.is-nudging .course-onboarding-card{z-index:11005!important;opacity:1!important;filter:brightness(1.12) saturate(1.04)!important;background:#fff!important;border-color:#fff0b8!important;box-shadow:0 0 0 5px rgba(255,240,184,.96),0 0 42px 15px rgba(255,240,184,.42),0 30px 88px rgba(0,0,0,.42)!important}
.course-onboarding.is-pointing.is-nudging .onboarding-focus-target{opacity:.76!important;filter:brightness(.55) saturate(.72)!important;box-shadow:0 0 0 4px rgba(255,240,166,.42),0 0 14px 3px rgba(255,240,166,.24),0 0 0 9999px rgba(10,31,58,.08),0 14px 36px rgba(0,0,0,.24)!important;animation:none!important}
.course-onboarding.is-pointing.is-nudging .course-onboarding-shade{background:rgba(10,31,58,.7)!important}
.course-onboarding.is-pointing.is-nudging [data-onboarding-next]{filter:brightness(1)!important;opacity:1!important}

/* Invitación v52: el primer bloque llama al usuario hasta su primera apertura. */
.button.is-block-one-invite{position:relative;z-index:2;transform-origin:50% 100%;animation:block-one-friendly-bounce 1.75s cubic-bezier(.28,.84,.42,1) infinite;box-shadow:0 8px 22px rgba(23,104,183,.28),0 0 0 3px rgba(75,202,255,.26)}
.button.is-block-one-invite::after{content:"";position:absolute;inset:-8px;border:2px solid rgba(75,202,255,.72);border-radius:inherit;opacity:0;pointer-events:none;animation:block-one-invite-ring 1.75s ease-out infinite}
@keyframes block-one-friendly-bounce{0%,58%,100%{transform:translateY(0) scale(1)}18%{transform:translateY(-11px) scale(1.025)}34%{transform:translateY(0) scale(1)}45%{transform:translateY(-5px) scale(1.012)}}
@keyframes block-one-invite-ring{0%,28%{opacity:.75;transform:scale(.94)}70%,100%{opacity:0;transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.button.is-block-one-invite,.button.is-block-one-invite::after{animation:none}.button.is-block-one-invite{box-shadow:0 0 0 4px rgba(75,202,255,.38),0 8px 22px rgba(23,104,183,.22)}}

/* Recorrido v51: amarillo crema de bajo contraste. */
.course-onboarding.is-pointing:not(.is-nudging) .onboarding-focus-target{animation:onboarding-cream-pulse 1.5s ease-in-out infinite!important}@keyframes onboarding-cream-pulse{50%{box-shadow:0 0 0 8px rgba(255,240,166,.86),0 0 32px 12px rgba(255,240,166,.48),0 0 0 9999px rgba(2,12,29,.22),0 24px 65px rgba(0,0,0,.42)}}
.course-onboarding.is-pointing .onboarding-focus-target{border-color:#fff0a6!important;box-shadow:0 0 0 6px #fff0a6,0 0 24px 8px rgba(255,240,166,.62),0 0 0 9999px rgba(2,12,29,.22),0 24px 65px rgba(0,0,0,.42)!important}.course-onboarding.is-pointing .onboarding-focus-target:after{border-top-color:#fff0a6!important}.course-onboarding.is-pointing.is-nudging .onboarding-focus-target{box-shadow:0 0 0 5px rgba(255,240,166,.78),0 0 18px 5px rgba(255,240,166,.4),0 0 0 9999px rgba(10,31,58,.12),0 18px 45px rgba(0,0,0,.3)!important}.course-onboarding.is-pointing.is-nudging .course-onboarding-card{background:#fffef8!important;border-color:#fff0b8!important;box-shadow:0 0 0 4px rgba(255,240,184,.82),0 0 36px 12px rgba(255,240,184,.3),0 28px 85px rgba(0,0,0,.38)!important}

/* Recorrido v49: jerarquía visual, bloqueo de objetivos y transición de inicio. */
.course-onboarding-shade,.course-onboarding-card,.course-onboarding .onboarding-focus-target{transition:background-color .75s ease,filter .75s ease,box-shadow .75s ease,opacity .75s ease}.course-onboarding.is-nudging .course-onboarding-shade{background:rgba(10,31,58,.66)}.course-onboarding.is-nudging .onboarding-focus-target{filter:brightness(.68) saturate(.82);box-shadow:0 0 0 5px rgba(255,228,91,.72),0 0 18px 5px rgba(255,228,91,.42),0 0 0 9999px rgba(10,31,58,.12),0 18px 45px rgba(0,0,0,.3)!important;animation:none!important}.course-onboarding.is-nudging .course-onboarding-card{background:#fffbe7!important;box-shadow:0 0 0 4px rgba(255,228,91,.95),0 0 42px 14px rgba(255,228,91,.42),0 28px 85px rgba(0,0,0,.4)}.course-onboarding.is-nudging [data-onboarding-next]{animation:onboarding-button-invite 1.05s ease-in-out infinite}@keyframes onboarding-button-invite{50%{transform:translateY(-2px) scale(1.035);box-shadow:0 9px 25px rgba(23,104,183,.36)}}
.course-onboarding.is-pointing .course-onboarding-shade{pointer-events:auto}.course-onboarding .onboarding-focus-target{position:relative!important;pointer-events:none!important;border-color:#ffe45b!important;background:#fff!important;box-shadow:0 0 0 6px #ffe45b,0 0 28px 10px rgba(255,228,91,.82),0 0 0 9999px rgba(2,12,29,.22),0 24px 65px rgba(0,0,0,.42)!important;animation:onboarding-neon-pulse 1.35s ease-in-out infinite!important}.course-onboarding .onboarding-focus-target:after{border-top-color:#ffe45b!important}
.course-onboarding.is-pointing.is-upper{place-items:start center;padding-top:24px;padding-bottom:20px}.course-onboarding.is-pointing.is-upper .course-onboarding-card:before{top:auto;bottom:-18px}.course-onboarding-card{background:#fff!important}.onboarding-focus-target{position:relative!important;pointer-events:none!important;border-color:#ffe45b!important;background:#fff!important;box-shadow:0 0 0 6px #ffe45b,0 0 28px 10px rgba(255,228,91,.82),0 0 0 9999px rgba(2,12,29,.22),0 24px 65px rgba(0,0,0,.42)!important;animation:onboarding-neon-pulse 1.35s ease-in-out infinite!important}.onboarding-focus-target:after{border-top-color:#ffe45b!important}.course-start-transition[hidden]{display:none!important}.course-start-transition{position:fixed;z-index:12000;inset:0;display:grid;place-items:center;background:#fff;opacity:0;transition:opacity .35s ease}.course-start-transition img{display:block;width:min(440px,62vw);max-height:180px;object-fit:contain;opacity:0;transform:scale(.92);transition:opacity .55s ease,transform .75s cubic-bezier(.2,.7,.2,1)}.course-start-transition.is-running{opacity:1}.course-start-transition.is-running img{opacity:1;transform:scale(1)}.course-start-transition.is-fading{opacity:0;transition-duration:1.15s}.course-start-transition.is-fading img{opacity:0;transform:scale(1.035)}@keyframes onboarding-neon-pulse{50%{box-shadow:0 0 0 9px rgba(255,228,91,.96),0 0 42px 16px rgba(255,228,91,.68),0 0 0 9999px rgba(2,12,29,.22),0 24px 65px rgba(0,0,0,.42)}}

/* NutriIAFF: estilos consolidados en la hoja principal para máxima compatibilidad con cPanel. */
.guided-assistant-launcher{position:fixed!important;right:22px!important;bottom:22px!important;z-index:1000!important;display:flex!important;align-items:center!important;gap:10px!important;width:auto!important;max-width:280px!important;min-height:62px!important;padding:7px 17px 7px 7px!important;overflow:hidden!important;border:0!important;border-radius:999px!important;color:#fff!important;background:linear-gradient(115deg,#0d4387,#1768b7)!important;box-shadow:0 16px 35px rgba(12,60,125,.3)!important;font-weight:900!important;cursor:pointer!important}
.guided-assistant-launcher:hover{transform:translateY(-2px)}
.guided-assistant-avatar{display:grid!important;flex:0 0 48px!important;width:48px!important;height:48px!important;place-items:center!important;overflow:hidden!important;border:2px solid rgba(255,255,255,.78)!important;border-radius:50%!important;background:#fff!important;box-shadow:0 5px 14px rgba(5,40,94,.22)!important}
.guided-assistant-avatar img{display:block!important;width:46px!important;height:46px!important;max-width:46px!important;max-height:46px!important;object-fit:cover!important;object-position:center!important}
.guided-assistant-overlay{position:fixed!important;inset:0!important;z-index:1038!important;background:rgba(8,27,55,.38)!important;backdrop-filter:blur(3px)}
.guided-assistant-panel{position:fixed!important;right:22px!important;bottom:22px!important;z-index:1040!important;display:grid!important;grid-template-rows:auto auto minmax(0,1fr)!important;width:min(440px,calc(100vw - 28px))!important;height:auto!important;max-height:min(760px,calc(100vh - 44px))!important;overflow:hidden!important;border:1px solid #d7e4f1!important;border-radius:24px!important;background:#f7faff!important;box-shadow:0 25px 70px rgba(7,32,70,.32)!important}
.guided-assistant-header{display:grid!important;grid-template-columns:54px minmax(0,1fr) 38px!important;align-items:center!important;gap:11px!important;padding:17px!important;color:#fff!important;background:linear-gradient(120deg,#0d3f82,#1768b7)!important}
.guided-assistant-header h2,.guided-assistant-header p{margin:0!important;color:#fff!important}.guided-assistant-header h2{font-size:1.05rem!important}.guided-assistant-header p{margin-top:2px!important;color:rgba(255,255,255,.8)!important;font-size:.7rem!important}
.guided-assistant-close{display:grid!important;width:36px!important;height:36px!important;padding:0!important;place-items:center!important;border:1px solid rgba(255,255,255,.25)!important;border-radius:11px!important;color:#fff!important;background:rgba(255,255,255,.1)!important;font-size:1.2rem!important;cursor:pointer!important}
.guided-assistant-tools{display:grid!important;gap:10px!important;padding:14px 15px!important;border-bottom:1px solid #dde7f1!important;background:#fff!important}
.guided-assistant-search{display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;align-items:center!important;border:1px solid #cedceb!important;border-radius:13px!important;background:#f8fbff!important}.guided-assistant-search span{display:grid!important;place-items:center!important;color:#1768b7!important}.guided-assistant-search input{width:100%!important;min-width:0!important;padding:11px 10px 11px 0!important;border:0!important;outline:0!important;background:transparent!important}
.guided-assistant-categories{display:flex!important;gap:7px!important;overflow-x:auto!important;padding-bottom:2px!important}.guided-assistant-filter{flex:0 0 auto!important;width:auto!important;padding:7px 9px!important;border:1px solid #d8e4f0!important;border-radius:999px!important;color:#51637b!important;background:#fff!important;font-size:.66rem!important;font-weight:850!important;cursor:pointer!important}.guided-assistant-filter.is-active{border-color:#1768b7!important;color:#fff!important;background:#1768b7!important}
.guided-assistant-content{overflow:auto!important;padding:15px!important}.guided-assistant-greeting{display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;align-items:start!important;gap:9px!important;margin-bottom:13px!important}.guided-assistant-greeting .guided-assistant-mascot{display:block!important;width:48px!important;height:58px!important;max-width:48px!important;max-height:58px!important;object-fit:contain!important;filter:drop-shadow(0 5px 6px rgba(18,67,125,.18))}.guided-assistant-greeting p{margin:0!important;padding:10px 12px!important;border-radius:4px 14px 14px 14px!important;color:#45566d!important;background:#eaf3ff!important;font-size:.75rem!important;line-height:1.45!important}
.guided-assistant-results{display:grid!important;gap:8px!important}.guided-answer{overflow:hidden!important;border:1px solid #dce7f2!important;border-radius:14px!important;background:#fff!important}.guided-answer summary{position:relative!important;padding:13px 38px 13px 13px!important;color:#193b68!important;font-size:.78rem!important;font-weight:900!important;line-height:1.35!important;cursor:pointer!important;list-style:none!important}.guided-answer summary::after{position:absolute;right:13px;top:50%;color:#1768b7;content:"+";font-size:1.2rem;transform:translateY(-50%)}.guided-answer[open] summary::after{content:"−"}.guided-answer-body{padding:0 13px 13px!important;border-top:1px solid #edf2f7!important}.guided-answer-body p{margin:11px 0 0!important;color:#53637a!important;font-size:.75rem!important;line-height:1.5!important;white-space:pre-line!important}.guided-answer-source{display:inline-flex!important;margin-top:10px!important;padding:5px 8px!important;border-radius:999px!important;color:#174f8e!important;background:#eaf3ff!important;font-size:.63rem!important;font-weight:850!important}.guided-answer-escalation{margin-top:10px!important;padding:9px 10px!important;border-left:4px solid #c18711!important;border-radius:8px!important;color:#73510e!important;background:#fff8e8!important;font-weight:750!important}
.guided-assistant-empty{padding:20px 14px!important;border:1px dashed #cad8e7!important;border-radius:14px!important;text-align:center!important}.guided-assistant-empty strong,.guided-assistant-empty span{display:block!important}.guided-assistant-panel[hidden],.guided-assistant-overlay[hidden]{display:none!important}
@media(max-width:600px){.guided-assistant-launcher{right:12px!important;bottom:12px!important;min-height:56px!important;padding:5px!important}.guided-assistant-launcher>span:last-child{display:none!important}.guided-assistant-panel{right:0!important;bottom:0!important;width:100%!important;max-height:92vh!important;border-radius:22px 22px 0 0!important}.guided-assistant-overlay{background:rgba(8,27,55,.52)!important}}

/* Página de identidad y acompañamiento */
.nutriaff-profile-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.75fr);align-items:center;min-height:520px;margin-bottom:24px;padding:clamp(30px,5vw,70px);overflow:hidden;border-radius:30px;color:#fff;background:radial-gradient(circle at 82% 20%,rgba(42,182,234,.42),transparent 29%),linear-gradient(128deg,#092d68 0%,#0c58aa 58%,#078a92 100%);box-shadow:0 24px 55px rgba(8,48,104,.2)}
.nutriaff-profile-hero:before{position:absolute;z-index:-1;left:-110px;bottom:-150px;width:390px;height:390px;border:60px solid rgba(255,255,255,.05);border-radius:50%;content:""}.nutriaff-profile-copy{position:relative;z-index:2;max-width:760px}.nutriaff-kicker{display:inline-flex;margin-bottom:15px;padding:7px 11px;border:1px solid rgba(255,255,255,.3);border-radius:999px;color:#bceff0;background:rgba(255,255,255,.08);font-size:.72rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.nutriaff-profile-copy h1{margin:0;color:#fff;font-size:clamp(2.6rem,5vw,5rem);line-height:.98}.nutriaff-profile-copy h1 em{display:block;color:#74dcff;font-style:normal}.nutriaff-profile-copy>p{max-width:680px;margin:22px 0;color:rgba(255,255,255,.85);font-size:clamp(1rem,1.5vw,1.22rem);line-height:1.65}.nutriaff-profile-actions{display:flex;flex-wrap:wrap;gap:10px}.nutriaff-profile-actions .secondary{border-color:rgba(255,255,255,.35);color:#fff;background:rgba(255,255,255,.1)}.nutriaff-profile-character{position:relative;z-index:1;display:grid;justify-items:center;align-self:stretch}.nutriaff-profile-character>img{position:relative;z-index:2;width:min(430px,100%);height:430px;object-fit:cover;object-position:center;border-radius:44% 44% 30% 30%;mix-blend-mode:screen;filter:drop-shadow(0 25px 30px rgba(0,20,65,.35))}.nutriaff-profile-character>p{position:absolute;z-index:3;right:0;bottom:10px;margin:0;padding:13px 18px;border:1px solid rgba(255,255,255,.5);border-radius:18px 18px 4px 18px;color:#123a70;background:rgba(255,255,255,.93);box-shadow:0 12px 30px rgba(0,27,71,.22);line-height:1.35}.nutriaff-orbit{position:absolute;border:1px solid rgba(255,255,255,.18);border-radius:50%}.nutriaff-orbit.one{inset:8% 2% 15%}.nutriaff-orbit.two{inset:19% 14% 27%}
.nutriaff-capabilities,.nutriaff-scope,.nutriaff-howto{margin-bottom:24px;padding:clamp(24px,4vw,44px);border:1px solid #d7e4f1;border-radius:26px;background:#fff;box-shadow:0 12px 30px rgba(16,42,86,.07)}.nutriaff-capabilities>header{text-align:center}.nutriaff-capabilities h2{margin:7px 0 24px}.nutriaff-capability-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.nutriaff-capability-grid article{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;padding:18px;border:1px solid #dce8f3;border-radius:18px;background:linear-gradient(145deg,#fff,#f3f8fd)}.nutriaff-capability-grid article>span{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(145deg,#1768b7,#0d4387);font-size:1.2rem}.nutriaff-capability-grid h3{margin:1px 0 5px;color:#123a70}.nutriaff-capability-grid p{margin:0;color:#617087;font-size:.82rem;line-height:1.5}.nutriaff-scope{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}.nutriaff-scope h2{margin:7px 0 14px}.nutriaff-scope ul{display:grid;gap:9px;margin:0;padding:0;list-style:none}.nutriaff-scope li{position:relative;padding-left:28px;color:#4f6076;line-height:1.5}.nutriaff-scope li:before{position:absolute;left:0;top:1px;display:grid;width:20px;height:20px;place-items:center;border-radius:50%;color:#fff;background:#07877a;content:"✓";font-size:.68rem;font-weight:900}.nutriaff-scope aside{display:grid;grid-template-columns:48px 1fr;gap:15px;padding:22px;border:1px solid #efd293;border-radius:19px;background:#fff9eb}.nutriaff-scope aside>span{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;color:#fff;background:#c18a16;font-size:1.3rem;font-weight:900}.nutriaff-scope aside h2{margin:0 0 7px;color:#714b08}.nutriaff-scope aside p{margin:0;color:#6d6048;line-height:1.6}.nutriaff-howto{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1fr);gap:35px;align-items:center;background:linear-gradient(145deg,#f3f8ff,#edf8f6)}.nutriaff-howto-character{height:310px;overflow:hidden;border-radius:24px;background:#fff}.nutriaff-howto-character img{width:100%;height:100%;object-fit:cover}.nutriaff-howto h2{margin:7px 0 17px}.nutriaff-howto ol{display:grid;gap:10px;margin:0 0 20px;padding:0;list-style:none}.nutriaff-howto li{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:11px;color:#4f6076}.nutriaff-howto li b{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#fff;background:#1768b7}

/* NutriIAFF dentro de cada bloque */
.course-reading-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.38fr);gap:25px;align-items:center}.course-reading-copy{min-width:0}.course-nutriaff{position:relative;display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;min-height:170px;padding:17px;overflow:hidden;border:1px solid #c9dff2;border-radius:20px;background:linear-gradient(145deg,#fff,#eaf4ff);box-shadow:0 12px 26px rgba(16,70,132,.1)}.course-nutriaff:after{position:absolute;right:-35px;top:-55px;width:130px;height:130px;border:22px solid rgba(23,104,183,.07);border-radius:50%;content:""}.course-nutriaff img{position:relative;z-index:1;width:112px;height:140px;object-fit:cover;border-radius:18px;mix-blend-mode:multiply}.course-nutriaff div{position:relative;z-index:1}.course-nutriaff strong{display:block;color:#0d4387;font-size:.9rem}.course-nutriaff p{margin:6px 0 10px;color:#53647b;font-size:.76rem;line-height:1.48}.course-nutriaff button{width:auto;padding:7px 10px;border:0;border-radius:9px;color:#fff;background:#1768b7;font-size:.67rem;font-weight:900;cursor:pointer}
@media(max-width:1050px){.nutriaff-capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-reading-intro{grid-template-columns:1fr}.course-nutriaff{grid-template-columns:92px minmax(0,1fr);min-height:140px}.course-nutriaff img{width:88px;height:108px}}
@media(max-width:760px){.nutriaff-profile-hero{grid-template-columns:1fr;padding-bottom:24px}.nutriaff-profile-character{min-height:340px}.nutriaff-profile-character>img{height:350px}.nutriaff-scope,.nutriaff-howto{grid-template-columns:1fr}.nutriaff-howto-character{height:250px}}
@media(max-width:520px){.nutriaff-profile-hero{padding:25px 20px;border-radius:23px}.nutriaff-profile-copy h1{font-size:2.5rem}.nutriaff-profile-character{min-height:300px}.nutriaff-profile-character>img{height:310px}.nutriaff-profile-character>p{right:auto;bottom:0;font-size:.76rem}.nutriaff-profile-actions{display:grid}.nutriaff-capability-grid{grid-template-columns:1fr}.nutriaff-capabilities,.nutriaff-scope,.nutriaff-howto{padding:20px}.nutriaff-scope aside{grid-template-columns:1fr}.course-nutriaff{grid-template-columns:74px minmax(0,1fr);padding:12px}.course-nutriaff img{width:70px;height:90px}.course-nutriaff button{width:100%}}

/* Bloques v46: la mascota acompaña visualmente sin añadir otra capa de texto. */
.course-reading-intro{grid-template-columns:minmax(0,1fr) 210px}.course-nutriaff-image{position:relative;align-self:stretch;display:grid;min-height:245px;place-items:end center;overflow:hidden;border-radius:22px;background:radial-gradient(circle at 50% 68%,rgba(23,104,183,.11),transparent 43%)}.course-nutriaff-image:before{position:absolute;right:4px;top:4px;width:110px;height:110px;border:18px solid rgba(23,104,183,.06);border-radius:50%;content:""}.course-nutriaff-image img{position:relative;z-index:1;display:block;width:190px;height:235px;max-width:100%;object-fit:cover;object-position:center;border-radius:46% 46% 28% 28%;mix-blend-mode:multiply;filter:drop-shadow(0 14px 16px rgba(12,61,123,.15))}
@media(max-width:1050px){.course-reading-intro{grid-template-columns:minmax(0,1fr) 170px}.course-nutriaff-image{min-height:210px}.course-nutriaff-image img{width:160px;height:200px}}
@media(max-width:700px){.course-reading-intro{grid-template-columns:1fr}.course-nutriaff-image{min-height:175px;place-items:center}.course-nutriaff-image img{width:145px;height:175px}}

/* Bienvenida guiada de primer acceso */
body.is-onboarding{overflow:hidden}.course-onboarding{position:fixed;z-index:11000;inset:0;display:grid;place-items:center;padding:20px}.course-onboarding-shade{position:absolute;inset:0;background:rgba(2,12,29,.84);backdrop-filter:blur(5px)}.course-onboarding-card{position:relative;z-index:11003;display:grid;grid-template-columns:230px minmax(0,1fr);align-items:center;width:min(780px,calc(100vw - 32px));padding:28px;overflow:hidden;border:1px solid rgba(255,255,255,.38);border-radius:28px;background:radial-gradient(circle at 8% 20%,rgba(55,178,229,.16),transparent 28%),#fff;box-shadow:0 35px 100px rgba(0,0,0,.5)}.course-onboarding-card>img{display:block;width:220px;height:270px;object-fit:cover;border-radius:42% 42% 26% 26%;mix-blend-mode:multiply}.course-onboarding-copy{position:relative;z-index:1}.course-onboarding-step{display:inline-flex;padding:6px 10px;border-radius:999px;color:#08766d;background:#e3f5f1;font-size:.7rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.course-onboarding-copy h2{margin:11px 0 8px;color:#123a70;font-size:clamp(1.7rem,4vw,2.6rem)}.course-onboarding-copy p{margin:0 0 20px;color:#53647b;font-size:1rem;line-height:1.65}.course-onboarding-copy .button{min-width:180px}.course-onboarding.is-pointing{place-items:end center;padding-bottom:24px;pointer-events:none}.course-onboarding.is-pointing .course-onboarding-card{grid-template-columns:88px minmax(0,1fr);width:min(680px,calc(100vw - 28px));padding:17px 20px;pointer-events:auto}.course-onboarding.is-pointing .course-onboarding-card:before{position:absolute;left:50%;top:-18px;width:34px;height:34px;transform:translateX(-50%) rotate(45deg);background:#fff;content:""}.course-onboarding.is-pointing .course-onboarding-card>img{width:82px;height:104px}.course-onboarding.is-pointing .course-onboarding-copy h2{margin:6px 0 4px;font-size:1.45rem}.course-onboarding.is-pointing .course-onboarding-copy p{margin-bottom:11px;font-size:.83rem;line-height:1.45}.onboarding-focus-target{z-index:11002!important;overflow:visible!important;transform:scale(1.025);box-shadow:0 0 0 6px #5bc9ff,0 0 0 9999px rgba(2,12,29,.22),0 24px 65px rgba(0,0,0,.42)!important;animation:onboarding-pulse 1.5s ease-in-out infinite}.onboarding-focus-target:after{position:absolute;left:50%;bottom:-24px;width:0;height:0;transform:translateX(-50%);border-right:18px solid transparent;border-top:22px solid #5bc9ff;border-left:18px solid transparent;content:""}@keyframes onboarding-pulse{50%{box-shadow:0 0 0 10px rgba(91,201,255,.72),0 0 0 9999px rgba(2,12,29,.22),0 24px 65px rgba(0,0,0,.42)}}
@media(max-width:650px){.course-onboarding-card{grid-template-columns:1fr;padding:22px;text-align:center}.course-onboarding-card>img{width:150px;height:175px;margin:0 auto}.course-onboarding-copy .button{width:100%}.course-onboarding.is-pointing{padding:12px}.course-onboarding.is-pointing .course-onboarding-card{grid-template-columns:62px minmax(0,1fr);padding:12px;text-align:left}.course-onboarding.is-pointing .course-onboarding-card>img{width:58px;height:76px}.course-onboarding.is-pointing .course-onboarding-copy h2{font-size:1.1rem}.course-onboarding.is-pointing .course-onboarding-copy p{font-size:.74rem}.course-onboarding.is-pointing .course-onboarding-step{font-size:.58rem}}@media(prefers-reduced-motion:reduce){.onboarding-focus-target{animation:none}}

:root {
    --bg: #f5f7fb;
    --surface: #ffffff;
    --surface-2: #eef4ff;
    --ink: #172033;
    --muted: #657083;
    --line: #dbe3ef;
    --blue: #1957a6;
    --blue-2: #0f3d78;
    --green: #0f766e;
    --gold: #9a6a00;
    --red: #b42318;
    --shadow: 0 16px 42px rgba(20, 44, 84, .10);
    --radius: 8px;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--bg);
    color: var(--ink);
}

a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }

.topbar {
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    min-height: 72px;
    padding: 12px clamp(18px, 4vw, 48px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    position: sticky;
    top: 0;
    z-index: 5;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--ink);
}

.brand:hover { text-decoration: none; }

.brand-mark {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--blue);
    color: #fff;
    font-weight: 800;
}

.brand small {
    display: block;
    color: var(--muted);
    font-size: .78rem;
    margin-top: 2px;
}

.nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.nav a,
.button,
button {
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink);
    border-radius: var(--radius);
    padding: 10px 14px;
    font-weight: 700;
    cursor: pointer;
}

.nav a {
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.nav a:hover {
    transform: translateY(-1px);
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(20, 44, 84, .10);
}

.nav .nav-course {
    background: #eef4ff;
    border-color: #cde4ff;
    color: #0f3d78;
}

.nav .nav-profile {
    background: #ecfdf7;
    border-color: #b7ead8;
    color: #075f57;
}

.nav .nav-facilitation {
    background: #f4f7ff;
    border-color: #cbd9f3;
    color: #174f8f;
}

.nav .nav-admin {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #9a4a00;
}

.nav .nav-sessions {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #5b21b6;
}

.nav .nav-participants {
    background: #f0f9ff;
    border-color: #bae6fd;
    color: #075985;
}

.nav .nav-materials {
    background: #fefce8;
    border-color: #fde68a;
    color: #854d0e;
}

.nav .nav-grades {
    background: #fdf2f8;
    border-color: #fbcfe8;
    color: #9d174d;
}

.nav .nav-logout {
    background: #fff1f0;
    border-color: #f3b3ad;
    color: #9a1c12;
}

.button.primary,
button.primary {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff;
}

.button.success,
button.success {
    background: var(--green);
    border-color: var(--green);
    color: #fff;
}

.button.ghost {
    background: transparent;
}

.page {
    width: min(1180px, calc(100% - 28px));
    margin: 28px auto 40px;
}

.site-footer {
    width: 100%;
    margin: 48px 0 0;
    border-top: 0;
    padding: 0 14px 34px;
    color: var(--muted);
    font-size: .92rem;
    text-align: center;
}

.site-footer::before {
    content: "";
    display: block;
    width: min(520px, calc(100% - 48px));
    height: 4px;
    margin: 0 auto 18px;
    border-radius: 999px;
    background: linear-gradient(90deg, #123c72, #1957a6, #0f766e);
}

.site-footer p {
    width: min(760px, 100%);
    margin: 0 auto;
    line-height: 1.5;
    font-weight: 700;
    padding: 0 12px;
}

.hero {
    background: linear-gradient(135deg, #123c72, #1957a6 58%, #0f766e);
    color: #fff;
    border-radius: var(--radius);
    padding: clamp(24px, 4vw, 42px);
    box-shadow: var(--shadow);
    margin-bottom: 24px;
}

.hero-dashboard {
    position: relative;
    overflow: hidden;
    min-height: 330px;
    display: flex;
    align-items: center;
    background:
        linear-gradient(90deg, rgba(18, 48, 94, .96) 0%, rgba(20, 64, 122, .90) 42%, rgba(20, 64, 122, .58) 68%, rgba(15, 118, 110, .42) 100%);
}

.hero-copy {
    width: min(840px, 68%);
    position: relative;
    z-index: 2;
}

.hero-art {
    position: absolute;
    inset: 0 0 0 auto;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center right;
    z-index: 1;
    opacity: .86;
    mix-blend-mode: screen;
    pointer-events: none;
}

.hero-dashboard::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(18, 48, 94, .98) 0%, rgba(18, 48, 94, .85) 43%, rgba(18, 48, 94, .20) 78%, rgba(18, 48, 94, .05) 100%);
    pointer-events: none;
}

.hero h1 {
    margin: 0 0 10px;
    font-size: clamp(1.8rem, 4vw, 3rem);
    line-height: 1.05;
    letter-spacing: 0;
}

.hero p {
    max-width: 820px;
    color: rgba(255,255,255,.9);
    line-height: 1.65;
    margin: 0;
}

.compact-hero {
    min-height: 0;
    padding: 28px;
}

.admin-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.search-form {
    flex: 1;
}

.search-row {
    display: flex;
    gap: 8px;
}

.toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.toolbar-side {
    flex: 0 0 auto;
    padding-top: 29px;
}

.participants-search {
    display: block;
    margin-bottom: 22px;
}

.participant-create-card {
    margin-bottom: 18px;
}

.participant-merge-card {
    border-color: #bfdbfe;
    margin-bottom: 18px;
}

.participant-merge-form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto;
    gap: 14px;
    align-items: end;
}

.participant-merge-form label {
    display: block;
    margin-bottom: 8px;
}

.participant-merge-form input {
    width: 100%;
}

.participant-merge-form .merge-button {
    min-height: 46px;
    background: #7c3aed;
}

.participant-create-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.participants-search-grid {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(150px, .45fr) minmax(160px, .5fr) auto auto auto;
    gap: 10px;
    align-items: center;
}

.participants-search-grid .button,
.participants-search-grid button {
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 16px;
}

.page-actions {
    display: flex;
    justify-content: flex-start;
    margin-bottom: 14px;
}

.back-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.back-button span {
    font-size: 1.15rem;
    line-height: 1;
}

.card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 8px 22px rgba(20, 44, 84, .06);
    padding: 18px;
}

.span-4 { grid-column: span 4; }
.span-5 { grid-column: span 5; }
.span-6 { grid-column: span 6; }
.span-7 { grid-column: span 7; }
.span-8 { grid-column: span 8; }
.span-12 { grid-column: span 12; }

.card h2,
.card h3 {
    margin-top: 0;
    letter-spacing: 0;
}

.muted { color: var(--muted); }
.status { font-weight: 800; }
.status.pending { color: var(--gold); }
.status.graded { color: var(--green); }
.status.missing { color: var(--red); }

.instructor-card {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

.instructor-icon {
    width: 54px;
    height: 54px;
    border-radius: 8px;
    border: 1px solid #cde4ff;
    background: linear-gradient(135deg, #eef6ff, #ffffff);
    display: grid;
    place-items: center;
    box-shadow: 0 10px 22px rgba(25, 87, 166, .10);
}

.instructor-icon span {
    width: 28px;
    height: 34px;
    border: 3px solid var(--blue);
    border-radius: 6px;
    position: relative;
    display: block;
    background: #fff;
}

.instructor-icon span::before,
.instructor-icon span::after {
    content: "";
    position: absolute;
    left: 5px;
    right: 5px;
    height: 3px;
    border-radius: 999px;
    background: var(--green);
}

.instructor-icon span::before { top: 8px; }
.instructor-icon span::after { top: 18px; }

.sessions {
    display: grid;
    gap: 14px;
}

.session-row {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.session-row.is-locked {
    background: #f8fafc;
    opacity: .78;
}

.session-row.is-locked .session-num {
    background: #e5e7eb;
    color: #64748b;
}

.session-num {
    width: 52px;
    height: 52px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    background: var(--surface-2);
    color: var(--blue-2);
    font-weight: 900;
}

.session-row h3 {
    margin: 0 0 4px;
    font-size: 1.05rem;
}

.session-row p {
    margin: 0;
    color: var(--muted);
    line-height: 1.45;
}

.session-availability {
    display: inline-flex;
    margin-top: 10px !important;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 900;
    font-size: .86rem;
}

.session-availability.open {
    background: #dcfce7;
    color: #166534;
}

.session-availability.locked {
    background: #e2e8f0;
    color: #475569;
}

.button.disabled {
    cursor: not-allowed;
    color: #64748b;
    background: #e2e8f0;
    border-color: #cbd5e1;
}

.material-list {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.material {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 16px;
    background: #fff;
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.material-icon {
    width: 64px;
    height: 64px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    font-size: .82rem;
    font-weight: 900;
    color: #fff;
    letter-spacing: 0;
    box-shadow: 0 10px 20px rgba(15, 23, 42, .14);
}

.material-icon.pdf { background: #c81e1e; }
.material-icon.word { background: #185abd; }
.material-icon.excel { background: #107c41; }
.material-icon.powerpoint { background: #c43e1c; }
.material-icon.youtube { background: #ff0033; font-size: 1.35rem; }
.material-icon.web { background: #1957a6; font-size: 1.15rem; }
.material-icon.image { background: #7c3aed; }
.material-icon.file { background: #475569; }

.material strong {
    display: block;
    font-size: 1.05rem;
    line-height: 1.25;
    margin-bottom: 6px;
}

.material-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.inline-form {
    display: grid;
    gap: 10px;
}

.danger {
    border-color: #f3b3ad;
    color: var(--red);
}

.meet-card {
    margin-top: 18px;
    border: 1px solid #cde4ff;
    background: linear-gradient(135deg, #f5fbff, #ffffff);
    border-radius: var(--radius);
    padding: 16px;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
}

.recording-card {
    margin-top: 12px;
    border: 1px solid #ffd0d0;
    background: linear-gradient(135deg, #fff5f5, #ffffff);
    border-radius: var(--radius);
    padding: 16px;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
}

.recording-card h3 {
    margin: 0 0 6px;
}

.recording-icon {
    width: 58px;
    height: 44px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: #dc2626;
    color: #fff;
    font-weight: 900;
    box-shadow: 0 10px 20px rgba(220, 38, 38, .18);
}

.recording-icon span,
.recording-status span {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: currentColor;
    display: inline-block;
}

.recording-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    padding: 7px 11px;
    border-radius: 999px;
    background: #fee2e2;
    color: #b91c1c;
    font-weight: 900;
}

.pre-session-card {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    background: linear-gradient(135deg, #fff7f7, #ffffff 58%, #f5fbff);
    border-color: #ffd0d0;
}

.pre-session-icon {
    width: 76px;
    height: 76px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    background: #fff;
    border: 1px solid #ffd0d0;
    box-shadow: 0 12px 26px rgba(220, 38, 38, .10);
}

.pre-session-content h2 {
    margin: 0 0 8px;
}

.pre-session-content .muted {
    margin: 0 0 12px;
    line-height: 1.55;
}

.pre-session-label {
    margin: 0 0 6px;
    color: #b91c1c;
    font-size: .9rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0;
}

.pre-session-action {
    display: flex;
    justify-content: flex-end;
}

.evaluation-card {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    background: linear-gradient(135deg, #ffffff, #f3fbf9);
    border-color: #b7ead8;
}

.evaluation-card.is-complete {
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    border-color: #cde4ff;
}

.evaluation-icon {
    width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #f5a623;
    box-shadow: 0 12px 28px rgba(154, 106, 0, .12);
}

.evaluation-icon span {
    font-size: 2rem;
    line-height: 1;
}

.evaluation-label {
    margin: 0 0 5px;
    color: #0f766e;
    font-size: .84rem;
    font-weight: 900;
    text-transform: uppercase;
}

.evaluation-content h2 {
    margin-top: 0;
}

.evaluation-time {
    display: inline-flex;
    width: max-content;
    margin: 4px 0 0;
    padding: 7px 10px;
    border-radius: 999px;
    background: #e8f7f5;
    color: #075f57;
    font-size: .84rem;
    font-weight: 900;
}

.evaluation-action {
    display: flex;
    justify-content: flex-end;
}

.certificate-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: linear-gradient(135deg, #ffffff, #f5fbff);
}

.certificate-icon {
    width: 76px;
    height: 76px;
    border-radius: 18px;
    background: linear-gradient(135deg, #eaf4ff, #ffffff);
    border: 1px solid #cde4ff;
    display: grid;
    place-items: center;
    position: relative;
    flex: 0 0 auto;
    box-shadow: 0 12px 28px rgba(25, 87, 166, .12);
}

.certificate-paper {
    width: 42px;
    height: 52px;
    border-radius: 6px;
    background: #fff;
    border: 3px solid #1957a6;
    position: relative;
}

.certificate-paper::before,
.certificate-paper::after {
    content: "";
    position: absolute;
    left: 8px;
    right: 8px;
    height: 3px;
    border-radius: 999px;
    background: #9db7d9;
}

.certificate-paper::before { top: 13px; }
.certificate-paper::after { top: 23px; }

.certificate-seal {
    position: absolute;
    right: 14px;
    bottom: 12px;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #fbbc04;
    border: 3px solid #fff;
    box-shadow: 0 5px 12px rgba(154, 106, 0, .25);
}

.certificate-seal::before,
.certificate-seal::after {
    content: "";
    position: absolute;
    bottom: -13px;
    width: 8px;
    height: 16px;
    background: #dc2626;
}

.certificate-seal::before {
    left: 4px;
    transform: rotate(14deg);
}

.certificate-seal::after {
    right: 4px;
    transform: rotate(-14deg);
}

.toggle-row {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
}

.toggle-row input {
    width: auto;
}

.clean-list {
    margin: 0;
    padding-left: 20px;
    line-height: 1.7;
}

.instructor-profile p {
    line-height: 1.55;
}

.instructor-profile .card {
    min-width: 0;
}

.meet-card h3 {
    margin: 0 0 6px;
}

.meet-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--muted);
    margin: 0 0 12px;
}

.meet-pill {
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 10px;
    background: #fff;
    font-weight: 700;
}

.meet-logo {
    width: 58px;
    height: 44px;
    position: relative;
    display: block;
}

.meet-camera {
    position: absolute;
    left: 0;
    top: 5px;
    width: 42px;
    height: 34px;
    border-radius: 9px;
    background:
        linear-gradient(90deg, #34a853 0 34%, #fbbc04 34% 66%, #4285f4 66% 100%);
}

.meet-camera::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 17px;
    height: 17px;
    border-radius: 9px 0 0 0;
    background: #ea4335;
}

.meet-camera::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 17px;
    height: 17px;
    border-radius: 0 0 0 9px;
    background: #34a853;
}

.meet-fold {
    position: absolute;
    right: 0;
    top: 12px;
    width: 22px;
    height: 20px;
    background: #4285f4;
    clip-path: polygon(0 20%, 100% 0, 100% 100%, 0 80%);
}

.form {
    display: grid;
    gap: 14px;
}

label {
    font-weight: 800;
    display: block;
    margin-bottom: 6px;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 11px 12px;
    font: inherit;
    background: #fff;
}

textarea { min-height: 120px; resize: vertical; }

.alert {
    border-radius: var(--radius);
    padding: 12px 14px;
    margin-bottom: 16px;
    border: 1px solid var(--line);
    background: #fff;
}

.alert.ok { border-color: #99d8c9; background: #ecfdf7; color: #075f57; }
.alert.error { border-color: #f3b3ad; background: #fff1f0; color: #9a1c12; }

.table-wrap { overflow-x: auto; }

table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

th,
td {
    border-bottom: 1px solid var(--line);
    padding: 12px;
    text-align: left;
    vertical-align: top;
}

th {
    background: var(--surface-2);
    color: var(--blue-2);
    font-size: .88rem;
}

.row-number {
    width: 70px;
    text-align: center;
    font-weight: 900;
    color: var(--blue-2);
}

.login-shell {
    min-height: calc(100vh - 72px);
    display: grid;
    place-items: center;
}

.login-card {
    width: min(460px, 100%);
}

.login-card h1 {
    margin-top: 0;
    line-height: 1.1;
}

.login-logo-iiaff {
    width: min(330px, 100%);
    height: 92px;
    margin: 0 auto 20px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.login-logo-iiaff img {
    width: 545px;
    max-width: none;
    height: auto;
    display: block;
}

.login-collab {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
    text-align: center;
    color: var(--muted);
    font-weight: 800;
}

.login-collab strong {
    color: var(--blue-2);
}

.rubric {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.summary-rubric {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grades-rubric {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.metric {
    background: var(--surface-2);
    border-radius: var(--radius);
    padding: 14px;
}

.metric-link {
    display: block;
    color: inherit;
    text-decoration: none;
    border: 1px solid transparent;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.metric-link:hover {
    transform: translateY(-2px);
    border-color: #a9c2e7;
    box-shadow: 0 8px 18px rgba(20, 44, 84, .10);
}

.metric strong {
    display: block;
    font-size: 1.8rem;
    color: var(--blue-2);
}

.profile-summary {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    margin-bottom: 14px;
}

.profile-summary > img,
.profile-summary > span,
.profile-photo-preview img,
.profile-photo-preview span {
    width: 58px;
    height: 58px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    object-fit: cover;
    background: var(--surface-2);
    color: var(--blue-2);
    font-weight: 900;
    font-size: 1.35rem;
    border: 2px solid #cde4ff;
}

.profile-summary h2 {
    margin: 0 0 4px;
}

.profile-summary p {
    margin: 0;
}

.profile-card {
    text-align: center;
}

.profile-photo-preview {
    display: grid;
    place-items: center;
    margin-bottom: 14px;
}

.profile-photo-preview img,
.profile-photo-preview span {
    width: 132px;
    height: 132px;
    font-size: 3rem;
    margin: 0 auto;
}

.two-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.session-admin-list {
    display: grid;
    gap: 12px;
}

.session-admin-item {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    padding: 12px;
}

.session-admin-item summary {
    cursor: pointer;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    list-style: none;
}

.session-admin-item summary::-webkit-details-marker {
    display: none;
}

.session-admin-item summary strong,
.session-admin-item summary small {
    display: block;
}

.session-admin-item summary small {
    margin-top: 3px;
    color: var(--muted);
    line-height: 1.35;
}

.session-edit-form {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.participant-profile-row td {
    background: #fbfdff;
    padding-top: 0;
}

.participant-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.access-button {
    background: #e8f7f5;
    border-color: #99d8c9;
    color: #075f57;
}

.access-button:hover {
    background: #d5f1ed;
    text-decoration: none;
}

.report-detail-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 128px;
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid #a7f3d0;
    border-radius: 8px;
    background: linear-gradient(135deg, #ecfdf5 0%, #e0f2fe 100%);
    color: #075f57;
    font-size: .9rem;
    font-weight: 900;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 8px 18px rgba(15, 118, 110, .10);
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}

.report-detail-button span {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background:
        radial-gradient(circle at 50% 38%, #075f57 0 3px, transparent 4px),
        radial-gradient(circle at 50% 76%, #075f57 0 6px, transparent 7px),
        #ccfbf1;
    border: 1px solid #5eead4;
    flex: 0 0 auto;
}

.report-detail-button:hover {
    transform: translateY(-1px);
    border-color: #5eead4;
    background: linear-gradient(135deg, #d1fae5 0%, #dbeafe 100%);
    box-shadow: 0 12px 24px rgba(15, 118, 110, .16);
    text-decoration: none;
}

.report-detail-button:focus-visible {
    outline: 3px solid rgba(20, 83, 45, .22);
    outline-offset: 2px;
}

.profile-toggle {
    background: #0f766e;
    border-color: #0f766e;
    color: #fff;
}

.profile-toggle:hover {
    text-decoration: none;
    background: #0b5f59;
}

.participant-profile-panel {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    padding: 10px;
}

.participant-profile-panel summary {
    display: none;
    width: max-content;
    list-style: none;
}

.participant-profile-panel summary::-webkit-details-marker {
    display: none;
}

.participant-profile-form {
    margin-top: 14px;
    border-top: 1px solid var(--line);
    padding-top: 14px;
}

.participant-profile-grid {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.participant-access-summary td {
    padding-top: 6px;
    padding-bottom: 10px;
    background: #f8fbff;
    color: var(--muted);
    font-size: .86rem;
}

.participant-access-summary span {
    display: inline-block;
    margin-right: 20px;
}

.access-rubric,
.access-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.access-rubric {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.student-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.student-check-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    box-shadow: 0 10px 28px rgba(20, 44, 84, .06);
}

.student-check-card.is-complete {
    border-color: #b7ead8;
    background: #f3fbf9;
}

.student-check-card.is-pending {
    border-color: #fed7aa;
    background: #fffaf4;
}

.student-check-card h3 {
    margin: 2px 0 6px;
}

.student-check-card p {
    margin-top: 0;
}

.student-check-icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 999px;
    font-weight: 900;
}

.student-check-card.is-complete .student-check-icon {
    background: #ecfdf7;
    color: #075f57;
}

.student-check-card.is-pending .student-check-icon {
    background: #fff7ed;
    color: #9a4a00;
}

.student-evaluation-details {
    margin-top: 12px;
}

.student-evaluation-details summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 13px;
    border: 1px solid #99d8c9;
    border-radius: var(--radius);
    background: #e8f7f5;
    color: #075f57;
    font-weight: 900;
    cursor: pointer;
    list-style: none;
}

.student-evaluation-details summary::-webkit-details-marker {
    display: none;
}

.student-evaluation-details[open] summary {
    margin-bottom: 12px;
}

.student-evaluation-results {
    margin-top: 0;
}

.student-evaluation-comment {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}

.student-evaluation-comment p {
    margin: 6px 0 0;
    color: var(--muted);
}

.access-metrics {
    margin-bottom: 18px;
}

.warning-metric {
    background: #fff7ed;
}

.warning-metric strong {
    color: #9a4a00;
}

.suspended-metric {
    background: #fff1f0;
}

.suspended-metric strong {
    color: #9a1c12;
}

.inactive-metric {
    background: #f3f0ff;
}

.inactive-metric strong {
    color: #563d7c;
}

.inactive-overview-card {
    margin-bottom: 18px;
}

.inactive-overview-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.inactive-overview-grid .metric span,
.inactive-overview-grid .metric small {
    display: block;
}

.inactive-overview-grid .metric {
    position: relative;
    min-height: 172px;
    padding: 18px;
    padding-top: 74px;
}

.inactive-card-icon {
    align-items: center;
    border-radius: 18px;
    display: inline-flex !important;
    font-weight: 900;
    height: 52px;
    justify-content: center;
    line-height: 1;
    overflow: hidden;
    position: absolute;
    right: 18px;
    top: 18px;
    width: 52px;
}

.inactive-card-icon::before,
.inactive-card-icon::after {
    content: "";
    position: absolute;
}

.icon-meet::before {
    border: 4px solid currentColor;
    border-radius: 8px;
    height: 22px;
    left: 11px;
    top: 15px;
    width: 25px;
}

.icon-meet::after {
    border-bottom: 9px solid transparent;
    border-left: 13px solid currentColor;
    border-top: 9px solid transparent;
    right: 9px;
    top: 17px;
}

.icon-project::before {
    border: 4px solid currentColor;
    border-radius: 7px;
    height: 30px;
    left: 15px;
    top: 11px;
    width: 23px;
}

.icon-project::after {
    background: currentColor;
    box-shadow: 0 8px 0 currentColor, 0 16px 0 currentColor;
    height: 3px;
    left: 21px;
    top: 20px;
    width: 14px;
}

.icon-alert::before {
    border-bottom: 33px solid currentColor;
    border-left: 19px solid transparent;
    border-right: 19px solid transparent;
    left: 7px;
    top: 8px;
}

.icon-alert::after {
    background: #fff;
    border-radius: 999px;
    box-shadow: 0 16px 0 #fff;
    height: 12px;
    left: 25px;
    top: 20px;
    width: 4px;
}

.icon-users::before {
    background: currentColor;
    border-radius: 50%;
    box-shadow: -13px 9px 0 -2px currentColor, 13px 9px 0 -2px currentColor;
    height: 15px;
    left: 18px;
    top: 10px;
    width: 15px;
}

.icon-users::after {
    background: currentColor;
    border-radius: 18px 18px 10px 10px;
    height: 18px;
    left: 12px;
    top: 29px;
    width: 29px;
}

.icon-certificate::before {
    border: 4px solid currentColor;
    border-radius: 7px;
    height: 28px;
    left: 10px;
    top: 9px;
    width: 32px;
}

.icon-certificate::after {
    background: currentColor;
    border-radius: 50%;
    box-shadow: 0 10px 0 -2px currentColor;
    height: 12px;
    left: 20px;
    top: 29px;
    width: 12px;
}

.inactive-overview-grid .metric span {
    font-weight: 800;
    margin-top: 2px;
}

.inactive-overview-grid .metric small {
    color: var(--muted);
    line-height: 1.35;
    margin-top: 8px;
}

.inactive-meet-metric {
    background: #eef6ff;
}

.inactive-meet-metric .inactive-card-icon {
    background: #dbeafe;
    color: #0f4c81;
}

.inactive-meet-metric strong {
    color: #0f4c81;
}

.inactive-project-metric {
    background: #fff7ed;
}

.inactive-project-metric .inactive-card-icon {
    background: #ffedd5;
    color: #9a4a00;
}

.inactive-project-metric strong {
    color: #9a4a00;
}

.inactive-critical-metric {
    background: #fff1f0;
}

.inactive-critical-metric .inactive-card-icon {
    background: #fee2e2;
    color: #9a1c12;
}

.inactive-critical-metric strong {
    color: #9a1c12;
}

.inactive-issued-metric {
    background: #ecfdf5;
}

.inactive-issued-metric .inactive-card-icon {
    background: #d1fae5;
    color: #047857;
}

.inactive-issued-metric strong {
    color: #047857;
}

.inactive-panel-link:not(.inactive-meet-metric):not(.inactive-project-metric):not(.inactive-critical-metric) .inactive-card-icon {
    background: #dbeafe;
    color: var(--blue-2);
}

.inactive-panel-link.is-active {
    border-color: var(--blue-2);
    box-shadow: 0 0 0 3px rgba(43, 91, 178, .14);
}

.inactive-report-search {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    gap: 10px;
    align-items: center;
}

.course-report-card {
    border-color: #cfe3f7;
    margin-bottom: 18px;
}

.course-report-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
    margin-bottom: 18px;
}

.course-report-meta div {
    background: #f8fbff;
    border: 1px solid #d7e6f6;
    border-left: 5px solid var(--green);
    border-radius: var(--radius);
    padding: 13px 15px;
}

.course-report-meta span,
.course-report-meta strong {
    display: block;
}

.course-report-meta span {
    color: var(--muted);
    font-size: .86rem;
    font-weight: 900;
    text-transform: uppercase;
}

.course-report-meta strong {
    color: var(--ink);
    margin-top: 5px;
}

.course-report-brief {
    align-items: start;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 48%, #ecfdf5 100%);
    border: 1px solid #cfe3f7;
    border-radius: 18px;
    display: grid;
    gap: 18px;
    grid-template-columns: 72px minmax(0, 1fr);
    margin-bottom: 18px;
    padding: 20px;
}

.course-report-brief h3 {
    margin: 0 0 8px;
}

.course-report-brief p {
    color: #41506a;
    line-height: 1.6;
    margin: 8px 0 0;
}

.course-report-brief strong {
    color: var(--blue-2);
}

.course-report-brief-icon {
    background: #fff;
    border: 1px solid #b7d3f2;
    border-radius: 22px;
    box-shadow: 0 12px 24px rgba(20, 72, 130, .12);
    height: 72px;
    position: relative;
    width: 72px;
}

.course-report-brief-icon::before {
    background: var(--blue-2);
    border-radius: 7px;
    box-shadow: 0 14px 0 #0f766e, 0 28px 0 #d99a18;
    content: "";
    height: 8px;
    left: 18px;
    position: absolute;
    top: 20px;
    width: 36px;
}

.course-report-brief-icon::after {
    border: 4px solid var(--blue-2);
    border-left: 0;
    border-top: 0;
    content: "";
    height: 20px;
    position: absolute;
    right: 16px;
    top: 34px;
    transform: rotate(45deg);
    width: 11px;
}

.course-report-period,
.course-report-grid,
.course-report-evaluation {
    display: grid;
    gap: 12px;
}

.course-report-period {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 18px;
}

.course-report-period div,
.course-report-grid article,
.course-report-evaluation article {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #f8fbff;
    padding: 15px;
}

.course-report-grid article {
    min-height: 150px;
    padding: 18px;
    position: relative;
}

.course-report-period span,
.course-report-grid span,
.course-report-evaluation span {
    color: var(--muted);
    display: block;
    font-weight: 800;
    margin-top: 4px;
}

.course-report-period strong,
.course-report-grid strong,
.course-report-evaluation strong {
    color: var(--blue-2);
    display: block;
    font-size: 1.7rem;
}

.course-report-grid small {
    color: var(--muted);
    display: block;
    font-weight: 800;
    line-height: 1.35;
    margin-top: 10px;
}

.report-kpi i {
    align-items: center;
    border-radius: 16px;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    margin-bottom: 12px;
    position: relative;
    width: 42px;
}

.report-kpi i::before,
.report-kpi i::after {
    content: "";
    position: absolute;
}

.kpi-total { background: #eef6ff !important; border-color: #b7d3f2 !important; }
.kpi-certificate { background: #ecfdf5 !important; border-color: #a7f3d0 !important; }
.kpi-project { background: #fff7ed !important; border-color: #fed7aa !important; }
.kpi-success { background: #eefcfb !important; border-color: #99f6e4 !important; }
.kpi-engaged { background: #f0f9ff !important; border-color: #bae6fd !important; }
.kpi-partial { background: #f5f3ff !important; border-color: #ddd6fe !important; }
.kpi-warning { background: #fffbeb !important; border-color: #fde68a !important; }
.kpi-risk { background: #fff1f0 !important; border-color: #fecaca !important; }

.kpi-total i,
.kpi-engaged i { background: #dbeafe; color: #0f4c81; }
.kpi-certificate i,
.kpi-success i { background: #d1fae5; color: #047857; }
.kpi-project i,
.kpi-warning i { background: #ffedd5; color: #9a4a00; }
.kpi-partial i { background: #ede9fe; color: #5b21b6; }
.kpi-risk i { background: #fee2e2; color: #9a1c12; }

.kpi-total i::before,
.kpi-engaged i::before,
.kpi-partial i::before {
    background: currentColor;
    border-radius: 50%;
    box-shadow: -9px 7px 0 -2px currentColor, 9px 7px 0 -2px currentColor;
    height: 12px;
    left: 15px;
    top: 8px;
    width: 12px;
}

.kpi-total i::after,
.kpi-engaged i::after,
.kpi-partial i::after {
    background: currentColor;
    border-radius: 14px 14px 8px 8px;
    height: 14px;
    left: 11px;
    top: 24px;
    width: 21px;
}

.kpi-certificate i::before,
.kpi-project i::before {
    border: 3px solid currentColor;
    border-radius: 6px;
    height: 25px;
    left: 10px;
    top: 8px;
    width: 22px;
}

.kpi-certificate i::after {
    background: currentColor;
    border-radius: 50%;
    height: 10px;
    left: 16px;
    top: 25px;
    width: 10px;
}

.kpi-project i::after,
.kpi-warning i::after {
    background: currentColor;
    box-shadow: 0 7px 0 currentColor, 0 14px 0 currentColor;
    height: 3px;
    left: 16px;
    top: 16px;
    width: 11px;
}

.kpi-success i::before {
    border: 4px solid currentColor;
    border-left: 0;
    border-top: 0;
    height: 20px;
    left: 15px;
    top: 7px;
    transform: rotate(45deg);
    width: 10px;
}

.kpi-warning i::before {
    border: 3px solid currentColor;
    border-radius: 6px;
    height: 25px;
    left: 10px;
    top: 8px;
    width: 22px;
}

.kpi-risk i::before {
    border-bottom: 28px solid currentColor;
    border-left: 16px solid transparent;
    border-right: 16px solid transparent;
    left: 5px;
    top: 7px;
}

.kpi-risk i::after {
    background: #fff;
    border-radius: 99px;
    box-shadow: 0 12px 0 #fff;
    height: 10px;
    left: 19px;
    top: 17px;
    width: 4px;
}

.course-report-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.course-report-section {
    margin-top: 22px;
}

.course-report-section h3,
.course-report-section h4 {
    margin-bottom: 10px;
}

.course-report-evaluation {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.course-report-two-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .8fr);
    gap: 18px;
    margin-top: 18px;
}

.course-topic-list {
    display: grid;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.course-topic-list li {
    align-items: center;
    background: #f4f8fd;
    border-radius: 999px;
    display: flex;
    gap: 10px;
    padding: 8px 12px;
}

.course-topic-list strong {
    color: var(--green);
}

.course-comment-preview {
    margin-top: 18px;
}

.course-comment-preview blockquote {
    border-left: 4px solid var(--green);
    margin: 0 0 10px;
    padding: 12px 14px;
    background: #f8fbff;
    border-radius: 0 var(--radius) var(--radius) 0;
}

.course-comment-preview cite {
    color: var(--muted);
    display: block;
    font-style: normal;
    font-weight: 800;
    margin-top: 8px;
}

.no-activity-badge {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    background: #f3f0ff;
    color: #563d7c;
    font-size: .8rem;
    font-weight: 900;
}

.activity-badge {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    background: #e6f8f0;
    color: #0f766e;
    font-size: .8rem;
    font-weight: 900;
}

.certificate-folio {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a4a00;
    font-size: .8rem;
    font-weight: 900;
}

.certificate-progress-list {
    display: grid;
    gap: 12px;
}

.certificate-search-form {
    display: grid;
    gap: 8px;
    margin-bottom: 18px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #f8fbff;
}

.certificate-search-form > div {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto auto;
    gap: 10px;
    align-items: center;
}

.certificate-progress-item {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #f8fbff;
}

.certificate-progress-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 10px;
}

.certificate-progress-heading div > strong,
.certificate-progress-heading div > span {
    display: block;
}

.certificate-progress-heading div > span {
    color: var(--muted);
    margin-top: 3px;
    font-size: .88rem;
}

.certificate-progress-heading > strong {
    color: var(--blue-2);
    font-size: 1.25rem;
}

.certificate-requirements {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
}

.certificate-requirements span {
    padding: 5px 9px;
    border-radius: 999px;
    background: #eef1f5;
    color: #667085;
    font-size: .76rem;
    font-weight: 900;
}

.certificate-requirements .is-complete {
    background: #ecfdf7;
    color: #075f57;
}

.certificate-requirements .certificate-ready {
    background: #e7f1ff;
    color: #0f3d78;
}

.certificate-requirements .certificate-folio {
    background: #fff7ed;
    color: #9a4a00;
}

.revoke-evaluation-form {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.certificate-release-form {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.certificate-release-note {
    margin: 12px 0 0;
    color: #075f57;
    font-weight: 800;
    text-align: right;
}

.danger-button {
    border-color: #f3b3ad;
    background: #fff1f0;
    color: var(--red);
}

.danger-button:hover {
    background: #ffe4e0;
}

.student-status {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.student-status.is-active {
    background: #ecfdf7;
    color: #075f57;
}

.student-status.is-pending {
    background: #fff7ed;
    color: #9a4a00;
}

.survey-card {
    max-width: 980px;
    margin: 0 auto;
}

.survey-form {
    display: grid;
    gap: 16px;
}

.survey-question {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    margin: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fbfdff;
}

.survey-question legend {
    display: flex;
    gap: 10px;
    float: left;
    width: 100%;
    color: var(--ink);
    font-weight: 800;
}

.survey-question legend span {
    flex: 0 0 auto;
    display: inline-grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 999px;
    background: #e8f7f5;
    color: #075f57;
    font-size: .82rem;
}

.star-rating {
    display: inline-flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 3px;
}

.star-rating input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

.star-rating label {
    margin: 0;
    color: #c8d0dd;
    cursor: pointer;
    font-size: 1.75rem;
    line-height: 1;
}

.star-rating label:hover,
.star-rating label:hover ~ label,
.star-rating input:checked ~ label {
    color: #f5a623;
}

.survey-summary {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    margin-bottom: 20px;
}

.survey-overall {
    padding: 22px;
    border-radius: var(--radius);
    background: #f3fbf9;
    text-align: center;
}

.survey-overall strong,
.survey-overall span {
    display: block;
}

.survey-overall strong {
    color: #0f766e;
    font-size: 3rem;
    line-height: 1;
}

.survey-overall span {
    margin-top: 8px;
    color: var(--muted);
    font-weight: 800;
}

.survey-question-results {
    display: grid;
    gap: 8px;
}

.survey-question-results article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px;
    gap: 12px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}

.survey-question-results span {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: .86rem;
}

.survey-question-results b {
    color: #0f3d78;
    text-align: right;
}

.survey-admin-overview {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
    margin-top: 12px;
}

.survey-admin-score {
    display: grid;
    align-content: center;
    padding: 20px;
    border-radius: var(--radius);
    background: #f3fbf9;
    text-align: center;
}

.survey-admin-score strong,
.survey-admin-score span {
    display: block;
}

.survey-admin-score strong {
    margin: 8px 0 4px;
    color: #0f766e;
    font-size: 3.1rem;
    line-height: 1;
}

.survey-admin-score span:last-child {
    color: var(--muted);
    font-weight: 800;
}

.survey-admin-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.survey-admin-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr);
    gap: 14px;
    margin-top: 18px;
}

.survey-admin-panel {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fbfdff;
}

.survey-admin-panel h3 {
    margin-top: 0;
}

.compact-results article {
    grid-template-columns: minmax(0, 1fr) 48px;
}

.compact-results .progress-track {
    margin: 8px 0 0;
}

.survey-insight-list {
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
}

.survey-insight-list div {
    padding: 12px;
    border-left: 4px solid #99d8c9;
    background: #fff;
}

.survey-insight-list span,
.survey-insight-list strong,
.survey-insight-list small {
    display: block;
}

.survey-insight-list span {
    color: #0f766e;
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.survey-insight-list strong {
    margin-top: 4px;
    font-size: .9rem;
    line-height: 1.25;
}

.survey-insight-list small {
    margin-top: 6px;
    color: var(--blue-2);
    font-weight: 900;
}

.rating-distribution {
    display: grid;
    gap: 9px;
}

.rating-row {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr) 32px;
    gap: 10px;
    align-items: center;
    color: var(--muted);
    font-size: .84rem;
    font-weight: 800;
}

.rating-bar {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #dbe7e5;
}

.rating-bar i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #1957a6, #0f766e);
}

.rating-row strong {
    color: var(--ink);
    text-align: right;
}

.survey-comments {
    display: grid;
    gap: 10px;
}

.survey-comments article {
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fbfdff;
}

.survey-comments p {
    margin: 0 0 8px;
}

.survey-comments span {
    color: var(--muted);
    font-size: .84rem;
}

.comments-page-list article {
    background: #fff;
}

.comments-page-list p {
    font-size: 1.02rem;
    line-height: 1.55;
}

.student-status.is-suspended {
    background: #fff1f0;
    color: #9a1c12;
}

.status-action-form {
    display: flex;
    align-items: center;
    gap: 7px;
}

.suspension-reason {
    min-width: 180px;
}

.status-reactivate {
    border-color: #69b8a6;
    color: #075f57;
}

.suspension-detail {
    color: #9a1c12;
}

.access-last-date {
    font-size: 1rem !important;
    line-height: 1.3;
}

.access-count {
    display: inline-grid;
    min-width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 999px;
    background: #e8f7f5;
    color: #075f57;
    font-weight: 900;
}

.access-timeline {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
    max-height: 520px;
    overflow-y: auto;
}

.access-timeline li {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #f8fbff;
}

.access-timeline span {
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

.attendance-overview,
.attendance-profile-card {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid #b7ead8;
    border-radius: var(--radius);
    background: #f3fbf9;
}

.attendance-profile-card {
    margin: 0 0 18px;
}

.attendance-overview-heading,
.session-attendance-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.attendance-overview-heading h2,
.attendance-overview-heading h3 {
    margin: 3px 0 0;
}

.eyebrow {
    color: #0f766e;
    font-size: .76rem;
    font-weight: 900;
    text-transform: uppercase;
}

.attendance-percentage {
    color: #0f766e;
    font-size: 2rem;
    line-height: 1;
}

.progress-track {
    height: 10px;
    margin: 15px 0 18px;
    overflow: hidden;
    border-radius: 999px;
    background: #dbe7e5;
}

.progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #1957a6, #0f766e);
}

.progress-track.compact {
    height: 7px;
    margin: 12px 0;
}

.attendance-mini-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.attendance-mini-grid div,
.attendance-mini-grid a {
    min-width: 0;
    padding: 10px 12px;
    border-left: 3px solid #99d8c9;
    background: #fff;
}

.attendance-mini-grid a {
    color: inherit;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease;
}

.attendance-mini-grid a:hover {
    box-shadow: 0 10px 24px rgba(15, 35, 70, .12);
    transform: translateY(-1px);
}

.attendance-mini-grid strong,
.attendance-mini-grid span,
.attendance-mini-grid small {
    display: block;
}

.attendance-mini-grid strong {
    color: #123c72;
    font-size: 1.15rem;
}

.attendance-mini-grid span {
    margin-top: 3px;
    color: var(--muted);
    font-size: .8rem;
}

.attendance-mini-grid small {
    margin-top: 5px;
    color: #0f5d8f;
    font-size: .74rem;
    font-weight: 800;
}

.attendance-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.attendance-list-button {
    background: #0f766e;
    border-color: #0f766e;
    color: #fff;
}

.attendance-list-button:hover {
    background: #0b5f59;
    text-decoration: none;
}

.session-attendance-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.session-attendance-item {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fbfdff;
}

.session-attendance-item h3 {
    margin: 10px 0 4px;
    font-size: 1rem;
}

.session-attendance-item p {
    margin: 0;
    color: var(--muted);
    font-size: .86rem;
}

.session-attendance-top span {
    color: #0f3d78;
    font-size: .8rem;
    font-weight: 900;
    text-transform: uppercase;
}

.session-attendance-top strong {
    color: #0f766e;
}

.session-attendance-meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--muted);
    font-size: .83rem;
}

.data-source-badge,
.duration-badge {
    display: inline-flex;
    align-items: center;
    width: max-content;
    border-radius: 999px;
    font-weight: 800;
}

.data-source-badge {
    padding: 8px 11px;
    background: #e8f7f5;
    color: #075f57;
    font-size: .78rem;
}

.duration-badge {
    padding: 5px 9px;
    background: #eef4ff;
    color: #0f3d78;
    font-size: .82rem;
    white-space: nowrap;
}

.empty-attendance {
    padding: 20px;
    border: 1px dashed #b8c6d9;
    border-radius: var(--radius);
    background: #f8fbff;
    text-align: center;
}

.empty-attendance p {
    margin: 5px 0 0;
    color: var(--muted);
}

.session-attendance-link {
    display: inline-block;
    margin-top: 12px;
    color: #0f766e;
    font-size: .84rem;
    font-weight: 900;
}

.attendance-filter {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(260px, 2fr) auto auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 18px;
}

.attendance-filter label {
    margin: 0;
}

.attendance-filter label span {
    display: block;
    margin-bottom: 6px;
}

.attendance-list-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}

.attendance-list-summary span {
    padding: 8px 11px;
    border-radius: var(--radius);
    background: #eef4ff;
    color: #0f3d78;
    font-size: .86rem;
    font-weight: 800;
}

.attendance-import-card {
    margin-bottom: 18px;
}

.attendee-link-form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 8px;
    min-width: 360px;
}

.attendee-link-form select {
    min-width: 0;
}

.attendee-link-form button {
    padding-inline: 14px;
    white-space: nowrap;
}

.attendance-import-form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(280px, 2fr) auto;
    gap: 12px;
    align-items: end;
}

.attendance-import-form label {
    margin: 0;
}

.attendance-import-form label span {
    display: block;
    margin-bottom: 6px;
}

.import-note {
    margin: 12px 0 0;
    font-size: .84rem;
}

.import-result {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    align-items: center;
}

.import-result span {
    padding-left: 12px;
    border-left: 2px solid #99d8c9;
}

.import-result small {
    flex-basis: 100%;
}

@media (max-width: 820px) {
    .topbar { align-items: flex-start; flex-direction: column; }
    .span-4,
    .span-5,
    .span-6,
    .span-7,
    .span-8,
    .span-12 { grid-column: span 12; }
    .session-row { grid-template-columns: 48px minmax(0, 1fr); }
    .session-row .button { grid-column: 1 / -1; text-align: center; }
    .session-num { width: 44px; height: 44px; }
    .rubric { grid-template-columns: 1fr; }
    .summary-rubric { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .survey-admin-overview,
    .survey-admin-grid { grid-template-columns: 1fr; }
    .survey-admin-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .access-rubric,
    .access-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .inactive-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-report-grid,
    .course-report-evaluation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-report-period,
    .course-report-meta,
    .course-report-brief,
    .course-report-two-columns { grid-template-columns: 1fr; }
    .attendance-mini-grid,
    .session-attendance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .attendance-filter { grid-template-columns: 1fr 1fr; }
    .attendance-import-form { grid-template-columns: 1fr; }
    .two-columns { grid-template-columns: 1fr; }
    .participant-profile-grid { grid-template-columns: 1fr; }
    .participant-create-grid { grid-template-columns: 1fr; }
    .participant-merge-form { grid-template-columns: 1fr; }
    .material,
    .meet-card,
    .recording-card,
    .pre-session-card { grid-template-columns: 1fr; }
    .pre-session-action { justify-content: stretch; }
    .hero-dashboard {
        min-height: 420px;
        align-items: flex-start;
        background: linear-gradient(180deg, rgba(18, 48, 94, .98) 0%, rgba(18, 48, 94, .88) 42%, rgba(18, 48, 94, .36) 100%);
    }
    .hero-copy { width: 100%; }
    .hero-art {
        width: 100%;
        height: 65%;
        inset: auto 0 0 0;
        object-position: center bottom;
        object-fit: contain;
        opacity: .72;
    }
    .hero-dashboard::after {
        background: linear-gradient(180deg, rgba(18, 48, 94, .98) 0%, rgba(18, 48, 94, .84) 42%, rgba(18, 48, 94, .18) 100%);
    }
    .certificate-card {
        align-items: stretch;
        flex-direction: column;
    }

    .evaluation-card {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .evaluation-action {
        justify-content: stretch;
    }

    .admin-toolbar,
    .search-row,
    .toolbar-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .toolbar-side {
        padding-top: 0;
    }
    .certificate-search-form > div {
        grid-template-columns: 1fr;
    }
    .participants-search-grid {
        grid-template-columns: 1fr;
    }
    .inactive-report-search {
        grid-template-columns: 1fr;
    }
    .participants-search-grid .button,
    .participants-search-grid button {
        width: 100%;
    }
}

@media (max-width: 480px) {
    html,
    body {
        width: 100%;
        overflow-x: hidden;
    }

    .summary-rubric {
        grid-template-columns: 1fr;
    }

    .survey-admin-metrics {
        grid-template-columns: 1fr;
    }

    .topbar {
        min-height: 0;
        padding: 10px 14px;
    }

    .brand {
        gap: 10px;
    }

    .brand-mark {
        width: 38px;
        height: 38px;
        font-size: .9rem;
    }

    .brand strong {
        font-size: .96rem;
        line-height: 1.15;
    }

    .brand small {
        font-size: .72rem;
        line-height: 1.2;
    }

    .page {
        width: 100%;
        margin: 14px auto 28px;
        padding: 0 14px;
    }

    .login-shell {
        min-height: auto;
        display: block;
        width: 100%;
    }

    .login-card {
        width: 100%;
        max-width: 100%;
        padding: 16px;
        margin: 0;
        box-shadow: 0 8px 20px rgba(20, 44, 84, .07);
        overflow: hidden;
    }

    .login-logo-iiaff {
        width: min(286px, 100%);
        height: 76px;
        margin-bottom: 14px;
    }

    .login-logo-iiaff img {
        width: 474px;
    }

    .login-card h1 {
        font-size: 1.55rem;
        margin-bottom: 8px;
    }

    .login-card .muted {
        line-height: 1.4;
    }

    input,
    select,
    textarea,
    .button,
    button {
        width: 100%;
        max-width: 100%;
        min-height: 46px;
        font-size: 1rem;
    }

    .login-card button[type="submit"] {
        width: 100%;
    }

    .login-collab {
        margin-top: 16px;
        padding-top: 14px;
        line-height: 1.35;
    }

    .access-rubric,
    .access-metrics {
        grid-template-columns: 1fr;
    }

    .inactive-overview-grid {
        grid-template-columns: 1fr;
    }

    .course-report-grid,
    .course-report-evaluation {
        grid-template-columns: 1fr;
    }

    .student-checklist {
        grid-template-columns: 1fr;
    }

    .attendance-mini-grid,
    .session-attendance-grid {
        grid-template-columns: 1fr;
    }

    .attendance-filter {
        grid-template-columns: 1fr;
    }

    .attendance-actions,
    .attendance-actions .button {
        width: 100%;
    }

    .revoke-evaluation-form {
        justify-content: stretch;
    }

    .certificate-release-form,
    .certificate-release-note {
        justify-content: stretch;
        text-align: left;
    }

    .attendance-overview-heading {
        align-items: flex-start;
    }

    .participant-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .participant-access-summary span {
        display: block;
        margin: 0 0 4px;
    }

    .survey-question,
    .survey-summary {
        grid-template-columns: 1fr;
    }

    .star-rating {
        justify-content: flex-start;
    }

    .site-footer {
        margin-top: 28px;
        padding-bottom: 22px;
        font-size: .84rem;
    }
}

@media print {
    .topbar,
    .admin-process-nav,
    .hero,
    .inactive-overview-card,
    .no-print,
    .site-footer {
        display: none !important;
    }

    body {
        background: #fff;
    }

    .page {
        margin: 0;
        padding: 0;
        width: 100%;
    }

    .card,
    .course-report-card {
        border: 0;
        box-shadow: none;
        padding: 0;
    }

    .course-report-grid article,
    .course-report-evaluation article,
    .course-report-period div,
    .course-report-meta div,
    .course-report-brief {
        break-inside: avoid;
    }
}
.course-reading{display:grid;gap:22px;margin:6px 0}.course-reading-intro{padding:30px;border:1px solid #d9e6f2;border-radius:24px;background:linear-gradient(135deg,#f6f9fd,#edf6f6)}.course-reading-intro h2{margin:7px 0 9px}.course-reading-intro p{max-width:920px;color:#53627a;font-size:1.02rem;line-height:1.65}.course-outcomes{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.course-outcomes span{padding:9px 12px;border-radius:999px;color:#0b645d;background:#dff3ef;font-size:.78rem;font-weight:800}.course-reading-sections{display:grid;gap:17px}.course-reading-card{--criterion:#1768b7;padding:26px;border:1px solid #d9e6f2;border-left:6px solid var(--criterion);border-radius:20px;background:#fff;box-shadow:0 9px 24px rgba(16,42,86,.06)}.course-reading-card.is-delegation{--criterion:#7554c9}.course-reading-card.is-operation{--criterion:#d88b13}.course-reading-card.is-practice{--criterion:#0c8275}.course-reading-card.is-limit{--criterion:#c54242}.course-reading-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.course-reading-heading h3{margin:6px 0 13px;color:#17233b}.course-criterion{color:var(--criterion);font-size:.72rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.course-articles{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.course-articles span{padding:6px 9px;border:1px solid color-mix(in srgb,var(--criterion) 30%,white);border-radius:999px;color:var(--criterion);background:color-mix(in srgb,var(--criterion) 7%,white);font-size:.7rem;font-weight:900}.course-reading-card>p{color:#4c5b70;line-height:1.72}.course-key{display:grid;grid-template-columns:auto 1fr;gap:12px;margin-top:17px;padding:14px 16px;border-radius:14px;background:#f3f7fb}.course-key strong{color:var(--criterion)}.course-key span{color:#435168}.course-case{padding:30px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#0b2f63,#155d9b);box-shadow:0 16px 35px rgba(11,47,99,.18)}.course-case-label{display:inline-flex;padding:6px 10px;border:1px solid rgba(255,255,255,.3);border-radius:999px;font-size:.7rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.course-case h3{margin:13px 0 8px;color:#fff}.course-case p{color:rgba(255,255,255,.84);line-height:1.6}.course-case-options{display:grid;gap:9px;margin-top:16px}.course-case-options button{padding:13px 15px;border:1px solid rgba(255,255,255,.25);border-radius:13px;color:#fff;background:rgba(255,255,255,.09);font:inherit;font-weight:750;text-align:left;cursor:pointer}.course-case-options button:hover{background:rgba(255,255,255,.17)}.course-case-options button.is-correct{border-color:#61d8a9;background:rgba(30,169,112,.3)}.course-case-options button.is-incorrect{border-color:#ff8e8e;background:rgba(204,55,55,.35)}.course-case-feedback{margin-top:16px;padding:16px;border-radius:14px;color:#17324f;background:#fff}.course-case-feedback p{margin-bottom:0;color:#53627a}.course-deliverable{display:grid;grid-template-columns:58px 1fr;gap:16px;padding:24px;border:1px solid #ead9a8;border-radius:20px;background:#fffaf0}.course-deliverable>span{display:grid;width:58px;height:58px;place-items:center;border-radius:16px;color:#fff;background:#c48a16;font-size:1.55rem}.course-deliverable h3{margin:5px 0}.course-deliverable p{margin-bottom:0;color:#5d6470;line-height:1.6}@media(max-width:700px){.course-reading-intro,.course-reading-card,.course-case{padding:21px}.course-reading-heading{display:grid}.course-articles{justify-content:flex-start}.course-key{grid-template-columns:1fr}.course-deliverable{grid-template-columns:1fr}}
.assessment-form{display:grid;gap:16px;margin-top:22px}.assessment-question{display:grid;gap:10px}.assessment-question legend{display:flex;align-items:flex-start;gap:12px;padding:0 5px;color:#17233b;font-size:1rem;font-weight:900;line-height:1.4}.assessment-question legend span{display:grid;min-width:30px;height:30px;place-items:center;border-radius:9px;color:#fff;background:#1768b7}.assessment-question label{display:flex;align-items:flex-start;gap:11px;padding:12px 14px;border:1px solid #d9e6f2;border-radius:12px;cursor:pointer}.assessment-question label:hover{border-color:#1768b7;background:#f4f8fd}.assessment-question input{margin-top:3px}.assessment-actions{display:flex;justify-content:flex-end;gap:10px;padding:8px 0 25px}@media(max-width:600px){.assessment-actions{display:grid}.assessment-actions .button,.assessment-actions button{width:100%}}
.assessment-form{width:min(1080px,100%);margin:24px auto 0;gap:20px}.assessment-question{min-width:0;padding:24px 26px 26px;gap:11px;border-color:#d8e5f2;border-radius:20px}.assessment-question legend{max-width:calc(100% - 20px);padding:0 10px;color:#17233b;font-size:1.08rem;line-height:1.45}.assessment-question legend>span{flex:0 0 36px;width:36px;height:36px;border-radius:11px;box-shadow:0 6px 14px rgba(23,104,183,.18)}.assessment-question label.assessment-option{display:grid;grid-template-columns:22px 36px minmax(0,1fr);align-items:center;gap:12px;min-height:60px;margin:0;padding:12px 15px;border:1px solid #d7e4f0;border-radius:14px;color:#25344e;background:#fff;font-weight:750;line-height:1.4;transition:.16s ease}.assessment-question label.assessment-option:hover{border-color:#6aa2d5;background:#f5f9fd;transform:translateY(-1px)}.assessment-question label.assessment-option:has(input:checked){border-color:#1768b7;background:#edf5ff;box-shadow:0 0 0 3px rgba(23,104,183,.10)}.assessment-question input[type="radio"]{appearance:auto;display:block;flex:none;width:19px!important;min-width:19px;max-width:19px;height:19px;margin:0!important;padding:0;border:0;border-radius:50%;accent-color:#1768b7}.assessment-option-letter{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#1768b7;background:#e8f2fc;font-size:.82rem;font-weight:900}.assessment-option:has(input:checked) .assessment-option-letter{color:#fff;background:#1768b7}.assessment-option-text{min-width:0;overflow-wrap:anywhere}.assessment-actions{width:min(1080px,100%);margin:0 auto;padding-top:4px}@media(max-width:600px){.assessment-question{padding:19px 14px 20px}.assessment-question legend{font-size:.98rem}.assessment-question label.assessment-option{grid-template-columns:20px 32px minmax(0,1fr);padding:11px}.assessment-option-letter{width:31px;height:31px}}
.module-completion{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px;border:2px dashed #a9bfd4;border-radius:20px;background:#f6f9fc}.module-completion h3{margin:5px 0}.module-completion p{margin:0;color:#617087}.module-completion.is-complete{border-color:#4eb595;background:#eaf8f3}.module-completion-check{display:grid;min-width:58px;height:58px;place-items:center;border-radius:50%;color:#fff;background:#16876a;font-size:1.7rem;font-weight:900}@media(max-width:650px){.module-completion{align-items:stretch;flex-direction:column}.module-completion button{width:100%}}
.course-module.is-completed{border-color:#58b89a;box-shadow:0 10px 25px rgba(23,135,106,.12)}.course-module.is-completed .course-module-status{color:#087158;background:#e5f7f0}
.assessment-attempt-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(850px,100%);margin:20px auto}.attempt-result-card{display:grid;gap:5px;text-align:center}.attempt-result-card>span{color:#5e6e84;font-size:.76rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.attempt-result-card>strong{color:#123a70;font-size:2rem}.attempt-result-card>small{color:#68778c}.attempt-result-card.is-pending{background:#f7f9fc}.assessment-guidance,.assessment-finished{width:min(850px,100%);margin:20px auto;text-align:center}.assessment-guidance h2,.assessment-finished h2{margin:7px 0}.assessment-guidance p,.assessment-finished p{color:#5c6b7e}.assessment-finished.is-passed{border-color:#8dd2bb;background:#f0faf6}.assessment-correct-banner{padding:11px 14px;border-radius:12px;color:#087158;background:#e5f7f0;font-weight:850}.assessment-locked-answer{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:12px;padding:13px 15px;border:1px solid #a9dcca;border-radius:14px;background:#f3fbf8}.assessment-locked-answer b{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#fff;background:#16876a}.assessment-readonly{border-color:#9bd4c1;background:#fbfffd}.assessment-needs-review{border-color:#edc77a}.assessment-remediation-note,.assessment-explanation{padding:12px 14px;border-radius:12px;line-height:1.5}.assessment-remediation-note{color:#7c4f06;background:#fff4d8}.assessment-explanation{color:#173f6e;background:#edf5ff}.assessment-activation{position:fixed;z-index:9999;inset:0;display:grid;place-items:center;padding:22px;background:rgba(5,22,49,.88);backdrop-filter:blur(8px)}.assessment-activation-card{display:grid;width:min(680px,100%);gap:12px;padding:clamp(28px,5vw,54px);border-radius:28px;text-align:center;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.35)}.assessment-activation-icon{display:grid;width:76px;height:76px;margin:0 auto 5px;place-items:center;border-radius:50%;color:#fff;background:#16876a;font-size:2.2rem;font-weight:900}.assessment-activation-card h2{margin:4px 0;color:#123a70;font-size:clamp(1.8rem,4vw,2.6rem)}.assessment-activation-card p{max-width:550px;margin:0 auto;color:#5b6a7e;font-size:1.05rem;line-height:1.6}.assessment-activation-actions{display:flex;justify-content:center;gap:10px;margin-top:15px}@media(max-width:650px){.assessment-attempt-summary{grid-template-columns:1fr}.assessment-activation-actions{display:grid}.assessment-activation-actions .button{width:100%}}
.roster-callout{display:flex;align-items:center;justify-content:space-between;gap:20px}.roster-callout h2,.roster-callout p{margin:4px 0 0}.roster-callout a{white-space:nowrap}
.roster-stats{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin:18px 0}.roster-stats a{display:block;padding:18px;border:1px solid #d8e5f2;border-radius:18px;color:inherit;background:#fff;box-shadow:0 8px 22px rgba(16,42,86,.05);text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.roster-stats a:hover,.roster-stats a:focus-visible{transform:translateY(-3px);border-color:#78a9d4;box-shadow:0 13px 28px rgba(16,70,127,.13)}.roster-stats a.is-selected{border-color:#1768b7;background:#edf6ff;box-shadow:0 0 0 3px rgba(23,104,183,.12)}.roster-stats strong,.roster-stats span{display:block}.roster-stats strong{color:#135898;font-size:1.7rem}.roster-stats span{margin-top:3px;color:#66758d;font-size:.78rem;font-weight:800}#roster-results{scroll-margin-top:18px}
.roster-filter-grid{grid-template-columns:minmax(220px,1fr) 220px 190px auto auto}.roster-list{display:grid;gap:12px;margin-top:22px}.roster-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px;padding:18px;border:1px solid #dce7f1;border-radius:18px;background:#fbfdff}.roster-entry-main h3,.roster-entry-main p{margin:4px 0 0}.roster-entry-main p{color:#5f6f86}.roster-type{color:#1768b7;font-size:.7rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.roster-status{align-self:start;padding:7px 11px;border-radius:999px;font-size:.72rem;font-weight:900}.roster-status.is-pending_person{color:#8a5700;background:#fff0c9}.roster-status.is-pending_access{color:#184f85;background:#e4f1ff}.roster-status.is-active{color:#087467;background:#dff7ef}.roster-activation,.roster-active-data{grid-column:1/-1;padding-top:12px;border-top:1px solid #e2eaf3}.roster-activation summary{color:#135898;cursor:pointer;font-weight:900}.roster-activation-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:12px;margin-top:14px}.roster-active-data{display:flex;align-items:center;justify-content:space-between;gap:12px}.roster-active-data strong{color:#52627a}
@media(max-width:950px){.roster-stats{grid-template-columns:repeat(3,1fr)}.roster-filter-grid,.roster-activation-form{grid-template-columns:1fr 1fr}.roster-activation-form button{width:100%}}
@media(max-width:620px){.roster-callout,.roster-active-data{align-items:stretch;flex-direction:column}.roster-stats{grid-template-columns:1fr 1fr}.roster-entry{grid-template-columns:1fr}.roster-status{justify-self:start}.roster-filter-grid,.roster-activation-form{grid-template-columns:1fr}}
.roster-stats a{--stat-color:#1768b7;position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:12px;min-height:116px;overflow:hidden}.roster-stats a:after{position:absolute;width:75px;height:75px;right:-34px;bottom:-40px;border-radius:50%;background:color-mix(in srgb,var(--stat-color) 10%,transparent);content:""}.roster-stat-icon{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(145deg,var(--stat-color),color-mix(in srgb,var(--stat-color) 72%,#082d61));box-shadow:0 8px 17px color-mix(in srgb,var(--stat-color) 24%,transparent);font-size:1.1rem;font-style:normal;font-weight:900}.roster-stat-copy{min-width:0}.roster-stats .roster-stat-copy strong{color:var(--stat-color)}.roster-stats .stat-vp{--stat-color:#c18a16}.roster-stats .stat-commission{--stat-color:#1768b7}.roster-stats .stat-committee{--stat-color:#7554c9}.roster-stats .stat-borough{--stat-color:#07837b}.roster-stats .stat-pending{--stat-color:#d07a0b}.roster-stats .stat-active{--stat-color:#16876a}.roster-stats a.is-selected{border-color:var(--stat-color);background:color-mix(in srgb,var(--stat-color) 7%,white);box-shadow:0 0 0 3px color-mix(in srgb,var(--stat-color) 14%,transparent),0 13px 28px rgba(16,70,127,.1)}
@media(max-width:1250px){.roster-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:780px){.roster-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:460px){.roster-stats{grid-template-columns:1fr}.roster-stats a{min-height:92px}}
.roster-stats a{grid-template-columns:42px minmax(0,1fr);gap:10px;padding:15px;overflow:hidden}.roster-stat-icon{width:42px;height:42px;border-radius:13px}.roster-stat-copy,.roster-stat-copy span{max-width:100%;min-width:0}.roster-stats .roster-stat-copy>span{font-size:.72rem;line-height:1.22;overflow-wrap:anywhere;word-break:normal;hyphens:auto}.roster-stats .roster-stat-copy strong{font-size:1.55rem;line-height:1}
@media(max-width:1750px){.roster-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.roster-stats a{min-height:104px}.roster-stats .roster-stat-copy>span{font-size:.78rem}}
@media(max-width:900px){.roster-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.roster-stats{grid-template-columns:1fr}}
.initial-password-note{display:grid;align-content:center;gap:3px;padding:10px 12px;border:1px solid #c9ddf0;border-radius:12px;background:#f1f7fd}.initial-password-note label{margin:0}.initial-password-note strong{color:#125a9d;font-size:.95rem;letter-spacing:.03em}.initial-password-note small{color:#65758c}.password-reset-button{color:#8a5200;border-color:#e3bd74;background:#fff9ea}.password-change-shell{display:grid;min-height:calc(100vh - 180px);place-items:center;padding:30px 16px}.password-change-card{width:min(560px,100%);padding:clamp(26px,5vw,46px);text-align:center}.password-change-card h1{margin:10px 0}.password-change-card>p{margin:0 auto 22px;line-height:1.6}.password-change-card .form{text-align:left}.password-change-card .form button,.password-change-card .form>a{width:100%;text-align:center}.password-change-icon{display:grid;width:70px;height:70px;margin:0 auto 14px;place-items:center;border-radius:20px;background:linear-gradient(145deg,#1768b7,#0a8077);box-shadow:0 14px 30px rgba(18,91,142,.22);font-size:2rem}
.participants-management-table,.participants-management-table tbody{display:block;width:100%}.participants-management-table thead{display:none}.participants-management-table tbody>tr{display:grid;width:100%}.participants-management-table tbody>tr:nth-child(3n+1){grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;padding:20px;border:1px solid #d8e5f2;border-bottom:0;border-radius:20px 20px 0 0;background:#fff;box-shadow:0 10px 26px rgba(16,42,86,.06)}.participants-management-table tbody>tr:nth-child(3n+1)>td{display:grid;align-content:start;min-width:0;padding:0;border:0}.participants-management-table tbody>tr:nth-child(3n+1)>td:before{display:block;margin-bottom:6px;color:#6b7890;font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(1){grid-column:1;grid-row:1}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(1):before{content:"Registro"}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(2){grid-column:2/6;grid-row:1}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(2):before{content:"Identificador de usuario"}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(5){grid-column:10/13;grid-row:1;justify-items:end}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(5):before{content:"Estado"}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(3){grid-column:1/5;grid-row:2}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(3):before{content:"Nombre completo"}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(4){grid-column:5/9;grid-row:2}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(4):before{content:"Correo electrónico"}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(6){grid-column:9/13;grid-row:2}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(6):before{content:"Cambiar contraseña manualmente"}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(7){grid-column:1/13;grid-row:3;padding-top:4px}.participants-management-table input{width:100%;min-width:0}.participants-management-table .participant-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.participants-management-table .participant-actions form{display:flex;gap:8px;margin:0}.participants-management-table .status-action-form{flex:1 1 360px}.participants-management-table .suspension-reason{min-width:220px;flex:1}.participants-management-table tbody>tr.participant-access-summary{display:block;padding:13px 20px;border-right:1px solid #d8e5f2;border-left:1px solid #d8e5f2;background:#f3f7fb}.participants-management-table .participant-access-summary td{display:flex;flex-wrap:wrap;gap:12px 26px;padding:0;border:0}.participants-management-table .participant-access-summary span{white-space:normal}.participants-management-table tbody>tr.participant-profile-row{display:block;margin-bottom:18px;padding:0 20px 14px;border:1px solid #d8e5f2;border-top:0;border-radius:0 0 20px 20px;background:#fff}.participants-management-table .participant-profile-row td{display:block;padding:0;border:0}.participants-management-table .participant-profile-panel{margin:0}.participants-management-table .row-number{color:#1768b7;font-size:1.35rem;font-weight:900}.participants-search-grid{grid-template-columns:minmax(260px,1.5fr) minmax(170px,.7fr) minmax(190px,.8fr) auto auto auto}
@media(max-width:1050px){.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(3){grid-column:1/7}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(4){grid-column:7/13}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(6){grid-column:1/13;grid-row:3}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(7){grid-row:4}.participants-search-grid{grid-template-columns:1fr 1fr}.participants-search-grid>*{width:100%}}
@media(max-width:650px){.participants-management-table tbody>tr:nth-child(3n+1){display:grid;grid-template-columns:1fr 1fr;padding:16px}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(1){grid-column:1}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(2){grid-column:1/3;grid-row:2}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(5){grid-column:2;grid-row:1}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(3),.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(4),.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(6),.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(7){grid-column:1/3}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(3){grid-row:3}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(4){grid-row:4}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(6){grid-row:5}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(7){grid-row:6}.participants-management-table .participant-actions,.participants-management-table .participant-actions form{display:grid;width:100%;grid-template-columns:1fr}.participants-management-table .participant-actions>*{width:100%;text-align:center}.participants-management-table .participant-access-summary td{display:grid;gap:8px}.participants-search-grid{grid-template-columns:1fr}}
.participants-management-table .manual-password-field{display:none!important}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(3){grid-column:1/7}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(4){grid-column:7/13}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(7){grid-row:3}
@media(max-width:650px){.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(3),.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(4),.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(7){grid-column:1/3}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(3){grid-row:3}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(4){grid-row:4}.participants-management-table tbody>tr:nth-child(3n+1)>td:nth-child(7){grid-row:5}}
.commission-structure-resource{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.65fr);gap:24px;align-items:center;padding:26px;border:1px solid #d5e4f1;border-radius:24px;background:linear-gradient(135deg,#f6faff,#edf7f6);box-shadow:0 13px 30px rgba(16,42,86,.07)}.commission-structure-copy h3{margin:8px 0 10px;color:#123a70;font-size:1.45rem}.commission-structure-copy>p{color:#53647b;line-height:1.7}.commission-structure-warning{display:grid;gap:3px;margin:17px 0;padding:13px 15px;border-left:4px solid #c18a16;border-radius:0 12px 12px 0;color:#64552f;background:#fff8e8}.commission-structure-warning strong{color:#8a5d08}.commission-structure-warning span{font-size:.82rem;line-height:1.5}.commission-structure-image{display:block;overflow:hidden;max-height:610px;border:1px solid #c7d9e8;border-radius:18px;background:#fff;box-shadow:0 14px 30px rgba(13,55,101,.13)}.commission-structure-image img{display:block;width:100%;height:auto;transition:transform .25s ease}.commission-structure-image:hover img{transform:scale(1.015)}
@media(max-width:850px){.commission-structure-resource{grid-template-columns:1fr}.commission-structure-image{max-height:720px}}@media(max-width:560px){.commission-structure-resource{padding:18px}.commission-structure-copy .button{width:100%;text-align:center}}
.commission-structure-resource{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(430px,1.28fr);align-items:start;gap:28px;padding:clamp(22px,3vw,36px);background:radial-gradient(circle at 100% 0,rgba(12,130,117,.12),transparent 32%),linear-gradient(145deg,#f8fbff,#eef7f6)}.commission-structure-copy{position:sticky;top:18px}.commission-structure-copy h3{font-size:clamp(1.45rem,2.2vw,2rem);line-height:1.16}.commission-structure-flow{display:grid;gap:11px;counter-reset:commission-role}.commission-role{--role-color:#1768b7;position:relative;border:1px solid #d5e3ef;border-radius:17px;background:#fff;box-shadow:0 7px 18px rgba(16,42,86,.055);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.commission-role:before{position:absolute;left:31px;top:-12px;width:2px;height:12px;background:#b9cad9;content:""}.commission-role:first-child:before{display:none}.commission-role:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--role-color) 50%,#d5e3ef);box-shadow:0 11px 24px rgba(16,42,86,.10)}.commission-role summary{display:grid;grid-template-columns:52px minmax(0,1fr) 34px;align-items:center;gap:13px;padding:15px 17px;cursor:pointer;list-style:none}.commission-role summary::-webkit-details-marker{display:none}.commission-role-icon{display:grid;width:50px;height:50px;place-items:center;border-radius:15px;color:#fff;background:linear-gradient(145deg,var(--role-color),color-mix(in srgb,var(--role-color) 66%,#072956));box-shadow:0 8px 17px color-mix(in srgb,var(--role-color) 22%,transparent);font-size:1.15rem;font-weight:900;letter-spacing:-.12em}.commission-role-heading{display:grid;gap:2px;min-width:0}.commission-role-heading small{color:var(--role-color);font-size:.67rem;font-weight:900;letter-spacing:.065em;text-transform:uppercase}.commission-role-heading strong{color:#192941;font-size:.98rem;line-height:1.3}.commission-role-toggle{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;color:var(--role-color);background:color-mix(in srgb,var(--role-color) 10%,white);font-size:1.25rem;font-weight:500;transition:transform .2s ease}.commission-role[open] .commission-role-toggle{transform:rotate(45deg)}.commission-role-detail{display:grid;gap:9px;margin:0 17px 17px 82px;padding:14px 16px;border-left:3px solid var(--role-color);border-radius:0 12px 12px 0;background:color-mix(in srgb,var(--role-color) 6%,white)}.commission-role-detail p{margin:0;color:#43536a;line-height:1.55}.commission-role-detail span{color:var(--role-color);font-size:.78rem;font-weight:800;line-height:1.45}.commission-role.is-vicepresidents{--role-color:#c18a16}.commission-role.is-secretary{--role-color:#7554c9}.commission-role.is-members{--role-color:#07837b}.commission-role.is-groups{--role-color:#d16b28}.commission-structure-footer{grid-column:1/-1;display:flex;align-items:center;gap:13px;padding:15px 18px;border:1px solid #a9d9cc;border-radius:15px;background:#eaf8f4}.commission-structure-footer>span{display:grid;flex:0 0 36px;height:36px;place-items:center;border-radius:50%;color:#fff;background:#16876a;font-weight:900}.commission-structure-footer p{margin:0;color:#365a56;font-size:.87rem;line-height:1.5}.commission-structure-footer strong{color:#087158}@media(max-width:850px){.commission-structure-resource{grid-template-columns:1fr}.commission-structure-copy{position:static}.commission-structure-footer{grid-column:1}}@media(max-width:560px){.commission-role summary{grid-template-columns:44px minmax(0,1fr) 28px;gap:10px;padding:13px}.commission-role-icon{width:43px;height:43px;border-radius:13px}.commission-role-detail{margin:0 13px 13px;padding:13px}.commission-structure-footer{align-items:flex-start}}
.roster-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.roster-stats .roster-stat-copy>span{overflow-wrap:normal;word-break:normal;hyphens:none}.roster-stats a{min-height:108px}
@media(max-width:980px){.roster-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.roster-stats{grid-template-columns:1fr}}
.password-input-wrap{position:relative}.password-input-wrap input{width:100%;padding-right:54px}.password-visibility-toggle{position:absolute;right:7px;top:50%;display:grid;width:40px;height:40px;place-items:center;padding:0;transform:translateY(-50%);border:0;border-radius:10px;color:#1768b7;background:transparent;cursor:pointer}.password-visibility-toggle:hover,.password-visibility-toggle:focus-visible{background:#e8f2fc;outline:2px solid transparent}.password-visibility-toggle .eye-open{display:grid;width:22px;height:15px;place-items:center;border:2px solid currentColor;border-radius:50% 0 50% 0;transform:rotate(-45deg);font-size:.65rem;line-height:1}.password-visibility-toggle .eye-open::first-letter{transform:rotate(45deg)}.password-visibility-toggle .eye-closed{display:none;font-size:1.5rem;font-weight:900;transform:rotate(-35deg)}.password-visibility-toggle[aria-pressed="true"] .eye-open{opacity:.55}.password-visibility-toggle[aria-pressed="true"] .eye-closed{position:absolute;display:block}
.course-deliverable{position:relative;overflow:hidden;border-color:#f0cf71;background:radial-gradient(circle at 94% 10%,rgba(255,211,72,.24),transparent 27%),linear-gradient(135deg,#fffdf5,#fff7d8)}.course-deliverable:after{position:absolute;right:-22px;top:-28px;width:95px;height:95px;border:18px solid rgba(244,183,18,.08);border-radius:50%;content:""}.course-deliverable .course-suggestion-bulb{position:relative;background:linear-gradient(145deg,#ffd640,#eea900);box-shadow:0 0 0 7px rgba(255,204,42,.13),0 0 28px rgba(255,190,13,.52);animation:suggestion-bulb-glow 1.9s ease-in-out infinite}.course-deliverable .eyebrow{color:#986300}@keyframes suggestion-bulb-glow{0%,100%{transform:scale(1);box-shadow:0 0 0 7px rgba(255,204,42,.12),0 0 20px rgba(255,190,13,.42)}50%{transform:scale(1.06);box-shadow:0 0 0 11px rgba(255,204,42,.07),0 0 34px rgba(255,190,13,.66)}}.course-correct-celebration{position:fixed;z-index:10020;inset:0;overflow:hidden;pointer-events:none}.course-correct-celebration i{position:absolute;left:calc(var(--x)*1%);top:-24px;width:10px;height:18px;border-radius:3px;background:#1768b7;opacity:0;animation:course-confetti-fall 2.8s cubic-bezier(.16,.67,.32,1) calc(var(--delay)*.035s) forwards}.course-correct-celebration i:nth-child(6n+2){background:#12a184}.course-correct-celebration i:nth-child(6n+3){background:#ffd23f}.course-correct-celebration i:nth-child(6n+4){background:#e95e69}.course-correct-celebration i:nth-child(6n+5){background:#7656c9}.course-correct-celebration i:nth-child(6n){background:#f08a24}.course-correct-toast{position:fixed;z-index:10021;left:50%;top:22px;display:flex;align-items:center;gap:12px;min-width:min(360px,calc(100% - 28px));padding:14px 18px;transform:translateX(-50%);border:1px solid #82cfb7;border-radius:18px;color:#16483e;background:rgba(244,255,251,.97);box-shadow:0 18px 45px rgba(9,75,60,.24);animation:course-toast-in .38s ease-out}.course-correct-toast>span{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;color:#fff;background:#16876a;font-size:1.25rem;font-weight:900}.course-correct-toast div{display:grid}.course-correct-toast strong{font-size:1rem}.course-correct-toast small{color:#527069}@keyframes course-confetti-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}8%{opacity:1}100%{opacity:0;transform:translate3d(calc(var(--drift)*1vw),105vh,0) rotate(760deg)}}@keyframes course-toast-in{from{opacity:0;transform:translate(-50%,-25px) scale(.94)}to{opacity:1;transform:translate(-50%,0) scale(1)}}@media(prefers-reduced-motion:reduce){.course-deliverable .course-suggestion-bulb,.course-correct-celebration i,.course-correct-toast{animation:none}.course-correct-celebration{display:none}}
/* IIAFF 2026 — capa de identidad del Diplomado en Nutrición Fitness y Deportiva */
:root{--iiaff-red:#e31c25;--iiaff-red-dark:#ae1118;--iiaff-charcoal:#343a40;--iiaff-ink:#111;--iiaff-gray:#666;--iiaff-soft:#f5f6f7}
body{color:var(--iiaff-ink);background:#f4f5f6}
a{color:var(--iiaff-red-dark)}
.button.primary,.button:not(.secondary):not(.ghost):not(.disabled),button.primary{border-color:var(--iiaff-red);background:linear-gradient(145deg,var(--iiaff-red),var(--iiaff-red-dark));box-shadow:0 8px 20px rgba(227,28,37,.2)}
.eyebrow,.lesson-badge{color:var(--iiaff-red-dark)}
.site-header,.app-header,.login-shell:before{background:linear-gradient(130deg,#111 0%,#343a40 62%,#7e1117 100%)}
.course-hero,.welcome-hero{background:linear-gradient(120deg,rgba(17,17,17,.98),rgba(52,58,64,.93))}
.course-module.is-open{border-color:rgba(227,28,37,.38)}
.course-module.is-completed{border-color:#78a88b}
.progress-bar>span,.course-progress-bar>span{background:linear-gradient(90deg,var(--iiaff-red-dark),var(--iiaff-red))}
.guided-assistant-launcher{background:linear-gradient(145deg,var(--iiaff-red),var(--iiaff-red-dark))}
.guided-assistant-header{background:linear-gradient(130deg,#222,var(--iiaff-red-dark))}
.nutriaff-profile-hero{background:radial-gradient(circle at 82% 20%,rgba(227,28,37,.28),transparent 30%),linear-gradient(128deg,#111 0%,#343a40 58%,#8f141a 100%)}
.nutriaff-kicker,.nutriaff-profile-copy h1 em{color:#ffd7d9}
.nutriaff-capability-grid article>span,.nutriaff-howto li b{background:linear-gradient(145deg,var(--iiaff-red),var(--iiaff-red-dark))}
.nutriaff-capability-grid h3,.course-nutriaff strong{color:var(--iiaff-red-dark)}
.course-nutriaff{border-color:#efc8ca;background:linear-gradient(145deg,#fff,#fff1f2)}
.login-logo-iiaff img,.welcome-iiaff-logo{max-width:310px;filter:drop-shadow(0 5px 12px rgba(0,0,0,.2))}
@media(max-width:640px){.login-logo-iiaff img,.welcome-iiaff-logo{max-width:240px}}

/* IIAFF 2026 — sistema cromático institucional rojo, negro y blanco */
:root{
    --primary:#e31c25;
    --primary-dark:#ae1118;
    --navy:#111111;
    --blue:#e31c25;
    --teal:#343a40;
    --surface:#ffffff;
    --surface-soft:#f6f6f6;
    --border:#e3e3e3;
    --muted:#666666;
}
body{color:#111;background:linear-gradient(180deg,#fff 0,#f5f5f5 320px,#f5f5f5 100%)}
h1,h2,h3,h4,.card h2,.card h3{color:#171717}
input:focus,select:focus,textarea:focus{border-color:#e31c25;box-shadow:0 0 0 3px rgba(227,28,37,.13);outline:0}
.topbar,.site-header,.app-header{border-bottom:4px solid #e31c25;background:linear-gradient(118deg,#0d0d0d 0%,#292929 72%,#551014 100%)}
.site-footer{border-top:3px solid #e31c25;color:#ddd;background:#171717}
.card,.panel,.course-module,.assessment-question,.roster-entry{border-color:#e1e1e1;background:#fff;box-shadow:0 10px 26px rgba(0,0,0,.07)}
.button.primary,.button:not(.secondary):not(.ghost):not(.disabled),button.primary{color:#fff;border-color:#e31c25;background:linear-gradient(145deg,#ed222c,#b71219);box-shadow:0 9px 22px rgba(227,28,37,.23)}
.button.primary:hover,.button:not(.secondary):not(.ghost):not(.disabled):hover,button.primary:hover{border-color:#9d0d14;background:linear-gradient(145deg,#cf141d,#970c12);transform:translateY(-1px)}
.button.secondary,.button.ghost{color:#b5121b;border-color:#e31c25;background:#fff}
.button.secondary:hover,.button.ghost:hover{color:#fff;background:#e31c25}
.progress-bar,.course-progress-bar{background:#dedede}
.progress-bar>span,.course-progress-bar>span{background:linear-gradient(90deg,#aa0f16,#e31c25)}
.course-module.is-open,.course-module:focus-within{border-color:#e31c25;box-shadow:0 0 0 3px rgba(227,28,37,.10),0 12px 28px rgba(0,0,0,.08)}
.course-module.is-completed{border-color:#c7c7c7;box-shadow:0 10px 25px rgba(0,0,0,.07)}
.course-module.is-completed .course-module-status{color:#fff;background:#343a40}
.module-completion{border-color:#bdbdbd;background:#f7f7f7}
.module-completion.is-complete{border-color:#e31c25;background:#fff1f2}
.module-completion-check{background:#e31c25}
.course-reading-intro{border-color:#e5c9cb;background:linear-gradient(135deg,#fff,#fff1f2)}
.course-reading-intro p,.course-reading-card>p,.course-key span{color:#555}
.course-outcomes span{color:#a90f16;background:#ffe6e8}
.course-reading-card,.course-reading-card.is-delegation,.course-reading-card.is-operation,.course-reading-card.is-practice,.course-reading-card.is-limit{--criterion:#e31c25;border-color:#e5e5e5;box-shadow:0 9px 24px rgba(0,0,0,.06)}
.course-reading-heading h3{color:#171717}
.course-key{background:#f5f5f5}
.course-case{background:radial-gradient(circle at 92% 5%,rgba(227,28,37,.30),transparent 32%),linear-gradient(135deg,#0d0d0d,#343a40);box-shadow:0 16px 35px rgba(0,0,0,.22)}
.course-case-options button:hover{border-color:#e31c25;background:rgba(227,28,37,.28)}
.assessment-question legend{color:#171717}
.assessment-question legend>span{background:#e31c25;box-shadow:0 6px 14px rgba(227,28,37,.20)}
.assessment-question label.assessment-option{color:#292929;border-color:#dedede}
.assessment-question label.assessment-option:hover{border-color:#e31c25;background:#fff7f7}
.assessment-question label.assessment-option:has(input:checked){border-color:#e31c25;background:#fff0f1;box-shadow:0 0 0 3px rgba(227,28,37,.10)}
.assessment-question input[type="radio"]{accent-color:#e31c25}
.assessment-option-letter{color:#b5121b;background:#ffe7e8}
.assessment-option:has(input:checked) .assessment-option-letter{color:#fff;background:#e31c25}
.attempt-result-card>strong,.assessment-activation-card h2{color:#b5121b}
.assessment-activation{background:rgba(8,8,8,.90)}
.assessment-activation-icon{background:#e31c25}
.roster-stats a,.roster-stats .stat-vp,.roster-stats .stat-commission,.roster-stats .stat-committee,.roster-stats .stat-borough,.roster-stats .stat-pending,.roster-stats .stat-active{--stat-color:#e31c25}
.roster-stats a:hover,.roster-stats a:focus-visible,.roster-stats a.is-selected{border-color:#e31c25;box-shadow:0 0 0 3px rgba(227,28,37,.11),0 13px 28px rgba(0,0,0,.09)}
.roster-type,.roster-activation summary,.participants-management-table .row-number{color:#b5121b}
.initial-password-note{border-color:#ecc5c7;background:#fff3f4}
.initial-password-note strong,.password-visibility-toggle{color:#b5121b}
.password-visibility-toggle:hover,.password-visibility-toggle:focus-visible{background:#ffe7e8}
.password-change-icon{background:linear-gradient(145deg,#e31c25,#991017);box-shadow:0 14px 30px rgba(227,28,37,.24)}
.commission-structure-resource{border-color:#e4d4d5;background:radial-gradient(circle at 100% 0,rgba(227,28,37,.11),transparent 32%),linear-gradient(145deg,#fff,#f7f7f7)}
.commission-structure-copy h3{color:#171717}
.commission-role,.commission-role.is-vicepresidents,.commission-role.is-secretary,.commission-role.is-members,.commission-role.is-groups{--role-color:#e31c25}
.commission-structure-footer{border-color:#e6bfc1;background:#fff0f1}
.commission-structure-footer>span{background:#e31c25}
.commission-structure-footer p,.commission-structure-footer strong{color:#701014}
.guided-assistant-launcher{background:linear-gradient(145deg,#ed222c,#ad1017);box-shadow:0 12px 28px rgba(227,28,37,.30)}
.guided-assistant-header{background:linear-gradient(130deg,#151515,#a90f16)}
.course-correct-celebration i{background:#e31c25}
.course-correct-celebration i:nth-child(6n+2),.course-correct-celebration i:nth-child(6n+4){background:#111}
.course-correct-celebration i:nth-child(6n+3),.course-correct-celebration i:nth-child(6n+5),.course-correct-celebration i:nth-child(6n){background:#fff}

/* IIAFF 2026 — integración fotográfica y contraste final */
.hero,.hero-dashboard,.compact-hero{color:#fff;background:linear-gradient(120deg,#090909 0%,#292929 70%,#741016 100%)}
.hero h1,.hero h2,.hero h3,.hero p,.hero-dashboard h1,.hero-dashboard p{color:#fff}
.hero-dashboard{min-height:360px;border-bottom:5px solid #e31c25}
.hero-dashboard .hero-art{width:100%;height:100%;object-fit:cover;object-position:center right;opacity:.94;mix-blend-mode:normal;filter:none}
.hero-dashboard::after{background:linear-gradient(90deg,rgba(7,7,7,.99) 0%,rgba(12,12,12,.96) 42%,rgba(12,12,12,.56) 68%,rgba(12,12,12,.12) 100%)}
.hero-dashboard .hero-copy{width:min(820px,62%)}
.hero-dashboard .hero-copy h1{color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.grid>.card.span-12:first-child{position:relative;overflow:hidden;border-top:5px solid #e31c25}
.lesson-timeline{border-color:#dedede;box-shadow:0 10px 25px rgba(0,0,0,.06)}
.lesson-timeline-track::before{background:#dadada}
.lesson-step{color:#666}
.lesson-step-label{color:#242424}
.lesson-step.is-previous .lesson-step-dot,.lesson-step.is-available .lesson-step-dot,.lesson-step.is-current .lesson-step-dot{color:#fff;background:#e31c25;box-shadow:0 0 0 2px #e31c25}
.lesson-step.is-current .lesson-step-dot{box-shadow:0 0 0 4px rgba(227,28,37,.20),0 7px 18px rgba(227,28,37,.24)}
.lesson-step-current{color:#b5121b}
.lesson-hero{border-bottom:5px solid #e31c25;background:#111}
.lesson-hero-image{width:62%;object-position:center right;opacity:.94;filter:none}
.lesson-hero::before{background:linear-gradient(90deg,rgba(7,7,7,.99) 0%,rgba(12,12,12,.96) 45%,rgba(12,12,12,.58) 70%,rgba(12,12,12,.10) 100%)}
.lesson-badge{color:#fff;border-color:rgba(227,28,37,.65);background:rgba(227,28,37,.17)}
.lesson-meta span{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.10)}
@media(max-width:760px){
    .hero-dashboard .hero-copy{width:100%}
    .hero-dashboard .hero-art,.lesson-hero-image{width:100%;object-position:65% center;opacity:.55}
    .hero-dashboard::after,.lesson-hero::before{background:linear-gradient(180deg,rgba(8,8,8,.94),rgba(8,8,8,.78))}
}
