*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}ul{list-style:none}code{background:var(--brand-soft);color:var(--brand-dark);border-radius:6px;padding:.1rem .4rem;font-size:.9em}.muted{color:var(--muted);font-size:.9rem}.notice{color:var(--warn-ink);background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:8px}.error,.notice{font-size:.9rem;padding:.6rem .8rem}.error{color:var(--error);background:var(--error-soft);border:1px solid var(--error-line);border-radius:8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--brand);color:var(--on-brand);border:1px solid transparent;border-radius:9px;padding:.6rem 1.1rem;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,opacity .15s ease}.button:hover{background:var(--brand-dark)}.button:disabled{opacity:.6;cursor:default}.button.ghost{background:transparent;color:var(--text-medium);border-color:var(--border)}.button.ghost:hover{background:var(--bg);color:var(--text)}.button.large{padding:.8rem 1.6rem;font-size:1.05rem}.button.accent,.button.save{background:var(--accent);color:var(--on-accent)}.button.accent:hover,.button.save:hover{background:var(--accent-dark);color:var(--on-accent)}.brand{display:flex;align-items:center}.brand-mark{display:block;height:var(--brand-mark-height);width:auto}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.5rem;background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.container,.nav-inner{max-width:1040px}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.container,.nav-inner{width:100%;max-width:1120px;margin:0 auto}.hero{padding:4.5rem 1.5rem 4rem;background:linear-gradient(180deg,var(--brand-soft) 0,var(--bg) 100%)}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);grid-gap:3rem;gap:3rem;align-items:center}.hero-copy h1{font-size:clamp(2.1rem,4.6vw,3.2rem);line-height:1.1;letter-spacing:-.03em;margin-bottom:1rem}.hero-copy p{max-width:46ch;font-size:1.08rem;line-height:1.55;color:var(--text-medium)}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-dark);margin-bottom:.85rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}.hero-actions .button.ghost,.hero-shot{background:var(--surface)}.hero-shot{display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;box-shadow:var(--shadow-lg)}.shot-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.shot-head strong{font-size:1rem}.shot-row{display:flex;align-items:center;gap:.7rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.55rem .7rem}.shot-row .course-badge{width:32px;height:32px;border-radius:9px;font-size:.95rem}.shot-row .course-cell{flex:1 1;min-width:0}.shot-row.done{color:var(--muted)}.shot-row.done .course-badge{opacity:.55}.shot-when{width:3.1rem;flex-shrink:0;display:grid;grid-gap:.15rem;gap:.15rem;justify-items:start;font-size:.85rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shot-when .chip.tiny{font-size:.62rem;padding:0 .35rem}.shot-when .now-chip{background:var(--brand);color:var(--on-brand)}.shot-when .next-chip{background:var(--brand-soft);color:var(--brand-dark)}.shot-cta{flex-shrink:0;background:var(--brand);color:var(--on-brand);border-radius:8px;padding:.3rem .6rem;font-size:.78rem;font-weight:600}.shot-foot{display:flex;align-items:center;gap:.45rem;padding-top:.35rem;font-size:.82rem;color:var(--muted)}.step-num{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:999px;background:var(--brand);color:var(--on-brand);font-weight:700;font-size:.95rem}@media (max-width:860px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:2.5rem}.hero-copy p{max-width:none}}:root{--lp-max:1120px;--lp-gutter:1.5rem}.lp-container{width:100%;max-width:var(--lp-max);margin:0 auto}.lp-section{padding:4.5rem var(--lp-gutter);scroll-margin-top:72px}.lp-section.tinted{background:var(--bg);border-block:1px solid var(--border)}.lp-section.soft{background:var(--brand-soft)}.lp-head{display:grid;grid-gap:.6rem;gap:.6rem;margin-bottom:2.2rem;max-width:68ch}.lp-head.center{margin-inline:auto;text-align:center;justify-items:center}.lp-head h2{font-size:clamp(1.55rem,3vw,2.15rem);line-height:1.15;letter-spacing:-.025em;text-wrap:balance}.lp-head p{color:var(--text-medium);font-size:1.04rem;line-height:1.6;text-wrap:pretty}.lp-head .eyebrow{margin-bottom:0}.lp-grid{--gap:1rem;display:flex;flex-wrap:wrap;gap:var(--gap)}.lp-grid>*{flex:1 1 calc((100% - (var(--cols, 3) - 1) * var(--gap)) / var(--cols, 3) - 0.1px);min-width:0}@media (max-width:1000px){.lp-grid>*{flex-basis:calc((100% - (var(--cols-md, 2) - 1) * var(--gap)) / var(--cols-md, 2) - 0.1px)}}@media (max-width:600px){.lp-grid>*{flex-basis:calc((100% - (var(--cols-sm, 1) - 1) * var(--gap)) / var(--cols-sm, 1) - 0.1px)}}.lp-nav{flex-wrap:wrap}.lp-skip{position:absolute;left:-9999px;top:.6rem;z-index:60;padding:.55rem .9rem;border-radius:8px;background:var(--brand-dark);color:var(--on-brand);font-weight:700}.lp-skip:focus{left:.8rem}.lp-nav .nav-inner{max-width:var(--lp-max)}.lp-nav-links{display:flex;align-items:center;gap:.2rem;margin-inline:auto}.lp-nav-links a{padding:.45rem .75rem;border-radius:8px;font-size:.93rem;font-weight:600;color:var(--text-medium)}.lp-nav-links a:hover{background:var(--brand-soft);color:var(--brand-dark)}.lp-nav-actions{display:flex;align-items:center;gap:.5rem}.lp-nav-actions .button{white-space:nowrap}.lp-menu-button{display:none;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer}.lp-menu-button svg{width:20px;height:20px}.lp-menu{display:none;flex-basis:100%;flex-direction:column;gap:.25rem;padding-top:.75rem;margin-top:.6rem;border-top:1px solid var(--border)}.lp-menu a{padding:.7rem .6rem;border-radius:8px;font-weight:600;color:var(--text)}.lp-menu a:hover{background:var(--brand-soft)}.lp-menu.open{display:flex}@media (max-width:920px){.lp-nav-links{display:none}.lp-menu-button{display:inline-flex}.lp-nav-actions .button.ghost{display:none}}@media (max-width:420px){.lp-nav .brand-mark{--brand-mark-height:26px;height:26px}.lp-nav-actions .button{padding:.5rem .75rem;font-size:.88rem}}.lp-hero{padding-top:4rem;padding-bottom:3.5rem}.lp-hero .hero-copy h1{text-wrap:balance}.lp-hero .hero-copy h1 .lp-line{display:block}.lp-badges{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.4rem}.lp-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:999px;background:var(--surface);border:1px solid var(--brand-line);color:var(--brand-dark);font-size:.82rem;font-weight:600}.lp-badge svg{width:14px;height:14px}.lp-trust{margin-top:1rem;font-size:.88rem;color:var(--muted)}.lp-proof{padding:0 var(--lp-gutter);margin-top:-1.5rem;position:relative;z-index:1}.lp-proof-grid{--gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.lp-proof-item{padding:1.1rem 1.25rem;display:grid;grid-gap:.2rem;gap:.2rem;align-content:start;background:var(--surface)}.lp-proof-item strong{font-size:.98rem;letter-spacing:-.01em}.lp-proof-item span{font-size:.85rem;color:var(--text-medium);line-height:1.45}@media (max-width:600px){.lp-proof-item{padding:.9rem .95rem}.lp-proof-item strong{font-size:.92rem}.lp-proof-item span{font-size:.8rem}}.lp-tablist{display:flex;gap:.35rem;padding:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:1.6rem;overflow-x:auto;scrollbar-width:none}.lp-tablist::-webkit-scrollbar{display:none}.lp-tab{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1rem;border:0;border-radius:10px;background:transparent;color:var(--text-medium);font:inherit;font-size:.95rem;font-weight:600;white-space:nowrap;cursor:pointer}.lp-tab:hover{background:var(--bg);color:var(--text)}.lp-tab[aria-selected=true]{background:var(--brand);color:var(--on-brand)}.lp-tab:focus-visible{outline:2px solid var(--brand-dark);outline-offset:2px}.lp-tab .lp-tab-icon{width:22px;height:22px;border-radius:6px;flex-shrink:0}.lp-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-gap:2.5rem;gap:2.5rem;align-items:start}.lp-panel[hidden]{display:none}.lp-panel-copy{display:grid;grid-gap:.9rem;gap:.9rem;align-content:start}.lp-panel-copy h3{font-size:clamp(1.3rem,2.4vw,1.6rem);line-height:1.2;letter-spacing:-.02em;text-wrap:balance}.lp-panel-copy>p{color:var(--text-medium);line-height:1.6}.lp-checks{display:grid;grid-gap:.6rem;gap:.6rem}.lp-checks li{display:grid;grid-template-columns:22px minmax(0,1fr);grid-gap:.6rem;gap:.6rem;align-items:start;font-size:.95rem;line-height:1.5}.lp-check{display:grid;place-items:center;width:20px;height:20px;margin-top:1px;border-radius:999px;background:var(--plan-soft,var(--brand-soft));color:var(--plan-ink,var(--brand-dark))}.lp-check svg{width:12px;height:12px}.lp-plan-chip{justify-self:start}.lp-panel-cta{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:.4rem}@media (max-width:920px){.lp-panel{grid-template-columns:minmax(0,1fr);gap:1.6rem}}.lp-shot{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;min-width:0}.lp-shot-bar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.8rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);font-size:.85rem}.lp-shot-bar strong{font-size:.95rem}.lp-shot-body{padding:.8rem 1rem;display:grid;grid-gap:.5rem;gap:.5rem}.lp-shot-caption{padding:.65rem 1rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--muted)}.lp-roster-row{display:flex;align-items:center;gap:.6rem;padding:.35rem 0}.lp-roster-row+.lp-roster-row{border-top:1px solid var(--border)}.lp-roster-row .student{flex:1 1;min-width:0}.lp-roster-row .status-picker{gap:.3rem}.lp-roster-row .status-button{width:62px;padding:.3rem .2rem;font-size:.7rem;cursor:default}.lp-autosave{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--present-ink);font-weight:600}.lp-grade{width:100%;border-collapse:collapse;font-size:.82rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lp-grade td,.lp-grade th{padding:.45rem .5rem;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.lp-grade td:first-child,.lp-grade th:first-child{text-align:left;white-space:normal}.lp-grade thead th{font-size:.72rem;color:var(--text-medium);font-weight:600;background:var(--bg)}.lp-grade thead th small{display:block;font-weight:500;color:var(--muted)}.lp-grade td.final{font-weight:700;background:var(--bg)}.lp-grade td.low{color:var(--error)}.lp-grade tr:last-child td{border-bottom:0}.lp-phone{width:min(320px,100%);margin:0 auto;border:1px solid var(--border-strong);border-radius:30px;padding:10px;background:var(--surface);box-shadow:var(--shadow-lg)}.lp-phone-screen{border-radius:22px;overflow:hidden;border:1px solid var(--border);background:var(--bg)}.lp-phone-top{background:var(--brand);color:var(--on-brand);padding:.9rem 1rem .8rem;display:grid;grid-gap:.1rem;gap:.1rem}.lp-phone-top strong{font-size:1rem}.lp-phone-top span{font-size:.78rem;opacity:.9}.lp-phone-body{padding:.7rem;display:grid;grid-gap:.5rem;gap:.5rem}.lp-tile{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.65rem .75rem;display:grid;grid-gap:.15rem;gap:.15rem}.lp-tile small{font-size:.72rem;color:var(--text-medium);font-weight:600}.lp-tile b{font-size:1.15rem;letter-spacing:-.01em}.lp-tile span{font-size:.76rem;color:var(--muted)}.lp-tiles{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem}.lp-msg{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.65rem .75rem;font-size:.8rem;line-height:1.45;display:grid;grid-gap:.3rem;gap:.3rem}.lp-msg .meta{display:flex;justify-content:space-between;gap:.5rem;color:var(--muted);font-size:.72rem}.lp-dash{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.5rem;gap:.5rem}.lp-dash .lp-tile b{font-size:1.25rem}.lp-meter{height:6px;border-radius:999px;background:var(--brand-soft);overflow:hidden;margin-top:.25rem}.lp-meter i{display:block;height:100%;background:var(--brand);border-radius:inherit}.lp-list-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.82rem;padding:.45rem 0}.lp-list-row+.lp-list-row{border-top:1px solid var(--border)}.lp-list-row .who{min-width:0}.lp-list-row .who strong{display:block;font-size:.85rem}.lp-list-row .who span{color:var(--muted);font-size:.75rem}@media (max-width:480px){.lp-dash{grid-template-columns:1fr 1fr}}.lp-step{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.3rem;display:grid;grid-gap:.5rem;gap:.5rem;align-content:start}.lp-step .step-num{margin-bottom:.2rem}.lp-step strong{font-size:1.02rem}.lp-step p{color:var(--text-medium);font-size:.93rem;line-height:1.55}.lp-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-gap:3rem;gap:3rem;align-items:start}.lp-point{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.2rem;display:grid;grid-gap:.35rem;gap:.35rem;align-content:start}.lp-point strong{font-size:.98rem;letter-spacing:-.01em}.lp-point p{color:var(--text-medium);font-size:.92rem;line-height:1.55}@media (max-width:920px){.lp-split{grid-template-columns:minmax(0,1fr);gap:1.6rem}}[data-plan=aula]{--plan:var(--brand);--plan-ink:var(--brand-dark);--plan-soft:var(--brand-soft);--plan-line:var(--brand-line)}[data-plan=conecta]{--plan:var(--accent);--plan-ink:var(--accent-ink);--plan-soft:var(--accent-soft);--plan-line:var(--accent-line)}[data-plan=escuela]{--plan:var(--brand-orange);--plan-ink:var(--brand-orange-ink);--plan-soft:var(--brand-orange-soft);--plan-line:var(--brand-orange-tint)}[data-plan=red]{--plan:var(--brand-coral);--plan-ink:var(--brand-coral-ink);--plan-soft:var(--brand-coral-soft);--plan-line:var(--brand-coral-tint)}.lp-plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1rem;gap:1rem;align-items:stretch}@media (max-width:1080px){.lp-plans{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.lp-plans{grid-template-columns:minmax(0,1fr)}}.lp-plan{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;min-width:0}.lp-plan.featured{border-color:var(--plan);box-shadow:0 0 0 1px var(--plan),var(--shadow-lg)}.lp-plan-head{padding:1.2rem 1.25rem 1.05rem;background:var(--plan-soft);border-bottom:1px solid var(--plan-line);display:grid;grid-gap:.45rem;gap:.45rem}.lp-plan-name{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.lp-plan-name h3{font-size:1.35rem;letter-spacing:-.02em;color:var(--plan-ink)}.lp-plan-badge{font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;background:var(--surface);color:var(--plan-ink);border:1px solid var(--plan-line);white-space:nowrap}.lp-plan-tag{font-size:.88rem;color:var(--text-medium);line-height:1.45}.lp-plan-price{display:grid;grid-gap:.15rem;gap:.15rem;margin-top:.2rem}.lp-plan-price .amount{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .4rem}.lp-plan-price .amount small{flex-basis:100%;font-size:.8rem;font-weight:600;color:var(--text-medium)}.lp-plan-price .amount b{font-size:1.85rem;letter-spacing:-.02em;line-height:1.1}.lp-plan-price .amount .unit{font-size:.9rem;font-weight:600;color:var(--text-medium)}.lp-plan-price .note{font-size:.82rem;color:var(--text-medium);line-height:1.4}.lp-plan-body{padding:1.1rem 1.25rem 1.25rem;display:grid;grid-gap:.9rem;gap:.9rem;align-content:start;flex:1 1}.lp-plan-who{font-size:.83rem;color:var(--text-medium)}.lp-plan-who b{color:var(--text)}.lp-plan .lp-checks li{font-size:.88rem}.lp-plan-foot{margin-top:auto;padding:0 1.25rem 1.25rem}.lp-plan-foot .button{width:100%}.lp-plan[data-plan=conecta] .lp-plan-foot .button:not(.ghost){background:var(--accent);color:var(--on-accent)}.lp-plan[data-plan=conecta] .lp-plan-foot .button:not(.ghost):hover{background:var(--accent-dark)}.lp-price-notes{margin-top:1.2rem;padding:1.1rem 1.3rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.lp-price-notes h3{font-size:.95rem;margin-bottom:.6rem}.lp-price-notes ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.5rem 2rem;gap:.5rem 2rem}.lp-price-notes li{position:relative;padding-left:1.1rem;font-size:.88rem;line-height:1.5;color:var(--text-medium)}.lp-price-notes li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:999px;background:var(--brand)}@media (max-width:760px){.lp-price-notes ul{grid-template-columns:minmax(0,1fr)}}.lp-compare-wrap{margin-top:2.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.lp-compare{width:100%;min-width:680px;border-collapse:collapse;font-size:.88rem}.lp-compare td,.lp-compare th{padding:.7rem .9rem;border-bottom:1px solid var(--border);text-align:center;vertical-align:middle}.lp-compare .feat{text-align:left;width:34%;font-weight:500;background:var(--surface)}.lp-compare thead th{background:var(--surface);font-size:.9rem;font-weight:700}.lp-compare thead th span{display:block;font-size:.75rem;font-weight:600;color:var(--muted)}.lp-compare thead th[data-plan]{color:var(--plan-ink)}.lp-compare tr.lp-group td{background:var(--bg);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-medium);text-align:left}@media (max-width:760px){.lp-compare{min-width:600px;font-size:.82rem}.lp-compare td,.lp-compare th{padding:.6rem .55rem}.lp-compare .feat{position:-webkit-sticky;position:sticky;left:0;z-index:1;width:9.5rem;min-width:9.5rem;box-shadow:1px 0 0 var(--border)}.lp-compare tr.lp-group td span{position:-webkit-sticky;position:sticky;left:.55rem}}.lp-compare .yes{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:999px;background:var(--plan,var(--brand));color:var(--on-brand)}.lp-compare .yes svg{width:13px;height:13px}.lp-compare .no{color:var(--border-strong);font-weight:700}.lp-compare .txt{font-size:.8rem;color:var(--text-medium);line-height:1.35}.lp-compare tbody tr:last-child>*{border-bottom:0}.lp-price-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem;margin-top:1.5rem}@media (max-width:860px){.lp-price-tables{grid-template-columns:minmax(0,1fr)}}.lp-price-table{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.lp-rate-head{padding:1.3rem 1.3rem 1.1rem}.lp-rate-eyebrow{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-800)}.lp-rate-from{display:flex;align-items:baseline;flex-wrap:wrap;gap:.4rem;margin:.45rem 0 .25rem}.lp-rate-from strong{font-size:2rem;line-height:1.1;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lp-rate-desde,.lp-rate-unit{font-size:.9rem;color:var(--text-medium)}.lp-rate-condition{margin:0;font-size:.86rem;color:var(--text-medium)}.lp-price-table td{vertical-align:middle}.lp-rate-label{display:block;font-weight:600;color:var(--text)}.lp-rate-sub{display:block;font-size:.75rem;color:var(--text-soft);font-weight:400}.lp-price-table td.num b{display:block;font-size:1rem}.lp-rate-notes{list-style:none;margin:auto 0 0;padding:.95rem 1.3rem 1.15rem;border-top:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;gap:.4rem;font-size:.84rem;color:var(--text-medium)}.lp-rate-notes li{position:relative;padding-left:1.4rem;line-height:1.4}.lp-rate-notes li:before{content:"";position:absolute;left:0;top:.15rem;width:.95rem;height:.95rem;border-radius:50%;background:var(--teal-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f6b66' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center /70% no-repeat}.lp-price-table table{width:100%;border-collapse:collapse;font-size:.86rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lp-price-table td,.lp-price-table th{padding:.7rem 1.3rem;border-top:1px solid var(--border);text-align:left}.lp-price-table td.num,.lp-price-table th.num{text-align:right;white-space:nowrap}.lp-price-table thead th{background:var(--bg);font-size:.75rem;color:var(--text-medium);font-weight:600}.lp-soon{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:1rem 1.1rem;display:grid;grid-gap:.35rem;gap:.35rem;align-content:start;background:var(--surface)}.lp-soon strong{font-size:.96rem}.lp-soon p{font-size:.88rem;color:var(--text-medium);line-height:1.5}.lp-faq-tools{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1.2rem}.lp-faq-search{position:relative;flex:1 1 260px;min-width:0}.lp-faq-search input{width:100%;height:44px;padding:0 .9rem 0 2.4rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);font:inherit;font-size:.95rem;color:var(--text)}.lp-faq-search input:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}.lp-faq-search svg{position:absolute;left:.8rem;top:13px;width:18px;height:18px;color:var(--muted);pointer-events:none}.lp-faq-cats{display:flex;flex-wrap:wrap;gap:.4rem}.lp-faq-cat{border:1px solid var(--border);background:var(--surface);color:var(--text-medium);border-radius:999px;padding:.45rem .9rem;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}.lp-faq-cat:hover{border-color:var(--brand);color:var(--brand-dark)}.lp-faq-cat[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.lp-faq-groups{display:grid;grid-gap:1.8rem;gap:1.8rem}.lp-faq-group[hidden]{display:none}.lp-faq-group h3{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-medium);margin-bottom:.7rem}.lp-faq-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.5rem;gap:.5rem;align-items:start}@media (max-width:860px){.lp-faq-list{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.lp-faq-item summary{padding:.85rem .95rem;font-size:.95rem}}.lp-faq-item{background:var(--surface);border:1px solid var(--border);border-radius:12px}.lp-faq-item[hidden]{display:none}.lp-faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.1rem;font-weight:650;line-height:1.4}.lp-faq-item summary::-webkit-details-marker{display:none}.lp-faq-item summary:after{content:"";flex-shrink:0;width:10px;height:10px;margin-top:.35rem;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s ease}.lp-faq-item[open] summary:after{transform:rotate(-135deg);margin-top:.6rem}.lp-faq-item summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:12px}.lp-faq-item .answer{padding:0 1.1rem 1.1rem;color:var(--text-medium);line-height:1.6;font-size:.95rem;max-width:75ch}.lp-faq-empty{color:var(--muted);padding:1rem 0}.lp-faq-empty a{color:var(--brand-dark);text-decoration:underline;text-underline-offset:2px}.lp-cta{background:var(--brand);color:var(--on-brand);border-radius:20px;padding:3rem 2rem;text-align:center;display:grid;grid-gap:.8rem;gap:.8rem;justify-items:center}.lp-cta h2{font-size:clamp(1.5rem,3vw,2.2rem);letter-spacing:-.02em;text-wrap:balance}.lp-cta p{opacity:.95;max-width:56ch;line-height:1.6}.lp-cta .lp-cta-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:.6rem}.lp-cta .button{background:var(--surface);color:var(--brand-dark)}.lp-cta .button:hover{background:var(--brand-soft)}.lp-cta .button.accent{background:var(--accent);color:var(--on-accent)}.lp-cta .button.accent:hover{background:var(--accent-dark)}.lp-cta .button.ghost{background:transparent;color:var(--on-brand);border:1.5px solid var(--on-brand)}.lp-cta .button.ghost:hover{background:var(--brand-dark);color:var(--on-brand)}.lp-contact{font-size:.92rem;opacity:.95;margin-top:.3rem}.lp-contact a{color:inherit;text-decoration:underline;text-underline-offset:2px;font-weight:600}.lp-legal-main{padding-top:3rem}.lp-legal-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:2rem;gap:2rem;max-width:1120px;margin:0 auto}.lp-legal-aside{align-self:start;min-width:0}.lp-legal-toc{font-size:.86rem;line-height:1.45}.lp-legal-toc-title{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin-bottom:.55rem}.lp-legal-toc ol{list-style:none;padding:0;margin:0;display:grid;grid-gap:.35rem;gap:.35rem}.lp-legal-toc a{color:var(--text-medium);text-decoration:none}.lp-legal-toc a:hover{color:var(--brand-dark);text-decoration:underline;text-underline-offset:2px}.lp-legal-toc-other{margin-top:1rem;color:var(--text-medium)}.lp-legal-toc-other a{color:var(--brand-dark)}@media (min-width:1000px){.lp-legal-layout{grid-template-columns:250px minmax(0,1fr);gap:3.5rem}.lp-legal-toc{position:-webkit-sticky;position:sticky;top:88px;max-height:calc(100vh - 110px);overflow:auto;padding-right:.5rem}}.lp-legal{max-width:72ch;min-width:0;display:grid;grid-gap:.9rem;gap:.9rem;line-height:1.65}.lp-legal h1{font-size:clamp(1.7rem,3.4vw,2.3rem);letter-spacing:-.025em}.lp-legal h2{font-size:1.15rem;margin-top:1.2rem;letter-spacing:-.01em}.lp-legal h3{font-size:.98rem;margin-top:.5rem;color:var(--text)}.lp-legal dd,.lp-legal li,.lp-legal p{color:var(--text-medium)}.lp-legal ul{list-style:disc;padding-left:1.3rem;display:grid;grid-gap:.45rem;gap:.45rem}.lp-legal a{color:var(--brand-dark);text-decoration:underline;text-underline-offset:2px}.lp-legal-head{display:grid;grid-gap:.4rem;gap:.4rem}.lp-legal-kicker{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-dark)}.lp-legal-updated{font-size:.85rem;color:var(--muted)}.lp-legal-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.3rem}.lp-legal-print{font:inherit;font-size:.85rem;font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.45rem .95rem;cursor:pointer}.lp-legal-print:hover{border-color:var(--brand);color:var(--brand-dark)}.lp-legal-other{font-size:.85rem;font-weight:600}.lp-legal-summary{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:14px;padding:1.1rem 1.3rem;display:grid;grid-gap:.5rem;gap:.5rem}.lp-legal-summary h2{margin-top:0}.lp-legal-summary-note{font-size:.82rem;color:var(--muted)}.lp-legal-section{scroll-margin-top:84px;display:grid;grid-gap:.75rem;gap:.75rem}.lp-legal-annex{border-top:2px solid var(--border);padding-top:1rem;margin-top:1rem}.lp-legal-note{border-left:3px solid var(--accent);background:var(--bg);padding:.75rem 1rem;border-radius:0 10px 10px 0}.lp-legal-defs{display:grid;grid-gap:0;gap:0;margin:0}.lp-legal-defs>div{display:grid;grid-template-columns:minmax(150px,.38fr) 1fr;grid-gap:.2rem 1rem;gap:.2rem 1rem;padding:.55rem 0;border-top:1px solid var(--border)}.lp-legal-defs dt{font-weight:600;color:var(--text)}.lp-legal-defs dd{margin:0}.lp-legal-table{width:100%;border-collapse:collapse;font-size:.9rem}.lp-legal-table td,.lp-legal-table th{text-align:left;vertical-align:top;padding:.5rem .6rem;border-top:1px solid var(--border)}.lp-legal-table th{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.lp-legal-contact{list-style:none;padding:.9rem 1.1rem;border:1px solid var(--border);border-radius:12px;display:grid;grid-gap:.4rem;gap:.4rem}.lp-legal-foot{font-size:.85rem;color:var(--muted);border-top:1px solid var(--border);padding-top:1rem;margin-top:1rem}@media (max-width:640px){.lp-legal-defs>div{grid-template-columns:1fr;gap:.15rem}.lp-legal-table td:last-child,.lp-legal-table th:last-child{display:none}}@media print{.lp-footer,.lp-legal-actions,.lp-legal-aside,.lp-nav{display:none!important}.lp-legal-layout{display:block;max-width:none}.lp-legal{max-width:none}.lp-legal-section{page-break-inside:auto;break-inside:auto}.lp-legal h2{page-break-after:avoid;break-after:avoid}}.lp-footer{border-top:1px solid var(--border);background:var(--surface);padding:3rem var(--lp-gutter) 2rem}.lp-footer-grid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(4,minmax(0,1fr));grid-gap:2rem;gap:2rem}.lp-footer-brand{display:grid;grid-gap:.8rem;gap:.8rem;align-content:start}.lp-footer-brand p{color:var(--text-medium);font-size:.9rem;line-height:1.55;max-width:32ch}.lp-footer h4{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.7rem}.lp-footer ul{display:grid;grid-gap:.45rem;gap:.45rem}.lp-footer a{color:var(--text-medium);font-size:.9rem}.lp-footer a:hover{color:var(--brand-dark)}.lp-footer-legal{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--border);font-size:.82rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}@media (max-width:860px){.lp-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-footer-brand{grid-column:1/-1}}@media (max-width:600px){:root{--lp-gutter:1rem}.lp-section{padding-block:3.2rem}.hero{padding-inline:var(--lp-gutter)}.lp-hero .hero-actions{display:grid}.lp-hero .hero-actions .button{width:100%}.lp-cta{padding:2.2rem 1.2rem;border-radius:16px}.lp-cta .lp-cta-actions{display:grid;width:100%}}@media (prefers-reduced-motion:reduce){.lp-faq-item summary:after{transition:none}}@media (max-width:600px){.lp-tablist{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.lp-tab{padding:.65rem .5rem;font-size:.9rem}.lp-roster-row .status-button:not(.active){display:none}.lp-roster-row .status-button{width:auto;min-width:74px;padding:.3rem .55rem}}.lp-shot-scroll{overflow-x:auto}.centered{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem;background:linear-gradient(180deg,var(--brand-soft) 0,var(--bg) 60%)}.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;box-shadow:var(--shadow)}.auth-card h1{font-size:1.4rem;margin-top:.5rem}.auth-card .intro{color:var(--text-medium);font-size:.95rem;margin-bottom:.5rem}.auth-card label{font-size:.85rem;font-weight:600;color:var(--text-medium)}.auth-card .button{margin-top:.5rem}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}.field-row>div{display:flex;flex-direction:column;gap:.75rem}.field-row>*{min-width:0}.password-field{position:relative;display:block;width:100%}.password-field input{padding-right:2.75rem}.password-field input::-ms-clear,.password-field input::-ms-reveal{display:none}.password-toggle{position:absolute;top:50%;right:.3rem;transform:translateY(-50%);width:2.15rem;height:2.15rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .12s ease,background-color .12s ease}@media (hover:hover){.password-toggle:hover:not(:disabled){color:var(--brand);background:var(--brand-soft)}}.password-toggle[aria-pressed=true]{color:var(--brand)}.password-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.password-toggle:disabled{cursor:default;opacity:.5}.contact-phone .password-field{flex:0 1 200px}.auth-card .hint{font-size:.8rem;color:var(--muted);margin-top:-.25rem}.auth-alt{font-size:.85rem;color:var(--text-medium);text-align:center;margin-top:.5rem}.auth-alt a{color:var(--brand);font-weight:600}.linklike{background:none;border:none;padding:0;color:var(--brand);font:inherit;font-weight:600;cursor:pointer}.linklike:hover{text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.onboarding-stack{width:100%;max-width:560px;display:flex;flex-direction:column;gap:1.25rem}.auth-card.onboarding{max-width:560px;padding:2.5rem;gap:1.5rem;border-radius:16px;animation:onboarding-in .25s ease-out}@keyframes onboarding-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.onboarding-head{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.onboarding-head .brand{justify-content:center;margin-bottom:.35rem}.onboarding-head .hello{font-size:.95rem;font-weight:600;color:var(--brand)}.auth-card.onboarding h1{font-size:clamp(1.6rem,4.5vw,2rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-top:0}.role-picker{border:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;grid-gap:.9rem;gap:.9rem}.role-option{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;min-height:176px;justify-content:flex-start;background:var(--surface);border:2px solid var(--border);border-radius:16px;padding:1.5rem 1rem;cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease}.role-option:hover{border-color:var(--brand-line);transform:translateY(-2px);box-shadow:var(--shadow)}.role-option:active{transform:translateY(0) scale(.98)}.role-option[aria-pressed=true],.role-option[aria-pressed=true]:hover{border-color:var(--brand);background:var(--brand-soft);transform:none;box-shadow:0 0 0 4px var(--brand-ring-soft)}.role-option:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.role-check{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--brand);color:var(--on-brand);opacity:0;transform:scale(.5);transition:opacity .18s ease-out,transform .18s ease-out}.role-option[aria-pressed=true] .role-check{opacity:1;transform:scale(1)}.role-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--brand-soft);color:var(--brand);transition:background .15s ease}.role-option[aria-pressed=true] .role-icon{background:var(--surface)}.role-option strong{font-size:1.05rem;color:var(--text)}.role-option .role-text{font-size:.85rem;color:var(--text-medium);line-height:1.4}.role-picker:has([aria-pressed=true]) .role-option[aria-pressed=false] .role-text,.role-picker:has([aria-pressed=true]) .role-option[aria-pressed=false] strong{color:var(--muted)}.role-picker:has([aria-pressed=true]) .role-option[aria-pressed=false] .role-icon{color:var(--muted)}.kind-picker{border:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.6rem;gap:.6rem}.kind-option{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem;background:var(--surface);border:2px solid var(--border);border-radius:14px;padding:.85rem .6rem .9rem;cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease}.kind-option:hover{border-color:var(--brand-line);transform:translateY(-1px)}.kind-option:active{transform:scale(.98)}.kind-option:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.kind-option[aria-pressed=true],.kind-option[aria-pressed=true]:hover{border-color:var(--brand);background:var(--brand-soft);transform:none;box-shadow:0 0 0 4px var(--brand-ring-soft)}.kind-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--brand-soft);color:var(--brand)}.kind-option[aria-pressed=true] .kind-icon{background:var(--surface)}.kind-option strong{font-size:1rem;color:var(--text)}.kind-option .kind-text{font-size:.78rem;color:var(--text-medium);line-height:1.35}.kind-picker:has([aria-pressed=true]) .kind-option[aria-pressed=false] .kind-icon,.kind-picker:has([aria-pressed=true]) .kind-option[aria-pressed=false] .kind-text,.kind-picker:has([aria-pressed=true]) .kind-option[aria-pressed=false] strong{color:var(--muted)}.role-picker>.onboarding-question{grid-column:1/-1;padding:0;margin-bottom:.1rem;font-size:.95rem;font-weight:600;color:var(--text)}@media (max-width:460px){.kind-picker{grid-template-columns:1fr}.kind-option{flex-direction:row;text-align:left;gap:.75rem;padding:.7rem .85rem}.kind-option .kind-text{flex:1 1}}.school-field{display:flex;flex-direction:column;gap:.5rem}.school-field .school-label{font-weight:600}.auth-card.onboarding label,.school-field .school-label{font-size:.95rem;color:var(--text)}.auth-card.onboarding input{padding:.85rem 1rem;font-size:1.05rem}.auth-card.onboarding .hint{margin-top:0}.auth-card.onboarding input.invalid{border-color:var(--error)}.auth-card.onboarding .button{min-height:54px;font-size:1.1rem;font-weight:700;border-radius:12px}.auth-card.onboarding .button:not(:disabled){box-shadow:0 8px 20px var(--brand-glow)}.auth-card.onboarding .button:disabled{background:var(--border);color:var(--text-medium);opacity:1}@media (max-width:520px){.auth-card.onboarding{padding:1.5rem 1.25rem}.auth-card.onboarding h1{font-size:1.45rem}.role-picker{grid-template-columns:1fr}.role-option{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon title" "icon text";grid-column-gap:.85rem;column-gap:.85rem;grid-row-gap:.15rem;row-gap:.15rem;align-items:center;text-align:left;min-height:0;padding:1rem 3rem 1rem 1.1rem}.role-option .role-icon{grid-area:icon;width:44px;height:44px}.role-option strong{grid-area:title;align-self:end}.role-option .role-text{grid-area:text;align-self:start}.role-check{top:50%;transform:translateY(-50%) scale(.5)}.role-option[aria-pressed=true] .role-check{transform:translateY(-50%) scale(1)}}@media (prefers-reduced-motion:reduce){.auth-card.onboarding{animation:none}.role-check,.role-icon,.role-option{transition:none}.role-option:active,.role-option:hover{transform:none}}.main section.setup-guide{gap:.9rem}.guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.setup-guide .guide-head h2{font-size:1.15rem;margin:0}.guide-head .muted{margin-top:.15rem}.guide-bar{height:8px;border-radius:999px;background:var(--accent-soft);overflow:hidden}.guide-bar span{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .3s ease}.guide-steps{display:flex;flex-direction:column;gap:.3rem;margin:0;padding:0}.guide-step{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-column-gap:.85rem;column-gap:.85rem;padding:.55rem .75rem;border-radius:12px}.guide-step.current{background:var(--accent-soft);padding:.9rem .75rem}.guide-num{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-weight:700;font-size:.95rem;background:var(--bg);border:1.5px solid var(--border);color:var(--text-soft)}.guide-step.current .guide-num{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.guide-step.done .guide-num{background:var(--success);border-color:var(--success)}.guide-text strong{font-size:.95rem;color:var(--text-soft);font-weight:600}.guide-step.current .guide-text strong{font-size:1.05rem;color:var(--text);font-weight:700}.guide-step.done .guide-text strong,.guide-text p{color:var(--text-medium)}.guide-text p{font-size:.9rem;margin-top:.15rem;line-height:1.45}.guide-cta{min-height:46px;padding:.6rem 1.3rem;white-space:nowrap}.guide-done-label{font-size:.85rem;font-weight:600;color:var(--success-ink)}@media (max-width:640px){.guide-step.current{grid-template-columns:auto 1fr;row-gap:.7rem}.guide-step.current .guide-cta{grid-column:1/-1;width:100%}}input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:.6rem .75rem;color:var(--text);font-size:1rem;font-family:inherit}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;padding:0;margin:0;flex:0 0 auto;border:1.5px solid var(--border-strong);border-radius:4px;background-color:var(--surface);background-position:50%;background-repeat:no-repeat;background-size:78%;vertical-align:middle;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}input[type=checkbox]:hover:not(:disabled){border-color:var(--brand)}input[type=checkbox]:checked{background-color:var(--brand);border-color:var(--brand);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}input[type=checkbox]:indeterminate{background-color:var(--brand);border-color:var(--brand);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E")}input[type=checkbox]:focus-visible{outline:2px solid var(--brand);outline-offset:2px}input[type=checkbox]:disabled{opacity:.5;cursor:default}input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}select{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:15px;border:1px solid var(--border);border-radius:9px;padding:.55rem 2.1rem .55rem .75rem;color:var(--text);font-size:.95rem;font-family:inherit;cursor:pointer}select:hover{border-color:var(--border-strong)}select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}select:disabled{background-color:var(--bg);color:var(--text-medium);cursor:default}.app{display:grid;grid-template-columns:236px 1fr;height:100vh;height:100dvh;overflow:hidden}.sidebar{display:flex;flex-direction:column;gap:1.5rem;padding:1.2rem 1rem;background:var(--sidebar-bg);color:var(--sidebar-ink);overflow-y:auto;overflow-x:hidden}.sidebar,.sidebar-mark{min-height:0;position:relative}.sidebar-mark{flex:1 1;margin:-1.5rem -1rem -1.2rem;overflow:hidden;container-type:size}@container (max-height: 74px){.sidebar-mark:after{display:none}}.sidebar-mark:after{content:"";position:absolute;left:0;bottom:0;height:min(100%,128px);aspect-ratio:191.49/184.85;background:url(/LogotipoNavbar.svg) no-repeat 0 100%;background-size:contain}.sidebar .groups{flex:0 0 auto}.sidebar-user{display:flex;align-items:center;gap:.55rem;margin:-1.2rem -1rem 0;padding:1.2rem 1rem .9rem;border-bottom:1px solid var(--sidebar-line);background:var(--sidebar-bg)}.icon-button{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-medium);cursor:pointer}.icon-button:hover{background:var(--bg);color:var(--text)}.icon-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sidebar nav{display:flex;flex-direction:column;gap:.2rem}.sidebar nav a{display:flex;align-items:center;gap:.65rem;padding:.6rem .8rem;border-radius:999px;font-size:.95rem;font-weight:600;color:var(--sidebar-ink);transition:background .15s ease,color .15s ease}.sidebar nav a svg{flex-shrink:0}.sidebar nav a.external .external-mark{margin-left:auto;opacity:.7}.sidebar nav a:hover{background:var(--sidebar-hover);color:var(--sidebar-ink)}.sidebar nav a.active,.sidebar nav a.active:hover{background:var(--sidebar-active-bg);color:var(--sidebar-active-ink);box-shadow:var(--shadow-sm)}.content{position:relative;display:flex;flex-direction:column;min-height:0;overflow-y:auto}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--brand-soft);color:var(--brand-dark);font-weight:700;font-size:.85rem}.user-info{line-height:1.25;min-width:0;flex:1 1}.user-info strong{display:block;font-size:.87rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-info span{display:block;font-size:.74rem;color:var(--muted)}.topbar{flex-wrap:wrap;gap:.75rem 1rem;flex-shrink:0;padding:1.5rem 1.75rem 0}.topbar,.topbar-left{display:flex;align-items:center}.topbar-left{min-width:0;flex:1 1 16rem}.topbar>.brand{flex-shrink:0}.topbar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-left:auto}.topbar-actions .button{height:38px;padding:.5rem .95rem;font-size:.9rem}.topbar-actions input,.topbar-actions select{width:auto;height:38px;font-size:.9rem;background-color:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.5rem .75rem}.topbar-actions select{padding-right:2.1rem}.topbar-left .back-link{margin-bottom:0}.page-title{min-width:0;line-height:1.5}.page-title h1{font-size:1.45rem;letter-spacing:-.02em}.main{flex:1 1;min-width:0;padding:1.75rem;display:flex;flex-direction:column;gap:1.5rem}.page-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.page-tools .button,.page-tools input,.page-tools select{height:42px}.page-tools input,.page-tools select{width:auto;background-color:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.55rem .75rem;font-size:.9rem;font-family:inherit;color:var(--text);box-shadow:var(--shadow)}.page-tools select{padding-right:2.1rem}.options{position:relative}.options-menu{position:absolute;right:0;top:calc(100% + .4rem);z-index:20;width:250px;display:flex;flex-direction:column;gap:.4rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem;box-shadow:var(--shadow-md)}.options-lessons .link-button{font-size:inherit}.options-field{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--text-medium)}.options-field select{font-size:.85rem;padding:.4rem 2rem .4rem .6rem}.main h1{font-size:1.6rem;letter-spacing:-.01em}.main h2{font-size:1.05rem;margin-bottom:.8rem}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:.85rem;gap:.85rem}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.metric .number{font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.metric .label{font-size:.85rem;color:var(--muted)}a.metric{display:block;color:inherit;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}a.metric:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}a.metric:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.list{display:flex;flex-direction:column;gap:.5rem}.list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem}.list li strong{font-size:.95rem}.chip{display:inline-block;background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;padding:.15rem .65rem;font-size:.78rem;font-weight:600;white-space:nowrap}.chip.success{background:var(--success-soft);color:var(--success-ink)}.chip.neutral{background:var(--bg);color:var(--text-medium)}.empty{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:2rem;text-align:center;color:var(--muted)}.groups{display:flex;flex-direction:column;gap:1.25rem}.group-title{padding:0 .7rem .3rem;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.sidebar nav a .chip{margin-left:auto;font-size:.65rem;padding:.05rem .45rem}.sidebar nav a.pending{color:var(--sidebar-ink-dim)}.sidebar nav a.pending:hover{color:var(--sidebar-ink)}.sidebar .icon-button:focus-visible,.sidebar nav a:focus-visible{outline:2px solid var(--sidebar-ink);outline-offset:2px}.button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sidebar .group-title{color:var(--sidebar-ink-dim)}.sidebar-user .avatar{background:var(--sidebar-active-bg);color:var(--sidebar-active-ink)}.sidebar .user-info strong{color:var(--sidebar-ink)}.sidebar .user-info span{color:var(--sidebar-ink-dim)}.sidebar-me{display:flex;align-items:center;gap:.55rem;flex:1 1;min-width:0;margin:-.35rem -.5rem;padding:.35rem .5rem;border-radius:999px;color:inherit;transition:background .15s ease}.sidebar-me:hover{background:var(--sidebar-hover)}.sidebar .icon-button{background:transparent;border-color:var(--sidebar-line);color:var(--sidebar-ink)}.sidebar .icon-button:hover,.sidebar nav a .chip.neutral{background:var(--sidebar-hover);color:var(--sidebar-ink)}.sidebar nav a.active .chip.neutral{background:var(--brand-soft);color:var(--brand-dark)}.context{line-height:1.25}.context strong{display:block;font-size:.95rem}.context span{display:block;font-size:.78rem;color:var(--muted)}.main section{display:flex;flex-direction:column;gap:.8rem}.main section h1,.main section h2{margin-bottom:0}.details{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:.85rem;gap:.85rem}.detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1.1rem}.detail dt{font-size:.78rem;color:var(--muted)}.detail dd{font-size:.95rem;font-weight:500}.form{display:flex;flex-direction:column;gap:.55rem;max-width:380px}.form label{font-size:.85rem;font-weight:600;color:var(--text-medium)}.terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:.85rem;gap:.85rem;margin-bottom:1rem}.term{gap:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem}.term,.term label{display:flex;flex-direction:column}.term label{gap:.2rem}.term span{font-size:.75rem;font-weight:600;color:var(--muted)}.term input{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:.45rem .6rem;font-size:.88rem;font-family:inherit;color:var(--text)}.term input:disabled{background:var(--bg);color:var(--text-medium);cursor:default}.terms-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.form .button{margin-top:.4rem;align-self:flex-start}.empty strong{display:block;color:var(--text-medium);margin-bottom:.35rem}.empty p{max-width:48ch;margin:0 auto}.empty .button{margin-top:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem}.card h2{font-size:.95rem;margin-bottom:.9rem}.attendance{display:grid;grid-template-columns:minmax(0,1fr) 268px;grid-gap:1rem;gap:1rem;align-items:start}@media (min-width:1341px){.attendance>.summary{position:-webkit-sticky;position:sticky;top:min(1rem,calc(100vh - var(--rail-h, 0px) - 1rem))}}.roster{padding:0;overflow:hidden}.pad{padding:1.5rem 1.2rem}.roster-head,.roster-row{display:grid;grid-template-columns:2.2rem minmax(150px,22rem) auto minmax(126px,1fr);align-items:center;grid-gap:.8rem;gap:.8rem;padding:.6rem 1.1rem}.roster-head{font-size:.78rem;font-weight:600;color:var(--text-medium);background:var(--bg);border-bottom:1px solid var(--border)}.roster-head .col-note,.roster-head .col-status{text-align:center}.roster-head .col-status{width:376px;padding-right:96px}.roster-head .col-note{width:126px}.roster-head .col-note,.roster-row .col-note{justify-self:end}.roster-row .col-status{width:376px}.roster-row{border-bottom:1px solid var(--border)}.roster-row:last-child{border-bottom:none}.roster-row:hover{background:var(--bg)}.roster-row.historical{opacity:.65}.col-num{font-size:.85rem;color:var(--muted);text-align:right}.student{display:flex;align-items:center;gap:.6rem;font-size:.93rem;min-width:0}.student>span:last-child{min-width:0;overflow-wrap:break-word}.student .avatar{width:30px;height:30px;font-size:.72rem;flex-shrink:0}.status-picker{display:flex;gap:.5rem}.status-button{width:88px;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.45rem .3rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted);font-family:inherit;font-size:.75rem;font-weight:500;line-height:1.2;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.status-button:disabled{cursor:default;opacity:.5}.status-button:not(:disabled):not(.active):hover{border-color:var(--text-medium);color:var(--text-medium)}.status-button.active:not(:disabled):hover{filter:brightness(.92)}.status-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.status-button.active{color:#fff;font-weight:600}.status-button.present.active{background:var(--present);border-color:var(--present)}.status-button.absent.active{background:var(--absent);border-color:var(--absent)}.status-button.late.active{background:var(--late);border-color:var(--late)}.status-button.excused-chip:not(.active){border-style:dashed}.status-button.excused-chip.active{background:var(--excused);border-color:var(--excused)}.note-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:126px;padding:.5rem .6rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text-medium);font-family:inherit;font-size:.82rem;cursor:pointer}.note-button:disabled{cursor:default;opacity:.5}.note-button:not(:disabled):hover{background:var(--bg);color:var(--text)}.note-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.note-button.has-note{border-color:var(--brand);color:var(--brand-dark);font-weight:600}.button.small{padding:.35rem .7rem;font-size:.8rem}.note-editor{grid-column:2/-1;padding-bottom:.5rem}.card>textarea,.note-editor textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:.5rem .7rem;font-family:inherit;font-size:.9rem;color:var(--text);resize:vertical}.card>textarea:focus,.note-editor textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.card>textarea{margin-bottom:.6rem}.card>.button.small{align-self:flex-start}.card,.summary{display:flex;flex-direction:column}.summary{gap:1rem}.donut-wrap{display:flex;flex-direction:column;align-items:center;gap:.9rem}.donut{width:130px;height:130px}.donut .slice{transition:stroke-dasharray .25s ease,stroke-dashoffset .25s ease}.slice.present{stroke:var(--present)}.slice.absent{stroke:var(--absent)}.slice.late{stroke:var(--late)}.slice.unmarked{stroke:var(--unmarked)}.donut-number{text-anchor:middle;font-size:1.6rem;font-weight:700;fill:var(--text)}.donut-caption{text-anchor:middle;font-size:.7rem;fill:var(--muted)}.legend{width:100%;display:flex;flex-direction:column;gap:.3rem}.legend li{display:flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--text-medium)}.legend strong{min-width:1.4rem;text-align:right;color:var(--text)}.dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.dot.present{background:var(--present)}.dot.absent{background:var(--absent)}.dot.late{background:var(--late)}.dot.unmarked{background:var(--unmarked)}.quick{display:flex;flex-direction:column;gap:.3rem}.quick-action{display:flex;align-items:center;gap:.55rem;width:100%;padding:.5rem .6rem;border:none;border-radius:9px;background:transparent;color:var(--text-medium);font-family:inherit;font-size:.85rem;text-align:left;cursor:pointer}.quick-action:not(:disabled):hover{background:var(--bg);color:var(--text)}.quick-action:disabled{cursor:default;opacity:.5}.quick-action:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.save-block{display:flex;flex-direction:column;gap:.35rem}.button.save{width:100%;padding:.75rem 1.1rem}.autosave{display:flex;align-items:center;justify-content:center;gap:.35rem;font-size:.8rem;color:var(--success)}.autosave.dirty{color:var(--late-ink)}.save-hint{font-size:.78rem;color:var(--muted);text-align:center}.save-hint.warn{color:var(--late-ink)}.day-list p{font-size:.85rem;color:var(--text-medium);line-height:1.45}.day-list p strong{color:var(--text)}.day-list h2+p{margin-bottom:.7rem}.day-list-source{display:flex;flex-direction:column;gap:.5rem}.day-list-line{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem .7rem;margin:0 0 .85rem;padding:.6rem .85rem;background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:10px;font-size:.88rem;line-height:1.4;color:var(--text)}.day-list-line-icon{display:inline-flex;flex-shrink:0;color:var(--brand-dark)}.day-list-line-text{flex:1 1 260px;min-width:0}.day-list-line .button{flex-shrink:0}.roster .day-list-line{margin:0 1.1rem .85rem}.day-list-line-text.short{display:none}@media (max-width:720px){.day-list-line-text.long{display:none}.day-list-line-text.short{display:inline}.day-list-line{gap:.4rem .55rem;padding:.45rem .7rem;font-size:.84rem}.roster .day-list-line{margin:0 .8rem .6rem}}.day-list-source+.day-list-source{margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--border)}.day-list-source .button{align-self:flex-start}.day-list-targets{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.8rem}.day-list-target{display:flex;align-items:flex-start;gap:.5rem;font-size:.85rem;line-height:1.35;color:var(--text);cursor:pointer}.day-list-target input{width:16px;height:16px;margin-top:2px;accent-color:var(--brand);flex-shrink:0}.day-list-target.taken{color:var(--text-medium)}.day-list-meta{color:var(--muted)}.day-list .autosave,.day-list .save-hint{justify-content:flex-start;text-align:left;margin-top:.55rem}.day-list .error{margin-top:.55rem}.metric-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.metric-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--brand-soft);color:var(--brand);flex-shrink:0}.metric .hint{font-size:.75rem;color:var(--muted);line-height:1.4}.metric.pending .number{color:var(--muted);font-weight:600}.courses{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:1rem;gap:1rem;align-items:start}.rail{display:flex;flex-direction:column;gap:1rem}.course-panel{padding:0;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.course-panel>.panel-head{padding:1.1rem 1.2rem;border-bottom:1px solid var(--border)}.course-head,.course-row{display:grid;grid-template-columns:minmax(190px,2fr) minmax(120px,1.1fr) minmax(130px,1.3fr) minmax(110px,1fr);align-items:center;grid-gap:.9rem;gap:.9rem;padding:.95rem 1.25rem}.course-head{background:var(--bg);padding-top:.72rem;padding-bottom:.72rem;font-size:.75rem;font-weight:500;color:var(--text-medium)}.course-head,.course-row{border-bottom:1px solid var(--border)}.course-row:last-child{border-bottom:none}.course-row:hover{background:var(--bg)}.course-cell{display:flex;flex-direction:column;min-width:0;line-height:1.35}.course-cell strong{font-size:.92rem;font-weight:600;overflow-wrap:break-word}.course-cell>span{font-size:.78rem;color:var(--muted)}.col-course,.col-students{display:flex;align-items:center;gap:.7rem;min-width:0}.col-icon{color:var(--muted);flex-shrink:0}.col-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.course-badge{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;flex-shrink:0}.row-action{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-medium);transition:background .15s ease,color .15s ease}.row-action:hover{background:var(--bg);color:var(--text)}.row-action:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.course-foot{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;padding:.8rem;border:none;border-top:1px solid var(--border);background:var(--surface);color:var(--text-medium);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.course-foot:hover{background:var(--bg);color:var(--text)}.course-foot:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.course-foot svg{transition:transform .15s ease}.course-foot .up{transform:rotate(180deg)}.course-panel>.panel-head h2{font-size:1.05rem}.back-link{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.4rem;font-size:.85rem;font-weight:600;color:var(--text-medium)}.back-link:hover{color:var(--text)}.back-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.class-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:1rem;gap:1rem}.class-card{display:flex;flex-direction:column;gap:.8rem;padding:1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:border-color .15s ease}.class-card:hover{border-color:var(--brand)}.class-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.class-card.orphan{border-style:dashed}.class-card.orphan .class-card-head strong{color:var(--text-medium)}.class-card-head{display:flex;align-items:center;gap:.7rem;min-width:0}.class-card-meta{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-medium)}.class-card-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.class-card-go{color:var(--muted)}.class-card:hover .class-card-go{color:var(--brand)}.class-card-head .class-card-go{margin-left:auto;flex-shrink:0}.picker-group-title{margin-top:.5rem;font-size:.8rem;font-weight:600;color:var(--text-medium)}.class-picker+.picker-group-title{margin-top:1.1rem}.slot-time{font-size:.75rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-medium);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.1rem .45rem;white-space:nowrap}.today-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .6rem;border:1px solid var(--border);border-radius:10px;font-size:.85rem;transition:background .15s ease,border-color .15s ease}.today-item:hover{background:var(--bg);border-color:var(--brand)}.today-item:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.today-item .when{color:var(--text-medium);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}.today-item .what{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-badge.tone-1{background:var(--tone-1-soft);color:var(--tone-1-ink)}.course-badge.tone-2{background:var(--tone-2-soft);color:var(--tone-2-ink)}.course-badge.tone-3{background:var(--tone-3-soft);color:var(--tone-3-ink)}.course-badge.tone-4{background:var(--tone-4-soft);color:var(--tone-4-ink)}.course-badge.tone-5{background:var(--tone-5-soft);color:var(--tone-5-ink)}.course-badge.tone-6{background:var(--tone-6-soft);color:var(--tone-6-ink)}.soon{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;border:1px dashed var(--border);border-radius:10px;padding:.8rem}.soon p{font-size:.82rem;color:var(--muted)}.quick-action .arrow{margin-left:auto;color:var(--muted);flex-shrink:0}@media (max-width:1340px){.attendance{grid-template-columns:1fr}.summary{flex-direction:row;flex-wrap:wrap}.summary>*{flex:1 1 240px}.save-block{justify-content:center}}@media (max-width:1300px){.courses{grid-template-columns:1fr}.rail{flex-direction:row;flex-wrap:wrap}.rail>*{flex:1 1 260px}}@media (max-width:1100px){.roster-head{display:none}.roster-row{grid-template-columns:1.8rem minmax(0,1fr);row-gap:.6rem;padding:.85rem .9rem}.student{grid-column:2}.col-note,.col-status,.note-editor{grid-column:1/-1}.roster-row .col-status{width:auto}.status-picker{justify-content:space-between}.status-button{width:auto;flex:1 1;min-width:0}.note-button{width:100%}}@media (max-width:1000px){.course-head{display:none}.course-row{grid-template-columns:minmax(0,1fr);row-gap:.45rem;padding:.85rem .9rem}}.strip-arrow{display:none}@media (max-width:720px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}.main .filter-bar .filter-field{flex:1 1 150px;min-width:0}.filter-field input[type=date]{width:100%}.main .filter-bar .filter-chips{margin-left:0;width:100%;flex-wrap:wrap}.sidebar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"cycle user" "nav nav";align-items:center;grid-gap:.7rem;gap:.7rem;padding:.7rem .9rem;border-bottom:1px solid var(--sidebar-line);min-width:0;overflow:visible}.sidebar-mark{display:none}.sidebar-user{grid-area:user;justify-self:end;margin:0;padding:0;border-bottom:none;background:transparent}.sidebar-user .user-info{display:none}.groups,.sidebar nav{flex-direction:row}.groups{grid-area:nav;align-items:center;gap:.75rem;min-width:0;overflow-x:auto;scrollbar-width:none}.groups::-webkit-scrollbar{display:none}.strip-arrow{display:grid;place-items:center;grid-area:nav;align-self:center;z-index:1;width:34px;height:34px;padding:0;border:0;border-radius:999px;background:var(--sidebar-active-bg);color:var(--sidebar-active-ink);box-shadow:0 0 0 6px var(--sidebar-bg);cursor:pointer}.strip-arrow.prev{justify-self:start}.strip-arrow.next{justify-self:end}.strip-arrow.prev svg{transform:rotate(90deg)}.strip-arrow.next svg{transform:rotate(-90deg)}.strip-arrow[hidden]{display:none}.group{display:flex;flex-shrink:0}.group-title{display:none}.sidebar nav a{white-space:nowrap}.main{padding:1.25rem 1.1rem}.topbar{padding:.75rem 1.1rem 0}.topbar-left{flex:1 1}.topbar>.brand{order:2}.topbar>.brand .brand-mark{height:30px}.topbar-actions{order:3;flex-basis:100%;margin-left:0}.topbar-actions:empty{display:none}.status-picker{flex-wrap:wrap;gap:.4rem}.status-button{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 0.2rem)}.page-tools{width:100%}.page-tools input,.page-tools select{flex:1 1 130px;min-width:0}.options{flex:1 1 100%}.options .button,.options-menu{width:100%}}.academics-editor select{padding-top:.45rem;padding-bottom:.45rem;font-size:.88rem}.editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.assign-rows{display:flex;flex-direction:column;gap:.5rem}.assign-row{display:grid;grid-template-columns:auto minmax(140px,1fr) minmax(180px,1.2fr) auto;align-items:center;grid-gap:.8rem;gap:.8rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.55rem .8rem}@keyframes assign-row-in{0%{opacity:0;transform:translateY(-6px)}}.assign-row.entering{animation:assign-row-in .2s ease-out}.chip-add:active{transform:scale(.96)}@media (prefers-reduced-motion:reduce){.assign-row.entering{animation:none}.chip-add:active{transform:none}.detail-card{animation:none}}.assign-row strong{font-size:.92rem}.assign-teacher{font-size:.88rem;color:var(--text-medium)}.assign-row .course-badge{width:34px;height:34px;border-radius:10px}.modal{width:min(460px,calc(100vw - 2rem));max-height:calc(100vh - 4rem);margin:auto;padding:0;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-modal);color:var(--text)}.modal::-webkit-backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal::backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-head{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--surface);display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 1.2rem .9rem;border-bottom:1px solid var(--border)}.modal-head>div{flex:1 1;min-width:0}.modal-head h2{font-size:1.05rem;margin-bottom:.15rem}.modal-head .muted{font-size:.85rem}.modal-head .icon-button{flex-shrink:0}.modal-body{padding:1.2rem}.modal.wide{width:min(620px,calc(100vw - 2rem))}.modal-foot{position:-webkit-sticky;position:sticky;bottom:0;display:flex;flex-direction:column;gap:.6rem;margin:.4rem -1.2rem -1.2rem;padding:.9rem 1.2rem;background:var(--surface);border-top:1px solid var(--border)}.notice-undo{display:flex;align-items:center;gap:.7rem}.offline-notice{display:flex;align-items:flex-start;gap:.6rem}.offline-notice>svg{flex-shrink:0;margin-top:.15rem}.offline-notice>div{display:grid;grid-gap:.3rem;gap:.3rem;flex:1 1;min-width:0}.offline-notice p{margin:0}.offline-notice .button{flex-shrink:0}.offline-notice p a{color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:2px}.offline-lists{display:grid;grid-gap:.6rem;gap:.6rem}.offline-notice.done{color:var(--text);background:var(--brand-soft);border-color:var(--brand-line)}.offline-notice.done>svg{color:var(--brand)}.notice-undo .button{margin-left:auto;flex-shrink:0}.student-file{display:flex;flex-direction:column;gap:1.4rem}.student-file section{display:flex;flex-direction:column;gap:.6rem}.student-file h3{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.student-file .muted{font-size:.88rem}.file-head{justify-content:space-between;gap:.75rem}.file-head,.file-row{display:flex;align-items:center}.file-row{gap:.7rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem}.file-row .course-badge{width:34px;height:34px;border-radius:10px}.file-row .course-cell{flex:1 1;min-width:0}.file-row.empty-row{border-style:dashed;background:var(--surface)}.file-field,.file-row.empty-row strong{color:var(--text-medium)}.file-field{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600}.file-field select{width:100%}.file-field input.invalid{border-color:var(--error);color:var(--error)}.avatar.lg{width:46px;height:46px;font-size:.95rem;flex-shrink:0}.file-open{border:none;background:none;padding:0;font-family:inherit;text-align:left;cursor:pointer;min-width:0}.file-open:hover strong{color:var(--brand-dark);text-decoration:underline}.file-open:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}.file-people{display:flex;flex-direction:column;gap:.4rem}.file-people li{display:flex;align-items:center;gap:.7rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.5rem .7rem}.file-people .course-badge{width:34px;height:34px;border-radius:10px}.file-people .course-cell{flex:1 1}.file-history{display:flex;flex-direction:column;gap:.25rem}.file-history li{display:flex;justify-content:space-between;gap:.75rem;font-size:.83rem;color:var(--muted);border-top:1px dashed var(--border);padding-top:.3rem}.file-add{display:flex;flex-direction:column;gap:.8rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem}.file-add .view-toggle{align-self:flex-start}.file-add .view-toggle button{width:auto;padding:0 .85rem;font-size:.85rem}.file-add .form{max-width:none;gap:.7rem}.file-add .form>label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:600;color:var(--text-medium)}.file-add .form input,.file-add .form select{width:100%}.modal-body .form{max-width:none;gap:.9rem}.modal-body .form>label{display:flex;flex-direction:column;gap:.3rem}.modal-body .form>label.check-line{flex-direction:row;align-items:center;gap:.5rem}.modal-body .form .check-line input[type=checkbox]{width:16px;height:16px;padding:0;margin:0;flex:0 0 auto}.modal-body .form input,.modal-body .form select,.modal-body .form textarea{width:100%;padding-top:.6rem;padding-bottom:.6rem;font-size:.95rem}.modal-body .form textarea{font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding-left:.7rem;padding-right:.7rem;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.5rem;margin-top:.3rem}.modal-actions .button{margin-top:0;align-self:auto}.promotion-all{display:flex;align-items:center;gap:.6rem;margin:.4rem 0 .8rem}.promotion-all label{font-weight:600;font-size:.92rem}.promotion-all select{max-width:16rem}.promotion-result ul{margin:.3rem 0 .6rem 1.2rem}.subject-card .course-badge{width:34px;height:34px;border-radius:10px;flex-shrink:0}.subject-card .course-cell{flex:1 1;min-width:0}.subject-card-meta{font-size:.85rem;color:var(--text-medium)}.subject-card-meta.warn{color:var(--warn);font-weight:500}.subject-card.off{background:var(--bg)}.subject-card.off .course-badge{opacity:.5}.subject-card.off .course-cell strong{color:var(--muted)}.subject-rename{display:flex;flex-direction:column;gap:.6rem}.subject-add{align-items:center;justify-content:center;flex-direction:row;gap:.5rem;min-height:96px;border-style:dashed;box-shadow:none;background:transparent;cursor:pointer;font:inherit;font-weight:600;color:var(--text-medium)}.subject-add:hover{color:var(--brand);background:var(--brand-soft)}.panel-empty{display:flex;flex-direction:column;align-items:center;gap:.45rem;text-align:center;padding:2.1rem 1.25rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.panel-empty-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:.25rem;border-radius:18px;background:var(--accent-soft);color:var(--accent-ink)}.panel-empty strong{font-size:1rem}.panel-empty p{font-size:.88rem;color:var(--muted);max-width:46ch}.panel-empty .picker-chips{justify-content:center;margin-top:.7rem}.panel-empty .button{margin-top:.7rem}.panel-empty .page-tools{margin-top:.7rem;justify-content:center;width:min(100%,480px)}.panel-empty .page-tools .button{margin-top:0}.panel-empty .page-tools input{flex:1 1 220px;min-width:0}.subject-picker{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.assign-empty{display:flex;align-items:center;gap:.8rem;min-height:52px;background:var(--surface);border:1px dashed var(--border);border-radius:10px;padding:.55rem .8rem}.assign-empty .course-badge{width:34px;height:34px;border-radius:10px;opacity:.7}.assign-empty>span:last-child{display:flex;flex-direction:column;line-height:1.35}.assign-empty strong{font-size:.92rem;color:var(--text-medium)}.assign-empty span span{font-size:.8rem;color:var(--muted)}.picker-label{font-size:.85rem;font-weight:600;color:var(--text-medium)}.picker-chips{display:flex;flex-wrap:wrap;gap:.45rem}.chip-add{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .9rem .4rem .4rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-family:inherit;font-size:.88rem;font-weight:500;cursor:pointer;transition:border-color .15s ease,color .15s ease,transform .1s ease}.chip-add-plus{display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);transition:background .15s ease,color .15s ease}.chip-add:hover{border-color:var(--brand);color:var(--brand-dark)}.chip-add:hover .chip-add-plus{background:var(--brand);color:var(--on-brand)}.chip-add:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.chip-add.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-dark)}.chip-add.on .chip-add-plus{background:var(--brand);color:var(--on-brand)}.chip-add.on:hover{border-color:var(--error);color:var(--error)}.chip-add.on:hover .chip-add-plus{background:var(--error);color:#fff}.schedule-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:.85rem;gap:.85rem}.schedule-day{display:flex;flex-direction:column;gap:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem}.schedule-day h3{font-size:.85rem}.slot-row{display:flex;flex-direction:column;gap:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.55rem .45rem}.slot-row.read{gap:.45rem;padding:.6rem .7rem;font-size:.88rem}.slot-read-top{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.slot-read-time{font-size:.78rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-medium);white-space:nowrap}.slot-read-subject{display:flex;align-items:center;gap:.55rem;min-width:0}.slot-read-subject strong{font-size:.9rem;font-weight:600;line-height:1.25;min-width:0;overflow-wrap:anywhere}.slot-read-subject .course-badge{width:28px;height:28px;border-radius:8px;flex:0 0 auto}.slot-read-subject .course-badge svg{width:16px;height:16px}.slot-head{display:flex;align-items:center;gap:.25rem}.slot-head select{flex:1 1;width:auto;min-width:0}.slot-head .icon-button{flex-shrink:0;width:28px;height:28px}.slot-times{display:flex;align-items:center;gap:.15rem}.slot-times select{flex:1 1;width:auto;min-width:0;padding:.4rem 1.05rem .4rem .3rem;font-size:.8rem;background-position:right .25rem center;background-size:11px}.slot-lessons{display:flex;align-items:center;justify-content:space-between;gap:.35rem;font-size:.78rem;color:var(--text-medium)}.slot-lessons select{width:auto;min-width:0;flex:0 0 auto;padding:.35rem 1.35rem .35rem .55rem;font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background-position:right .4rem center;background-size:11px}.slot-lessons-read{font-size:.75rem;color:var(--text-soft);white-space:nowrap}.enroll-roster{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.enroll-roster-head,.enroll-row{display:grid;grid-template-columns:2.2rem minmax(150px,1fr) auto;align-items:center;grid-gap:.8rem;gap:.8rem;padding:.7rem 1.1rem}.enroll-roster-head{padding-top:.55rem;padding-bottom:.55rem;background:var(--bg);font-size:.75rem;font-weight:500;color:var(--text-medium)}.enroll-roster-head,.enroll-row{border-bottom:1px solid var(--border)}.enroll-row:last-child{border-bottom:none}.enroll-row:hover{background:var(--bg)}.enroll-roster-head .num,.enroll-row .num{font-size:.85rem;color:var(--text-soft);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.enroll-name{display:flex;align-items:center;gap:.65rem;font-size:.92rem;min-width:0}.enroll-name .avatar{width:34px;height:34px;font-size:.75rem;flex-shrink:0}.enroll-fullname strong{font-weight:600}.enroll-row>.button.ghost:hover{color:var(--error);border-color:var(--error-line);background:var(--error-soft)}.enroll-row.ending,.enroll-row.ending:hover{background:var(--error-soft);box-shadow:inset 3px 0 0 var(--error)}.enroll-end{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}.enroll-end input{width:auto;height:34px;padding:.35rem .5rem;font-size:.85rem}.enroll-picker{display:flex;flex-direction:column;gap:.6rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.enroll-picker input[type=search]{max-width:420px;height:42px;background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:.8rem;background-size:16px;padding-left:2.35rem}.enroll-candidates{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:.5rem;gap:.5rem}.enroll-candidate{display:flex;align-items:center;gap:.6rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.45rem .6rem;box-shadow:var(--shadow);font-size:.9rem}.enroll-candidate .avatar{width:28px;height:28px;font-size:.68rem;flex-shrink:0}.enroll-candidate .candidate-name{flex:1 1;min-width:0;overflow-wrap:break-word;font-weight:500}.enroll-candidate .button{flex-shrink:0}.enroll-empty-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--brand-soft);color:var(--brand);flex-shrink:0}@media (max-width:560px){.assign-row{grid-template-columns:minmax(0,1fr);row-gap:.45rem}.assign-row .course-badge,.enroll-roster-head{display:none}.enroll-row{grid-template-columns:minmax(0,1fr) auto}.enroll-row .num{display:none}}.page-title h1 .chip{margin-left:.6rem;vertical-align:middle;font-size:.75rem;font-weight:600}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:.75rem;gap:.75rem}.step{display:flex;align-items:center;gap:.7rem;text-align:left;padding:.9rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.step:hover{border-color:var(--brand)}.step:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.step.active{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring-soft)}.step-mark{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:999px;background:var(--bg);border:1px solid var(--border);color:var(--muted);font-size:.85rem;font-weight:700}.step.done .step-mark{background:var(--success-soft);border-color:var(--success-line);color:var(--success)}.step.active .step-mark{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.step.active.done .step-mark{background:var(--success);border-color:var(--success);color:#fff}.step-body{display:flex;flex-direction:column;gap:.1rem;min-width:0}.step-name{display:flex;align-items:center;gap:.4rem;font-size:.92rem;font-weight:600;color:var(--text)}.step-count{font-size:.8rem;color:var(--muted)}.step.locked .step-name{color:var(--text-medium)}.step.locked .chip{margin-left:auto;flex-shrink:0;font-size:.68rem}.tab-panel[hidden]{display:none}.metric.lead{display:flex;align-items:center;gap:.9rem}.metric.lead .metric-icon{width:46px;height:46px;border-radius:999px}.metric.lead .number{line-height:1.2}.metric-icon.green{background:var(--success-soft);color:var(--success-ink)}.metric-icon.amber{background:var(--warn-fill);color:var(--warn-ink)}.metric-icon.blue{background:var(--excused-soft);color:var(--excused-ink)}.metric-icon.teal{background:var(--brand-line);color:var(--brand-dark)}.metric-icon.gold{background:var(--accent-tint);color:var(--accent-ink)}.metric-icon.orange{background:var(--brand-orange-tint);color:var(--brand-orange-ink)}.metric-icon.coral{background:var(--brand-coral-tint);color:var(--brand-coral-ink)}.groups-panel{padding:0}.groups-panel>.panel-head{padding:1.1rem 1.2rem;border-bottom:1px solid var(--border);align-items:flex-start;flex-wrap:wrap}.groups-panel>.panel-head h2{font-size:1.05rem;margin-bottom:.1rem}.panel-tools{flex-wrap:wrap;gap:.5rem}.panel-tools,.search{display:flex;align-items:center}.search{position:relative}.search input{width:auto;min-width:210px;padding:.55rem 2.2rem .55rem .75rem;border-radius:10px;font-size:.9rem}.search svg{position:absolute;right:.7rem;color:var(--muted);pointer-events:none}.view-toggle{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden}.view-toggle button{display:grid;place-items:center;width:38px;height:38px;border:none;background:var(--surface);color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease}.view-toggle button:hover{background:var(--bg);color:var(--text-medium)}.view-toggle button.active{background:var(--brand-soft);color:var(--brand-dark)}.view-toggle button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.data-table .course-head>:not(.col-course),.data-table .course-row>:not(.col-course){justify-content:center;align-items:center;text-align:center}.course-row.clickable{cursor:pointer}.row-link{font-size:.92rem;font-weight:600;overflow-wrap:break-word}.row-link:hover{color:var(--brand-dark);text-decoration:underline}.row-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.state{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem}.state:after{content:"";width:6px;height:6px;border-radius:999px}.state.on{color:var(--text-medium)}.state.on:after{background:var(--success)}.state.off{color:var(--muted)}.state.off:after{background:var(--muted)}.pager{justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:.85rem 1.25rem;border-top:1px solid var(--border)}.pager,.pager-pages{display:flex;align-items:center}.pager-pages{gap:.35rem}.pager .row-action{width:32px;height:32px;font-size:.85rem;font-weight:600}.pager .row-action:disabled{opacity:.45;cursor:default}.pager .row-action:disabled:hover{background:var(--surface);color:var(--text-medium)}.row-action.active{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.row-action.active:hover{background:var(--brand-dark);color:var(--on-brand)}.quick-action.active{background:var(--brand-soft);color:var(--brand-dark);font-weight:600}.quick-action.danger{color:var(--error)}.quick-action.danger:not(:disabled):hover{background:var(--error-soft);color:var(--error)}@media (max-width:900px){.data-table .course-head{display:none}.data-table .course-row{grid-template-columns:minmax(0,1fr) 60px;row-gap:.6rem}.data-table .course-row>.col-course{grid-column:1}.data-table .course-row>.col-actions{grid-column:2;grid-row:1;align-self:start}.data-table .course-row>:not(.col-course):not(.col-actions){grid-column:1/-1}}.students-table .course-head,.students-table .course-row{grid-template-columns:minmax(200px,2.2fr) minmax(120px,1.2fr) minmax(110px,1fr) 60px}.students-table.with-id .course-head,.students-table.with-id .course-row{grid-template-columns:minmax(200px,2.2fr) minmax(110px,.9fr) minmax(120px,1.2fr) minmax(110px,1fr) 60px}.people-table.with-id .course-head,.people-table.with-id .course-row{grid-template-columns:minmax(220px,2.4fr) minmax(110px,.9fr) minmax(110px,1fr) minmax(110px,1fr) 64px}.col-ident strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.col-ident>.muted{font-size:.85rem}@media (max-width:900px){.data-table.people-table .course-row,.data-table.people-table.with-id .course-row,.data-table.students-table .course-row,.data-table.students-table.with-id .course-row{grid-template-columns:minmax(0,1fr) 60px}.data-table .course-row>.col-ident.empty{display:none}}.students-table .avatar{width:36px;height:36px;font-size:.78rem;flex-shrink:0}.course-cell>.cell-pending{color:var(--warn);font-weight:600;font-size:.92rem}.row-go{color:var(--border);transition:color .15s ease}.course-row:hover .row-go{color:var(--brand)}.day-when{font-size:.9rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.chip.warn{background:var(--warn-fill);color:var(--warn)}.panel-empty-icon.success{background:var(--success-soft);color:var(--success)}@media (min-width:901px){.today-table .course-head,.today-table .course-row{grid-template-columns:minmax(80px,.7fr) minmax(180px,2fr) minmax(110px,1fr) minmax(120px,130px)}.absence-table .course-head,.absence-table .course-row{grid-template-columns:minmax(180px,1.8fr) minmax(100px,1fr) minmax(160px,1.6fr) 90px}}.main .report-split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,1fr);align-items:start;grid-gap:1rem;gap:1rem}.main .report-split.solo{grid-template-columns:minmax(0,1fr)}@keyframes detail-in{0%{opacity:0;transform:translateY(6px)}}.detail-card{animation:detail-in .18s ease-out}.list-panel{min-width:0;container-type:inline-size}.report-table{overflow-x:auto}.panel-head h2 .chip.soft{margin-left:.5rem;font-weight:500;color:var(--muted);vertical-align:middle}.detail-card{position:-webkit-sticky;position:sticky;top:0;max-height:calc(100vh - 2rem);overflow-y:auto;padding:0}.report-band+.report-band{border-top:1px solid var(--border)}.report-table .course-row.active{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}.report-table .course-row.active .course-cell strong{color:var(--brand-dark)}.band-head{display:grid;grid-template-columns:minmax(150px,1.1fr) repeat(4,minmax(0,1fr));align-items:center;grid-gap:.6rem;gap:.6rem;padding:.9rem 1.1rem}.band-id{display:flex;align-items:center;gap:.7rem;min-width:0}.band-id .course-badge{width:34px;height:34px;border-radius:10px}.band-id .course-cell strong{font-size:.95rem}.band-pick-wrap{position:relative;display:inline-block;max-width:100%;margin-left:-.3rem}.band-pick{position:absolute;inset:0}.band-pick,.band-pick-size{padding:.1rem 1.5rem .1rem .3rem;border:1px solid transparent;font-size:.95rem;font-weight:600}.band-pick-size{display:block;visibility:hidden;white-space:nowrap;padding-right:1.95rem}.band-pick{width:100%;background-color:transparent;background-position:right .3rem center;background-size:14px;color:var(--text)}.band-pick:hover{background-color:var(--surface);border-color:var(--border-strong)}.band-pick:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.band-stat{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;background:var(--surface);border:1px solid var(--border);border-radius:12px}.band-stat .metric-icon{width:34px;height:34px;border-radius:999px;flex-shrink:0}.band-stat-text{display:flex;flex-direction:column;min-width:0}.band-stat-text strong{font-size:1.15rem;font-weight:700;line-height:1.1}.band-stat-text span{font-size:.72rem;color:var(--text-soft)}.report-table .course-head,.report-table .course-row{grid-template-columns:minmax(140px,2fr) repeat(4,minmax(76px,1fr)) 8.5rem;gap:.5rem}.report-table.with-excuse .course-head,.report-table.with-excuse .course-row{grid-template-columns:minmax(140px,2fr) repeat(4,minmax(76px,1fr)) 15.5rem}.report-table .course-head>.col-course{padding-left:calc(32px + .6rem)}.report-table .col-course{display:flex;align-items:center;gap:.6rem;min-width:0}.report-table .cell-label,.report-table .course-row.off-page{display:none}.report-table .avatar{width:32px;height:32px;font-size:.7rem}.sort-head{min-width:0}.sort-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;padding:0;border:none;background:none;font:inherit;font-size:.76rem;font-weight:600;line-height:1.25;color:inherit;text-align:center;cursor:pointer}.sort-head.absent .sort-button{color:var(--absent)}.sort-head.late .sort-button{color:var(--late)}.sort-head.excused .sort-button{color:var(--excused)}.sort-button:hover{text-decoration:underline}.sort-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}.sort-unit{display:block;font-size:.66rem;font-weight:500;opacity:.85}.sort-icon{color:var(--border-strong);flex-shrink:0}.sort-head:not(.col-course) .sort-icon{position:absolute;left:calc(100% + .3rem);top:50%;margin-top:-6.5px}.sort-head:not(.col-course) .sort-icon.on.asc{transform:rotate(180deg)}.sort-head:not(.col-course) .sort-button{max-width:calc(100% - 1.3rem)}.sort-icon.on{color:currentColor}.sort-icon.on.asc{transform:rotate(180deg)}.count-n{font-size:.95rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.count-n.absent{color:var(--absent);font-weight:700}.count-n.late{color:var(--late);font-weight:700}.count-n.excused{color:var(--excused);font-weight:700}.count-n.zero{color:var(--border-strong);font-weight:500}@container (max-width: 820px){.band-stat{gap:.45rem;padding:.5rem .55rem}.band-stat .metric-icon{width:28px;height:28px}.band-stat .metric-icon svg{width:15px;height:15px}.band-stat-text strong{font-size:1.05rem}.band-stat-text span{font-size:.68rem}}@container (max-width: 660px){.band-head{grid-template-columns:repeat(4,minmax(0,1fr))}.band-id{grid-column:1/-1}.band-stat{padding:.5rem .6rem}.report-foot{justify-content:flex-start}.report-table .course-head{display:none}.report-table .course-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem 1rem}.report-table .col-course{order:0;flex:1 1 55%}.report-table .course-row>[role=cell]:last-child{order:1;margin-left:auto}.report-table .tally-cell{order:2;display:inline-flex;align-items:baseline;gap:.35rem;text-align:left}.report-table .cell-label{display:inline;font-size:.75rem;color:var(--text-soft)}}@container (max-width: 470px){.band-head{grid-template-columns:repeat(2,minmax(0,1fr))}.band-stat .metric-icon{display:none}}.report-foot{flex-wrap:wrap;justify-content:space-between;gap:.6rem 1rem;padding:.75rem 1.25rem;border-top:1px solid var(--border);font-size:.8rem}.pager-controls,.report-foot{display:flex;align-items:center}.pager-controls{gap:.25rem}.page-arrow,.page-num{min-width:30px;height:30px;padding:0 .4rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);font:inherit;font-size:.82rem;color:var(--text-medium);cursor:pointer}.page-arrow:hover:not(:disabled),.page-num:hover{border-color:var(--brand);color:var(--brand-dark)}.page-arrow:disabled{opacity:.4;cursor:default}.page-num.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-dark);font-weight:600}.per-page{display:flex;align-items:center;gap:.4rem;color:var(--text-soft)}.per-page select{width:auto;min-width:0;padding:.3rem 1.7rem .3rem .5rem;font-size:.82rem}.row-section{display:flex;align-items:center;gap:.35rem;font-size:.76rem;color:var(--muted)}.course-badge.section-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}.course-badge.plain{background:var(--surface);color:var(--text-medium);border:1px solid var(--border)}.detail-panel{display:flex;flex-direction:column}.detail-head{display:flex;align-items:center;gap:.75rem;padding:1.05rem 1.15rem;border-bottom:1px solid var(--border)}.detail-head .course-cell{flex:1 1;min-width:0}.detail-head .course-cell strong{font-size:1.02rem}.avatar.big,.detail-head .button{flex-shrink:0}.avatar.big{width:42px;height:42px;font-size:.85rem}.detail-tally{display:flex;flex-wrap:wrap;gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.detail-box{display:flex;align-items:center;gap:.6rem;flex:1 1 9rem;min-width:0;padding:.8rem 1.15rem;background:var(--surface)}.detail-box>span:last-child{display:flex;flex-direction:column;min-width:0}.detail-box .number{font-size:1.35rem;font-weight:700;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-box .number.absent{color:var(--absent)}.detail-box .number.late{color:var(--late)}.detail-box .number.excused{color:var(--excused)}.detail-box .label{font-size:.72rem;color:var(--text-medium);line-height:1.25}.detail-box .label.sub{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-box .metric-icon{width:32px;height:32px;border-radius:10px;flex-shrink:0}.detail-body{padding:1rem 1.15rem 1.15rem}.detail-body h3{margin:0 0 .7rem;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-medium)}.incident-list{display:flex;flex-direction:column;gap:.1rem;margin:0;padding:0;list-style:none}.incident{display:grid;grid-template-columns:5.4rem minmax(0,1fr);grid-gap:.8rem;gap:.8rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.incident:last-child{border-bottom:none}.incident-when{display:flex;flex-direction:column;line-height:1.3}.incident-when strong{font-size:.8rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.incident-when>span{font-size:.72rem;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.incident-what{gap:.55rem}.incident-entry,.incident-what{display:flex;flex-direction:column;min-width:0}.incident-entry{gap:.3rem}.incident-kind{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;font-size:.85rem;font-weight:600}.incident-unit{font-size:.76rem;font-weight:500;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.day-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--muted)}.day-dot.absent{background:var(--absent)}.day-dot.late{background:var(--late)}.day-dot.excused{background:var(--excused)}.incident-subjects{display:flex;flex-wrap:wrap;gap:.3rem}.chip.subject{background:var(--bg);color:var(--text-medium);font-weight:500}.incident-note{font-size:.8rem;color:var(--text-medium);font-style:italic;overflow-wrap:break-word}.incident-note:before{content:"«"}.incident-note:after{content:"»"}.incident-note em{font-style:normal;font-weight:600}.filter-bar .view-switch{margin-left:auto;padding-left:1.1rem;border-left:1px solid var(--border)}.segmented{display:inline-flex;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.segment{padding:.34rem .85rem;border:none;border-radius:7px;background:none;font:inherit;font-size:.85rem;font-weight:500;color:var(--text-medium);cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.segment:hover{color:var(--text)}.segment:disabled,.segment:disabled:hover{opacity:.45;color:var(--text-medium);cursor:not-allowed}.segment.on{background:var(--surface);color:var(--brand-dark);font-weight:600;box-shadow:var(--shadow-line)}@media (max-width:1100px){.main .report-split{grid-template-columns:minmax(0,1fr)}.detail-card{position:static;max-height:none;order:-1;scroll-margin-top:.75rem}}@media (max-width:800px){.filter-bar .view-switch{margin-left:0;padding-left:0;border-left:none}.incident{grid-template-columns:minmax(0,1fr);gap:.25rem}.incident-when{flex-direction:row;gap:.4rem;align-items:baseline}}@media print{.main .report-split{display:block}.detail-card,.report-foot,.report-split .report-table .course-row>:last-child{display:none}.report-table .course-row.off-page{display:grid}.band-head,.course-row{page-break-inside:avoid;break-inside:avoid}.course-row.active{background:none;box-shadow:none}}@media (min-width:901px){.setup-table .course-head,.setup-table .course-row{grid-template-columns:minmax(180px,1.6fr) minmax(160px,2fr) 150px}}.attendance-table .course-badge,.setup-table .course-badge,.today-table .course-badge{width:34px;height:34px;border-radius:10px}.absence-table .avatar{width:34px;height:34px;font-size:.75rem;flex-shrink:0}.today-table .course-row.done{color:var(--muted)}.today-table .course-row.done .course-badge{opacity:.55}.absence-family{display:flex;flex-direction:column;gap:.1rem;font-size:.82rem}.absence-family a{color:var(--brand-dark)}.absence-family a:hover{text-decoration:underline}.metric-icon.slate{background:var(--bg);color:var(--text-medium)}.metric-icon.rose{background:var(--rose-soft);color:var(--rose-ink)}.panel-empty.done strong{color:var(--success)}.panel-empty.row{flex-direction:row;align-items:center;text-align:left;gap:.9rem;padding:1.1rem 1.2rem}.panel-empty.row>span:first-child{margin-bottom:0;width:44px;height:44px;border-radius:14px}.panel-empty.row strong{flex-shrink:0}.panel-empty.row p{max-width:none;flex:1 1;min-width:160px}.panel-empty.row .button{margin-top:0;flex-shrink:0}.panel-empty.row .empty-text{display:flex;flex-direction:column;gap:.15rem;flex:1 1;min-width:200px}.fact-rows{display:flex;flex-direction:column}.fact-row{display:flex;align-items:center;gap:.8rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--border)}.fact-row:last-child{border-bottom:none}.fact-row .course-badge{width:34px;height:34px;border-radius:10px;flex-shrink:0}.fact-row .course-cell{flex:1 1;min-width:0}.fact-row .course-cell strong{font-size:.95rem}.fact-row.blank .course-cell strong{color:var(--muted);font-weight:500}.fact-row.blank .course-badge{opacity:.6}.subject-block{display:flex;flex-direction:column;gap:.6rem}.subject-block+.subject-block{margin-top:1.4rem}.picker-group-title{display:flex;align-items:center;gap:.5rem}.picker-group-title .chip{font-size:.68rem;padding:.05rem .45rem}.subject-courses{display:flex;flex-wrap:wrap;gap:.3rem}.subject-courses .chip{font-size:.72rem;font-weight:500}.role-filter .metric{text-align:left;font-family:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.role-filter .metric:hover{border-color:var(--brand)}.role-filter .metric:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.role-filter .metric:disabled{cursor:default}.role-filter .metric:disabled:hover{border-color:var(--border)}.role-filter .metric.active{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring-soft)}.role-filter .metric .hint,.role-filter .metric .label,.role-filter .metric .number{display:block}.role-filter .metric .hint{min-height:1.05rem}.people-table .course-head,.people-table .course-row{grid-template-columns:minmax(220px,2.4fr) minmax(110px,1fr) minmax(110px,1fr) 64px}.people-table .avatar{width:36px;height:36px;font-size:.78rem;flex-shrink:0}.people-table .course-cell>.chip,.people-table .course-cell>.state{align-self:center}.main .filter-bar{display:flex;flex-direction:row;align-items:flex-end;flex-wrap:wrap;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1.1rem}.main .filter-bar .button,.main .filter-bar .chip-toggle,.main .filter-bar .segmented,.main .filter-bar input[type=date],.main .filter-bar select{height:42px}.filter-field{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;font-weight:600;color:var(--text-medium)}.filter-field select{min-width:9rem}.filter-field input[type=date],.filter-field select{width:auto;font-size:.88rem;padding-top:.45rem;padding-bottom:.45rem}.filter-chips{display:flex;align-items:center;gap:.4rem;margin-left:auto}.chip-toggle{border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-medium);padding:.42rem .85rem;font-family:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.chip-toggle:hover{border-color:var(--brand);color:var(--brand-dark)}.chip-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.chip-toggle:disabled{opacity:.5;cursor:default}.chip-toggle:disabled:hover{border-color:var(--border);color:var(--text-medium)}.chip-toggle.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-dark);font-weight:600}.main .filter-bar .button.ghost{border-color:transparent;padding:.42rem .7rem;font-size:.85rem;font-weight:500;color:var(--text-medium)}.main .filter-bar .button.ghost:hover{border-color:var(--border);color:var(--text)}.main .filter-bar .filter-actions{display:flex;align-items:flex-end;gap:.85rem;margin-left:auto}.main .filter-bar .filter-actions .view-switch{margin-left:0}.main .filter-bar .button.ghost.filter-export{border-color:var(--border);padding:.5rem .9rem;font-weight:600;color:var(--text-medium)}.main .filter-bar .button.ghost.filter-export:hover{color:var(--text)}.main .panel-tools>select.tools-select{width:auto;flex:0 0 auto;min-width:150px;max-width:220px;height:42px;border-radius:10px;font-size:.9rem}.main .panel-tools>select.tools-select.on{border-color:var(--brand);color:var(--teal-800);font-weight:600}.data-table.fade-rows{transition:opacity .18s ease}.data-table.fade-rows.refreshing{opacity:.5;pointer-events:none}.data-table.fade-rows .course-row{animation:row-in .24s ease backwards}.data-table.fade-rows .course-row:nth-child(3){animation-delay:.02s}.data-table.fade-rows .course-row:nth-child(4){animation-delay:.04s}.data-table.fade-rows .course-row:nth-child(5){animation-delay:.06s}.data-table.fade-rows .course-row:nth-child(6){animation-delay:.08s}.data-table.fade-rows .course-row:nth-child(n+7){animation-delay:.1s}@keyframes row-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.data-table.fade-rows,.data-table.fade-rows .course-row{transition:none;animation:none}}.panel-head.tools-only .panel-tools.with-filters>.search{flex-basis:200px}.main .panel-tools>.tools-actions{display:flex;gap:.5rem;margin-left:auto}.main .panel-tools>.tools-actions>.button{height:42px}@media (max-width:720px){.main .panel-tools>select.tools-select{flex:1 1 160px;max-width:none}}.button.danger{background:var(--error);border-color:var(--error);color:#fff}.button.danger:hover:not(:disabled){filter:brightness(.94)}.teacher-picker{display:flex;flex-direction:column;gap:.7rem;border-top:1px solid var(--border);padding-top:1rem}.teacher-picker>.muted{margin:0;font-size:.88rem}.picker-grid{display:flex;flex-wrap:wrap;gap:.4rem}.picker-warn{margin:0;font-size:.85rem;color:var(--warn-ink);background:var(--warn-tint);border-radius:8px;padding:.5rem .75rem}.bulk-assign{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;background:var(--brand-soft);border:1px solid var(--brand-edge);border-radius:10px;padding:.55rem .8rem;font-size:.9rem}.bulk-assign select{width:auto;min-width:11rem;padding-top:.4rem;padding-bottom:.4rem}.chip-who{color:var(--muted);font-weight:400}.chip-who.pending{color:var(--warn-ink);font-weight:500}.metric-bar{height:6px;border-radius:999px;background:var(--border);overflow:hidden;margin:.35rem 0 .15rem}.metric-bar span{display:block;height:100%;border-radius:inherit;background:var(--brand);transition:width .4s ease}.section-title{font-size:1.05rem;margin:0 0 .6rem}.mep-block{border-top:1px solid var(--border);padding-top:1rem;display:flex;flex-direction:column;gap:.35rem}.mep-head{display:flex;align-items:center;gap:.5rem}.mep-title{font-weight:700;font-size:.95rem}.mep-block>.hint{margin:0}.mep-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.8rem;gap:.8rem;margin-top:.55rem}.mep-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--text-medium)}.mep-grid .mep-wide{grid-column:1/-1}@media (max-width:640px){.mep-grid{grid-template-columns:1fr}}.mep-picker{display:flex;flex-direction:column;gap:.8rem}.mep-places{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.6rem;gap:.6rem}.mep-places label,.mep-search{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--text-medium)}.mep-places select{width:100%;min-width:0}.mep-results{display:flex;flex-direction:column;gap:.5rem}.mep-options{list-style:none;margin:0;padding:0;max-height:290px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface,#fff)}.mep-option{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;padding:.65rem .95rem;border:0;border-top:1px solid var(--border);background:none;font:inherit;color:var(--text);text-align:left;cursor:pointer;transition:background-color .15s ease}.mep-options li:first-child .mep-option{border-top:0}.mep-option:focus-visible,.mep-option:hover{background:var(--brand-soft);outline:none}.mep-option strong{font-size:.97rem;font-weight:600}.mep-option span{font-size:.82rem;color:var(--text-medium)}.mep-results-note{margin:0;padding:.8rem .95rem;border:1px dashed var(--border);border-radius:12px;font-size:.88rem;color:var(--text-medium)}.mep-chosen{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--brand);border-radius:12px;background:var(--brand-soft)}.mep-chosen-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.mep-chosen-main strong{font-size:1.05rem;font-weight:600;color:var(--text)}.mep-chosen-main span{font-size:.88rem;color:var(--text-medium)}.mep-chosen-main .mep-chosen-meta{font-weight:600}.auth-card.onboarding .mep-places select{padding:.7rem .8rem;font-size:1rem}@media (max-width:640px){.mep-places{grid-template-columns:minmax(0,1fr)}.mep-chosen{flex-direction:column}}.form-divider{margin:.4rem 0 0;padding-top:.9rem;border-top:1px solid var(--border);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}@media (min-width:901px){.institutions-table .course-head,.institutions-table .course-row{display:grid;grid-template-columns:minmax(240px,2.2fr) minmax(120px,1fr) minmax(100px,1fr) 60px;align-items:center;grid-gap:.75rem;gap:.75rem}}@media (min-width:1001px){.cycles-table .course-head,.cycles-table .course-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(130px,1fr) minmax(130px,1fr) minmax(120px,1fr) 60px;align-items:center;grid-gap:.75rem;gap:.75rem}}.check-line{margin:.75rem 0;font-weight:600}.check-line input{width:16px;height:16px;accent-color:var(--brand)}a.fact-row{text-decoration:none;color:inherit}a.fact-row:hover{background:var(--bg)}@media print{@page{margin:12mm}.filter-bar,.panel-tools,.sidebar,.topbar-actions{display:none}.app{display:block;height:auto}.app,.content{overflow:visible}.main{padding:0;gap:.7rem}.topbar{padding:0 0 .6rem}.card,.metric{border-color:var(--border-strong);box-shadow:none;page-break-inside:avoid;break-inside:avoid}.course-row:hover{background:transparent}}.student-page{display:flex;flex-direction:column;gap:1rem}.student-hero{display:flex;align-items:center;flex-direction:row;gap:1.1rem;padding:1.25rem 1.4rem;background:url(/StudentWallpaper.svg) 100%/auto 100% no-repeat,var(--student-hero-bg);border-color:transparent;overflow:hidden}.student-hero .student-hero-text{max-width:55%}@media (max-width:900px){.student-hero{background-image:none}.student-hero .student-hero-text{max-width:none}}.avatar.xl{width:68px;height:68px;font-size:1.35rem;flex-shrink:0}.student-hero-text{min-width:0;display:flex;flex-direction:column;gap:.35rem}.student-hero h1{font-size:1.6rem;letter-spacing:-.02em;line-height:1.15}.student-hero .muted{font-size:.88rem;overflow-wrap:break-word}.student-chips{display:flex;flex-wrap:wrap;gap:.35rem}.student-tabs{display:flex;flex-wrap:wrap;gap:.15rem;border-bottom:1px solid var(--border)}.student-tab{display:inline-flex;align-items:center;gap:.45rem;padding:.6rem .85rem;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;font:inherit;font-size:.92rem;font-weight:600;color:var(--text-medium);white-space:nowrap;cursor:pointer;transition:color .15s ease,border-color .15s ease}.student-tab:hover{color:var(--text)}.student-tab.active{color:var(--brand-dark);border-bottom-color:var(--brand)}.student-tab:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:6px}.student-tab.pending{color:var(--muted);font-weight:500}.student-tab.pending:hover{color:var(--text-medium)}.student-tab .chip{font-size:.62rem;padding:.05rem .4rem}.main .student-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);align-items:start;grid-gap:1rem;gap:1rem}.student-col{display:flex;flex-direction:column;gap:1rem;min-width:0}.student-block .donut-wrap{flex-direction:row;align-items:center;justify-content:flex-start;gap:1.6rem;flex-wrap:wrap}.student-block .donut{flex-shrink:0}.student-block .legend{width:auto;min-width:0}.student-block>.button.ghost{align-self:flex-start}@media (max-width:1080px){.main .student-grid{grid-template-columns:minmax(0,1fr)}}.student-block{gap:.75rem}.student-block>.panel-head{margin-bottom:.15rem}.main .student-block .filter-bar.student-range{background:var(--bg);border-color:var(--border);padding:.7rem .85rem}.student-link{min-width:0;overflow-wrap:break-word}.student-link:hover{color:var(--brand-dark);text-decoration:underline}.student-link:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}@media (max-width:640px){.student-hero{padding:1rem;gap:.8rem}.student-hero h1{font-size:1.25rem}.avatar.xl{width:52px;height:52px;font-size:1.05rem}}.attendance-pulse{display:flex;align-items:center;flex-wrap:wrap;gap:1.25rem}.attendance-pulse .donut-wrap{flex-shrink:0}.pulse-unit{margin:0;font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));grid-gap:.7rem;gap:.7rem;flex:1 1;min-width:0}.stat-card{display:flex;flex-direction:column;gap:.1rem;padding:.8rem .9rem;border:1px solid var(--border);border-radius:var(--radius)}.stat-card .metric-icon{margin-bottom:.35rem}.stat-card .number{font-size:1.5rem;font-weight:700;line-height:1.1}.stat-card .label{font-size:.8rem;color:var(--text-medium)}.stat-card .share{font-size:.78rem;font-weight:600;margin-top:.15rem}.stat-card .number.present,.stat-card .share.present{color:var(--present)}.stat-card .number.absent,.stat-card .share.absent{color:var(--absent)}.stat-card .number.late,.stat-card .share.late{color:var(--late)}.stat-card .number.excused{color:var(--excused)}.attendance-table .course-head,.attendance-table .course-row{grid-template-columns:5.5rem minmax(110px,1fr) minmax(170px,1.7fr) minmax(120px,1fr) minmax(150px,2fr)}.incident-date{display:flex;flex-direction:column;line-height:1.15}.incident-date strong{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.incident-date>span{font-size:.7rem}.incident-date>span:nth-child(2){font-weight:600;color:var(--text-medium);letter-spacing:.03em}.incident-date .muted{text-transform:capitalize}.attendance-table .incident-kind{font-size:.92rem;font-weight:600}.attendance-table .incident-note{font-size:.82rem}.chip.danger{background:var(--error-soft);color:var(--error)}.chip.excused{background:var(--excused-soft);color:var(--excused-ink)}@media (max-width:900px){.attendance-table .incident-date{flex-direction:row;align-items:baseline;gap:.35rem}.attendance-table .incident-date strong{font-size:1rem}}.room-sections{display:grid;grid-gap:1rem;gap:1rem;min-width:0}.roster-title{margin:0;padding:.85rem 1.2rem;font-size:.95rem;font-weight:700;background:var(--surface-2,#f6f7f8);border-bottom:1px solid var(--border)}.room-tools-note{margin-left:auto;font-size:.85rem}.room-day-list .day-list-source+.day-list-source{margin-top:.5rem}.room-switch{align-self:center}.room-switch .segment{text-decoration:none}.class-card.room-card .class-card-who{font-size:.82rem}.alerts-table .course-head,.alerts-table .course-row{grid-template-columns:minmax(170px,1.6fr) minmax(90px,.9fr) minmax(200px,2.2fr) minmax(150px,1.4fr) minmax(140px,auto)}.alerts-table .avatar{width:34px;height:34px;font-size:.75rem;flex-shrink:0}.alerts-table .student-link{color:inherit;text-decoration:none}.alerts-table .student-link:hover strong{text-decoration:underline}.alerts-table .alert-cause strong{font-weight:600}.alerts-table .alert-cause .muted{font-size:.82rem}.alerts-table .alert-notice{align-self:flex-start;margin-top:.25rem}.alerts-table .absence-family a{display:inline-flex;align-items:center;gap:.25rem}.alerts-table .alert-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}.alerts-table .alert-actions .chip{text-decoration:none}.alerts-table .course-row.justified .alert-cause strong{font-weight:500}.alerts-table .cell-label{display:none}@media (max-width:900px){.alerts-table .cell-label{display:inline;font-size:.75rem;color:var(--text-soft);margin-right:.35rem}.alerts-table .alert-actions{flex-direction:row;align-items:center;flex-wrap:wrap}}.alert-rules{list-style:none;margin:.6rem 0 0;padding:0;display:grid;grid-gap:.4rem;gap:.4rem}.alert-rule{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}.alert-rule.off{opacity:.6}.alert-rule-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.alert-rule-text .muted{font-size:.8rem}.alert-rule-actions{display:flex;gap:.4rem}.alert-rules-foot{margin:.8rem 0 0;font-size:.82rem}.alert-rules-off{margin-top:.6rem}.rule-preview{margin:0;padding:.6rem .8rem;background:var(--surface-2,#f6f7f8);border-radius:var(--radius)}.case-card .case-triggers{list-style:none;margin:0 0 .8rem;padding:0;display:grid;grid-gap:.25rem;gap:.25rem}.case-card .case-triggers li,.case-empty{display:flex;align-items:center;gap:.5rem}.case-empty{flex-wrap:wrap}.case-body{border:1px solid var(--border);border-radius:var(--radius);padding:.8rem .9rem;display:grid;grid-gap:.7rem;gap:.7rem}.case-body.closed{opacity:.85;margin-top:.6rem}.case-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.85rem}.case-cause{display:grid;grid-gap:.2rem;gap:.2rem;font-size:.9rem}.case-cause ul{margin:0;padding-left:1.1rem}.case-scope{margin:0;font-size:.82rem}.case-log{list-style:none;margin:0;padding:0;display:grid;grid-gap:.5rem;gap:.5rem}.case-log li{display:grid;grid-template-columns:5.5rem 1fr;grid-gap:.6rem;gap:.6rem;align-items:start}.case-log-when{font-size:.82rem;color:var(--text-soft);padding-top:.15rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.case-log-what{display:flex;flex-direction:column;gap:.15rem}.case-log-what .case-note{white-space:pre-line}.case-log-what .muted{font-size:.78rem}.case-actions{display:flex;gap:.5rem;flex-wrap:wrap}.case-closed{margin-top:.8rem}.case-closed>.linklike{font:inherit;color:var(--brand-dark);font-weight:600;background:none;border:0;padding:0;cursor:pointer}.contact-phone{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.2rem 0 0;font-size:.9rem}.contact-phone .linklike{font:inherit;color:var(--brand-dark);font-weight:600;background:none;border:0;padding:0;cursor:pointer}.contact-phone .contact-phone-hint{font-size:.78rem}form.contact-phone input{max-width:200px}.school-totals{margin:.5rem 0 0;font-size:.85rem}.school-totals strong{color:var(--text)}.by-subject-table .course-head,.by-subject-table .course-row{grid-template-columns:minmax(190px,2fr) minmax(90px,1fr) minmax(120px,1.2fr) minmax(110px,1.1fr) minmax(110px,1.1fr) minmax(80px,.9fr)}.by-subject-table .course-cell strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.by-subject-table .course-cell strong.absent{color:var(--absent)}.by-subject-table .course-cell strong.late{color:var(--late)}.by-subject-table .course-cell strong.muted{color:var(--text-soft);font-weight:500}.by-subject-table .course-row.foreign .course-cell>strong:first-of-type{font-weight:600}.by-subject-table .cell-label{display:none}@media (max-width:900px){.by-subject-table .cell-label{display:inline;font-size:.75rem;color:var(--text-soft);margin-right:.35rem}.by-subject-table .course-cell{flex-direction:row;align-items:baseline;gap:.35rem;flex-wrap:wrap}}.centered.login-scene{background:url(/LoginBackground.svg) 0 100%/contain no-repeat,var(--login-sky)}.centered.login-scene .auth-card{box-shadow:var(--shadow-lg);border-color:transparent}@media (min-width:900px){.centered.login-scene{justify-content:flex-end;padding-right:min(9vw,150px)}}.course-badge.subject-icon{display:block;object-fit:contain;background:none}.course-badge.subject-fallback{color:#ffffff}.course-badge.subject-fallback.fill-1{background:var(--subject-fill-1)}.course-badge.subject-fallback.fill-2{background:var(--subject-fill-2)}.course-badge.subject-fallback.fill-3{background:var(--subject-fill-3)}.course-badge.subject-fallback.fill-4{background:var(--subject-fill-4)}.subject-picker{display:flex;flex-direction:column;gap:.6rem;min-width:0}.subject-picker-search{width:100%}.subject-picker-search input{min-width:0}.subject-picker-list{height:min(300px,42vh);overflow-y:auto;padding:0 .25rem .25rem;scroll-padding-top:2.15rem;background:var(--surface);border:1px solid var(--border);border-radius:12px}.subject-picker-group-title{position:-webkit-sticky;position:sticky;top:0;z-index:1;margin:0;padding:.55rem .55rem .35rem;background:var(--surface);border-bottom:1px solid var(--border);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-soft)}.subject-picker-option{display:flex;align-items:center;gap:.6rem;padding:.35rem .55rem;border-radius:10px;font-size:.92rem;color:var(--text);cursor:pointer}.subject-picker-option .course-badge{width:30px;height:30px;border-radius:9px}.subject-picker-label{flex:1 1;min-width:0}.subject-picker-tick{color:var(--brand-dark);flex-shrink:0}.subject-picker-option.active{background:var(--bg)}.subject-picker-option[aria-selected=true]{background:var(--brand-soft);color:var(--brand-dark);font-weight:600}.subject-picker-option.taken{cursor:default;color:var(--text-soft)}.subject-picker-option.taken .course-badge{opacity:.4}.subject-picker-option.taken .chip{flex-shrink:0;font-size:.68rem}.subject-picker-list.empty{display:grid;place-items:center}.subject-picker-empty{margin:0;padding:.9rem .7rem;color:var(--text-soft);font-size:.88rem;text-align:center}.subject-block .picker-group-title .button{margin-left:auto}.subject-block .picker-group-title.with-action{margin-bottom:.5rem}.page-tools.end{justify-content:flex-end}.panel-head.tools-only .panel-tools{flex:1 1}.panel-head.tools-only .panel-tools>.search{flex:1 1 320px;min-width:0}.panel-head.tools-only .panel-tools>.search input{width:100%;min-width:0;padding-left:2.2rem;padding-right:.75rem}.panel-head.tools-only .panel-tools>.search svg{right:auto;left:.7rem}.panel-tools>.button,.panel-tools>.options>.button,.panel-tools>.search input,.panel-tools>.view-toggle,.panel-tools>input{height:42px}.panel-tools>.view-toggle button{height:100%}.roster-tools>.options{margin-left:auto}@media (max-width:720px){.roster-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:.5rem;gap:.5rem}.roster-tools>*{grid-column:1/-1}.roster-tools.has-options>input[type=date]{grid-column:1;grid-row:1}.roster-tools>.options{grid-column:2;grid-row:1;flex:none;margin-left:0}.roster-tools>.options>.button{width:auto;min-width:46px;padding-inline:.7rem}.roster-tools .roster-options-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.roster-tools>.options>.options-menu{width:min(320px,calc(100vw - 2rem))}.main:has(>.roster-tools){gap:.9rem}}.roster-error-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.page-title .back-link{margin:.45rem 0 0}@media (max-width:720px){.page-title .wide-only{display:none}}.gradebook-tools{flex-wrap:wrap;align-items:center}.gradebook-tools .gradebook-save-state{margin-left:auto}.gradebook-tools>.options{margin-left:.25rem}.gradebook-tools>.options>.button,.gradebook-tools>.segmented{height:42px}.gradebook-tools>.segmented .segment{height:100%}.gradebook-wrap{overflow:auto;max-height:calc(100vh - 15rem);scroll-padding:6.9rem 8.5rem 0 12.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.gradebook{border-collapse:separate;border-spacing:0;font-size:.9rem;table-layout:fixed;width:100%}.gradebook td,.gradebook th{padding:.45rem .55rem;border-bottom:1px solid var(--border);white-space:nowrap;text-align:left}.gradebook td.gb-cell,.gradebook th.gb-item{text-align:center}.gradebook td.gb-computed,.gradebook td.gb-total,.gradebook th.gb-computed-head,.gradebook th.gb-total-head{text-align:right}.gradebook thead th{position:-webkit-sticky;position:sticky;top:0;z-index:4;background:var(--bg);font-size:.78rem;color:var(--text-medium)}.gradebook .gb-groups th{height:54px;border-bottom:none;padding-bottom:.1rem}.gradebook thead tr:nth-child(2) th{top:54px}.gradebook tbody tr:last-child td{border-bottom:none}.gb-group{font-weight:700;color:var(--text);font-size:.8rem;padding:.55rem .55rem .3rem;border-bottom:2px solid var(--brand-line);line-height:1.15;overflow:hidden}.gradebook th.gb-group{white-space:normal}.gb-summary-head{border-bottom-color:var(--border-strong)}.gb-weight{font-weight:500;color:var(--muted)}.gb-col-student{width:204px}.gb-col-computed{width:84px}.gb-col-total{width:136px}.gb-student{position:-webkit-sticky;position:sticky;left:0;z-index:3;background:var(--surface)}.gradebook thead .gb-student{background:var(--bg);z-index:6}.gradebook thead th.gb-item.menu-open{z-index:7}.gb-student:after{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:var(--border)}.gb-item{vertical-align:top;position:relative}.gb-item-head{display:block}.gb-item .options{position:absolute;top:3px;right:3px}.gb-item .options .icon-button{opacity:0;transition:opacity .12s ease}.gb-item.menu-open .options .icon-button,.gb-item:focus-within .options .icon-button,.gb-item:hover .options .icon-button{opacity:1}.gb-item-title{padding:0 .9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;line-height:1.2;font-weight:600;color:var(--text)}.gb-item-title.split{display:block}.gb-title-head{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text-medium)}.gb-title-tail{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.gb-item-meta{font-size:.72rem;color:var(--muted);display:flex;justify-content:center;gap:.2rem .35rem;align-items:center;flex-wrap:wrap}.gb-item-meta .gb-pts{font-weight:600;color:var(--text-soft)}.icon-button.tiny{width:22px;height:22px}.gb-pts-total{border:none;background:none;padding:0 .25rem;border-radius:6px;font:inherit;color:var(--muted);cursor:pointer;line-height:1.3}.gb-pts-total.set{color:var(--brand-dark);font-weight:600}.gb-pts-total:hover{background:var(--border);color:var(--text)}.gb-pts-total:focus-visible{outline:none;box-shadow:0 0 0 2px var(--brand-ring)}.gb-pts-total-editor{position:relative;display:inline-flex;align-items:center}.gb-pts-total-input{width:3.4rem;padding:.1rem .3rem;border:1px solid var(--brand);border-radius:6px;font:inherit;font-size:.72rem;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:var(--surface);color:var(--text);box-shadow:0 0 0 3px var(--brand-ring)}.gb-pts-total-input:focus{outline:none}.gb-pts-total-input.invalid{border-color:var(--error);color:var(--error);box-shadow:0 0 0 3px var(--error-line)}.gb-pts-total-editor .gb-convert{left:auto;right:0;transform:none;white-space:normal;width:max-content;max-width:220px;text-align:left}.gb-convert{position:absolute;top:100%;left:50%;transform:translateX(-50%);z-index:2;margin-top:1px;padding:0 .35rem;border-radius:6px;background:var(--surface);box-shadow:var(--shadow-line);font-size:.7rem;line-height:1.5;color:var(--text-soft);white-space:nowrap;pointer-events:none}.gb-convert.bad{color:var(--error)}.gb-value .gb-points-den{color:var(--muted);font-size:.8em;margin-left:1px}.gb-band-start{border-left:2px solid var(--border-strong)}.gb-cell{text-align:center;border-left:1px solid var(--border)}.gb-cell-box{position:relative;display:flex;align-items:center;justify-content:center;gap:2px}.gb-input,.gb-value{width:100%;max-width:72px;text-align:right;padding:.3rem .4rem;border:1px solid transparent;border-radius:8px;font:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:transparent;color:var(--text);transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.gb-input:placeholder-shown{border-color:var(--border);background:var(--surface)}.gb-cell-box:hover .gb-input{border-color:var(--border-strong);background:var(--surface)}.gb-input:focus,.gb-input:focus-visible{outline:none;border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 3px var(--brand-ring)}.gb-value{cursor:default}.gb-value:hover{background:var(--border)}.gb-value:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.gb-input.invalid,.gb-input.invalid:placeholder-shown{border-color:var(--error);color:var(--error);background:var(--surface)}.gb-input.with-note,.gb-value.with-note{border-style:dashed;border-color:var(--brand);background:var(--surface)}.gb-value.with-note:hover{background:var(--border)}.gb-item.upcoming .gb-item-title{color:var(--text-soft)}.gb-cell.upcoming{background:var(--bg)}.gb-cell.upcoming .gb-input:placeholder-shown{border-color:transparent;background:transparent}.gb-cell.upcoming .gb-input:focus,.gb-cell.upcoming .gb-input:focus-visible{border-color:var(--brand);background:var(--surface)}.gb-cell-menu{opacity:0;border:none;background:none;cursor:pointer;padding:2px;border-radius:6px;color:var(--text-medium);transition:opacity .12s ease}.gb-cell-box:focus-within .gb-cell-menu,.gb-cell-box:hover .gb-cell-menu{opacity:1}.gb-cell-menu:focus-visible{opacity:1;outline:2px solid var(--brand);outline-offset:1px}.menu-floating{position:fixed;top:0;left:0;right:auto;z-index:60}.gb-menu{width:232px;text-align:left}.options-menu.menu-list{padding:.3rem;gap:.05rem;width:max-content;min-width:210px;max-width:280px}.menu-item{display:flex;align-items:center;gap:.55rem;width:100%;padding:.5rem .6rem;border:none;border-radius:8px;background:none;font:inherit;font-size:.88rem;color:var(--text);text-align:left;white-space:nowrap;cursor:pointer;transition:background-color .12s ease,color .12s ease}.menu-item svg{flex-shrink:0;color:var(--text-soft)}.menu-item:hover{background:var(--bg)}.menu-item:hover svg{color:var(--text-medium)}.menu-item:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.menu-item:disabled{color:var(--muted);cursor:not-allowed}.menu-item:disabled:hover{background:none}.menu-item:disabled svg{color:var(--muted)}.menu-item.danger,.menu-item.danger svg{color:var(--error)}.menu-item.danger:hover{background:var(--error-soft)}.menu-sep{height:1px;margin:.25rem .35rem;background:var(--border)}.options-menu .menu-check{margin:0 0 .25rem;padding:.5rem .6rem .6rem;border-bottom:1px solid var(--border);font-size:.88rem;font-weight:500;white-space:nowrap;cursor:pointer}.gb-status{cursor:pointer;border:none}.gradebook tbody tr:hover>td{background:var(--bg)}.gradebook tbody tr:focus-within>td{background:var(--brand-soft)}.gradebook tbody tr:focus-within .student-link{color:var(--brand-dark)}.gb-computed,.gb-computed-head,.gb-total,.gb-total-head{text-align:right}.gb-computed,.gb-total{background:var(--bg)}.gb-computed{color:var(--text-medium)}.gb-computed,.gb-total{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gb-cell+.gb-computed,.gb-item+.gb-computed-head,.gb-summary-head{border-left:2px solid var(--border-strong)}.gb-total strong{font-size:1.05rem}.gradebook:not(.cierre) .gb-total,.gradebook:not(.cierre) .gb-total-head{position:-webkit-sticky;position:sticky;right:0;z-index:2;box-shadow:-1px 0 0 var(--border-strong)}.gradebook:not(.cierre) thead .gb-total-head{z-index:5}.gb-total .chip.tiny{margin-left:.35rem}.gb-computed.stale,.gb-total.stale{opacity:.55}.chip.tiny{font-size:.68rem;padding:.05rem .45rem}.gb-historical td{background:var(--bg);color:var(--muted)}.gb-historical .chip{margin-left:.4rem}.empty-col{color:var(--muted);font-size:.78rem;text-align:center}.avatar.tiny{width:22px;height:22px;font-size:.58rem;flex-shrink:0}.gradebook .student-link{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;max-width:100%;overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}.formative-note{margin-bottom:.8rem}.inactive-items{margin-top:.7rem}.link-button{background:none;border:none;padding:0;font:inherit;font-size:.85rem;color:var(--brand-dark);text-decoration:underline;cursor:pointer}.link-button.danger{color:var(--error)}.cierre-band{display:grid;grid-template-columns:minmax(150px,1.2fr) repeat(4,minmax(0,1fr));align-items:center;grid-gap:.6rem;gap:.6rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--border)}.cierre-band.no-min{grid-template-columns:minmax(150px,1.2fr) repeat(3,minmax(0,1fr))}.cierre-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding-top:.7rem;border-top:1px solid var(--border)}.cierre-actions .cierre-tools{justify-content:flex-start}.cierre-actions .cierre-close{order:9;margin-left:auto}.cierre-band .band-id .course-cell strong{font-size:.95rem}.cierre-band .band-id .course-cell span{font-size:.8rem;color:var(--text-soft)}.band-stat.band-filter{font:inherit;color:inherit;text-align:left;cursor:pointer;min-width:0;align-self:stretch}.band-stat.band-filter:hover{background:var(--bg)}.band-stat.band-filter:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.band-stat.band-filter[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}.band-stat-text .band-stat-sub{font-size:.68rem;color:var(--muted)}.cierre-rate{margin:0;padding:.55rem 1.1rem;font-size:.85rem;border-bottom:1px solid var(--border)}.cierre-tools{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem;min-width:0}.cierre-tools .button{height:38px;white-space:nowrap}.cierre-tools .error{flex-basis:100%;margin:0}.gradebook.cierre{table-layout:auto;min-width:0}.gradebook.cierre td,.gradebook.cierre th{padding:.6rem .75rem}.gradebook.cierre .gb-computed{font-size:.95rem}.gradebook.cierre .gb-total strong{font-size:1.2rem}.gradebook.cierre tbody tr{cursor:pointer}.gradebook.cierre tbody tr.selected>td{background:var(--brand-soft)}.gradebook.cierre tbody tr.selected .gb-student{box-shadow:inset 3px 0 0 var(--brand)}.gradebook.cierre tbody tr.selected .student-link{color:var(--brand-dark)}.gb-open-actions{display:flex;flex-wrap:wrap;gap:.4rem .5rem}.cierre-detail>td{background:var(--bg);white-space:normal}.cierre-detail>td>.desglose{margin:.35rem 0 .45rem}.history-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.55rem;gap:.55rem}.history-list li{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;border-bottom:1px solid var(--border);padding-bottom:.45rem}.history-list li:last-child{border-bottom:none;padding-bottom:0}@media (max-width:1200px){.gradebook{font-size:.85rem}.gradebook td,.gradebook th{padding:.4rem .45rem}.gb-col-student{width:140px}.gb-col-computed{width:74px}.gb-col-total{width:124px}.gb-student .avatar{display:none}.gb-input,.gb-value{max-width:56px}.gradebook-wrap{max-height:calc(100vh - 13rem);scroll-padding:6.9rem 7.75rem 0 9rem}.gradebook-tools{row-gap:.5rem}.gradebook-tools .gradebook-save-state{order:5;flex-basis:100%;margin-left:0;justify-content:flex-start}.gradebook-tools>.options{margin-left:auto}.cierre-band{grid-template-columns:repeat(2,minmax(0,1fr))}.cierre-band .band-id,.cierre-tools{grid-column:1/-1}.cierre-tools{justify-content:flex-start}}@media (max-width:720px){.cierre-tools{flex-basis:100%}.cierre-tools>.button,.cierre-tools>.options{flex:1 1 100%}.cierre-tools>.options .button{width:100%;justify-content:center}}@media print{.cierre-tools,.gb-cell-menu,.gb-convert,.gb-open-col,.gb-pts-total,.gb-pts-total-editor,.gradebook-tools,.inactive-items{display:none!important}.gradebook-wrap{border:none;overflow:visible;max-height:none}.gb-student,.gradebook thead th{position:static}.gradebook.cierre tbody tr.selected>td{background:none}.gradebook.cierre tbody tr.selected .gb-student{box-shadow:none}}.student-block-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:.6rem}.student-block-head h3{margin:0}.scoped-note{margin-bottom:.6rem}.dialog-hint{margin:-.15rem 0 .35rem}.grade-band+.grade-band{margin-top:1.2rem}.questions-tabs{margin-bottom:1rem;display:inline-flex}.questions-build{display:flex;flex-direction:column;gap:.5rem;margin:.8rem 0}.question-row{display:grid;grid-template-columns:1.6rem minmax(0,1fr) auto auto;align-items:start;grid-gap:.6rem;gap:.6rem}.question-number{font-weight:700;color:var(--text-medium);padding-top:.5rem}.question-row textarea{font:inherit;font-size:.9rem;padding:.45rem .55rem;border:1px solid var(--border);border-radius:8px;resize:vertical}.question-points{display:inline-flex;align-items:center;gap:.3rem;padding-top:.35rem}.question-points input{width:68px;font:inherit;padding:.4rem;border:1px solid var(--border);border-radius:8px;text-align:right}.question-actions{display:inline-flex;align-items:center;gap:.5rem;padding-top:.45rem}.questions-build-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.questions-total{margin-left:auto;font-size:1rem}.questions-bank{margin-top:.8rem;border-top:1px solid var(--border);padding-top:.8rem;display:flex;flex-direction:column;gap:.4rem}.question-bank-row{display:flex;align-items:center;gap:.8rem;justify-content:space-between;font-size:.9rem}.questions-grid-wrap{overflow:auto;max-height:70vh;margin:.8rem 0}.questions-grid{border-collapse:separate;border-spacing:0;width:100%}.questions-grid td,.questions-grid th{border-bottom:1px solid var(--border);padding:.35rem .5rem}.questions-grid thead th{top:0;z-index:2;background:var(--bg);font-size:.78rem;text-align:center}.questions-grid tbody th,.questions-grid thead th{position:-webkit-sticky;position:sticky;font-weight:600}.questions-grid tbody th{left:0;z-index:1;background:var(--surface);text-align:left;font-size:.85rem;white-space:nowrap}.questions-grid thead th:first-child{left:0;z-index:3}.question-head-n{display:block;font-size:.95rem}.questions-grid td input{width:58px;font:inherit;font-size:.9rem;padding:.3rem;text-align:right;border:1px solid var(--border);border-radius:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.questions-grid td input.invalid{border-color:var(--error)}.questions-total-col{text-align:right;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.questions-total-col.provisional{color:var(--warn-ink,var(--text-medium));font-weight:600;font-style:italic}.appeal-list{display:flex;flex-direction:column;gap:.6rem}.appeal-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.6rem 1rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.appeal-row.inactive{opacity:.72}.appeal-main{display:flex;flex-direction:column;gap:.3rem;flex:1 1 320px;min-width:0}.appeal-title{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;font-weight:600}.appeal-meta{font-size:.8rem;color:var(--text-medium)}.appeal-quote{margin:.1rem 0;padding:.35rem 0 .35rem .7rem;border-left:3px solid var(--brand-line);color:var(--text-strong)}.appeal-answer,.appeal-quote{font-size:.85rem;white-space:pre-line}.appeal-answer{margin:.2rem 0 0}.appeal-events{margin:.3rem 0 0;padding-left:1rem;font-size:.8rem;color:var(--text-medium)}.appeal-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-left:auto}.appeal-note-form{display:flex;flex-direction:column;gap:.35rem;flex:1 1 100%}.appeal-note-form textarea{font:inherit;font-size:.85rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:8px}.appeal-band{margin-top:1.4rem}.grade-detail-appeal{margin:-.2rem 0 .6rem;font-size:.85rem}.grade-band .picker-group-title{margin-top:0;margin-bottom:.45rem}.grade-band-note{font-size:.8rem;margin:-.25rem 0 .5rem;max-width:62ch}.grade-state{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.grade-card{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;gap:.6rem;background:var(--bg);box-shadow:none}.grade-card.flat{cursor:default}.grade-card.flat:hover{border-color:var(--border)}.grade-card .course-badge{width:34px;height:34px;border-radius:10px;flex-shrink:0}.grade-card-score{display:flex;flex-direction:column;gap:.3rem;min-width:0}.grade-card-value{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.grade-card-value strong{font-size:2rem;font-weight:700;line-height:1;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grade-card-scale{font-size:.75rem;color:var(--text-soft)}.grade-card-why{font-size:.84rem;color:var(--text-medium);line-height:1.45}.grade-meter{position:relative;margin:0;overflow:visible}.grade-meter.partial span{background:var(--teal-300)}.grade-meter.fail span{background:var(--error)}.grade-meter .metric-mark{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text-soft);border-radius:1px}.grade-detail{display:flex;flex-direction:column;gap:.9rem}.grade-detail>.back-link{align-self:flex-start;margin-bottom:0}.grade-detail>.section-title{margin:.2rem 0 0}.grade-detail-id{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.grade-detail-id .course-badge{width:40px;height:40px;border-radius:12px;flex-shrink:0}.grade-detail-id .course-cell{flex:1 1 220px}.grade-detail-id .course-cell strong{font-size:1.1rem}.grade-detail-id .course-cell strong:focus{outline:none}.grade-detail-id .course-cell strong:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}.grade-hero{display:flex;align-items:center;flex-wrap:wrap;gap:1.4rem;padding:1rem 1.1rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.grade-hero-figure{display:flex;flex-direction:column;gap:.4rem;flex:0 1 260px;min-width:200px}.grade-hero-value{display:flex;align-items:baseline;gap:.45rem}.grade-hero-value strong{font-size:2.6rem;font-weight:700;line-height:1;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grade-hero-floor{font-size:.76rem;color:var(--text-soft)}.grade-hero-floor strong{color:var(--text-medium);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grade-hero-note{flex:1 1 280px;min-width:0}.grade-hero-note p{margin:0;font-size:.85rem;color:var(--text-medium);max-width:56ch}.grade-hero-note .scheme-line{margin:.45rem 0 0}.grade-calc .desglose{max-width:none}.grade-plan{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:.6rem;gap:.6rem}.grade-plan-item{display:flex;flex-direction:column;gap:.1rem;padding:.65rem .8rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.grade-plan-item strong{font-size:1.2rem;font-weight:700;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grade-plan-item span{font-size:.78rem;color:var(--text-medium)}.report-table .items-head,.report-table .items-row{display:grid;grid-template-columns:5.5rem minmax(110px,1fr) minmax(180px,2.6fr) minmax(64px,.6fr) minmax(96px,.8fr);align-items:center;grid-gap:.6rem;gap:.6rem}.report-table .items-head.formative,.report-table .items-row.formative{grid-template-columns:5.5rem minmax(180px,2fr) minmax(160px,2fr)}.items-row{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.items-row .course-cell strong{font-weight:600}.items-row .incident-note{display:block;margin-top:.15rem;font-size:.8rem}.items-date{font-size:.82rem;font-weight:600;color:var(--text-medium);white-space:nowrap}.items-score strong{font-size:1.05rem}.items-row.upcoming .course-cell strong{font-weight:500;color:var(--text-medium)}.items-row.upcoming .items-date{color:var(--muted)}.items-note{font-size:.8rem;margin:.5rem 0 0;max-width:74ch}@media (max-width:1000px){.report-table .items-head{display:none}.report-table .items-row,.report-table .items-row.formative{grid-template-columns:1fr;gap:.25rem}.report-table .items-row .cell-label{display:inline;margin-right:.35rem;font-size:.72rem;color:var(--text-soft)}.grade-hero{gap:.9rem}}.gb-fail{color:var(--error)}.grades-flags{list-style:none;margin:0;padding:0;display:grid;grid-gap:.4rem;gap:.4rem}.grades-flags li{display:flex;align-items:center;gap:.55rem;font-size:.9rem}.grades-flags .course-badge{width:26px;height:26px;border-radius:8px}.grades-flags strong{margin-left:auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.student-block-title{display:flex;align-items:center;gap:.5rem}.student-block-title h3{margin:0}.task-row{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-table .task-head,.report-table .task-row{display:grid;grid-template-columns:1.6fr 1.3fr .9fr .9fr;align-items:center;grid-gap:.6rem;gap:.6rem}.task-subject{display:inline-flex;align-items:center;gap:.45rem;min-width:0}.task-subject .course-badge{width:24px;height:24px;flex-shrink:0}.task-title{font-weight:600}@media (max-width:640px){.report-table .task-head{display:none}.report-table .task-row{grid-template-columns:1fr;gap:.2rem}}.gb-empty-col{padding:.3rem .2rem;text-align:center}.gb-add{display:grid;place-items:center;width:26px;height:26px;margin:0 auto;border:1px dashed var(--border-strong);border-radius:8px;background:none;color:var(--text-medium);cursor:pointer;transition:border-color .12s ease,color .12s ease,background-color .12s ease}.gb-add:hover{border-color:var(--brand);color:var(--brand-dark);background:var(--brand-soft);border-style:solid}.gb-add:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.gb-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-medium);cursor:pointer;white-space:nowrap}.gb-toggle input{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}.scheme-line{margin:-.2rem 0 .7rem;font-size:.85rem}.scheme-edit{margin-left:.5rem}.scheme-rows{display:grid;grid-gap:.35rem;gap:.35rem}.scheme-row{display:grid;grid-template-columns:1fr 76px auto auto;align-items:center;grid-gap:.5rem;gap:.5rem;padding:.3rem .1rem;border-bottom:1px dashed var(--border)}.scheme-row:last-child{border-bottom:none}.scheme-row input{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.scheme-total{margin:.2rem 0 0;padding:.5rem .7rem;border-radius:var(--radius);font-size:.9rem}.scheme-total.ok{background:var(--success-soft);color:var(--success-ink)}.scheme-total.bad{background:var(--warn-fill);color:var(--warn-ink)}@media (min-width:901px){.tests-table .course-head,.tests-table .course-row{grid-template-columns:minmax(84px,.7fr) minmax(200px,2.2fr) minmax(110px,1fr) minmax(140px,1.3fr)}.tests-table.no-teacher .course-head,.tests-table.no-teacher .course-row{grid-template-columns:minmax(84px,.7fr) minmax(200px,2.2fr) minmax(110px,1fr)}}.tests-table .course-badge{width:34px;height:34px;border-radius:10px}.day-when.date{font-size:.82rem;font-weight:600;color:var(--muted)}.day-when.near{color:var(--brand-dark)}.class-main{display:flex;flex-direction:column;gap:1rem;min-width:0}@media (min-width:901px){.pending-table .course-head,.pending-table .course-row{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr) minmax(0,.8fr) minmax(96px,auto)}.class-evals .course-head,.class-evals .course-row{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) 176px}.class-evals .course-row>.col-actions{justify-content:center}.class-evals .course-row>.col-actions>.button{width:132px;justify-content:center;text-align:center}.evaluations-table .course-head,.evaluations-table .course-row{grid-template-columns:minmax(84px,.7fr) minmax(160px,2.2fr) minmax(130px,1fr)}}.evaluations-table .course-badge,.pending-table .course-badge{width:34px;height:34px;border-radius:10px}.evaluations-table .course-cell>.chip{align-self:center}.class-pulse{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.6rem;gap:.6rem;padding:.9rem 1.2rem;background:var(--bg);border-top:1px solid var(--border)}@media (max-width:640px){.class-pulse{grid-template-columns:minmax(0,1fr)}}.class-facts{display:flex;flex-direction:column;gap:.5rem}.tests-meta{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.35rem}.tests-doc{display:flex;min-width:0;margin-top:.15rem}.tests-doc .task-doc{font-weight:500;max-width:100%}.pupil-switch{align-self:flex-start;max-width:100%;overflow-x:auto}.pupil-switch .segment{flex-shrink:0}.class-hero .pupil-relation{font-weight:500}.tests-table .cell-label{display:none}@media (max-width:900px){.tests-table .cell-label{display:block;font-size:.72rem;color:var(--text-soft)}}.file-link{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;min-width:0;padding:0;border:none;background:none;font:inherit;font-size:.88rem;font-weight:600;color:var(--brand-dark);text-align:left;cursor:pointer}.file-link svg{flex-shrink:0}.file-link>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-link:hover>span{text-decoration:underline}.file-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.file-link.strong{font-size:.92rem}.submission-when{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.35rem;font-size:.8rem;color:var(--text-medium)}.row-link-button{background:none;border:none;padding:0;font:inherit;font-size:.92rem;font-weight:600;color:inherit;text-align:left;cursor:pointer}.pending-submissions{color:var(--brand-dark);font-weight:600}.submissions{display:flex;flex-direction:column;gap:.8rem}.submissions-count{margin:0;font-size:.85rem}.submissions-list{border:1px solid var(--border);border-radius:10px;overflow:hidden}.submission-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,1.6fr) 84px;align-items:center;grid-gap:.75rem;gap:.75rem;padding:.6rem .75rem;border-bottom:1px solid var(--border)}.submission-row:last-child{border-bottom:none}.submissions-list.with-marks .submission-row{grid-template-columns:minmax(130px,1fr) minmax(0,1fr) 190px}.submission-row:focus-within{background:var(--brand-soft)}.submission-head{padding-top:.5rem;padding-bottom:.5rem;background:var(--bg);font-size:.75rem;font-weight:500;color:var(--text-medium)}.submission-head>:last-child{text-align:right}.submission-who{display:flex;align-items:center;gap:.5rem;min-width:0;font-size:.9rem;font-weight:600}.submission-who>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.submission-file{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0;font-size:.85rem}.submission-file .incident-note{font-size:.8rem}.empty-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.submission-physical{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.35rem;font-size:.85rem;color:var(--text-strong)}.submission-physical-actions{display:inline-flex;gap:.6rem}.submission-file>.link-button{font-size:.8rem}.submission-physical-form{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.4rem;min-width:0}.submission-physical-form input[type=date]{font:inherit;font-size:.85rem;padding:.25rem .4rem;min-width:0;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-strong)}.submission-file .error,.submission-file .submission-physical-form .error{font-size:.8rem}.submission-physical-note{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.submission-mark{display:flex;flex-direction:column;gap:.3rem;align-items:stretch;min-width:0;width:100%}.submission-mark select{font:inherit;font-size:.85rem;width:100%}.submission-mark-note{font:inherit;font-size:.8rem;width:100%;padding:.25rem .4rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-strong)}.submission-grade{display:flex;justify-content:flex-end}.submission-score{width:100%;max-width:84px;padding:.45rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);font:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;color:var(--text)}.submission-score:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.submission-score.invalid{border-color:var(--error);color:var(--error)}.modal-actions .push-left{margin-right:auto}.submissions-saved{align-self:center;font-size:.82rem}@media (max-width:560px){.submission-row{grid-template-columns:minmax(0,1fr) 72px;column-gap:.5rem;row-gap:.3rem}.submission-row>.submission-who{grid-column:1;grid-row:1}.submission-row>.submission-grade{grid-column:2;grid-row:1}.submission-row>.submission-file{grid-column:1/-1;grid-row:2}.submission-head>:nth-child(2){display:none}}.submit-task{display:flex;flex-direction:column;gap:.9rem}.submission-graded{margin:0;font-size:.95rem}.submission-graded strong{font-size:1.25rem}.submission-current .course-cell{gap:.15rem}.submission-remove{flex-wrap:wrap;font-size:.88rem}.submission-remove .button{margin-left:0}.notice-actions{display:flex;gap:.4rem;margin-left:auto;flex-shrink:0}.field-hint{font-size:.78rem;font-weight:400}.report-table .task-head,.report-table .task-row{grid-template-columns:1.4fr 1.1fr 1fr 1.6fr .9fr}.task-submission{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;min-width:0;max-width:100%;font-size:.82rem}.task-submission .file-link{max-width:100%}.task-row .cell-label{display:none}@media (max-width:760px){.report-table .task-head{display:none}.report-table .task-row{grid-template-columns:minmax(0,1fr);gap:.35rem}.task-row .cell-label{display:block;font-size:.72rem;color:var(--text-soft)}}.modal-foot .submissions-actions{margin-top:0}.task-brief{display:flex;flex-direction:column;gap:.35rem;padding:.6rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;font-size:.85rem}.task-brief-line{display:flex;align-items:baseline;gap:.5rem;min-width:0;flex-wrap:wrap}.task-brief-label{flex-shrink:0;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.task-brief-instructions{flex:1 1;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.task-brief-instructions.open{white-space:pre-line;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.task-brief-edit{margin-left:auto}.task-brief .error{margin:0}.task-brief.block{gap:.6rem}.task-brief-section{display:flex;flex-direction:column;gap:.2rem;min-width:0}.task-brief-title{font-size:.78rem;font-weight:600;color:var(--text-medium)}.task-brief-doc{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0}.file-row-caption{display:block;margin-bottom:-.5rem;font-size:.78rem;font-weight:600;color:var(--text-medium)}.file-pick,.form label.file-pick{display:inline;font-size:inherit;font-weight:600;color:var(--brand-dark);text-decoration:underline;cursor:pointer}.file-pick:focus-within{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.task-title{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;min-width:0}.task-title .task-doc{font-weight:500;max-width:100%}.modal-body .form>.form-field{display:flex;flex-direction:column;gap:.3rem}.field-label{font-size:.85rem;font-weight:600;color:var(--text-medium)}.item-doc .file-row{font-weight:400}.item-doc .file-name{font-size:.92rem;overflow-wrap:anywhere}.item-doc-actions{display:flex;gap:.4rem;flex-shrink:0}.dialog-guard .button,.item-doc .button{margin-top:0;align-self:auto}.item-doc .notice-undo{font-weight:400}.item-doc .error{margin:0;font-weight:400}.dialog-guard{font-weight:400;font-size:.88rem}.dialog-status{margin:0;font-size:.82rem}.dialog-success{display:flex;flex-direction:column;gap:.6rem}.dialog-success>.panel-empty-icon{width:44px;height:44px;border-radius:14px;margin-bottom:.2rem}.dialog-success>strong{font-size:1rem}.dialog-success>p{margin:0;font-size:.9rem;color:var(--text-medium)}.dialog-success>p.notice{color:var(--warn-ink)}.dialog-success>p.error{color:var(--error)}@media (max-width:560px){.item-doc .file-row{flex-wrap:wrap}.item-doc-actions{width:100%;justify-content:flex-end}}.picker-tools{margin-top:.25rem}.picker-tools>.search{flex:1 1 320px;min-width:0}.picker-tools>.search input{width:100%;min-width:0;padding-left:2.2rem;padding-right:.75rem}.picker-tools>.search svg{right:auto;left:.7rem}.picker-tools>select{width:auto;height:42px;font-size:.9rem}@media (max-width:560px){.picker-tools>.search{flex-basis:100%}.picker-tools>select{width:100%}}.class-card-who{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.class-card-next{font-size:.82rem;color:var(--text-medium)}.class-card-next strong{font-weight:600;color:var(--text)}.class-card-chips{display:flex;align-items:center;flex-wrap:wrap;flex:1 1;gap:.5rem;min-height:1.55rem;min-width:0}.class-card-chips>.muted{font-size:.78rem}.courses-picker .class-card>.class-card-foot{margin-top:auto}.courses-picker .class-card-foot>.class-card-go{flex-shrink:0}@media (max-width:640px){.class-metrics{grid-template-columns:minmax(0,1fr)}}.metric .hint a{color:var(--brand-dark);font-weight:600;white-space:nowrap}.metric .hint a:hover{text-decoration:underline}.panel-head.with-action{flex-wrap:wrap}.panel-head-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-left:auto}.class-roster .course-row{grid-template-columns:minmax(0,1fr) auto}.class-roster .avatar{width:34px;height:34px;font-size:.75rem;flex-shrink:0}.class-roster .col-actions{justify-content:flex-end;flex-wrap:nowrap}.roster-more{padding-top:.75rem;padding-bottom:.9rem;border-top:1px solid var(--border)}@media (min-width:901px){.tests-table.no-course .course-head,.tests-table.no-course .course-row{grid-template-columns:132px minmax(200px,2.2fr) minmax(140px,1.3fr)}.tests-table.no-course.no-teacher .course-head,.tests-table.no-course.no-teacher .course-row{grid-template-columns:132px minmax(0,1fr)}}.class-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}@media (max-width:640px){.topbar-actions:has(>.class-actions){flex:1 1 100%}.class-actions{flex:1 1 100%}.class-actions .button{flex:1 1 auto;justify-content:center}}.gradebook thead th.gb-item.focus-col{background:var(--accent-tint);box-shadow:inset 0 -2px 0 var(--accent)}.gradebook td.gb-cell.focus-col{background:var(--accent-soft)}.class-page{display:flex;flex-direction:column;gap:1rem}.class-hero{background-image:none;flex-wrap:wrap}.class-hero .student-hero-text{max-width:none;flex:1 1 260px}.class-hero .class-actions{margin-left:auto}.class-hero.with-wallpaper{background:url(/StudentWallpaper.svg) 100%/auto 100% no-repeat,var(--student-hero-bg)}.class-hero.with-wallpaper .student-hero-text{max-width:55%}@media (max-width:900px){.class-hero.with-wallpaper{background-image:none}.class-hero.with-wallpaper .student-hero-text{max-width:none}}.class-hero .class-actions .button{height:38px;padding:.5rem .95rem;font-size:.9rem}.course-badge.xl{width:68px;height:68px;border-radius:21px}.course-badge.xl>svg{width:28px;height:28px}@media (max-width:640px){.course-badge.xl{width:52px;height:52px;border-radius:16px}.course-badge.xl>svg{width:22px;height:22px}.class-hero .class-actions{flex:1 1 100%;margin-left:0}.class-actions>.options{display:flex;flex:1 1 auto}.class-actions>.options>.button{flex:1 1 auto;justify-content:center}.class-hero .student-hero-text{flex-basis:180px}.class-page .student-tab svg{display:none}.class-page .student-tab{padding:.6rem .75rem}}.main .class-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);align-items:start;grid-gap:1rem;gap:1rem}@media (max-width:1180px){.main .class-grid{grid-template-columns:minmax(0,1fr)}.class-grid>.student-col{display:contents}.class-block-pending{order:1}.class-block-upcoming{order:2}.class-block-students{order:3}.class-block-info{order:4}}@media (min-width:901px){.tests-table.compact.no-course.no-teacher .course-head,.tests-table.compact.no-course.no-teacher .course-row{grid-template-columns:52px minmax(0,1fr) auto}}.tests-table.compact .day-when{display:flex;flex-direction:column;align-items:center;line-height:1.35}.tests-table.compact .course-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;grid-gap:.85rem;gap:.85rem;padding:.75rem 1.2rem}.tests-table.compact .course-row .col-course{padding:0}.date-tile{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:52px;padding:.3rem 0 .35rem;border-radius:10px;background:var(--brand-soft);color:var(--brand-dark);line-height:1.05}.date-tile small{font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.date-tile strong{font-size:1.3rem;font-weight:700;margin:.08rem 0}.date-tile.near{background:var(--accent-soft);color:var(--accent-ink)}.tests-dist{font-size:.8rem;font-weight:600;color:var(--text-soft);white-space:nowrap}.tests-dist.near{color:var(--accent-ink)}.tests-table.compact .day-when.date{color:var(--text-medium)}.day-dist{font-size:.75rem;font-weight:500;color:var(--text-soft)}@media (max-width:900px){.tests-table.compact .day-when{flex-direction:row;gap:.4rem;align-items:baseline;justify-content:center}.pending-table .course-row{grid-template-columns:minmax(0,1fr) auto;row-gap:.3rem}.pending-table .course-row>.col-course{grid-column:1}.data-table.pending-table .course-row>.course-cell{grid-column:1;flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;gap:0 .35rem;text-align:left}.data-table.pending-table .course-row>.course-cell strong{font-size:.8rem;font-weight:600;color:var(--text-medium)}.data-table.pending-table .course-row>.col-actions{grid-column:2;grid-row:1/span 3;align-self:center;justify-content:flex-end;flex-wrap:nowrap}}.pending-table .icon-button.tiny{width:34px;height:34px}.panel-tools>.chip-toggle{height:42px}.status-button.excused-chip.formal{cursor:default;padding-inline:.35rem}.status-button.excused-chip.formal small{display:block;font-size:.62rem;line-height:1.15;font-weight:500;white-space:normal;text-align:center;opacity:.95}.status-picker .options{position:relative;display:flex}.excuse-popover{width:240px;gap:.15rem;padding:.5rem;text-align:left}@media (max-width:1100px){.status-picker .options{flex:1 1;min-width:0}.status-picker .options .status-button{width:100%}}@media (max-width:720px){.status-picker .options{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 0.2rem)}.status-picker .options .status-button{flex:1 1 auto}.status-picker .options-menu.excuse-popover{width:240px}}.excuse-popover .popover-hint{padding:.2rem .6rem .35rem;font-size:.78rem}.roster-row .col-status{display:flex;flex-direction:column;gap:.35rem}.lessons-chip{width:auto;align-self:flex-start;padding:.22rem 1.5rem .22rem .6rem;border:1px dashed var(--border);border-radius:999px;background-position:right .4rem center;background-size:13px;color:var(--muted);font-size:.75rem;font-weight:500;line-height:1.2}.lessons-chip:hover{border-color:var(--text-medium);color:var(--text-medium)}.lessons-chip.partial{border-style:solid;border-color:var(--absent);background-color:var(--absent-soft);color:var(--absent-ink);font-weight:600}.lessons-chip:disabled{opacity:.8;background-image:none;padding-right:.6rem}.lessons-chip.partial:disabled{background-color:var(--absent-soft);color:var(--absent-ink)}.excuse-list li{align-items:flex-start}.excuse-list li.inactive>.course-cell>strong{color:var(--text-medium);text-decoration:line-through}.excuse-list .course-cell{gap:.2rem}.excuse-list .metric-icon{margin-top:.1rem}.excuse-list li.inactive .metric-icon{background:var(--surface);border:1px solid var(--border);color:var(--muted)}.excuse-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem;flex-shrink:0}.uniform-owner{align-self:center;font-size:.82rem;color:var(--text-medium);white-space:nowrap}.excuse-status{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .5rem;margin-top:.15rem}.button.ghost.danger-text{color:var(--error)}.button.ghost.danger-text:hover{color:var(--error);background:var(--error-soft)}.excuse-confirm{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding:.7rem .8rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-weight:400}.excuse-confirm p{font-size:.88rem;color:var(--text)}.excuse-confirm textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:.5rem .7rem;font-family:inherit;font-size:.9rem;color:var(--text);resize:vertical}.excuse-confirm textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.excuse-confirm .modal-actions{margin-top:0}.excuse-pending{display:flex;flex-direction:column;gap:.5rem}.excuse-pending h3{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.95rem}.excuse-pending>.muted{margin:0;font-size:.85rem}.excuse-list li.pending{border-color:var(--warn-line)}.excuse-done{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.88rem;font-weight:600;color:var(--success)}@media (max-width:700px){.excuse-list li.pending .excuse-actions .button{flex:1 1 auto;justify-content:center}}.incident-formal{display:block;font-size:.8rem;color:var(--excused-ink);font-weight:500}@media (max-width:700px){.excuse-list li,.fact-row:has(>.excuse-actions){flex-wrap:wrap}.excuse-actions{width:100%;justify-content:flex-start}.fact-row>.metric-icon~.excuse-actions{padding-left:calc(34px + .8rem)}.excuse-actions>.options{flex:0 0 auto}}.attendance-table.no-note .course-head,.attendance-table.no-note .course-row{grid-template-columns:5.5rem minmax(110px,1fr) minmax(170px,1.9fr) minmax(150px,1.4fr)}.faults-table .course-head,.faults-table .course-row{grid-template-columns:5.5rem minmax(110px,.9fr) minmax(160px,1.4fr) minmax(150px,1.3fr) minmax(96px,auto)}.faults-table.summary .course-head,.faults-table.summary .course-row{grid-template-columns:5.5rem minmax(110px,.9fr) minmax(160px,1.6fr)}.faults-table.no-actions .course-head,.faults-table.no-actions .course-row{grid-template-columns:6.5rem minmax(110px,.9fr) minmax(160px,1.5fr) minmax(150px,1.1fr)}@media (min-width:901px){.faults-table .course-row>.fault-when{justify-content:center}.faults-table .fault-when .incident-date{align-items:center;text-align:center}}.faults-table .col-actions{justify-content:flex-end}.faults-table .col-actions .muted{font-size:.8rem;text-align:right}.faults-table .fault-state{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;min-width:0}.faults-table .fault-state .chip{white-space:normal;text-align:left}@media (max-width:900px){.data-table.faults-table .course-head,.data-table.faults-table.summary .course-head{display:none}.data-table.faults-table .course-row,.data-table.faults-table.summary .course-row{grid-template-columns:auto minmax(0,1fr) auto;row-gap:.25rem;column-gap:.6rem}.data-table.faults-table .course-row>.fault-when{grid-column:1;grid-row:1}.data-table.faults-table .course-row>.fault-kind{grid-column:2;grid-row:1}.data-table.faults-table .course-row>.fault-subject{grid-column:1/3;grid-row:2}.data-table.faults-table .course-row>.fault-state{grid-column:1/3;grid-row:3;flex-direction:row;flex-wrap:wrap}.data-table.faults-table .course-row>.col-actions{grid-column:3;grid-row:1/span 3;align-self:center}.faults-table .col-students .course-badge{width:26px;height:26px;border-radius:8px}}.family-page{display:flex;flex-direction:column;gap:1rem}.pupil-switch .segment{display:inline-flex;align-items:center;gap:.5rem;height:42px;padding:0 .85rem 0 .4rem}.pupil-switch .segment .avatar{width:28px;height:28px;font-size:.7rem}.pupil-switch .segment .seg-sec{color:var(--text-soft);font-weight:500}.pupil-switch+.class-hero{margin-top:-.75rem}.pupil-cards .pupil-card-avatar{width:46px;height:46px;font-size:1rem;flex-shrink:0}.pupil-cards .metric .pupil-card-name{font-size:1.1rem;font-weight:700;line-height:1.25;letter-spacing:-.01em}@media (max-width:720px){.pupil-cards .metric{gap:.6rem;padding:.75rem}.pupil-cards .pupil-card-avatar{width:36px;height:36px;font-size:.85rem}.pupil-cards .metric .pupil-card-name{font-size:.95rem}.pupil-cards .metric .hint{display:none}}.class-hero .student-hero-text>.notice{margin:.25rem 0 0}.uni-items{display:flex;flex-direction:column;gap:.4rem}.uni-legend{font-size:.85rem;font-weight:600}.uni-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.4rem;gap:.4rem}.uni-chips .chip-toggle{display:inline-flex;align-items:center;justify-content:flex-start;height:34px;padding-block:0;text-align:left}.uni-file summary{cursor:pointer;font-size:.88rem;color:var(--brand-dark);font-weight:600}.uni-file[open] summary{margin-bottom:.5rem}.uniform-chip{font-size:.72rem;font-weight:500;line-height:1.3;color:var(--text-medium);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem;white-space:nowrap}.chip.adequacy-mark,.uniform-chip{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.chip.adequacy-mark{border:1px solid var(--brand-line)}.student-cell .adequacy-mark{align-self:flex-start}.gb-student .adequacy-mark{display:block;width:-moz-fit-content;width:fit-content;margin:.2rem 0 0 calc(22px + .45rem)}@media (max-width:1200px){.gb-student .adequacy-mark{margin-left:0}}.adequacy-card .adequacy-kind{margin:0 0 .35rem}.adequacy-card .adequacy-note{margin:0 0 .5rem;white-space:pre-line}.adequacy-card .adequacy-form{max-width:440px}.adequacy-card .adequacy-form>label{display:flex;flex-direction:column;gap:.3rem}.adequacy-card .adequacy-form>label .muted{font-weight:400}.adequacy-card .adequacy-form select,.adequacy-card .adequacy-form textarea{width:100%;font-size:.95rem}.adequacy-card .adequacy-form textarea{font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:.6rem .7rem;resize:vertical}.notice-chip{display:inline-block;max-width:100%;font-size:.72rem;font-weight:600;line-height:1.3;color:var(--warn);background:var(--warn-fill);border:1px solid transparent;border-radius:999px;padding:.15rem .55rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;text-decoration:none}.notice-chip:hover{border-color:var(--warn)}.accepted-chip{display:inline-block;max-width:100%;font-size:.72rem;font-weight:600;line-height:1.3;color:var(--excused-ink);background:var(--excused-soft,var(--bg));border:1px solid transparent;border-radius:999px;padding:.15rem .55rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.student .student-cell{display:flex;flex-direction:column;gap:.2rem;min-width:0}.uniform-summary{display:flex;align-items:center;gap:.35rem;margin:0;font-size:.85rem}.uniform-summary svg{flex-shrink:0;color:var(--text-soft)}.groups-panel .pending-kinds{margin-left:0;padding:.7rem 1.2rem .2rem}.groups-panel .pending-kinds .chip-toggle{padding:.28rem .7rem;font-size:.8rem}.uniform-today-group+.uniform-today-group{border-top:1px solid var(--border)}.uniform-today-section{margin:0;padding:.55rem 1.25rem;font-size:.78rem;font-weight:600;color:var(--text-medium);background:var(--bg);border-bottom:1px solid var(--border)}.notices-block .notice-kinds{align-self:flex-start}.notices-foot{display:flex;flex-direction:column;gap:.25rem;margin:0;font-size:.85rem}.notices-foot p{margin:0}.notices-foot a{color:var(--brand-dark);font-weight:600}.notice-more{margin:0;font-size:.85rem}.notice-more a{color:var(--brand-dark);font-weight:600}@media (max-width:640px){.family-page .attendance-pulse{flex-direction:column;align-items:stretch}.family-page .attendance-pulse .donut-wrap{align-self:center}.family-page .stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.overview-attendance .attendance-pulse{flex-direction:column;align-items:stretch}.overview-attendance .attendance-pulse .donut-wrap{align-self:center}.overview-attendance .stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-attendance .pulse-unit{margin-top:.6rem}.overview-attendance.wide .attendance-pulse{flex-direction:row;align-items:center}.overview-attendance.wide .stat-cards{flex:1 1;grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:900px){.overview-attendance.wide .attendance-pulse{flex-direction:column;align-items:stretch}.overview-attendance.wide .stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.attendance-days{margin:0 0 .9rem;font-size:.95rem}.attendance-days .absent{color:var(--absent);font-weight:600}.history-form{align-self:flex-start}.school-contact{display:flex;flex-wrap:wrap;gap:.5rem}.school-contact .button{text-decoration:none}.grade-band-fold .linklike{font:inherit;color:var(--brand-dark);font-weight:600}.grade-band-fold .linklike:hover{text-decoration:underline}.pending-table .task-doc{font-weight:500;max-width:100%}.nld-list{list-style:none;margin:.6rem 0 0;padding:0;display:grid;grid-gap:.35rem;gap:.35rem}.nld-row{display:grid;grid-template-columns:minmax(120px,170px) 1fr auto;grid-gap:.6rem .9rem;gap:.6rem .9rem;align-items:center;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.nld-row.inactive{opacity:.7}.nld-row.inactive strong{text-decoration:line-through}.nld-date{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-medium)}.nld-main{display:flex;flex-direction:column;gap:.2rem;min-width:0}.nld-main strong{font-weight:600}.nld-chips{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.8rem}.nld-row .excuse-confirm{grid-column:1/-1}.chip.brand{background:var(--brand-soft);color:var(--brand-dark)}.chip.cat-calendar{background:var(--bg);color:var(--text-medium)}.chip.cat-curricular{background:var(--present-soft);color:var(--present-ink)}.chip.cat-lost{background:var(--absent-soft);color:var(--absent-ink)}.nld-revoked{margin-top:.6rem}.nld-foot{margin:.8rem 0 0;font-size:.85rem}.scope-picker{border:0;padding:0;margin:0;display:grid;grid-gap:.45rem;gap:.45rem}.scope-picker legend{font-size:.86rem;font-weight:600;color:var(--text-medium);margin-bottom:.2rem}.scope-picker .segmented{justify-self:start}.dialog-warnings{margin:.6rem 0 0;padding:.6rem .8rem .6rem 1.6rem;background:var(--warn-soft,#fffbeb);border:1px solid var(--warn-fill,#fde68a);border-radius:var(--radius);font-size:.86rem;text-align:left;display:grid;grid-gap:.3rem;gap:.3rem}.nld-banner{display:flex;gap:.6rem;align-items:flex-start;padding:.65rem .9rem;background:var(--bg);border-left:3px solid var(--brand);border-radius:var(--radius);font-size:.9rem;color:var(--text-medium)}.nld-banner strong{color:var(--text)}.nld-banner .nld-banner-icon{color:var(--brand-dark);flex-shrink:0;margin-top:.1rem}.today-table .nld-info td{color:var(--text-medium);font-style:normal}.chip.nld{background:var(--bg);color:var(--text-medium)}@media (max-width:640px){.nld-row{grid-template-columns:1fr auto}.nld-date{grid-column:1/-1}}.nld-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1rem}.nld-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:.4rem}.nld-table td,.nld-table th{padding:.45rem .5rem;border-bottom:1px solid var(--border);text-align:left}.nld-table th{font-size:.75rem;font-weight:500;color:var(--text-medium)}.nld-report .num,.nld-table .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.nld-report .course-head,.nld-report .course-row{grid-template-columns:minmax(130px,1.2fr) minmax(140px,1.4fr) minmax(140px,1.4fr) minmax(200px,1.3fr)}.nld-band-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;padding:.9rem 1.25rem .5rem;border-top:1px solid var(--border)}.nld-band:first-of-type .nld-band-head{border-top:0}.nld-band-head strong{font-size:1rem}@media print{.filter-bar,.sidebar,.topbar .page-tools{display:none!important}.nld-band{page-break-inside:avoid;break-inside:avoid}}.nld-today{display:grid;grid-gap:.5rem;gap:.5rem;margin-bottom:1rem}.notice-hint{color:var(--warn);font-weight:500}.roster-legend{display:none;flex-wrap:wrap;gap:.35rem .9rem;padding:.5rem .7rem;font-size:.75rem;color:var(--text-medium);background:var(--bg);border-bottom:1px solid var(--border)}.roster-legend span{display:inline-flex;align-items:center;gap:.25rem}.roster-legend svg{width:14px;height:14px}.roster-legend .present{color:var(--present-ink)}.roster-legend .absent{color:var(--absent-ink)}.roster-legend .late{color:var(--late-ink)}.roster-legend .excused{color:var(--excused-ink)}.roster-mobile-bar{display:none;position:-webkit-sticky;position:sticky;bottom:0;z-index:5;align-items:center;gap:.6rem;margin:0 -.25rem;padding:.55rem .8rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 -6px 18px rgba(15,23,42,.08)}.roster-mobile-bar .button.small{display:inline-flex;align-items:center;gap:.35rem}.roster-mobile-state{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--present-ink);min-width:0}.roster-mobile-state.dirty{color:var(--late-ink)}.roster-mobile-left{margin-left:auto;font-size:.78rem;color:var(--text-medium);white-space:nowrap}@media (max-width:720px){.roster-row{grid-template-columns:minmax(0,1fr) auto auto;column-gap:.5rem;row-gap:.45rem;padding:.55rem .7rem}.roster-row .col-num{display:none}.roster-row .student{grid-column:1}.roster-row .student .avatar{display:none}.roster-row .student-link{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-row .col-status{grid-column:2;width:auto;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}.roster-row .col-note{grid-column:3}.roster-row .note-editor{grid-column:1/-1}.status-picker{gap:.3rem;justify-content:flex-end}.status-button{width:40px;height:38px;flex:0 0 40px;padding:0;gap:0;border-radius:9px}.status-button>small,.status-button>span{display:none}.status-button svg{width:18px;height:18px}.status-button.excused-chip.formal small{display:none}.status-button.excused-chip.formal{padding-inline:0}.status-picker .options{flex:0 0 auto;min-width:0}.status-picker .options .status-button{width:40px;flex:0 0 40px}.col-status .lessons-chip{align-self:flex-end}.note-button{width:38px;height:38px;padding:0;border-radius:9px}.note-button>svg{width:18px;height:18px}.note-button-label{display:none}.roster-legend,.roster-mobile-bar{display:flex}}.cierre-coverage{margin:.75rem 0 .5rem}.cierre-coverage.done{border-left-color:var(--present)}.cierre-coverage a{color:var(--brand-dark);font-weight:600}.sea-sheet{padding:0;overflow:hidden}.sea-sheet>.panel-head{padding:1.1rem 1.2rem;border-bottom:1px solid var(--border)}.sea-warn{color:var(--late-ink);font-weight:600}.sea-wrap{overflow-x:auto}.sea-grid{border-collapse:separate;border-spacing:0;font-size:.8rem;min-width:max-content}.sea-grid td,.sea-grid th{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:.3rem .35rem;text-align:center;white-space:nowrap}.sea-grid thead th{background:var(--bg);color:var(--text-medium);font-size:.72rem;top:0;z-index:2}.sea-grid .sea-student,.sea-grid thead th{font-weight:500;position:-webkit-sticky;position:sticky}.sea-grid .sea-student{text-align:left;left:0;background:var(--surface);z-index:3;min-width:180px;max-width:220px;overflow:hidden;text-overflow:ellipsis}.sea-grid tfoot .sea-student,.sea-grid thead .sea-student{background:var(--bg);z-index:4}.sea-day{min-width:34px}.sea-day .sea-wd{display:block;font-size:.62rem;letter-spacing:.04em}.sea-day .sea-num{display:block;font-weight:600;color:var(--text)}.sea-cell.future,.sea-day.future{opacity:.45}.sea-cell.nonlesson,.sea-day.nonlesson{background:repeating-linear-gradient(135deg,transparent,transparent 4px,rgba(15,23,42,.05) 0,rgba(15,23,42,.05) 8px)}.sea-day.nolist{background:var(--late-soft);color:var(--late-ink);print-color-adjust:exact;-webkit-print-color-adjust:exact}.sea-day .sea-nolist{display:block;font-size:.55rem;font-weight:600;letter-spacing:.02em}.sea-cell{min-width:34px;height:30px}.sea-mark{display:inline-block;font-weight:700;margin:0 .1rem;font-size:.78rem}.sea-mark sub{font-size:.6rem;font-weight:600}.sea-mark.absent{color:var(--absent)}.sea-mark.late{color:var(--late)}.sea-mark.excused{color:var(--excused-ink)}.sea-total{min-width:40px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sea-total.absent{color:var(--absent)}.sea-total.late{color:var(--late)}.sea-total.excused{color:var(--excused-ink)}.sea-grid tfoot td,.sea-grid tfoot th{background:var(--bg);font-weight:600}.sea-foot-note{margin:0;padding:.8rem 1.2rem;font-size:.8rem}@media print{.sea-sheet,.sea-wrap{overflow:visible}.sea-sheet{page-break-inside:auto;break-inside:auto}.sea-grid tbody tr{page-break-inside:avoid;break-inside:avoid}.sea-cell,.sea-day{min-width:26px}.sea-total{min-width:32px}.sea-grid .sea-student{min-width:150px}.sea-grid{font-size:.68rem}.sea-grid td,.sea-grid th{padding:.15rem .2rem}.sea-grid .sea-student,.sea-grid thead th{position:static}.sea-cell.future,.sea-day.future{opacity:.6}}.notice.success{color:var(--success-ink);background:var(--success-soft);border-color:var(--success-line);display:flex;align-items:flex-start;gap:.4rem;flex-wrap:wrap}.notice.success svg{flex-shrink:0;margin-top:.15rem}.panel-tools.compact{justify-content:flex-end;flex:0 0 auto}.schedule-compare{margin-top:.4rem;align-self:flex-start}.copy-preview p{margin:.35rem 0}.quick-roster{gap:.6rem}.quick-indicators,.quick-roster{display:flex;flex-direction:column}.quick-indicators{gap:.35rem}.quick-indicators .segmented{flex-wrap:wrap}.quick-hint{margin:0;font-size:.85rem}.quick-list{list-style:none;margin:0;padding:0;gap:.5rem}.quick-card,.quick-list{display:flex;flex-direction:column}.quick-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .7rem;gap:.45rem;min-height:108px;transition:background .4s ease}.quick-card.flash{background:var(--brand-soft)}.quick-card.dirty{border-color:var(--late-line,var(--border))}.quick-head{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;min-height:1.4rem}.quick-head strong{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-status{font-size:.85rem;font-weight:600;white-space:nowrap}.quick-status.on{color:var(--present-ink)}.quick-status.partial{color:var(--late-ink)}.quick-status.neutral{color:var(--text-medium)}.quick-buttons{display:flex;flex-wrap:wrap;gap:.4rem}.quick-buttons .quick-btn{min-height:44px;min-width:48px;flex:1 1 48px;font-size:1rem}.quick-buttons .quick-btn:not(.ghost):not(.on){background:var(--surface);color:var(--text);border:1.5px solid var(--border-strong)}.quick-buttons .quick-btn:not(.ghost):not(.on):hover{border-color:var(--brand);background:var(--brand-soft)}.quick-buttons .quick-btn.on{background:var(--present);border:1.5px solid var(--present);color:#fff}.quick-buttons .quick-btn.on:hover{background:var(--present)}.quick-confirm{align-items:center;min-height:44px}.quick-confirm .quick-question{flex:1 1 auto;min-width:0;font-weight:600;font-size:.92rem}.quick-confirm .button{min-height:44px;min-width:64px}.quick-convert{font-size:.85rem;font-weight:600;color:var(--brand-dark);white-space:nowrap}.quick-convert.bad{color:var(--error)}.quick-buttons .quick-clear{flex:0 0 44px;min-width:44px}.quick-bar{display:flex;flex-wrap:wrap}.quick-count{font-weight:600;font-size:.9rem;white-space:nowrap}.quick-fill{display:inline-flex;align-items:center;gap:.3rem;margin-left:auto}.quick-fill select{min-height:36px}.quick-other{display:flex;align-items:center;gap:.4rem;width:100%}.quick-other input{flex:1 1 80px;min-width:0;min-height:40px;font-size:1.1rem}.quick-undo{white-space:nowrap}.quick-back{margin:.4rem 0 0}.quick-roster .roster-mobile-bar{display:flex}.marks-grid-wrap{display:flex;flex-direction:column;gap:.6rem}.marks-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.marks-hint{font-size:.82rem;margin-left:auto}.marks-grid{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.marks-head,.marks-row{display:flex;align-items:stretch;min-width:max-content}.marks-head{background:var(--bg);font-size:.8rem;color:var(--text-medium);position:-webkit-sticky;position:sticky;top:0;z-index:1}.marks-row{border-top:1px solid var(--border)}.marks-row.dirty{background:var(--late-soft,transparent)}.marks-name{flex:0 0 220px;padding:.5rem .7rem;display:flex;align-items:center;position:-webkit-sticky;position:sticky;left:0;background:inherit;z-index:1}.marks-row .marks-name{background:var(--surface)}.marks-col{flex:0 0 auto;padding:.4rem .6rem;display:flex;flex-direction:column;gap:.3rem;position:relative;border-left:1px solid var(--border)}.marks-col-label{font-weight:600;color:var(--text)}.marks-fill{display:flex;gap:.3rem;align-items:center}.marks-fill select{min-height:30px;font-size:.8rem}.marks-levels{display:inline-flex}.marks-levels .segment{min-height:34px;padding:.2rem .6rem}.marks-row .marks-col{flex-direction:row;align-items:center}.marks-note{flex-shrink:0}.marks-note.has{color:var(--brand)}.marks-note-form{position:absolute;top:100%;left:.6rem;z-index:3;display:flex;gap:.3rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.4rem;box-shadow:0 6px 18px rgba(15,23,42,.12)}.marks-note-form input{min-width:220px}.marks-result{flex:0 0 150px;padding:.5rem .7rem;display:flex;align-items:center;border-left:1px solid var(--border)}.rubric-list .course-head,.rubric-list .course-row{grid-template-columns:1.4fr .8fr 1.2fr 1.4fr .9fr 44px}.menu-confirm{padding:.5rem .7rem;display:flex;flex-direction:column;gap:.4rem;border-top:1px solid var(--border)}.menu-confirm p{margin:0;font-size:.82rem}.rubric-form fieldset{border:1px solid var(--border);border-radius:8px;padding:.6rem .8rem;display:flex;flex-direction:column;gap:.45rem}.rubric-form legend{font-weight:600;font-size:.9rem;padding:0 .3rem}.rubric-indicator-row,.rubric-level-row{display:flex;gap:.4rem;align-items:center}.rubric-indicator-row input:first-child,.rubric-level-row input:first-child{flex:1 1 auto;min-width:0}.rubric-value{width:84px;flex:0 0 84px}.rubric-weight{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem}.rubric-weight input{width:64px}.rubric-indicator{display:flex;flex-direction:column;gap:.35rem;padding-bottom:.4rem;border-bottom:1px dashed var(--border)}.rubric-indicator:last-of-type{border-bottom:0}.rubric-descriptors{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.4rem;gap:.4rem;padding-left:.5rem}.rubric-descriptors label{display:flex;flex-direction:column;gap:.15rem;font-size:.82rem}.check-line{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.check-line input{width:auto}.check-line input[type=checkbox]{width:16px;height:16px}.rubric-picker{display:flex;gap:.4rem;align-items:center}.rubric-picker select{flex:1 1 auto;min-width:0}.rubric-siblings{border:1px solid var(--border);border-radius:8px;padding:.5rem .8rem;display:flex;flex-direction:column;gap:.3rem}.rubric-siblings legend{font-weight:600;font-size:.9rem;padding:0 .3rem}.gb-value.gb-rubric-value{max-width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;cursor:pointer}.gb-value.gb-rubric-value.provisional{color:var(--text-soft);font-style:italic}.gb-value.gb-rubric-value.empty{color:var(--text-soft)}.gb-item-meta .gb-rubric-tag{display:inline-flex;align-items:center;color:var(--brand)}.items-row .item-marks{list-style:none;margin:.2rem 0 0;padding:0;font-size:.8rem;display:grid;grid-gap:.1rem;gap:.1rem}.items-row .item-marks .incident-note{display:inline;margin:0}.week-tools{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.week-tools .week-teacher{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--text-soft)}.week-tools .week-teacher select{height:42px}.week-tools .week-count{margin-left:auto}.week-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:.75rem;gap:.75rem;align-items:start}.week-day{background:var(--surface);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;min-width:0;overflow:hidden}.week-day.today{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-ring-soft)}.week-day-head,.week-day.closed{background:var(--bg)}.week-day-head{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:.6rem .75rem;border-bottom:1px solid var(--border)}.week-day.today .week-day-head{background:var(--brand-soft)}.week-day-head strong{font-size:.95rem}.week-day-head .week-closed{font-size:.8rem;flex-basis:100%}.week-empty{padding:.75rem;margin:0;font-size:.85rem}.week-block{display:grid;grid-template-columns:auto 28px minmax(0,1fr);grid-template-areas:"when badge what" "state state state";grid-gap:.15rem .5rem;gap:.15rem .5rem;align-items:center;padding:.55rem .75rem;border-bottom:1px solid var(--border);color:inherit;text-decoration:none;transition:background-color .12s ease}.week-block:last-child{border-bottom:0}.week-block:hover{background:var(--bg)}.week-block:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.week-block .week-when{grid-area:when;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;font-size:.85rem;display:flex;flex-direction:column;line-height:1.15}.week-block .week-when small{font-weight:500;color:var(--muted);font-size:.72rem}.week-block .course-badge{grid-area:badge;width:28px;height:28px}.week-block .week-what{grid-area:what;min-width:0;display:flex;flex-direction:column;line-height:1.2}.week-block .week-what strong{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-block .week-what .muted{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-block .week-state{grid-area:state;justify-self:start;font-size:.72rem;font-weight:600;padding:.1rem .5rem;border-radius:999px}.week-block .week-state.taken{background:var(--present-soft);color:var(--present-ink)}.week-block .week-state.missing{background:var(--warn-fill);color:var(--warn)}.week-block .week-state.now{background:var(--brand);color:#fff}.week-block .week-state.next{background:var(--brand-soft);color:var(--brand-dark)}.week-block .week-state.nonlesson{background:var(--border);color:var(--text-soft)}.week-block.state-future,.week-block.state-nonlesson{color:var(--text-medium)}.week-block.state-now{background:var(--brand-soft)}.week-block.orphan .week-when{color:var(--muted)}.day-when .next-chip,.day-when .now-chip{display:inline-block;margin-left:.35rem;vertical-align:middle}.day-when .now-chip{background:var(--brand);color:#fff}.day-when .next-chip{background:var(--brand-soft);color:var(--brand-dark)}@media (max-width:720px){.week-grid{grid-template-columns:1fr}.week-tools .week-count{margin-left:0}}.item-brief{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;min-width:0;max-width:100%;margin-top:.15rem}.item-brief-toggle{font-size:.8rem;font-weight:600}.item-brief-body{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;width:100%;max-width:62ch;padding:.5rem .7rem;border-left:3px solid var(--brand-line);background:var(--bg);border-radius:0 8px 8px 0;font-size:.85rem;color:var(--text)}.item-brief-text{white-space:pre-line;overflow-wrap:anywhere;color:var(--text)}.item-brief-doc{display:flex;min-width:0;max-width:100%}.item-brief-doc .task-doc{font-weight:500;max-width:100%}.item-brief-when{font-size:.75rem}.course-cell .item-brief-text,.course-cell .item-brief-when{display:block}.print-page{display:flex;flex-direction:column;gap:1rem}.print-tools{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.print-toolbar{flex-wrap:wrap;padding:.6rem .6rem .6rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.88rem}.print-toolbar .button svg{vertical-align:-3px}.print-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto}.print-sheet{gap:.9rem}.print-head{display:flex;flex-direction:column;gap:.2rem}.print-head h1{font-size:1.15rem;margin:0}.print-head p{margin:0;font-size:.88rem;color:var(--text-medium)}.print-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px}.print-grid{table-layout:auto;min-width:0;width:100%;font-size:.82rem}.print-grid td,.print-grid th{padding:.4rem .5rem;white-space:nowrap;border-bottom:1px solid var(--border);vertical-align:bottom}.print-grid thead th{position:static;background:var(--bg);text-align:center;font-size:.75rem}.print-grid th.print-group{border-bottom:2px solid var(--brand-line)}.print-grid td.print-id,.print-grid td.print-student,.print-grid th.print-id,.print-grid th.print-student{text-align:left}.print-grid td.print-student{font-weight:600}.print-grid .print-item{white-space:normal;min-width:88px;max-width:120px}.print-grid .print-item-title{display:block;font-weight:600;line-height:1.2}.print-grid .print-item-meta{display:block;font-weight:500;color:var(--text-soft)}.print-grid td.print-cell,.print-grid td.print-computed,.print-grid td.print-total{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.print-grid td.print-computed,.print-grid th.print-computed{background:var(--bg);border-left:1px solid var(--border)}.print-grid td.print-total,.print-grid th.print-total{border-left:2px solid var(--border-strong);font-weight:700}.print-grid td.print-total.fail strong{color:var(--error)}.print-grid .print-flag{font-weight:400;color:var(--text-soft);font-size:.75rem}.print-grid tr.print-historical td{color:var(--text-soft)}.print-foot{display:flex;flex-direction:column;gap:.9rem}.print-note{margin:0;font-size:.8rem}.print-signatures{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;padding-top:1.5rem;font-size:.88rem}@media print{.print-tools{display:none!important}.print-page{gap:.5rem}.print-sheet{border:none;padding:0;page-break-inside:auto;break-inside:auto}.print-wrap{overflow:visible;border:none;border-radius:0}.print-grid{font-size:.7rem}.print-grid td,.print-grid th{padding:.2rem .3rem;border-color:var(--border-strong)}.print-grid .print-item{min-width:0;max-width:90px}.print-grid tbody tr{page-break-inside:avoid;break-inside:avoid}.print-grid td.print-total.fail strong{color:inherit}.print-signatures{padding-top:2.5rem;page-break-inside:avoid;break-inside:avoid}}.gb-makeup-box{display:block;width:100%;min-width:0;container-type:inline-size;text-align:center}.gb-status.gb-makeup{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;padding-inline:.45rem}.gb-makeup-short{display:none}@container (width < 172px){.gb-status.gb-makeup .gb-makeup-long{display:none}.gb-status.gb-makeup .gb-makeup-short{display:inline}}@media (min-width:901px){.makeups-table .course-head,.makeups-table .course-row{grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) minmax(112px,auto)}}.makeups-table .cell-label{display:none}@media (max-width:900px){.makeups-table .cell-label{display:block;font-size:.72rem;color:var(--text-soft)}}.makeups-table .col-course .avatar.tiny{flex-shrink:0}.makeup-form .makeup-deadline{margin:0;font-size:.85rem;line-height:1.4}.makeup-form label>.muted{font-size:.8rem;font-weight:400}.grade-rules{display:grid;grid-gap:.4rem;gap:.4rem;margin-top:.6rem}.grade-rule{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}.grade-rule-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.grade-rule-text .muted{font-size:.8rem;font-weight:400}.grade-rule-input{width:4.2rem;padding:.2rem .45rem;font:inherit;font-weight:700;text-align:center;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text)}.grade-rule-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring-soft)}.grade-rule-actions{display:flex;gap:.4rem}.grade-rule-saved{margin:0;font-size:.82rem}.grade-rules+.grade-rules{margin-top:.4rem}.item-targets .check-line{margin:.25rem 0;flex-wrap:wrap}.item-targets .check-line .chip{margin-left:.15rem}.item-targets .check-line .muted{font-weight:400;font-size:.85rem}.target-row{display:flex;flex-direction:column;gap:.15rem;padding:.1rem 0 .25rem;border-bottom:1px dashed var(--border)}.target-row:last-of-type{border-bottom:none}.target-dates{display:flex;gap:.75rem;flex-wrap:wrap;padding-left:1.5rem}.target-dates label{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem;font-weight:500}.target-dates input{font:inherit;padding:.3rem .45rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text)}.target-hints{display:flex;flex-direction:column;gap:.1rem;padding-left:1.5rem}.target-hints:empty{display:none}.field-hint.error-hint{color:var(--error);font-weight:600}.link-inline{color:var(--brand-dark);font-weight:600;text-decoration:underline}.modal-actions .button.danger{background:var(--error);border-color:var(--error);color:var(--on-brand)}.calendar-week,.section-calendar{display:flex;flex-direction:column}.week-sep{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin:.35rem 1.25rem 0;padding:.5rem 0 .35rem;border-top:2px solid var(--brand-line);font-size:.8rem;font-weight:700;color:var(--text-medium);text-transform:uppercase;letter-spacing:.02em}.calendar-week:first-child .week-sep{border-top:none;margin-top:0}.week-sep .week-sep-count{font-weight:500;text-transform:none;letter-spacing:0}.week-sep.warn{color:var(--warn-ink);border-top-color:var(--warn-line)}.week-sep.warn .week-sep-count{color:var(--warn-ink);font-weight:600}.calendar-day .picker-group-title{margin:.35rem 1.25rem .2rem;flex-wrap:wrap}.calendar-day.today .picker-group-title>span:first-child{color:var(--brand-dark)}.calendar-day.past{opacity:.72}.calendar-day .tests-table{border-radius:0}.section-calendar-card{margin-top:1rem}.gb-item-meta .gb-series{cursor:help}.fact-row-button{width:100%;text-align:left;background:none;font:inherit;color:inherit;cursor:pointer;border-left:none;border-right:none;border-top:none}.fact-row-button:hover:not(:disabled){background:var(--bg)}.fact-row-button:disabled{cursor:default}.fact-row-button .fact-row-go{color:var(--text-soft);flex-shrink:0}.fact-row-button:hover:not(:disabled) .fact-row-go{color:var(--brand)}.menu-nested{min-width:200px}.menu-note{display:block;padding:.45rem .7rem;font-size:.82rem}.menu-note.error-text{color:var(--error)}@media (max-width:720px){.target-dates,.target-hints{padding-left:0}.week-sep{margin:.35rem 1rem 0;flex-direction:column;align-items:flex-start;gap:.1rem}.calendar-day .picker-group-title{margin:.35rem 1rem .2rem}}.form label .field-hint{display:block}.form .item-targets .check-line{display:flex;flex-direction:row;align-items:center;gap:.5rem}.modal-body .form .item-targets input[type=checkbox]{width:16px;height:16px;padding:0;flex:0 0 auto;margin:0}@media (min-width:901px){.at-risk-table .course-head,.at-risk-table .course-row{grid-template-columns:minmax(160px,1.5fr) minmax(170px,1.6fr) minmax(150px,1.4fr) minmax(150px,1.3fr) minmax(112px,auto)}.at-risk-table.in-class .course-head,.at-risk-table.in-class .course-row{grid-template-columns:minmax(170px,1.6fr) minmax(160px,1.4fr) minmax(130px,1fr) minmax(104px,auto)}}.at-risk-table .avatar.tiny{flex-shrink:0}.at-risk-table .student-link{color:inherit;text-decoration:none}.at-risk-table .student-link:hover strong{text-decoration:underline}.at-risk-table .at-risk-class .course-badge{width:34px;height:34px;border-radius:10px}.at-risk-table .course-cell strong{font-weight:600}.at-risk-table .absence-family a{display:inline-flex;align-items:center;gap:.25rem}.at-risk-table .cell-label{display:none}@media (max-width:900px){.at-risk-table .cell-label{display:block;font-size:.72rem;color:var(--text-soft)}}.at-risk-partial{color:var(--warn);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:1180px){.class-block-risk{order:1}}.cierre-band .cierre-close{white-space:nowrap}.cierre-band .cierre-mesa{white-space:nowrap;font-size:.82rem}.cierre-closed{margin:.75rem 1.1rem .5rem;border-left-color:var(--present)}.cierre-closed-body{flex:1 1 auto;min-width:0}.cierre-closed .chip.warn{cursor:pointer}.closure-drift{list-style:none;margin:.4rem 0 0;padding:0;display:grid;grid-gap:.15rem;gap:.15rem;font-size:.85rem;color:var(--text-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cierre-recorded{padding:.65rem 1.1rem 0}.correction-banner{border-left-color:var(--warn);margin:.5rem 0 .75rem}.gb-value.corrected{border-style:dashed;border-color:var(--warn);background:var(--surface)}.gb-value.corrected:hover{background:var(--border)}.gb-recorded-cell .gb-value{cursor:default;color:var(--muted)}.gb-recorded-cell .gb-value:hover{background:transparent}.closure-count{font-size:1.05rem;margin:.35rem 0}.closure-count strong{font-size:1.3rem}.closure-open{margin:.5rem 0}.closure-why{list-style:none;margin:.3rem 0 0;padding:0;display:grid;grid-gap:.2rem;gap:.2rem;font-size:.88rem}.checkbox-line{display:flex;align-items:center;gap:.45rem;margin:.6rem 0 0;font-size:.9rem}.closure-log{list-style:none;margin:.5rem 0 0;padding:0;display:grid;grid-gap:.6rem;gap:.6rem}.closure-log li{padding:.55rem .7rem;background:var(--surface);border-radius:10px;font-size:.88rem}.closure-log .incident-note{margin-top:.25rem}table.data-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:.4rem}table.data-table td,table.data-table th{padding:.5rem .55rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}table.data-table th{font-size:.75rem;font-weight:500;color:var(--text-medium)}table.data-table .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data-table tbody tr:hover{background:var(--surface)}@media (max-width:720px){table.data-table thead{display:none}table.data-table tr{display:grid;grid-gap:.15rem;gap:.15rem;padding:.6rem 0;border-bottom:1px solid var(--border)}table.data-table td{border:0;padding:.1rem 0;text-align:left}table.data-table td.num{text-align:left}table.data-table td[data-label]:before{content:attr(data-label) ": ";color:var(--text-medium);font-size:.75rem}}.recorded-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:.6rem 0 .9rem}.recorded-head .file-field{margin:0}.recorded-table td .gb-input{max-width:86px}.recorded-table tr.inactive td{color:var(--muted)}.student-block-actions{gap:.75rem}.grade-annual,.student-block-actions{display:flex;align-items:center;flex-wrap:wrap}.grade-annual{margin:.35rem 0 0;font-size:.9rem;gap:.4rem}.grade-annual strong{font-size:1rem}.annual-card{padding:0;overflow:hidden}.annual-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:-.25rem}.annual-card .gradebook-wrap{border:none;border-radius:0;border-top:1px solid var(--border)}.gradebook.cierre.annual-table{table-layout:fixed}.annual-table td.gb-student,.annual-table th.gb-student{width:240px}.annual-table td.gb-open-col,.annual-table th.gb-open-col{width:130px;text-align:right}.annual-table td.gb-computed,.annual-table td.gb-total,.annual-table th.gb-computed-head,.annual-table th.gb-total-head{text-align:center}.annual-table .annual-cell{align-items:center}.annual-band{grid-template-columns:minmax(150px,1.2fr) repeat(4,minmax(0,1fr))}.annual-cell{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.annual-periods{font-size:.72rem;color:var(--text-soft);white-space:nowrap}.annual-cell strong{font-size:1rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.annual-source{font-size:.68rem;color:var(--text-soft)}.annual-table th.gb-computed-head{white-space:normal}.annual-detail>td{padding:.9rem 1.1rem}.annual-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:.7rem;gap:.7rem;margin-bottom:.6rem}.annual-detail-card{border:1px solid var(--border);border-radius:var(--radius);padding:.7rem .85rem;background:var(--surface)}.annual-detail-card p{margin:.25rem 0 0;font-size:.82rem}.annual-rounds{display:flex;flex-direction:column;gap:.35rem;margin-top:.55rem}.annual-round{display:flex;align-items:center;gap:.5rem;font-size:.82rem}.annual-round-name{font-weight:600;min-width:5.5rem}.annual-round-state{flex:1 1 auto;color:var(--text-medium)}.annual-warn{margin:0;border-radius:0;border-top:1px solid var(--border)}.annual-warn-line{display:block}.annual-outside{margin:.6rem 1.1rem 0;font-size:.82rem}.annual-footnote{margin:.9rem 1.1rem 1.1rem;font-size:.78rem;max-width:90ch}.acta-head,.acta-signatures{display:none}.enroll-roster-head.with-condition,.enroll-row.with-condition{grid-template-columns:2.2rem minmax(130px,1fr) minmax(150px,1.1fr) auto}.enroll-condition{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;min-width:0}@media (max-width:720px){.annual-band{grid-template-columns:repeat(2,minmax(0,1fr))}.annual-band .band-id{grid-column:1/-1}.annual-table td.gb-student,.annual-table th.gb-student{width:170px}.annual-table td.gb-open-col,.annual-table th.gb-open-col{width:110px}.enroll-roster-head.with-condition,.enroll-row.with-condition{grid-template-columns:2.2rem minmax(120px,1fr) auto}.enroll-roster-head.with-condition>:nth-child(3){display:none}.enroll-condition{grid-column:2/-1}}@media print{.acta-head{display:flex;flex-direction:column;gap:.15rem;padding:0 0 .7rem;border-bottom:2px solid var(--border-strong);margin-bottom:.7rem}.acta-head strong{font-size:1.05rem}.acta-head span{font-size:.8rem}.annual-band,.annual-warn{display:none}.annual-card{border:none}.annual-card .gradebook-wrap{overflow:visible;max-height:none}.annual-table{font-size:.72rem}.annual-table tbody tr{page-break-inside:avoid;break-inside:avoid}.annual-detail{display:none}.acta-signatures{display:flex;justify-content:space-between;gap:2rem;margin:2.5rem 1.1rem 0;font-size:.85rem;page-break-inside:avoid;break-inside:avoid}}.grade-card-pending,.grade-hero-pending{font-size:.8rem;line-height:1.35;color:var(--text-medium)}.grade-hero-pending{font-size:.85rem}.history-origin{font-size:.88rem}.auth-card .segmented.login-doors{display:flex;width:100%;margin:.25rem 0 .9rem}.auth-card .segmented.login-doors .segment{flex:1 1;text-align:center;justify-content:center}.auth-card .field-hint{margin:-.35rem 0 .7rem;font-size:.8rem;color:var(--text-medium)}.auth-card .auth-alt.muted{color:var(--text-medium);font-size:.85rem}.code-chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.02em;letter-spacing:.04em;padding:.1rem .4rem;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.guardian-row .guardian-contact{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.15rem}.contact-chip{display:inline-flex;align-items:center;min-height:30px;padding:.14rem .55rem;border:1px solid var(--brand-line);border-radius:999px;background:var(--brand-soft);color:var(--brand-ink);font-size:.84rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-decoration:none}.contact-chip:hover{background:var(--brand-line)}.contact-chip.wa{font-weight:500}.guardian-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem}.guardian-row.blocked .guardian-contact,.guardian-row.blocked>.course-badge,.guardian-row.blocked>.course-cell>strong{opacity:.55}.restriction-line{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.35rem;padding:.3rem .5rem;border-left:3px solid var(--error);background:var(--error-soft);border-radius:0 6px 6px 0;font-size:.84rem;color:var(--error)}.restriction-line svg{flex-shrink:0}.restriction-line .link-button,.restriction-line a{color:inherit;font-size:inherit}.role-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:.35rem 1rem;gap:.35rem 1rem;margin:.2rem 0 .6rem}.role-checks .check-line small{display:block;color:var(--text-medium);font-size:.78rem;line-height:1.3}.pickup-line{margin-top:.7rem}.health-band{display:grid;grid-gap:.2rem;gap:.2rem;margin-bottom:.8rem}.pre-line{white-space:pre-line}.credentials{display:grid;grid-gap:.45rem;gap:.45rem;margin:.8rem 0;padding:.8rem;border:1px solid var(--brand-line);border-radius:10px;background:var(--brand-soft)}.credentials>div{display:flex;align-items:center;gap:.6rem}.credentials dt{min-width:5.5rem;font-size:.82rem;color:var(--text-medium)}.credentials dd{margin:0}.options-menu .issued{display:grid;grid-gap:.4rem;gap:.4rem;min-width:17rem}.options-menu .issued .credentials{margin:0}.import-steps{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;margin:0;padding:0;list-style:none;font-size:.85rem;color:var(--muted)}.import-steps li{display:inline-flex;align-items:center;gap:.45rem}.import-steps li.current{color:var(--brand-dark);font-weight:600}.import-steps li.done{color:var(--text-medium)}.import-step-n{display:grid;place-items:center;width:22px;height:22px;flex-shrink:0;border-radius:999px;background:var(--bg);border:1px solid var(--border);font-size:.75rem;font-weight:600}.import-steps li.current .import-step-n{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.import-steps li.done .import-step-n{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-dark)}.import-body{display:grid;grid-gap:.85rem;gap:.85rem}.import-help{display:grid;grid-gap:.9rem;gap:.9rem}.import-help ul{margin:0;padding-left:1.1rem;max-width:78ch}.import-help li{font-size:.9rem;line-height:1.5;color:var(--text-medium)}.import-help li+li{margin-top:.3rem}.import-file{display:grid;grid-gap:.35rem;gap:.35rem;max-width:460px}.import-file>span:first-child{font-size:.85rem;font-weight:600;color:var(--text-medium)}.import-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem}.import-note{margin:0;font-size:.85rem}.import-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));grid-gap:.6rem;gap:.6rem}.import-options{display:grid;grid-gap:.8rem;gap:.8rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.import-options>label{display:grid;grid-gap:.3rem;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--text-medium)}.import-options>label>input[type=date],.import-options>label>select{max-width:340px}.import-options>label.check-line{display:flex;align-items:flex-start;margin:0}.import-options>label.check-line>input{margin-top:.2rem}.import-options .field-hint{display:block;font-weight:400}.import-problems{margin:0;padding-left:1.1rem;display:grid;grid-gap:.6rem;gap:.6rem}.import-problems>li{font-size:.88rem}.import-problems>li>ul{margin:.2rem 0 0;padding-left:1rem;display:grid;grid-gap:.2rem;gap:.2rem}.import-problems>li>ul>li{color:var(--error);line-height:1.45}.import-problems.warn>li>ul>li{color:var(--warn-ink)}.import-col{font-weight:600}.import-table .course-head,.import-table .course-row{grid-template-columns:minmax(190px,2fr) minmax(110px,.9fr) minmax(90px,.8fr) minmax(140px,1.3fr) minmax(170px,1.6fr);gap:.6rem;align-items:start}.import-table .course-head{align-items:center}@media (max-width:1100px){.data-table.import-table .course-row{grid-template-columns:minmax(0,1fr)}}.import-table .course-row.inactive{opacity:.72}.import-table .col-ident.blank{color:var(--muted);font-size:.85rem}@media (max-width:1100px){.data-table.import-table .course-row>.col-ident.blank{display:none}}.import-what{gap:.3rem;align-items:flex-start}.import-what>.chip{align-self:flex-start}.import-what>span:not(.chip){font-size:.78rem;color:var(--muted);line-height:1.35}.import-contacts{display:grid;grid-gap:.35rem;gap:.35rem;min-width:0}.import-contact{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem;min-width:0}.import-contact strong{font-size:.86rem;font-weight:600}.import-contact>span:not(.chip){font-size:.76rem;color:var(--muted)}.import-contact .chip{font-size:.7rem;padding:.05rem .5rem}.import-run{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem;padding:1rem 1.2rem;border-top:1px solid var(--border)}.import-run>p{margin:0;flex:1 1 280px;font-size:.9rem}.import-run>.notice{flex:1 1 100%}.cred-sheet{display:grid;grid-gap:1.1rem;gap:1.1rem}.cred-sheet-head{margin:0;font-size:.85rem;color:var(--text-medium)}.cred-group{display:grid;grid-gap:.7rem;gap:.7rem}.cred-group>h2{margin:0}.cred-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:.8rem;gap:.8rem}.cred-slip{display:grid;grid-gap:.15rem;gap:.15rem;padding:.8rem .9rem;border:1px dashed var(--border-strong);border-radius:10px}.cred-slip-kind{display:flex;align-items:center;gap:.3rem;margin:0;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft)}.cred-slip-name{font-size:1rem}.cred-slip>p.muted{margin:0;font-size:.8rem}.cred-slip .credentials{margin:.5rem 0 .35rem;padding:.55rem .65rem}.cred-slip .credentials dt{min-width:4.6rem;font-size:.76rem}.cred-slip-foot{margin:0;font-size:.72rem;color:var(--text-soft)}@media print{.content:has(.cred-sheet) .topbar,.main:has(.cred-sheet)>:not(.cred-sheet){display:none}.cred-sheet{border:none;border-radius:0;padding:0;gap:.8rem}.cred-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.cred-slip{page-break-inside:avoid;break-inside:avoid;border-color:#94a3b8}.cred-group>h2{page-break-after:avoid;break-after:avoid}.cred-slip .credentials{border-color:var(--border-strong)}}.evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:.9rem;gap:.9rem;margin-top:.9rem}.evidence-card{padding:0;overflow:hidden;gap:0}.evidence-thumb{display:block;width:100%;aspect-ratio:4/3;border:none;border-bottom:1px solid var(--border);padding:0;background:var(--bg);cursor:pointer;overflow:hidden}.evidence-thumb img{width:100%;height:100%;object-fit:cover;display:block}.evidence-thumb:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.evidence-thumb-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;height:100%;color:var(--muted);padding:0 .6rem}.evidence-thumb-empty small{font-size:.75rem;text-align:center;word-break:break-word}.evidence-body{display:flex;flex-direction:column;gap:.4rem;padding:.7rem .8rem .8rem}.evidence-head{display:flex;align-items:center;gap:.5rem}.evidence-head>strong{font-size:.9rem}.evidence-head .options{margin-left:auto}.evidence-subject{display:inline-flex;align-items:center;gap:.35rem;min-width:0;font-size:.78rem;color:var(--text-medium)}.evidence-subject .course-badge{width:22px;height:22px;border-radius:7px}.evidence-subject{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.evidence-title{margin:0;font-size:.9rem;font-weight:600}.evidence-note{margin:0;padding:.45rem .6rem;border-left:3px solid var(--brand-line);background:var(--brand-soft);border-radius:0 8px 8px 0;font-size:.85rem}.evidence-by{margin:0;font-size:.78rem}.evidence-label{font-weight:600}.evidence-tags{display:flex;flex-wrap:wrap;gap:.3rem}.evidence-tag{display:inline-flex;align-items:baseline;gap:.3rem;border:1px solid var(--border);border-radius:999px;padding:.18rem .6rem;background:var(--surface);font:inherit;font-size:.78rem;color:var(--text-medium);text-align:left}button.evidence-tag{cursor:pointer}button.evidence-tag:hover{border-color:var(--brand);color:var(--brand-dark)}button.evidence-tag:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.evidence-tag.with-note{border-style:dashed}.evidence-tag.on,.evidence-tag.with-note{border-color:var(--brand);color:var(--brand-dark)}.evidence-tag.on{background:var(--brand-soft)}.evidence-tag-course{font-size:.7rem;color:var(--muted)}.evidence-note-edit{display:grid;grid-gap:.3rem;gap:.3rem;padding:.6rem;border:1px solid var(--brand-line);border-radius:10px;background:var(--brand-soft)}.evidence-note-edit .modal-actions{margin-top:.2rem}.evidence-share{margin:0;font-size:.78rem;font-weight:600}.evidence-share.ok{color:var(--success-ink)}.evidence-share.warn{color:var(--warn-ink)}.evidence-share.danger{color:var(--error)}.evidence-share.neutral{color:var(--muted)}.evidence-share-note{display:block;margin:.1rem 0 .35rem 1.6rem;font-size:.78rem;color:var(--text-medium)}.evidence-actions{display:flex;flex-wrap:wrap;gap:.35rem .9rem;margin:.2rem 0 0;font-size:.82rem}.evidence-more{margin:.75rem 0 0}.evidence-blocked{margin:0;padding-left:1.05rem;display:grid;grid-gap:.2rem;gap:.2rem}.evidence-blocked li{font-size:.78rem;color:var(--text-medium)}.evidence-consent{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.84rem}.evidence-pick{display:grid;grid-gap:.35rem;gap:.35rem}.evidence-roster{list-style:none;margin:0;padding:.2rem .5rem;height:min(260px,38vh);overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.evidence-roster .check-line{margin:.35rem 0;font-weight:500;flex-wrap:wrap}.evidence-roster-name{flex:1 1 auto;min-width:8rem;font-weight:600;font-size:.88rem}.evidence-advice{display:grid;grid-gap:.4rem;gap:.4rem;padding:.7rem .8rem;border:1px solid var(--warn-fill);border-left:3px solid var(--warn);border-radius:0 10px 10px 0;background:var(--warn-soft);font-size:.86rem}.evidence-advice>strong{font-size:.88rem;color:var(--warn-ink)}.evidence-advice ul{margin:0;padding-left:1.05rem;display:grid;grid-gap:.25rem;gap:.25rem}.evidence-advice li{color:var(--warn-ink)}.evidence-advice p{margin:0}.evidence-advice-close{font-weight:700;color:var(--warn-ink)}.evidence-advice-actions{display:flex;flex-wrap:wrap;gap:.75rem}.portfolio-tools{margin-top:.7rem}.portfolio-tools>.button{margin-left:auto}@media (max-width:560px){.evidence-grid{grid-template-columns:1fr}.portfolio-tools>.button{margin-left:0;width:100%}}.materials-page{gap:1rem}.material-cell,.materials-page{display:flex;flex-direction:column}.material-cell{gap:.25rem}.material-cell>.material-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:.4rem;color:var(--text)}.material-title a,.material-title strong{font-size:.95rem}.material-meta{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.8rem;color:var(--text-medium)}.material-unit{color:var(--brand-dark);font-weight:600}.material-date{font-size:.8rem}.material-date,.material-host{flex:0 0 auto;white-space:nowrap}.material-host{font-size:.75rem;color:var(--text-medium);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:.02rem .45rem}.material-link{display:inline-flex;align-items:baseline;gap:.35rem;flex-wrap:wrap;min-width:0}.material-note{display:block;font-size:.84rem;color:var(--text-medium);margin:.15rem 0 0}.material-note svg{vertical-align:-2px;color:var(--brand)}.material-audio{width:100%;max-width:420px;height:36px;margin-top:.2rem}.material-audio-load{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.file-row.material-row.inactive{opacity:.6}.material-actions{flex:0 0 auto;margin-left:.2rem}.material-list{gap:.8rem}.material-group,.material-list{display:flex;flex-direction:column}.material-group{gap:.45rem}.material-group-title{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-medium)}.supply-family,.supply-staff{display:flex;flex-direction:column;gap:.8rem}.supply-card{display:flex;flex-direction:column;gap:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.7rem .75rem}.supply-card.inactive{opacity:.6}.supply-head{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.supply-head .course-badge{width:34px;height:34px;border-radius:10px;flex:0 0 auto}.supply-title{flex:1 1 12rem;min-width:0;display:flex;flex-direction:column;gap:.1rem}.supply-title span{font-size:.8rem}.supply-foot{display:flex;gap:.5rem;flex-wrap:wrap}.supply-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.supply-item{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.3rem 0;border-top:1px solid var(--border)}.supply-item:first-child{border-top:0}.supply-item-label{flex:1 1 10rem;min-width:0;font-size:.9rem}.supply-counts{font-size:.8rem;color:var(--text-medium);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.supply-counts.behind{color:var(--warn);font-weight:600}.supply-own{margin:0;font-size:.86rem;font-weight:600}.supply-rows{display:flex;flex-direction:column;gap:.4rem}.supply-row{display:flex;gap:.4rem;align-items:center}.supply-row input:first-child{flex:1 1 60%;min-width:0}.supply-row input:nth-child(2){flex:1 1 40%;min-width:0}.supply-row .icon-button{flex:0 0 auto}.modal.wide:has(.supply-roster){width:min(1040px,calc(100vw - 2rem))}.supply-roster .marks-col{min-width:10rem}.supply-roster .marks-row .marks-col{justify-content:center}.supply-roster .marks-result{flex:0 0 110px}.supply-toggle{white-space:nowrap}.supply-toggle.state-missing{border-color:var(--warn-fill);color:var(--warn)}.supply-toggle.state-family_says{background:var(--excused-soft);border-color:var(--excused-soft);color:var(--excused-ink)}.supply-toggle.state-brought{background:var(--success-soft);border-color:var(--success-soft);color:var(--success-ink)}.supply-toggle.held{border-style:dashed}@media (max-width:720px){.file-row.material-row{flex-wrap:wrap}.material-date{order:3;width:100%}.supply-item{align-items:flex-start;flex-direction:column;gap:.2rem}.supply-item-label{flex:0 0 auto}.supply-row{flex-wrap:wrap}.supply-row input:first-child{flex:1 1 100%}}.modal-body .form .form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:.6rem;gap:.6rem;align-items:start}.modal-body .form .form-row>label{margin:0}@media (max-width:560px){.modal-body .form .form-row{grid-template-columns:1fr}}.people-table .col-ident.empty,.students-table .col-ident.empty{background:none;border:none;padding:0;min-height:0;color:var(--muted);font-size:.85rem}.hr-student{margin:.35rem 0 0;font-size:1rem}.hr-student strong{font-size:1.05rem}.hr-block{display:flex;flex-direction:column;gap:.5rem}.hr-block>h2{font-size:.95rem;margin:0;padding-bottom:.2rem;border-bottom:2px solid var(--brand-line)}.hr-block>p{margin:0;font-size:.9rem}.hr-note{font-size:.78rem;margin:0}.hr-table{width:100%;border-collapse:collapse;font-size:.85rem}.hr-table td,.hr-table th{padding:.35rem .5rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;white-space:normal}.hr-table thead th{background:var(--bg);font-size:.78rem;font-weight:600;color:var(--text-medium);border-bottom:1px solid var(--border-strong)}.hr-table tbody th{font-weight:600}.hr-table .hr-num,.hr-table th.hr-num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hr-delivery{display:flex;flex-direction:column;gap:.4rem}.hr-delivery>h3{padding-bottom:.2rem;border-bottom:1px solid var(--border)}.hr-delivery-line,.hr-delivery>h3{font-size:.88rem;margin:0}.hr-delivery-tools{justify-content:flex-start}.hr-signatures{gap:1.2rem 2.5rem}.hr-footnote{font-size:.78rem}.delivery-board{gap:.8rem}.delivery-board .print-head h1{font-size:1.05rem}.delivery-table td.delivery-marks,.delivery-table th.delivery-marks{text-align:center;white-space:nowrap}.delivery-table td.delivery-marks{letter-spacing:.5rem;padding-right:.9rem}.delivery-table td.delivery-actions{text-align:right;white-space:nowrap}.delivery-table tr.delivery-missing th[scope=row]{color:var(--text-strong)}.desc-page{display:flex;flex-direction:column;gap:1rem}.desc-editor{gap:.9rem}.desc-head-line{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0}.desc-section{display:flex;flex-direction:column;gap:.35rem;padding:.6rem;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.desc-section-head{display:flex;align-items:flex-end;gap:.5rem}.desc-section-head .file-field{flex:0 1 26rem}.desc-section textarea{width:100%;min-height:5.5rem;resize:vertical;font-family:inherit;font-size:.95rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:.55rem .7rem}.desc-section textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.desc-section .desc-count{font-size:.76rem;color:var(--text-soft);align-self:flex-end}.desc-sections{display:flex;flex-direction:column;gap:.6rem}.desc-tools{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.desc-tools .desc-spacer{margin-left:auto}.desc-log{list-style:none;margin:0;padding:0;gap:.3rem;font-size:.85rem}.desc-log,.desc-log>li{display:flex;flex-direction:column}.desc-log .desc-log-head{color:var(--text-soft);font-size:.78rem}.desc-sheet{gap:.9rem}.desc-sheet .print-head h1{font-size:1.1rem}.desc-body{gap:.8rem}.desc-body,.desc-body>section{display:flex;flex-direction:column}.desc-body>section{gap:.25rem}.desc-body>section>h2{font-size:.95rem;margin:0;padding-bottom:.15rem;border-bottom:1px solid var(--border)}.desc-body>section>p{margin:0;white-space:pre-line;font-size:.9rem;max-width:92ch}.desc-body>section>p.empty-ambit{color:var(--text-soft)}@media (max-width:720px){.hr-table{font-size:.78rem}.hr-table td,.hr-table th{padding:.3rem .35rem}.desc-section-head{flex-wrap:wrap}.desc-section-head .file-field{flex:1 1 100%}}@media print{.delivery-board,.desc-sheet,.file-sheet,.home-report{page-break-inside:auto;break-inside:auto;page-break-after:always;break-after:page}.desc-sheet,.file-sheet,.home-report.last-sheet{page-break-after:auto;break-after:auto}.delivery-board .panel-tools,.delivery-table td.delivery-actions,.delivery-table th.delivery-actions,.desc-editor,.desc-page .print-tools,.hr-delivery-tools{display:none!important}.hr-table{font-size:.72rem}.hr-table td,.hr-table th{padding:.18rem .3rem;border-color:var(--border-strong)}.hr-block,.hr-signatures,.hr-table tbody tr{page-break-inside:avoid;break-inside:avoid}.hr-signatures{padding-top:2rem}.hr-delivery{page-break-inside:avoid;break-inside:avoid}.fs-pairs{grid-template-columns:repeat(2,1fr);font-size:.76rem}.desc-body>section,.fs-people>li{page-break-inside:avoid;break-inside:avoid}.desc-log{display:none}.desc-body>section>p{orphans:2;widows:2}}.meeting-list li{align-items:flex-start;gap:.6rem;padding:.6rem .7rem}.meeting-list .course-cell{gap:.15rem}.meeting-row>.metric-icon{width:30px;height:30px;border-radius:9px;flex-shrink:0;margin-top:.1rem}.meeting-row .course-cell>.meeting-text{font-size:.85rem;color:var(--text-medium);margin-top:.3rem}.meeting-row .meeting-label{font-weight:600;color:var(--text)}.meeting-row .chip.neutral{background:var(--surface);border:1px solid var(--border)}.meeting-next.overdue{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.35rem;padding:.3rem .5rem;border-left:3px solid var(--warn);background:var(--warn-soft);border-radius:0 6px 6px 0;font-size:.84rem;color:var(--warn-ink)}.meeting-ack{margin-top:.5rem;font-size:.85rem;color:var(--text);display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:.6rem .8rem;gap:.6rem .8rem;align-items:end}.meeting-ack .error,.meeting-ack .modal-actions,.meeting-ack .notice{grid-column:1/-1}.meeting-ack .modal-actions{margin-top:0}.meeting-ack input{width:100%}.meeting-row.inactive{opacity:.72}.meeting-row.inactive>.course-cell>strong{text-decoration:line-through;color:var(--text-medium)}.meeting-row>.options{align-self:flex-start;flex:0 0 auto}@media (max-width:560px){.meeting-list li{gap:.5rem;padding:.55rem .6rem}.meeting-row>.metric-icon{width:26px;height:26px;border-radius:8px}.meeting-row .meeting-ack{grid-template-columns:1fr}}.modal-body .form>label.check-line.meeting-share{align-items:flex-start}.meeting-share>span{display:flex;flex-direction:column;gap:.15rem}.meeting-share small{font-weight:500;color:var(--text-medium);font-size:.78rem;line-height:1.3}.meeting-print .print-sheet{gap:1.1rem}.meeting-sheet-details{gap:.7rem 1.2rem}.meeting-sheet-details dt{font-size:.78rem;font-weight:600;color:var(--text-soft)}.meeting-sheet-details dd{margin:.1rem 0 0;font-size:.95rem;color:var(--text)}.meeting-sheet-block{display:flex;flex-direction:column;gap:.3rem;padding-top:.8rem;border-top:1px solid var(--border)}.meeting-sheet-block h2{margin:0;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft)}.meeting-sheet-block p{margin:0;font-size:.95rem;line-height:1.5}@media print{.meeting-print .print-tools{display:none!important}.meeting-print .print-sheet{border:none;padding:0;gap:.9rem;page-break-inside:auto;break-inside:auto}.meeting-sheet-block,.meeting-sheet-details{page-break-inside:avoid;break-inside:avoid}.meeting-sheet-block h2{color:var(--text-medium)}.meeting-sheet-block{border-top-color:var(--border-strong)}.meeting-print .print-signatures{display:flex;flex-direction:column;gap:1.6rem;padding-top:2rem;page-break-inside:avoid;break-inside:avoid}}.note-family{display:grid;grid-template-columns:auto 1fr;align-items:start;grid-gap:.45rem;gap:.45rem;margin-top:.45rem;font-size:.82rem;color:var(--text-medium);cursor:pointer}.note-family input[type=checkbox]{width:16px;min-width:16px;height:16px;margin:.15rem 0 0;accent-color:var(--brand);cursor:pointer}.note-family input[type=checkbox]:disabled{cursor:default}.note-family:has(input:disabled){cursor:default;color:var(--text-soft)}.modal-body .form>label.check-line.note-family{align-items:start}.modal-body .form>label.check-line.note-family>span{flex:1 1 auto}.note-family>span{display:block;min-width:0}.note-family>span>small{display:block;margin-top:.1rem;font-size:.75rem;line-height:1.3}.marks-note-form .note-family{margin-top:0;align-items:center;white-space:nowrap}.marks-note-form .note-family input[type=checkbox]{margin-top:0}.note-button.shared{border-color:var(--brand);font-weight:600}.note-button.shared,.note-button.shared:not(:disabled):hover{background:var(--brand-soft);color:var(--brand-dark)}.gb-input.with-note.shared,.gb-value.with-note.shared{border-style:solid;border-color:var(--brand);background:var(--brand-soft);font-weight:600}.gb-value.with-note.shared:hover{background:var(--brand-line)}.quick-shared{display:inline-flex;align-items:center;gap:.2rem;flex:0 0 auto}.quick-shared>svg{flex:0 0 auto}.observations>.panel-head{flex-wrap:wrap}.observations>.panel-head>div{flex:1 1 14rem;min-width:0}.observation-list>li.observation-row{align-items:start}.course-cell>.observation-text{margin:.15rem 0;color:var(--text);font-size:.92rem;line-height:1.45;white-space:pre-line}.course-cell>.observation-text:before{content:"«"}.course-cell>.observation-text:after{content:"»"}.observation-flags{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex:0 0 auto}.observation-private,.observation-shared{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap}.observation-private>svg,.observation-shared>svg{flex:0 0 auto}.observation-more{margin:.6rem 0 0;font-size:.85rem}@media (max-width:720px){.observation-list>li.observation-row{flex-wrap:wrap}.observation-flags{flex-direction:row;align-items:center;width:100%;padding-left:calc(34px + .7rem)}}.ann-band{padding:.9rem 1.2rem 1.1rem}.ann-band+.ann-band{border-top:1px solid var(--border)}.ann-band>.picker-group-title{margin-top:0}.ann-band-hint{margin:0 0 .5rem;font-size:.82rem}.ann-list{gap:.5rem}.ann-list>li{padding:.65rem .8rem}.ann-title{display:inline;padding:0;margin:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.ann-title:hover{text-decoration:underline}.ann-title:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.ann-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .5rem;margin-top:.1rem}.ann-meta>.muted{font-size:.78rem}.ann-meta>.chip.subject{white-space:normal}.ann-body{margin:.35rem 0 0;font-size:.88rem;line-height:1.45;white-space:pre-line;overflow-wrap:break-word}.ann-body.clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;color:var(--text-medium)}.ann-file{display:block;margin-top:.35rem;font-size:.82rem}.ann-read-count{margin:0;font-size:.95rem}.ann-recipients{max-height:50vh;overflow-y:auto}.ann-recipients>li{padding:.45rem .6rem}.ann-form .item-targets .course-badge{width:24px;height:24px;border-radius:7px;flex:0 0 auto}.ann-form .item-targets .course-badge svg{width:14px;height:14px}.ann-dates{display:flex;flex-wrap:wrap;gap:.75rem}.ann-section{display:flex;flex-direction:column;gap:.8rem;padding-bottom:1.1rem;border-bottom:1px solid var(--border)}.ann-section:last-of-type{border-bottom:none;padding-bottom:0}.ann-section-title{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-800)}.ann-dates>label,.ann-section>label{display:flex;flex-direction:column;gap:.3rem}.ann-targets{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:.5rem;gap:.5rem;max-height:260px;overflow-y:auto;padding:2px}.modal-body .form .ann-target{display:flex;flex-direction:row;align-items:center;gap:.65rem;padding:.7rem .8rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;font-weight:400;color:var(--text);transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.modal-body .form .ann-target:hover{border-color:var(--border-strong)}.modal-body .form .ann-target.on{border-color:var(--brand);background:var(--teal-50);box-shadow:0 0 0 1px var(--brand) inset}.modal-body .form .ann-target input[type=checkbox]{width:18px;height:18px}.ann-target .course-badge{width:28px;height:28px;border-radius:8px;flex:0 0 auto}.ann-target .course-badge svg{width:16px;height:16px}.ann-target-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.ann-target-text strong{font-size:.92rem;font-weight:600}.ann-target-text span{font-size:.78rem;color:var(--text-soft)}.ann-dates>label{flex:1 1 160px}.ann-locked{display:grid;grid-gap:.4rem;gap:.4rem}.ann-locked>p{margin:0}.ann-confirm-title{margin:0;font-size:1.05rem}.ann-confirm-to{margin:0;font-size:.92rem}.ann-reach{display:grid;grid-gap:.25rem;gap:.25rem;padding:.65rem .85rem;border-radius:10px;background:var(--brand-soft);border:1px solid var(--brand-line)}.ann-reach p{margin:0;font-size:.92rem}.ann-reach strong{font-weight:600}.ann-reach.short{background:var(--warn-fill);border-color:var(--warn)}.msg-no-account{margin:.4rem 0 0}.ann-family .notices-foot{padding:0 1.2rem 1.1rem}.ann-family .ann-list,.ann-home .ann-list{padding-top:.2rem}.ann-home .panel-head{align-items:flex-start}.ann-clip{display:inline-flex;align-items:center;gap:.25rem}.ann-channels{margin:0;padding:.6rem 1.2rem 0;font-size:.84rem}.ann-context{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.5rem;padding:.65rem 1.2rem;border-bottom:1px solid var(--border);background:var(--bg);font-size:.84rem;color:var(--text-medium)}.ann-context .chip{margin-right:.25rem}.groups-panel>.panel-head+.ann-context{margin-top:-.8rem}.ann-ack{margin:.8rem 1.2rem 0}.ann-targets-list{display:block;max-height:230px;overflow-y:auto}.ann-print{display:flex;flex-direction:column;gap:1rem}.ann-sheet{gap:.9rem}.ann-sheet .print-head h1{font-size:1.3rem;margin:0}.ann-sheet-school{margin:0;font-size:.82rem;font-weight:600;color:var(--text-medium)}.ann-sheet-body{margin:0;font-size:.98rem;line-height:1.55;white-space:pre-line;overflow-wrap:break-word;max-width:68ch}.ann-sheet-file{margin:0;font-size:.9rem}.ann-handout{gap:.8rem}.ann-handout h2{margin:0;font-size:1.05rem}.ann-handout-list{display:grid}.ann-handout-head,.ann-handout-row{display:grid;grid-template-columns:70px minmax(0,1.8fr) minmax(0,1fr) minmax(140px,1.2fr);align-items:center;grid-gap:.6rem;gap:.6rem;padding:.4rem .2rem}.ann-handout-head{border-bottom:1px solid var(--border-strong);font-size:.75rem;font-weight:600;color:var(--text-medium)}.ann-handout-row{border-bottom:1px dashed var(--border);font-size:.88rem}.ann-unreached .ann-handout-head,.ann-unreached .ann-handout-row{grid-template-columns:70px minmax(0,1.6fr) minmax(0,.9fr) minmax(0,1.6fr) minmax(110px,1fr)}.ann-handout-row:last-child{border-bottom:none}.ann-tick{text-align:center;font-size:1.1rem;color:var(--text-medium)}.ann-sign{border-bottom:1px solid var(--border-strong);height:1.1rem}@media (max-width:700px){.ann-handout-head,.ann-handout-row,.ann-unreached .ann-handout-head,.ann-unreached .ann-handout-row{grid-template-columns:44px minmax(0,2fr) minmax(0,1fr)}.ann-handout-head>:last-child,.ann-handout-row>:last-child,.ann-unreached .ann-handout-head>:nth-child(4),.ann-unreached .ann-handout-row>:nth-child(4){display:none}}@media print{.ann-print .print-tools{display:none!important}.ann-print{gap:.5rem}.ann-handout,.ann-sheet{border:none;padding:0;page-break-inside:auto;break-inside:auto;box-shadow:none}.ann-handout{page-break-before:always;break-before:page}.ann-handout-head{page-break-after:avoid;break-after:avoid}.ann-handout-row{page-break-inside:avoid;break-inside:avoid}.ann-recipients{max-height:none;overflow:visible}.ann-sheet .print-signatures{padding-top:2.5rem;page-break-inside:avoid;break-inside:avoid}.ann-body.clamp{display:block;overflow:visible;-webkit-line-clamp:none;color:inherit}.ann-handout-row{border-color:var(--border-strong)}}.msg-list>li{padding:.6rem .75rem;gap:.65rem}.msg-list .course-cell{gap:.2rem}.msg-list>li.pending{border-left:3px solid var(--accent);padding-left:calc(.75rem - 2px)}.excuse-list.msg-list>li.inactive>.course-cell>strong{text-decoration:none}.msg-truncated{margin:.8rem 1.2rem 0}.msg-band+.msg-band{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border)}.msg-band>.picker-group-title{margin-top:0}.msg-inbox .course-cell>.msg-meta,.msg-list .course-cell>.msg-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .5rem;margin-top:.15rem;font-size:.82rem}.msg-meta>.muted{font-size:.78rem}.msg-inbox .course-cell>.msg-subject{font-size:.9rem;color:var(--text)}.msg-inbox .course-cell>.msg-summons,.msg-list .course-cell>.msg-summons{display:flex;align-items:center;gap:.4rem;margin-top:.35rem;padding:.32rem .55rem;border-left:3px solid var(--accent);background:var(--excused-soft);border-radius:0 6px 6px 0;font-size:.86rem;color:var(--excused-ink)}.msg-summons svg{flex-shrink:0}.msg-summons strong{font-weight:700}.msg-inbox .course-cell>.msg-summons.past,.msg-list .course-cell>.msg-summons.past{border-left-color:var(--border-strong);background:var(--bg);color:var(--text-medium)}.msg-thread{gap:.7rem;margin-top:.7rem;padding-top:.7rem;border-top:1px dashed var(--border);font-size:.9rem;color:var(--text)}.msg-stack,.msg-thread{display:flex;flex-direction:column}.msg-stack{gap:.5rem;margin:0;padding:0;list-style:none}.msg-bubble{max-width:94%;padding:.5rem .7rem;border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:0 10px 10px 0;background:var(--bg)}.msg-bubble.mine{margin-left:auto;border-left-color:var(--brand);background:var(--brand-soft)}.msg-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .6rem;font-size:.82rem}.msg-head strong{font-weight:600}.msg-head .muted{font-size:.78rem}.msg-body{margin:.3rem 0 0;font-size:.9rem;line-height:1.45;white-space:pre-line;overflow-wrap:break-word}.msg-file{display:block;margin-top:.4rem;font-size:.82rem}.msg-receipt{display:flex;align-items:center;gap:.35rem;margin-top:.4rem;font-size:.8rem;color:var(--text-soft)}.msg-receipt svg{flex-shrink:0;opacity:.7}.msg-receipt.read{color:var(--excused-ink);font-weight:500}.msg-receipt.read svg{opacity:1}.msg-handout{display:block;margin-top:.35rem;font-size:.8rem;color:var(--warn-ink)}.msg-closed{display:flex;align-items:center;gap:.4rem;margin:0;padding:.35rem .55rem;border-radius:8px;background:var(--bg);font-size:.84rem;color:var(--text-medium)}.msg-closed svg{flex-shrink:0}.msg-readonly{margin:0;font-size:.84rem}.msg-actions{display:flex;justify-content:flex-end;margin:0}.msg-reply{display:flex;flex-direction:column;gap:.55rem;padding:.7rem;border:1px solid var(--brand-line);border-radius:10px;background:var(--surface)}.msg-reply>.file-field{gap:.3rem;font-size:.85rem;font-weight:600;color:var(--text-medium)}.msg-reply input[type=file],.msg-reply textarea{width:100%;font-weight:400}.msg-reply .msg-attach{font-size:.82rem}.msg-reply small{font-weight:400}.msg-reply-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.msg-reply-foot>.muted{font-size:.8rem;flex:1 1 220px}.msg-reply-foot .button{flex-shrink:0}.msg-attach-failed{border-color:var(--warn-fill);background:var(--warn-soft)}.msg-attach-failed .modal-actions{margin-top:0}.msg-form input[type=datetime-local]{width:100%}.msg-form-foot{margin:0;font-size:.84rem}.msg-acuse{display:flex;flex-direction:column;gap:.35rem}.msg-acuse>p{margin:0}.msg-acuse-title{font-weight:600;font-size:.95rem}.msg-acuse .notice{margin:.25rem 0 0}.fact-row>.excuse-actions,.msg-inbox .excuse-actions{align-items:center}@media (max-width:720px){.msg-list>li{flex-wrap:wrap}.msg-list>li>.excuse-actions{flex:1 1 100%;justify-content:flex-end}.msg-bubble{max-width:100%}.msg-bubble.mine{margin-left:0}.msg-reply-foot .button{flex:1 1 100%;justify-content:center}}.notify-rule{justify-content:flex-start}.notify-rule>.alert-rule-text{flex:1 1 14rem;min-width:0}.notify-rule>.alert-rule-actions{margin-left:auto;align-items:center;flex:0 0 auto;flex-wrap:nowrap}.notify-rule>.metric-icon{flex:0 0 auto}.notify-preview{color:var(--accent-ink);font-weight:600}.notify-audience{display:block;flex:0 1 15.5rem;min-width:9rem}.notify-audience>select{width:100%;font-size:.85rem;padding:.25rem .4rem}.notify-weight{margin:.35rem 0 0;font-size:.82rem}.notify-run{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-top:.9rem;padding:.7rem .8rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.notify-run>label{display:grid;grid-gap:.2rem;gap:.2rem;font-size:.82rem;font-weight:600}.notify-run>label>input{font-size:.88rem}.notify-run-ack,.notify-run-hint,.notify-run>.error{flex:1 0 100%;margin:0;font-size:.84rem}.notify-run-ack{color:var(--success-ink);font-weight:600}.notify-list{gap:.5rem}.notify-list>li{padding:.65rem .8rem}.notify-door{display:inline-block;margin-top:.4rem;font-size:.85rem;font-weight:600}.notify-more{margin:.6rem 0 0;font-size:.85rem}.notify-foot{margin:0;padding:0 1.2rem 1.1rem;font-size:.84rem}.notify-feed .panel-head{align-items:flex-start}@media (max-width:720px){.notify-list>li{flex-wrap:wrap}.notify-list>li>.excuse-actions{width:100%;justify-content:flex-end}.notify-list>li.pending>.excuse-actions .button{flex:0 0 auto}.notify-rule>.alert-rule-actions{margin-left:0;width:100%;flex-wrap:wrap}.notify-audience>select{max-width:none;width:100%}}.activity-sheet{padding:0;overflow:hidden}.activity-sheet>.panel-head{padding:1.1rem 1.2rem;border-bottom:1px solid var(--border)}.activity-sheet>.panel-head .button svg{flex-shrink:0}.activity-month{gap:.25rem}.activity-month-row{display:flex;align-items:center;gap:.25rem}.main .filter-bar .activity-month-row input[type=month]{width:auto;height:42px;font-size:.88rem;padding-top:.45rem;padding-bottom:.45rem}.main .filter-bar .activity-month-row .icon-button{width:36px;height:42px;flex:0 0 36px}.activity-wrap{overflow-x:auto}.activity-grid{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:.8rem}.activity-grid thead th{width:calc(100% / 7);background:var(--bg);border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:.35rem .4rem;font-size:.72rem;font-weight:600;letter-spacing:.06em;color:var(--text-medium);text-align:center}.activity-grid thead th:last-child{border-right:none}.activity-grid thead abbr{text-decoration:none;cursor:help}.activity-cell{vertical-align:top;height:92px;padding:.3rem .35rem .4rem;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface)}.activity-cell:last-child{border-right:none}.activity-grid tbody tr:last-child .activity-cell{border-bottom:none}.activity-cell.outside{background:var(--bg)}.activity-cell.past .activity-daynum{color:var(--muted)}.activity-cell.today{background:var(--brand-soft)}.activity-cell.today .activity-daynum{color:var(--brand-dark);font-weight:700}.activity-daynum{display:block;font-size:.78rem;font-weight:600;color:var(--text-medium);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-bottom:.2rem}.activity-hoy{font-size:.62rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.activity-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.activity-chip{display:block;border-radius:7px;padding:.16rem .35rem;font-size:.7rem;line-height:1.25;overflow-wrap:break-word;border:1px solid transparent}.activity-chip.tone-1{background:var(--tone-1-soft);color:var(--tone-1-ink)}.activity-chip.tone-2{background:var(--tone-2-soft);color:var(--tone-2-ink)}.activity-chip.tone-3{background:var(--tone-3-soft);color:var(--tone-3-ink)}.activity-chip.tone-4{background:var(--tone-4-soft);color:var(--tone-4-ink)}.activity-chip.tone-5{background:var(--tone-5-soft);color:var(--tone-5-ink)}.activity-chip.tone-6{background:var(--tone-6-soft);color:var(--tone-6-ink)}.activity-chip-when{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-right:.2rem}.activity-chip-title{font-weight:500}.activity-chip.span-start{border-top-right-radius:0;border-bottom-right-radius:0}.activity-chip.span-mid{border-radius:0}.activity-chip.span-end{border-top-left-radius:0;border-bottom-left-radius:0}.activity-chip.off{opacity:.55;text-decoration:line-through}.activity-bday{display:flex;align-items:center;gap:.2rem;font-size:.68rem;line-height:1.2;color:var(--gold-800);padding:.12rem .2rem}.activity-bday svg{flex-shrink:0}.activity-bday .activity-chip-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-detail{display:grid;grid-template-columns:1.55fr 1fr;grid-gap:1rem;gap:1rem;padding:1rem 1.2rem;border-top:2px solid var(--brand-line)}.activity-block{min-width:0}.activity-block>h3{margin:0 0 .5rem;font-size:.86rem;font-weight:600;color:var(--text-medium)}.activity-block>.pad{padding:0}@media (max-width:1180px){.activity-detail{grid-template-columns:1fr}.class-block-activities{order:3}.class-block-students{order:4}.class-block-info{order:5}}.activity-list li{align-items:flex-start;gap:.6rem;padding:.6rem .7rem}.activity-list .course-cell{gap:.15rem}.activity-row>.metric-icon{width:30px;height:30px;border-radius:9px;flex-shrink:0;margin-top:.1rem}.activity-row>.options{align-self:flex-start;flex:0 0 auto}.activity-row.inactive{opacity:.72}.activity-row.inactive>.course-cell>strong{text-decoration:line-through;color:var(--text-medium)}.activity-row .course-cell>.activity-note{font-size:.85rem;color:var(--text-medium);margin-top:.25rem}.activity-row .chip.neutral{background:var(--surface);border:1px solid var(--border)}.activity-notice{margin:0 0 .5rem;font-size:.82rem}.activity-more{margin:.5rem 0 0;font-size:.82rem}.birthday-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.birthday-list li{display:flex;align-items:center;gap:.6rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.45rem .7rem}.birthday-list .metric-icon{width:28px;height:28px;border-radius:9px;flex-shrink:0}.birthday-list .course-cell{flex:1 1;gap:.1rem;min-width:0}.birthday-list li.birthday-unplaced{border-style:dashed}.birthday-list li.birthday-unplaced>.course-cell>strong{font-weight:500;color:var(--text-medium)}.activity-bday-note{margin:0 0 .5rem;font-size:.82rem}.activity-foot-note{margin:0;padding:.8rem 1.2rem;border-top:1px solid var(--border);font-size:.8rem}@media (max-width:900px){.activity-wrap{display:none}.activity-detail{border-top:none}.activity-detail,.activity-sheet>.panel-head{padding:.9rem 1rem}.activity-foot-note{padding:.8rem 1rem}}@media (max-width:720px){.main .filter-bar .activity-month{flex:1 1 100%}.activity-month-row{width:100%}.main .filter-bar .activity-month-row input[type=month]{flex:1 1 auto;min-width:0;width:100%}}@media print{.activity-wrap{display:block;overflow:visible}.activity-sheet{overflow:visible;page-break-inside:auto;break-inside:auto}.activity-grid{font-size:.68rem}.activity-grid tbody tr{page-break-inside:avoid;break-inside:avoid}.activity-cell{height:78px;padding:.2rem .25rem .3rem}.activity-cell.today{background:transparent}.activity-cell.today .activity-daynum{text-decoration:underline}.activity-chip{border-color:var(--border-strong);background:transparent!important;color:inherit}.activity-chip.span-end,.activity-chip.span-mid,.activity-chip.span-start{margin-inline:0;border-radius:7px}.activity-bday{color:inherit}.activity-detail{grid-template-columns:1fr;border-top:1px solid var(--border-strong)}.activity-list li,.birthday-list li{border-color:var(--border-strong);background:transparent;page-break-inside:avoid;break-inside:avoid}.activity-bday-note a,.activity-more,.activity-notice,.activity-row>.options,.activity-sheet>.panel-head .panel-head-actions{display:none}}.main .filter-bar .sch-min input[type=number]{height:42px;width:5.5rem;font-size:.88rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sch-cycle{display:flex;flex-wrap:wrap;gap:.35rem;align-items:baseline}.sch-cycle a{color:var(--brand-dark);font-weight:600}.sch-reloading{margin:0;font-size:.85rem}.school-report{gap:1.1rem}.school-report .print-head .sch-title{font-size:1.15rem;margin:0}.school-report .hr-block>h3{font-size:.95rem;margin:0;padding-bottom:.2rem;border-bottom:2px solid var(--brand-line)}.sch-specialty{display:flex;align-items:baseline;gap:.5rem;margin:0;font-size:.88rem;color:var(--text-medium)}.sch-specialty .sch-fill{flex:1 1 8rem;max-width:18rem;border-bottom:1px solid var(--border-strong);height:1em}.sch-check{display:flex;flex-direction:column;gap:.35rem;padding:.7rem .9rem;border:1px solid var(--warn-line);background:var(--warn-soft);border-radius:10px;font-size:.88rem;color:var(--warn-ink)}.sch-check strong{color:var(--text)}.sch-check ul{margin:0;padding-left:1.1rem;display:grid;grid-gap:.25rem;gap:.25rem}.sch-identity{margin:0;font-size:.95rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sch-identity strong{font-size:1.05rem}.sch-wrap{overflow-x:auto}.school-report .hr-block,.school-report .sch-wrap{min-width:0}.sch-table{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sch-enrollment{min-width:34rem}.sch-absenteeism,.sch-withdrawals{min-width:44rem}.sch-adequacy{min-width:40rem}.sch-performance{min-width:62rem}.sch-closures{min-width:44rem}.sch-subjects{min-width:58rem}.sch-table thead th.hr-num{white-space:normal;min-width:4.5rem}.sch-table th.sch-scope{white-space:normal}.sch-scope{font-weight:400}.sch-scope .sch-name{font-weight:600}.sch-d0{padding-left:.5rem}.sch-d1{padding-left:1.6rem}.sch-d2{padding-left:2.7rem}.sch-table tbody tr.sch-all>*{border-bottom:2px solid var(--border-strong)}.sch-table tbody tr.sch-level>*{border-top:1px solid var(--brand-line)}.sch-table tbody tr.sch-subject td,.sch-table tbody tr.sch-subject th{font-size:.8rem}.sch-table tbody tr.sch-nograde .sch-name{font-style:italic}.sch-off{font-size:.78rem;color:var(--warn)}.sch-blank{font-size:.78rem;font-style:italic;white-space:nowrap}.sch-nograde-cell{font-size:.8rem}.sch-sub{font-size:.85rem;font-weight:600;margin:.4rem 0 0;color:var(--text-medium)}.sch-closures .sch-dates{white-space:nowrap;font-size:.8rem}.sch-closures .sch-note{font-style:italic}.sch-closures tr.sch-pending>:first-child{box-shadow:inset 3px 0 0 var(--warn)}.sch-row-actions{text-align:right;white-space:nowrap}.sch-actions-col{width:11rem}@media print{.school-report{border:none;padding:0;gap:.8rem}.school-report,.school-report .hr-block{page-break-inside:auto;break-inside:auto}.school-report .hr-block>h3,.school-report .sch-sub{page-break-after:avoid;break-after:avoid}.school-report tbody tr{page-break-inside:avoid;break-inside:avoid}.school-report thead{display:table-header-group}.sch-wrap{overflow:visible}.sch-table{font-size:.72rem;min-width:0}.sch-table td,.sch-table th{padding:.18rem .3rem;border-color:var(--border-strong)}.sch-table thead th.hr-num{min-width:0}.sch-d1{padding-left:1rem}.sch-d2{padding-left:1.8rem}.sch-table tbody tr.sch-subject td,.sch-table tbody tr.sch-subject th{font-size:.68rem}.sch-check{border-color:var(--border-strong);background:none;color:inherit}.sch-closures tr.sch-pending>:first-child{box-shadow:none}.sch-off{color:inherit}.sch-actions-col,.sch-cycle a,.sch-reloading,.sch-row-actions{display:none}.school-report .print-signatures{padding-top:2.2rem;page-break-inside:avoid;break-inside:avoid}}@media (max-width:900px){.sch-actions-col{width:auto}.sch-table thead th.hr-num{min-width:3.6rem}}.certificates .certificate-band{display:flex;flex-direction:column;gap:.4rem}.certificates .certificate-band+.certificate-band{margin-top:.6rem}.certificates .certificate-band h3{margin:0;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft)}.certificate-row>.button,.certificate-row>.metric-icon,.certificate-row>.options{flex:0 0 auto;align-self:flex-start}.certificate-row>.button{white-space:nowrap}.certificate-row.inactive{opacity:.72}.certificate-row.inactive>.course-cell>strong{text-decoration:line-through;color:var(--text-medium)}.certificate-row .course-cell>span{overflow-wrap:break-word}.certificate-row .chip.neutral{background:var(--surface);border:1px solid var(--border)}.certificate-dialog{gap:.9rem}.certificate-kinds{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:.7rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.certificate-kinds legend{padding:0 .3rem;font-size:.85rem;font-weight:600;color:var(--text-medium)}.modal-body .form .check-line input[type=radio]{width:16px;height:16px;padding:0;margin:0;flex:0 0 auto}.certificate-kind{margin:0;align-items:flex-start}.certificate-kind>span{display:flex;flex-direction:column;gap:.15rem}.certificate-kind small{font-weight:500;color:var(--text-medium);font-size:.78rem;line-height:1.35}.certificate-kind:has(input:checked){background:var(--brand-soft);border-radius:8px;margin:-.3rem -.4rem;padding:.3rem .4rem}.certificate-purpose-hint{margin:-.5rem 0 0;font-size:.8rem}.certificate-preview{display:flex;flex-direction:column;gap:.5rem;padding-top:.8rem;border-top:1px solid var(--border)}.certificate-preview-head{margin:0;font-size:.85rem;font-weight:600;color:var(--text-medium)}.certificate-preview-head .muted{font-weight:500}.certificate-preview-paper{max-height:46vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:.7rem}.certificate-preview-paper .certificate-sheet{font-size:.86rem;gap:.7rem}.certificate-preview-paper .certificate-sheet .cert-title{font-size:1rem}.certificate-preview-paper .certificate-sheet .cert-body p{font-size:.86rem}.certificate-confirm{margin:0}.certificate-ack{display:flex;flex-direction:column;gap:.3rem;margin:0;padding:.8rem .9rem;border:1px solid var(--brand-line);border-radius:var(--radius);background:var(--brand-soft)}.certificate-ack strong{font-size:1.05rem;color:var(--brand-dark)}.certificate-ack span{font-size:.86rem;color:var(--text-medium);line-height:1.4}.certificate-sheet{gap:1.1rem}.certificate-head{align-items:center;text-align:center;gap:.25rem}.certificate-head .cert-school{font-weight:600;color:var(--text)}.certificate-sheet .cert-title{margin:.5rem 0 0;font-size:1.1rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.certificate-sheet .cert-folio{font-size:.9rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.certificate-sheet .cert-folio.pending{font-weight:500;font-size:.8rem;color:var(--text-soft);max-width:54ch;margin:0 auto;line-height:1.35}.certificate-sheet .cert-body{display:flex;flex-direction:column;gap:.9rem}.certificate-sheet .cert-body p{margin:0;font-size:.98rem;line-height:1.75;color:var(--text)}.certificate-sheet .cert-foot-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.2rem 2rem}.certificate-sheet .cert-signatures{flex-direction:column;gap:1.4rem;padding-top:1.8rem;flex:1 1 280px}.certificate-sheet .cert-seal{flex:0 0 auto;width:150px;height:150px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:.4rem;border:1px dashed var(--border-strong);border-radius:var(--radius)}.certificate-sheet .cert-seal span{font-size:.72rem;color:var(--text-soft)}@media (max-width:560px){.certificate-sheet .cert-seal{width:120px;height:120px}.certificate-sheet .cert-signatures{padding-top:1rem}}@media print{.certificate-print .print-tools{display:none!important}.content:has(.certificate-print) .topbar,.main:has(.certificate-print)>:not(.certificate-print){display:none}.certificate-print .print-sheet{border:none;padding:0;gap:1.4rem;page-break-inside:auto;break-inside:auto}.certificate-print .print-foot{page-break-inside:avoid;break-inside:avoid}.certificate-print .certificate-head{gap:.2rem}.certificate-print .cert-title{margin-top:.8rem;font-size:1.15rem}.certificate-print .cert-body p{text-align:justify;font-size:1rem;line-height:1.9}.certificate-print .cert-foot-row{margin-top:1.5rem}.certificate-print .cert-signatures{gap:2rem;padding-top:2.5rem}.certificate-print .cert-seal{border-style:solid;border-color:var(--border-strong)}.certificate-print .cert-seal span{color:var(--text-medium)}}.grades-table .course-head,.grades-table .course-row{grid-template-columns:minmax(200px,1.7fr) minmax(110px,.8fr) minmax(170px,1.4fr) minmax(150px,1.2fr) 56px}.grades-table{margin-top:.25rem}.student-block .stat-cards+.grades-table{margin-top:1rem}.grades-table .grades-band-head{padding:.55rem 1.25rem;background:var(--bg);border-bottom:1px solid var(--border);font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--text-medium)}.grades-table .grades-band-head>span{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.grades-table .grades-band-note{font-weight:400;letter-spacing:0}.grades-table .grade-cell{display:flex;flex-direction:column;line-height:1.15}.grades-table .grade-cell strong{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grades-table .grade-cell>span{font-size:.75rem;color:var(--text-soft)}.grades-table .grade-progress{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;min-width:0;font-size:.82rem}.grades-table .grade-progress .grade-meter{width:100%;max-width:240px}.grades-table .grade-state{display:flex;flex-wrap:wrap;gap:.3rem;min-width:0}.grades-table .col-actions{justify-content:flex-end}@media (max-width:900px){.data-table.grades-table .course-row{grid-template-columns:minmax(0,1fr) 60px}.grades-table .grade-cell{flex-direction:row;align-items:baseline;gap:.4rem}.grades-table .grade-progress{align-items:stretch;text-align:left}.grades-table .grade-progress .grade-meter{max-width:none}}.card-foot-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.card-foot-actions .card-foot-go{margin-left:auto}.card-foot-actions .button svg{vertical-align:-2px}.class-info{display:flex;flex-direction:column}.class-info-section{padding:.95rem 1.25rem 1.05rem;border-bottom:1px solid var(--border)}.class-info-label{display:flex;align-items:center;gap:.4rem;margin:0 0 .65rem;font-size:.78rem;font-weight:700;letter-spacing:.02em;color:var(--text-medium)}.class-info-label .muted{font-weight:500;letter-spacing:0}.class-info-empty{margin:0;font-size:.85rem}.class-info-schedule{justify-self:start;align-self:flex-start;margin-top:.55rem}.slot-pills{display:flex;flex-wrap:wrap;gap:.4rem}.slot-pill{display:inline-flex;align-items:baseline;gap:.35rem;padding:.35rem .65rem;border-radius:999px;background:var(--teal-50);color:var(--teal-800);font-size:.82rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.slot-pill strong{font-weight:700}.weight-bar{display:flex;gap:3px;height:10px;border-radius:999px;overflow:hidden;margin-bottom:.7rem}.weight-bar>span{flex-basis:0;min-width:6px}.weight-bar .w0,.weight-legend i.w0{background:var(--teal-400)}.weight-bar .w1,.weight-legend i.w1{background:var(--gold-400)}.weight-bar .w2,.weight-legend i.w2{background:var(--orange-400)}.weight-bar .w3,.weight-legend i.w3{background:var(--coral-400)}.weight-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.4rem 1rem;gap:.4rem 1rem;font-size:.85rem}.weight-legend li{display:flex;align-items:center;gap:.45rem;min-width:0}.weight-legend li span{min-width:0;color:var(--text)}.weight-legend li strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.weight-legend i{width:10px;height:10px;border-radius:3px;flex-shrink:0}.class-info-door{border-bottom:none}@media (max-width:480px){.weight-legend{grid-template-columns:minmax(0,1fr)}}.ann-label-row{display:inline-flex;align-items:center;gap:.4rem}.modal-body .form .ann-file{display:flex;flex-direction:row;align-items:center;gap:.75rem;padding:.8rem .95rem;border:1.5px dashed var(--border-strong);border-radius:10px;background:var(--bg);cursor:pointer;font-weight:400;transition:border-color .12s ease,background-color .12s ease}.modal-body .form .ann-file:hover{border-color:var(--brand);background:var(--teal-50)}.modal-body .form .ann-file:focus-within{outline:2px solid var(--brand);outline-offset:2px}.modal-body .form .ann-file.disabled{opacity:.6;cursor:default}.ann-file-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--teal-50);color:var(--teal-800);flex:0 0 auto}.ann-file-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}.ann-file-text strong{font-size:.9rem;font-weight:600;color:var(--teal-800)}.ann-file-text span{font-size:.78rem;color:var(--text-soft)}textarea:focus{outline:none;box-shadow:0 0 0 3px var(--brand-ring)}input[data-filled]:not(:focus):not(.invalid):not([aria-invalid=true]),select[data-filled]:not(:focus):not(.invalid):not([aria-invalid=true]),textarea:focus,textarea[data-filled]:not(:focus):not(.invalid):not([aria-invalid=true]){border-color:var(--brand)}.view-switch-nav{margin-left:auto;height:42px;flex:0 0 auto}.view-switch-nav a{display:inline-flex;align-items:center;gap:.4rem;padding:0 .9rem;font-size:.88rem;font-weight:600;color:var(--muted);background:var(--surface);text-decoration:none;transition:background .15s ease,color .15s ease}.view-switch-nav a+a{border-left:1px solid var(--border)}.view-switch-nav a:hover{background:var(--bg);color:var(--text-medium)}.view-switch-nav a.active{background:var(--brand-soft);color:var(--brand-dark)}.view-switch-nav a:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.week-tools .week-count{margin-left:0}.class-card.signal-card{gap:0;padding:1.05rem 1.1rem}.signal-card .class-card-head{align-items:flex-start;margin-bottom:.9rem}.signal-card .class-card-head .class-card-go{margin-top:.2rem}.signal-card .class-card-head strong{font-size:1rem}.class-card-when{display:inline-flex;align-items:center;gap:.3rem;margin-top:.15rem;font-size:.8rem;color:var(--text-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.class-signals{display:flex;flex-direction:column;gap:.4rem;margin-top:auto;padding-top:.8rem;border-top:1px solid var(--border);min-height:1.6rem}.class-signals>*{display:flex;align-items:center;gap:.55rem;min-width:0;font-size:.85rem;line-height:1.3}.class-signals>:empty{display:none}.class-signals>:before{content:"";width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--border-strong)}.class-signals>.chip{padding:0;background:none;border:none;font-size:.85rem;font-weight:600;color:var(--text);white-space:normal}.class-signals>.chip.warn:before{background:var(--orange-400)}.class-signals>.chip.success:before{background:var(--teal-400)}.class-signals>.chip.nld:before{background:var(--border-strong)}.class-signals>.chip:not(.warn):not(.success):not(.nld):before{background:var(--gold-400)}.class-signals>.chip.success{font-weight:500;color:var(--text-medium)}.class-signals>.muted{color:var(--text-soft)}.class-signals>.signal-next{color:var(--text-medium)}.class-signals>.signal-next strong{font-weight:600;color:var(--text)}.class-signals>.signal-next:before{background:transparent;border:1.5px solid var(--border-strong);width:6px;height:6px}.plan-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .7rem;border-radius:999px;background:var(--plan-soft);color:var(--plan-ink);border:1px solid var(--plan-line);font-size:.85rem;font-weight:700;line-height:1.2;white-space:nowrap}.plan-pill:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--plan)}.plan-pill.small{padding:.12rem .55rem;font-size:.76rem}.chip.info{background:var(--brand-soft);color:var(--brand-dark)}.main section.plan-lock{display:flex;flex-direction:row;align-items:flex-start;gap:1rem;padding:1.1rem 1.25rem;border-left:4px solid var(--plan)}.plan-lock h2{margin:0 0 .3rem;font-size:1.05rem}.plan-lock p{margin:0 0 .35rem}.plan-lock-line{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin:.4rem 0 0;font-size:.85rem;color:var(--text-medium)}.metric-link{display:block;color:inherit;text-decoration:none;border-radius:var(--radius)}.metric-link .metric{height:100%;transition:border-color .12s ease,box-shadow .12s ease}.metric-link:hover .metric{border-color:var(--brand);box-shadow:var(--shadow-sm)}.metric-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.plan-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;padding:0 1.2rem .4rem}.plan-count{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.9rem 1rem;border:1px solid var(--border);border-top:3px solid var(--plan);border-radius:10px;color:inherit;text-decoration:none;transition:border-color .12s ease,box-shadow .12s ease}.plan-count:hover{box-shadow:var(--shadow-sm);border-color:var(--plan-line);border-top-color:var(--plan)}.plan-count strong{font-size:1.7rem;letter-spacing:-.02em}.plan-count .muted{font-size:.8rem;line-height:1.35}.plan-next{margin:0;padding-top:.6rem;font-size:.86rem}@media (max-width:900px){.plan-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}.platform-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem;align-items:start}@media (max-width:1100px){.platform-grid{grid-template-columns:minmax(0,1fr)}}.platform-list{list-style:none;margin:0;padding:0 1.2rem .6rem}.platform-list>li{display:flex;align-items:center;gap:.75rem;padding:.7rem 0;border-top:1px solid var(--border)}.platform-list>li:first-child{border-top:none}.platform-list-main{display:flex;flex-direction:column;gap:.1rem;flex:1 1 auto;min-width:0;font-size:.9rem}.platform-list-main .muted{font-size:.8rem}.platform-list-main a{color:var(--brand-dark)}.platform-list-amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.platform-ack{display:flex;align-items:center;gap:.75rem}@media (min-width:901px){.institutions-table .course-head,.institutions-table .course-row{grid-template-columns:minmax(220px,2fr) minmax(150px,1.3fr) minmax(170px,1.5fr) minmax(90px,.8fr) minmax(80px,.7fr) 60px}}.filter-chips-sep{width:1px;align-self:stretch;background:var(--border);margin:0 .15rem}.plan-cycles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem;padding:0 1.2rem 1.2rem}@media (max-width:900px){.plan-cycles-grid{grid-template-columns:minmax(0,1fr)}}.plan-cycle{display:flex;flex-direction:column;gap:.8rem;padding:1rem 1.1rem;border:1px solid var(--border);border-top:4px solid var(--plan);border-radius:12px;background:var(--surface)}.plan-cycle header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.plan-cycle-year{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-medium)}.plan-cycle-plan{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.plan-cycle-plan .plan-pill{font-size:1rem;padding:.3rem .85rem}.plan-cycle-plan p{margin:0;font-size:.86rem}.plan-cycle footer{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:auto}.plan-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.55rem 1rem;gap:.55rem 1rem;margin:0;padding:.75rem 0 0;border-top:1px solid var(--border)}.plan-facts>div{min-width:0}.plan-facts>div.wide{grid-column:1/-1}.plan-facts dt{font-size:.74rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.plan-facts dd{margin:.1rem 0 0;font-size:.9rem;overflow-wrap:anywhere}@media (min-width:901px){.platform-staff-table .course-head,.platform-staff-table .course-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(130px,1.2fr) minmax(180px,1.6fr) minmax(90px,.8fr) 60px;align-items:center;grid-gap:.75rem;gap:.75rem}.platform-teachers-table .course-head,.platform-teachers-table .course-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(160px,1.4fr) minmax(170px,1.4fr) minmax(80px,.6fr) minmax(90px,.8fr);align-items:center;grid-gap:.75rem;gap:.75rem}}.platform-staff-table .course-row.inactive,.platform-teachers-table .course-row.inactive{opacity:.6}.institutions-table .cell-label,.platform-staff-table .cell-label,.platform-teachers-table .cell-label{display:none}@media (max-width:900px){.institutions-table .cell-label,.platform-staff-table .cell-label,.platform-teachers-table .cell-label{display:block;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-soft)}}.platform-staff-table .course-cell .chip{margin-top:.25rem;align-self:flex-start}.platform-teachers-table.is-loading{opacity:.6;transition:opacity .15s ease}@media (min-width:901px){.mep-centers-table .course-head,.mep-centers-table .course-row{display:grid;grid-template-columns:minmax(240px,2.2fr) minmax(180px,1.6fr) minmax(80px,.7fr) minmax(110px,.9fr) minmax(70px,.6fr) minmax(90px,.8fr);align-items:center;grid-gap:.75rem;gap:.75rem}}.mep-centers-table .cell-label{display:none}@media (max-width:900px){.mep-centers-table .cell-label{display:block;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-soft)}}.mep-centers-table.is-loading{opacity:.6;transition:opacity .15s ease}.mep-centers-table .course-row.empty-center{color:var(--text-medium)}.mep-accounts{display:flex;flex-direction:column;gap:.15rem}.mep-accounts a{color:var(--brand-ink,var(--brand));font-weight:600;text-decoration:none}.mep-accounts a:hover{text-decoration:underline}.mep-accounts a.inactive{color:var(--text-medium);font-weight:500}.mep-field{display:flex;flex-direction:column;gap:.4rem}.mep-field-label{font-size:.9rem;font-weight:600;color:var(--text)}.platform-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:0 1.5rem;gap:0 1.5rem;padding:0 1.2rem .8rem}.license-history{list-style:none;margin:0;padding:0 1.2rem .8rem}.license-history>li{border-top:1px solid var(--border)}.license-history>li:first-child{border-top:none}.license-history>li.inactive summary>:not(.chip){opacity:.6}.license-history summary{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem .9rem;padding:.75rem 0;cursor:pointer;list-style:none}.license-history summary::-webkit-details-marker{display:none}.license-history summary:before{content:"▸";color:var(--muted);font-size:.8rem;transition:transform .15s ease}.license-history details[open] summary:before{transform:rotate(90deg)}.license-history-year{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.license-history-who{font-weight:600}.license-history summary .chip{margin-left:auto}.license-events{margin:0 0 .9rem 1.4rem;padding:.2rem 0 0 .9rem;border-left:2px solid var(--border);list-style:none;display:grid;grid-gap:.5rem;gap:.5rem;font-size:.88rem}.license-events p{margin:.15rem 0 0;color:var(--text-medium)}.license-form fieldset{border:none;margin:0;padding:0;display:grid;grid-gap:.5rem;gap:.5rem}.license-form legend{font-weight:600;margin-bottom:.4rem}.license-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.5rem;gap:.5rem}.license-plans.two{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:640px){.license-plans,.license-plans.two{grid-template-columns:minmax(0,1fr)}}.modal-body .form .license-plans .ann-target{align-items:flex-start}.modal-body .form .license-plans .ann-target input[type=radio]{width:18px;height:18px;margin-top:.1rem;flex:0 0 auto}.license-plans .ann-target-text span{white-space:normal}.license-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.75rem;gap:.75rem}@media (max-width:640px){.license-row{grid-template-columns:minmax(0,1fr)}}.modal-body .form .license-row>label{display:flex;flex-direction:column;gap:.3rem}.license-replace{display:grid;grid-gap:.5rem;gap:.5rem}.license-replace p{margin:0}.license-years .muted{margin:0;font-size:.82rem}.license-years .segmented{justify-self:start}.license-form label>.label-text{display:block}.license-price{margin:0;font-size:.86rem}.license-network{display:flex;gap:.6rem;align-items:flex-start;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm,10px)}.license-network p{margin:0;color:var(--text-medium);font-size:.9rem}.school-plan{display:grid;grid-gap:.8rem;gap:.8rem;padding:0 1.2rem 1.1rem}.school-plan-head{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.school-plan-head .plan-pill{font-size:1rem;padding:.3rem .85rem}.school-plan ul{margin:0;padding-left:1.2rem;display:grid;grid-gap:.3rem;gap:.3rem;font-size:.9rem}.school-plan p{margin:0}@media (max-width:900px){.data-table.tests-table.compact .course-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;grid-gap:.75rem;gap:.75rem;text-align:left}.data-table.tests-table.compact .course-row>*{width:auto;text-align:left;grid-column:auto;grid-row:auto}.data-table.tests-table.compact .day-when{flex-direction:column;align-items:center}}.record-form{gap:1.1rem}.record-intro{margin:0;font-size:.9rem}.record-form .ann-section>label .field-hint{margin-top:.1rem}.record-programs{grid-template-columns:repeat(3,minmax(0,1fr));max-height:none}@media (max-width:560px){.record-programs{grid-template-columns:1fr}}.modal-body .form .form-row.align-end{align-items:end}.notice.notice-action{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}.notice.notice-action>span{flex:1 1 320px}.notice.notice-action>.button{margin-left:auto;flex-shrink:0;background:var(--warn-tint);border:1px solid var(--warn-line);color:var(--warn-ink);box-shadow:none}.notice.notice-action>.button:hover{background:var(--warn-fill);border-color:var(--warn);color:var(--warn-ink)}.mep-suggest{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;grid-gap:.75rem 1.5rem;gap:.75rem 1.5rem;margin:0 0 1.9rem;padding:.9rem 1.1rem;background:var(--teal-50);border:1px solid var(--brand-line);border-radius:10px}.mep-suggest-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.mep-suggest-text strong{font-size:.98rem;color:var(--text)}.mep-suggest-text span{font-size:.86rem;color:var(--text-medium)}.mep-suggest-periods{display:flex;gap:1.5rem;margin:0;padding:0;list-style:none}.mep-suggest-periods li{display:flex;flex-direction:column;gap:.1rem}.mep-suggest-periods span{font-size:.75rem;font-weight:600;color:var(--teal-800)}.mep-suggest-periods strong{font-size:.95rem;font-weight:600;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.button.mep-suggest-cta{background:var(--surface);color:var(--teal-800);border:1px solid var(--brand);box-shadow:none}.button.mep-suggest-cta:hover{background:var(--teal-100);color:var(--teal-800);border-color:var(--brand)}@media (max-width:760px){.mep-suggest{grid-template-columns:minmax(0,1fr)}.button.mep-suggest-cta{justify-self:start}.mep-suggest-periods{flex-wrap:wrap;gap:.6rem 1.5rem}}.auth-card .legal-consent{font-weight:400;font-size:.85rem;line-height:1.45;color:var(--text-medium);align-items:flex-start;margin:.25rem 0 0}.auth-card .legal-consent input[type=checkbox]{margin-top:.2rem;flex:0 0 auto}.auth-card .legal-consent a{color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:2px}.legal-gate-why{font-size:.95rem;color:var(--text-medium);line-height:1.5}.legal-gate-why.muted{color:var(--muted)}.legal-gate-links{list-style:none;padding:0;margin:0;display:grid;grid-gap:.4rem;gap:.4rem}.legal-gate-links a{color:var(--brand);font-weight:600;font-size:.9rem;text-decoration:none}.legal-gate-links a:hover{text-decoration:underline}.auth-card .legal-gate-links+.legal-consent{margin-top:.5rem}.auth-card .legal-consent.invalid{border:1.5px solid var(--error);background:var(--error-soft);border-radius:10px;padding:.55rem .7rem}.auth-card .legal-consent.invalid input[type=checkbox]{outline:2px solid var(--error);outline-offset:1px}.legal-consent-error{display:block;margin-top:.35rem;color:var(--error);font-weight:600}.help-link{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;width:26px;height:26px;margin-left:.35rem;border-radius:999px;color:var(--text-soft);text-decoration:none;vertical-align:middle;flex-shrink:0;transition:color .15s ease,background .15s ease}.help-link:focus-visible,.help-link:hover{color:var(--brand);background:var(--brand-soft)}.help-link:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.help-link.with-text{width:auto;height:auto;padding:.2rem .55rem .2rem .4rem;font-size:.82rem;font-weight:600;line-height:1.2}.page-title h1 .help-link{margin-left:.6rem;position:relative;top:-1px}@media print{.help-link{display:none!important}}.form .jornada-fields{border:1px solid var(--border);border-radius:12px;padding:.75rem .9rem .85rem;margin:0;display:flex;flex-direction:column;gap:.6rem}.form .jornada-fields legend{padding:0 .3rem;font-size:.9rem;font-weight:600;color:var(--text)}.form .jornada-times{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}.jornada-days{display:flex;flex-wrap:wrap;gap:.4rem}.jornada-day{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--border);background:var(--surface);color:var(--text-medium);font:inherit;font-weight:600;cursor:pointer}.jornada-day:hover{border-color:var(--brand-line)}.jornada-day[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.jornada-day:focus-visible{outline:2px solid var(--brand);outline-offset:2px}