:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,sans-serif;background:#f5f5f7;color:#1d1d1f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(180deg,#ffffffe0,#f5f5f700 280px),#f5f5f7}.auth-card{display:grid;width:min(100%,430px);gap:22px;padding:28px;border:1px solid rgba(0,0,0,.08);border-radius:18px;background:#ffffffdb;box-shadow:0 24px 70px #0f172a1f;-webkit-backdrop-filter:saturate(180%) blur(24px);backdrop-filter:saturate(180%) blur(24px)}.auth-brand{padding:0}.auth-heading{display:flex;gap:14px;align-items:flex-start}.auth-heading h1{margin:0 0 5px;font-size:1.7rem;line-height:1.1}.auth-heading p,.auth-error{margin:0;color:#6e6e73}.auth-form{display:grid;gap:13px}.auth-form label{display:grid;gap:6px}.auth-form label span{color:#6e6e73;font-size:.78rem;font-weight:800}.auth-form input{min-height:42px;padding:0 12px;border:1px solid #dfe3ea;border-radius:10px;background:#fff}.auth-error{padding:10px 12px;border-radius:10px;color:#8a2a0a;background:#fff4ed;font-size:.84rem}.bot-validation-panel{display:grid;gap:10px;padding:12px;border:1px solid rgba(0,0,0,.07);border-radius:14px;background:linear-gradient(180deg,#fafafcf5,#f5f5f7eb)}.bot-validation-panel span{display:block;color:#1d1d1f;font-size:.82rem;font-weight:850}.bot-validation-panel p,.bot-validation-panel em{margin:3px 0 0;color:#6e6e73;font-size:.76rem;font-style:normal;font-weight:650;line-height:1.4}.bot-validation-panel altcha-widget,.bot-validation-panel cap-widget{width:100%}*{box-sizing:border-box}html{background:#f5f5f7}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(180deg,#ffffffe0,#f5f5f700 260px),#f5f5f7}button,input,select{font:inherit}button{border:0;cursor:pointer}input,select{outline:none}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);align-items:stretch;min-height:100vh}.sidebar{position:static;display:flex;flex-direction:column;min-height:inherit;height:auto;padding:22px 16px;border-right:1px solid rgba(0,0,0,.08);background:#fbfbfdc7;-webkit-backdrop-filter:saturate(180%) blur(26px);backdrop-filter:saturate(180%) blur(26px)}.brand{display:flex;align-items:center;gap:12px;padding:2px 4px 18px}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(145deg,#1d1d1f,#424245);box-shadow:0 12px 26px #0000002e;font-size:1.05rem;font-weight:700}.brand-mark.has-logo{display:flex;width:auto;min-width:0;max-width:96px;height:auto;max-height:48px;align-items:center;justify-content:flex-start;overflow:visible;border-radius:0;background:transparent;box-shadow:none}.brand-mark.has-logo img{display:block;width:auto;max-width:82px;height:auto;max-height:46px;border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}.brand strong,.brand span{display:block}.brand strong{letter-spacing:0}.brand span,.focus-card span,.topbar p,.section-title p,.hero-panel p,.metric em,.student-row em,.rank-row em,.event-row em,.profile-head p,.empty-state span,.dropzone span,.school-summary span,.class-tile span,.seat em,.inline-status,td,label span{color:#6e6e73;font-size:.86rem}.focus-card{display:grid;gap:8px;padding:14px;margin-bottom:14px;border:1px solid rgba(0,0,0,.08);border-radius:18px;background:#ffffffbd;box-shadow:0 14px 40px #0000000d}.focus-card strong{font-size:1.6rem;letter-spacing:0}.focus-card select,.class-select select,.settings-form input,.settings-form select,.email-row input,.manual-grid input,.search-box input{min-height:40px;padding:0 12px;border:1px solid rgba(0,0,0,.1);border-radius:12px;background:#ffffffdb;color:#1d1d1f}nav{display:grid;gap:5px}nav button,.language,.secondary,.primary,.segmented button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;gap:9px;padding:0 13px;border-radius:13px;color:#1d1d1f;background:transparent;font-weight:720;transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease,border-color .16s ease}nav button,.language{justify-content:flex-start;width:100%}nav button:hover,.language:hover,.secondary:hover,.primary:hover,.student-row:hover,.class-tile:hover,.seat button:hover{transform:translateY(-1px)}nav button.active{color:#0057c2;background:#0071e31a}nav button.active svg{color:#0071e3}.language{margin-top:auto;border:1px solid rgba(0,0,0,.08);background:#ffffff9e}.language:active{transform:scale(.98)}.language span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}main{display:flex;flex-direction:column;width:min(100%,1480px);min-height:inherit;padding:30px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.topbar h1{margin:2px 0 0;font-size:clamp(2.05rem,2.6vw,3.1rem);line-height:1.05;letter-spacing:0}.topbar p,.hero-panel p,.section-title p{margin:0}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.account-button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;gap:7px;padding:0 11px;border:1px solid rgba(0,0,0,.08);border-radius:10px;color:#424245;background:#ffffffb8;font-size:.82rem;font-weight:700}.account-button:hover{color:#1d1d1f;background:#fff}.segmented{display:inline-grid;grid-template-columns:repeat(2,1fr);gap:4px;min-width:154px;padding:4px;border:1px solid rgba(0,0,0,.07);border-radius:15px;background:#e8e8edb8}.segmented button{min-height:34px;padding:0 12px}.segmented button.active{background:#fff;box-shadow:0 5px 16px #0000001a}.class-select{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 6px 0 12px;border:1px solid rgba(0,0,0,.08);border-radius:15px;background:#ffffffc7}.class-select select{min-height:34px;border-radius:10px}.class-select.is-disabled{border-color:#0000000e;background:#f5f5f7b8;color:#8e8e93;box-shadow:none}.class-select.is-disabled span,.class-select.is-disabled select{color:#a1a1a6}.class-select.is-disabled select{cursor:not-allowed;background:#ffffff7a}.notice{display:flex;align-items:center;gap:8px;padding:12px 14px;margin-bottom:16px;border:1px solid rgba(191,156,0,.22);border-radius:14px;color:#624900;background:#fff8d0d1}.notice span{flex:1}.notice button{display:inline-grid;width:28px;height:28px;place-items:center;border-radius:8px;color:inherit;background:transparent}.notice button:hover{background:#62490014}.page-stack{display:grid;gap:16px}.imports-page-stack>*{order:20}.imports-page-stack .import-center-hero{order:1}.imports-page-stack .manual-roster-panel{order:2}.imports-page-stack .import-lane-grid{order:3}.hero-panel,.panel{border:1px solid rgba(0,0,0,.08);border-radius:20px;background:#ffffffd1;box-shadow:0 22px 60px #0000000f}.hero-panel{display:flex;align-items:stretch;justify-content:space-between;gap:28px;min-height:236px;padding:30px;overflow:hidden}.class-hero{background:linear-gradient(132deg,#fffffff5,#f5f8ffe6),linear-gradient(90deg,#0071e314,#34c7590f)}.hero-copy{display:flex;flex-direction:column;justify-content:center;max-width:670px}.eyebrow{color:#0071e3;font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:none}.hero-panel h2,.detail-panel h2,.import-hero h2,.import-center-hero h2,.score-toolbar h2,.seating-head h2,.school-hero h2{margin:6px 0 10px;font-size:clamp(1.8rem,2.35vw,2.75rem);line-height:1.08;letter-spacing:0}.hero-panel p{max-width:620px;font-size:1rem;line-height:1.55}.hero-actions,.toolbar-buttons,.email-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.report-action-strip{display:flex;justify-content:flex-end;margin-bottom:-2px}.report-action-strip .secondary,.report-hero-actions .secondary,.report-email-button{min-height:38px;border-radius:999px;white-space:nowrap}.hero-actions{margin-top:22px}.primary{color:#fff;background:#0071e3;box-shadow:0 14px 26px #0071e338}.primary:disabled{cursor:not-allowed;color:#8e8e93;background:#f5f5f7f5;box-shadow:inset 0 0 0 1px #00000014;transform:none}.secondary:disabled{cursor:not-allowed;color:#8e8e93;background:#f5f5f7c2;box-shadow:inset 0 0 0 1px #0000000f;transform:none}.primary:active,.secondary:active,nav button:active,.student-row:active,.class-tile:active,.seat button:active{transform:translateY(0) scale(.985)}.secondary{border:1px solid rgba(0,0,0,.08);background:#ffffffc7}.secondary.subtle-action{color:#6e6e73;background:#ffffffa8;box-shadow:inset 0 0 0 1px #0000000b}.secondary.subtle-action:hover{color:#424245;background:#ffffffe0}.button-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:999px;animation:button-spin .8s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}.class-score-orb{display:grid;align-content:center;justify-items:center;width:min(270px,36%);min-width:220px;padding:22px;border:1px solid rgba(0,0,0,.08);border-radius:28px;background:linear-gradient(180deg,#ffffffe6,#f5f5f7e6),#fff;box-shadow:inset 0 1px #ffffffe6,0 20px 42px #00000014}.class-score-orb span,.class-score-orb small{color:#6e6e73}.class-score-orb strong{margin:10px 0 8px;font-size:3.6rem;letter-spacing:0}.metric-strip,.preview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{position:relative;display:grid;grid-template-columns:auto 1fr;gap:3px 10px;min-height:116px;padding:17px;border:1px solid rgba(0,0,0,.07);border-radius:18px;background:#ffffffd1;box-shadow:0 12px 34px #0000000a}.metric.has-detail{padding-right:104px}.metric-extra{position:absolute;top:14px;right:14px;max-width:82px;margin:0}.metric-extra .gender-meta-line{display:grid;grid-template-columns:1fr;justify-items:start;gap:3px;white-space:nowrap}.metric-extra .gender-meta-line>span{color:#86868b;font-size:.61rem;line-height:1.05}.metric-extra .gender-meta-line i{justify-content:flex-start;font-size:.66rem;line-height:1.05}.gender-meta-line{display:inline-flex;align-items:center;gap:8px;max-width:100%;color:#86868b;font-size:.68rem;font-weight:850;letter-spacing:0;line-height:1.35;white-space:nowrap}.gender-meta-line>span{color:#6e6e73}.gender-meta-line i{display:inline-flex;align-items:center;gap:4px;color:#3f3f46;font-style:normal}.gender-meta-line b{display:inline-block;width:6px;height:6px;border-radius:999px}.gender-dot{display:inline-block;width:7px;height:7px;border-radius:999px;background:#a1a1a6;box-shadow:0 0 0 3px #ffffffbd}.gender-dot.female{background:#ff4f93}.gender-dot.male{background:#0071e3}.gender-meta-line .female b{background:#ff4f93}.gender-meta-line .male b{background:#0071e3}.metric svg{grid-row:span 2;margin-top:3px;color:#0071e3}.metric strong{align-self:end;font-size:1.55rem;letter-spacing:0}.metric em{grid-column:2;font-style:normal}.dashboard-grid,.score-grid,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.score-grid{grid-template-columns:minmax(280px,380px) minmax(0,1fr)}.panel{padding:20px}.panel.wide,.settings-grid .wide{grid-column:1 / -1}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:15px}.section-title h3,.manual-card h3{margin:0;font-size:1.08rem;letter-spacing:0}.section-title svg{color:#86868b}.ranking,.event-list,.student-list{display:grid;gap:8px}.rank-row,.event-row,.student-row,.dorm-chip{display:grid;align-items:center;gap:10px;padding:12px;border-radius:14px;background:#f5f5f7}.rank-row{grid-template-columns:32px 1fr auto}.event-row{grid-template-columns:1fr auto}.rank-index{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;color:#0071e3;background:#0071e31a;font-size:.8rem;font-weight:700}.rank-row strong,.rank-row em,.event-row strong,.event-row em,.student-row strong,.student-row em{display:block}.good{color:#167a3a}.bad{color:#d12f2f}.dorm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dorm-chip{align-items:start;min-height:78px}.dorm-chip span{color:#6e6e73;font-size:.84rem;line-height:1.45}.seat-glimpse .section-title{align-items:center}.mini-seat-map{display:grid;grid-template-columns:repeat(var(--seat-map-cols, 8),minmax(28px,1fr));gap:6px}.mini-seat{display:grid;min-height:34px;place-items:center;border-radius:9px;color:#424245;background:#f5f5f7;font-size:.74rem;overflow:hidden}.mini-seat.middle{color:#0b5c26;background:#34c7592e}.split-layout{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:16px}.list-panel{max-height:calc(100vh - 130px);overflow:auto}.search-box{display:flex;align-items:center;gap:9px;margin-bottom:12px;padding:0 12px;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#f5f5f7db}.search-box input{flex:1;min-width:0;border:0;background:transparent}.search-clear-button{display:inline-grid;width:26px;height:26px;flex:0 0 26px;place-items:center;padding:0;border:0;border-radius:999px;color:#6e6e73;background:#d2d2d7b8;opacity:0;transform:scale(.92);visibility:hidden;transition:opacity .16s ease,transform .16s ease,background .16s ease,color .16s ease}.search-clear-button.active{opacity:1;transform:scale(1);visibility:visible}.search-clear-button.active:hover{color:#1d1d1f;background:#c7c7ccf2}.student-row{grid-template-columns:1fr auto;width:100%;text-align:left;border:1px solid transparent}.student-row.selected{color:#fff;background:#1d1d1f;box-shadow:0 14px 28px #00000029}.student-row.selected em{color:#ffffffad}.profile-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding-bottom:18px;border-bottom:1px solid rgba(0,0,0,.08)}.avatar{display:grid;width:58px;height:58px;place-items:center;border-radius:18px;color:#fff;background:linear-gradient(145deg,#0071e3,#34c759);font-size:1.35rem;font-weight:700;box-shadow:inset 0 1px #ffffff6b,0 14px 28px #0071e329}.avatar-male{background:radial-gradient(circle at 28% 24%,rgba(255,255,255,.35),transparent 36%),linear-gradient(145deg,#0071e3,#34c759)}.avatar-female{background:radial-gradient(circle at 28% 24%,rgba(255,255,255,.38),transparent 36%),linear-gradient(145deg,#ff375f,#bf5af2);box-shadow:inset 0 1px #ffffff70,0 14px 28px #ff375f2e}.avatar-neutral{background:radial-gradient(circle at 28% 24%,rgba(255,255,255,.36),transparent 36%),linear-gradient(145deg,#8e8e93,#5e5ce6);box-shadow:inset 0 1px #ffffff6b,0 14px 28px #5e5ce624}.profile-score{display:grid;grid-template-columns:auto auto;grid-template-areas:"label detail" "value value";align-items:center;justify-items:end;gap:3px 8px;max-width:210px;position:relative}.profile-score>span{grid-area:label}.profile-score strong{grid-area:value;font-size:2rem}.profile-score-detail{grid-area:detail;position:relative;z-index:12}.profile-score-info{display:grid;place-items:center;width:24px;height:24px;border:1px solid rgba(17,24,39,.08);border-radius:999px;color:#6e6e73;background:#f5f5f7eb;cursor:help;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.profile-score-info:hover,.profile-score-info:focus-visible{color:#0071e3;border-color:#0071e338;background:#fff;transform:translateY(-1px);outline:none}.profile-score-tooltip{position:absolute;top:calc(100% + 8px);right:0;width:min(260px,calc(100vw - 32px));padding:12px;border:1px solid rgba(17,24,39,.08);border-radius:16px;background:#fffffff0;box-shadow:0 18px 45px #0000001f,inset 0 1px #ffffffc7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;transform:translateY(-4px) scale(.98);visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease,visibility .16s ease}.profile-score-detail:hover .profile-score-tooltip,.profile-score-detail:focus-within .profile-score-tooltip{opacity:1;transform:translateY(0) scale(1);visibility:visible;pointer-events:auto}.profile-score-breakdown{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:6px;max-width:260px}.profile-score-breakdown span{display:inline-flex;align-items:center;gap:3px;min-height:22px;padding:0 7px;border:1px solid rgba(17,24,39,.08);border-radius:999px;color:#6b7280;background:#f5f5f7;font-size:.72rem;font-weight:650;white-space:nowrap}.profile-score-breakdown b{color:#1d1d1f;font-size:.72rem}.profile-score-formula,.profile-score-hint{margin:0;text-align:left;overflow-wrap:anywhere}.profile-score-formula{color:#1d1d1f;font-size:.72rem;font-weight:750;line-height:1.28}.profile-score-hint{color:#86868b;font-size:.68rem;font-weight:500;line-height:1.32}.manual-card{margin-top:18px;padding:16px;border-radius:18px;background:#f5f5f7}.manual-grid{display:grid;grid-template-columns:110px 150px minmax(180px,1fr) auto;gap:10px;align-items:end;margin-top:12px}.manual-grid label,.settings-form label{display:grid;gap:6px}.manual-grid input{width:100%}.timeline{display:grid;gap:9px;margin-top:18px}.manual-ledger-card{display:grid;gap:12px}.manual-ledger-grid{display:grid;grid-template-columns:minmax(300px,1.35fr) auto 112px 78px minmax(240px,.95fr) minmax(190px,1fr) auto;gap:10px;align-items:start}.manual-ledger-grid label,.manual-student-picker,.manual-category-field{display:grid;gap:6px;min-width:0}.manual-ledger-grid label span,.manual-student-picker>span,.field-label-row span{color:#6e6e73;font-size:.72rem;font-weight:800}.manual-ledger-grid input,.manual-ledger-grid select{width:100%;min-height:36px;padding:0 10px;border:1px solid #dfe3ea;border-radius:8px;background:#fff;color:#1d1d1f}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.inline-icon-button{display:inline-grid;width:24px;height:24px;place-items:center;padding:0;border:0;border-radius:999px;color:#6e6e73;background:#e8e8edbd;transition:transform .15s ease,background .15s ease,color .15s ease}.inline-icon-button:hover{transform:translateY(-1px);color:#1d1d1f;background:#d2d2d7eb}.category-picker-card{display:grid;gap:8px;min-width:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.selected-category-pill{display:inline-flex;max-width:118px;min-height:24px;align-items:center;justify-content:center;margin-left:auto;padding:0 9px;border-radius:999px;color:#0057c2;background:#0071e31a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-settings-button{flex:0 0 auto}.category-preset-grid{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.category-preset-grid button{min-width:76px;flex:1 1 76px;min-height:30px;padding:0 9px;border:1px solid rgba(0,113,227,.12);border-radius:9px;color:#0057c2;background:#0071e30f;font-size:.72rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:none}.category-preset-grid button.active,.category-preset-grid button:hover{transform:translateY(-1px);border-color:#0071e347;background:#0071e324}.category-custom-field{display:grid;gap:5px}.category-custom-field span{color:#86868b;font-size:.68rem;font-weight:800}.category-custom-field input{min-height:34px;border-radius:9px;background:#fffffff0}.manual-student-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(128px,.72fr);gap:8px;min-width:0}.manual-search-field{position:relative;display:flex;align-items:center;min-width:0;min-height:36px;padding:0 9px;border:1px solid #dfe3ea;border-radius:8px;background:#fff;color:#6e6e73}.manual-search-field input{flex:1 1 auto;width:100%;height:100%;min-height:0;padding:0 0 0 7px;border:0;background:transparent;line-height:1;min-width:0}.manual-student-suggestions{position:absolute;z-index:15;top:calc(100% + 6px);left:0;right:0;display:grid;gap:5px;max-height:238px;padding:6px;overflow-y:auto;border:1px solid #e1e5ec;border-radius:10px;background:#fffffff5;box-shadow:0 18px 40px #0f172a29;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.manual-student-suggestions button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:34px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:#1d1d1f;text-align:left}.manual-student-suggestions button:hover,.manual-student-suggestions button[aria-selected=true]{background:#eef4ff}.manual-student-suggestions strong,.manual-student-suggestions span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manual-student-suggestions span,.manual-student-empty,.manual-selected-student span{color:#6e6e73;font-size:.72rem}.manual-student-empty{padding:7px 8px}.manual-selected-student{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-width:0;min-height:36px;padding:5px 10px;border:1px solid #e3e7ee;border-radius:8px;background:#f7f9fc}.manual-selected-student strong,.manual-selected-student span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manual-selected-student strong{flex:0 0 auto;color:#1d1d1f;font-size:.86rem}.manual-selected-student span{min-width:0}.manual-mode-toggle{min-width:112px;border-radius:9px}.manual-ledger-grid .primary:disabled{cursor:not-allowed;opacity:.48}.timeline-item{display:grid;grid-template-columns:110px 62px minmax(0,1fr) 70px;align-items:center;gap:12px;padding:13px 14px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px #0000000f}.timeline-item time,.timeline-item em{color:#6e6e73;font-size:.84rem;font-style:normal}.import-hero,.import-center-hero,.score-toolbar,.seating-head,.school-hero,.logs-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px}.seating-head{grid-template-columns:minmax(0,1fr) auto auto}.dropzone{display:grid;width:min(360px,100%);min-height:180px;place-items:center;gap:8px;padding:22px;border:1.5px dashed rgba(0,113,227,.42);border-radius:20px;background:#f5f8ffd1;text-align:center;transition:transform .16s ease,border-color .16s ease,background .16s ease}.dropzone[role=button]{cursor:pointer;-webkit-user-select:none;user-select:none}.dropzone[role=button]:focus-visible{outline:3px solid rgba(0,113,227,.22);outline-offset:3px}.dropzone:hover{transform:translateY(-1px);border-color:#0071e3;background:#fff}.dropzone.is-processing{cursor:progress;border-style:solid;border-color:#0071e380;background:linear-gradient(180deg,#f5f8fff5,#fff)}.dropzone.is-processing svg{animation:soft-spin 1.2s linear infinite}.dropzone input{display:none}@keyframes soft-spin{to{transform:rotate(360deg)}}.import-center-hero{grid-template-columns:minmax(0,1fr) minmax(280px,390px);align-items:start}.import-rule-card{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;justify-self:end;max-width:390px;min-height:0;padding:10px 12px;border:1px solid rgba(0,113,227,.13);border-radius:12px;background:linear-gradient(180deg,#f5f9fff5,#ffffffe6);color:#1d1d1f;font-size:.78rem;line-height:1.32;box-shadow:0 10px 28px #0071e30f}.import-rule-card svg{flex:0 0 auto;margin-top:1px;color:#0071e3}.import-mode-card{display:grid;gap:8px;padding:10px 11px;border:1px solid rgba(17,24,39,.07);border-radius:14px;background:#f5f5f7d1}.import-mode-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.import-mode-header>strong{color:#1d1d1f;font-size:.78rem;font-weight:760}.import-mode-toggle{min-width:232px;border-radius:13px;background:#e8e8edc7}.import-mode-toggle button{min-height:31px;padding:0 11px;border-radius:10px;font-size:.73rem;white-space:nowrap}.import-mode-card p{margin:0;color:#6e6e73;font-size:.72rem;font-weight:650;line-height:1.35}.import-lane-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.import-lane-card{display:grid;align-content:start;gap:13px;min-width:0;padding:18px;border:1px solid rgba(17,24,39,.08);border-radius:18px;background:linear-gradient(180deg,#fffffff5,#f7f8fbe6);box-shadow:0 22px 58px #0f172a14}.roster-import-lane{order:1}.assignment-import-lane{order:2}.dormitory-import-lane{order:3}.school-score-import-lane{order:4}.import-lane-head{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:12px}.import-lane-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;color:#0071e3;background:#0071e31a}.import-lane-head h3{margin:0;color:#1d1d1f;font-size:1.02rem;letter-spacing:0}.import-lane-head p,.import-lane-muted{margin:4px 0 0;color:#6e6e73;font-size:.82rem;line-height:1.42}.import-order-hint{max-width:760px;margin:6px 0 0;color:#1d1d1f;font-size:.86rem;font-weight:700;line-height:1.36}.import-lane-meta{display:grid;gap:7px;padding:10px 12px;border-radius:12px;background:#f2f2f7b8;color:#424245;font-size:.76rem;line-height:1.35}.import-lane-note{margin:0;padding:9px 11px;border-radius:12px;background:#0071e314;color:#0055b8;font-size:.74rem;font-weight:720;line-height:1.36}.import-template-button,.import-lane-preview .primary{min-height:38px;border-radius:10px;font-size:.78rem}.import-lane-body{display:grid;gap:12px}.import-lane-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:8px 10px;border-radius:12px;background:#f5f5f7c7}.import-lane-toolbar span{min-width:0;color:#6e6e73;font-size:.72rem;font-weight:720;line-height:1.25;text-align:right}.roster-context-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(96px,.6fr) minmax(138px,.75fr);gap:10px;align-items:end;padding:12px;border-radius:14px;background:#f5f5f7d1;box-shadow:inset 0 0 0 1px #0000000d}.roster-context-card>div,.roster-context-card label{display:grid;gap:5px;min-width:0}.roster-context-card strong{color:#1d1d1f;font-size:.82rem;letter-spacing:0}.roster-context-card span{color:#6e6e73;font-size:.72rem;font-weight:750;line-height:1.25}.roster-context-card input{width:100%;min-height:36px;padding:0 10px;border:1px solid #dfe3ea;border-radius:10px;background:#fffffff0;color:#1d1d1f}.import-inline-field{display:grid;gap:6px}.import-inline-field span{color:#6e6e73;font-size:.72rem;font-weight:800}.import-inline-field select{width:100%;min-height:40px;padding:0 34px 0 11px;border:1px solid #dfe3ea;border-radius:10px;background-color:#fff;color:#1d1d1f}.import-lane-preview{display:grid;gap:10px;padding:12px;border:1px solid rgba(17,24,39,.08);border-radius:14px;background:#ffffffdb}.import-lane-action-hint{margin:-2px 0 0;color:#6e6e73;font-size:.73rem;font-weight:650;line-height:1.35}.import-lane-success{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid rgba(52,199,89,.2);border-radius:14px;background:#edf9f0db;color:#1d1d1f}.import-lane-success svg{flex:0 0 auto;margin-top:1px;color:#248a3d}.import-lane-success div{display:grid;gap:3px;min-width:0}.import-lane-success strong{font-size:.84rem}.import-lane-success span{overflow:hidden;color:#6e6e73;font-size:.74rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.roster-warning-callout{display:flex;align-items:flex-start;gap:8px;padding:10px 11px;border-radius:12px;background:#ffcc0024;color:#7a4d00;font-size:.76rem;font-weight:760;line-height:1.35}.roster-warning-callout svg{flex:0 0 auto;margin-top:1px}.settings-modal.roster-review-modal{display:grid;gap:14px;width:min(1140px,calc(100vw - 40px));max-height:calc(100vh - 48px);overflow:hidden}.roster-review-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.roster-review-tabs button{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 11px;border:1px solid rgba(0,0,0,.08);border-radius:999px;background:#f5f5f7c7;color:#424245;font-size:.76rem;font-weight:800;white-space:nowrap}.roster-review-tabs button.active{border-color:#0071e352;background:#0071e31a;color:#0055b8}.roster-review-tabs strong{color:inherit;font-size:.72rem}.roster-review-bulk{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px 11px;border-radius:13px;background:#f5f5f7db}.roster-review-bulk span{color:#6e6e73;font-size:.76rem;font-weight:760}.roster-review-bulk button{min-height:32px;padding:0 11px;border-radius:999px;font-size:.73rem}.roster-review-table{overflow:auto;max-height:min(540px,calc(100vh - 220px));border-radius:14px;border:1px solid rgba(0,0,0,.06);background:#ffffffdb}.roster-review-table table{width:100%;min-width:1040px;border-collapse:collapse;table-layout:fixed}.roster-review-table th{position:sticky;top:0;z-index:1;background:#f7f8fbf5}.roster-review-table th,.roster-review-table td{padding:10px 12px;border-bottom:1px solid rgba(0,0,0,.05);color:#1d1d1f;font-size:.78rem;text-align:left;vertical-align:top}.roster-review-table th{color:#6e6e73;font-size:.7rem;font-weight:850;white-space:nowrap}.roster-review-table th:nth-child(1),.roster-review-table td:nth-child(1){width:62px}.roster-review-table th:nth-child(2),.roster-review-table td:nth-child(2){width:130px}.roster-review-table th:nth-child(3),.roster-review-table td:nth-child(3),.roster-review-table th:nth-child(4),.roster-review-table td:nth-child(4),.roster-review-table th:nth-child(5),.roster-review-table td:nth-child(5),.roster-review-table th:nth-child(6),.roster-review-table td:nth-child(6){width:92px}.roster-review-table th:nth-child(7),.roster-review-table td:nth-child(7){width:460px}.roster-dormitory-review,.roster-warning-decision{display:grid;gap:6px}.roster-dormitory-review strong{color:#1d1d1f;font-size:.78rem}.roster-dormitory-review span,.roster-warning-decision p,.roster-edit-dormitory span{margin:0;color:#6e6e73;font-size:.72rem;line-height:1.32}.roster-decision-actions{display:flex;flex-wrap:wrap;gap:6px}.roster-decision-actions button{min-height:30px;padding:0 9px;border:1px solid rgba(0,0,0,.08);border-radius:999px;background:#f5f5f7e6;color:#424245;font-size:.71rem;font-weight:800}.roster-decision-actions button.active{border-color:#0071e357;background:#0071e31a;color:#0055b8}.roster-decision-actions button:disabled{opacity:.44;cursor:not-allowed}.roster-edit-dormitory{display:grid;gap:5px;max-width:220px}.roster-edit-dormitory input{min-height:32px;padding:0 9px;border:1px solid #dfe3ea;border-radius:9px;background:#fff;color:#1d1d1f;font-size:.75rem}.import-lane-preview>strong{overflow:hidden;color:#1d1d1f;font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.import-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:7px}.import-status-grid span,.import-status-grid button{display:grid;gap:2px;min-height:50px;padding:8px;border:1px solid transparent;border-radius:10px;background:#f5f7fb;color:#6e6e73;font-size:.68rem;font-weight:750;text-align:left}.import-status-grid button{cursor:pointer}.import-status-grid button:hover,.import-status-grid button.active{border-color:#0071e33d;background:#0071e317}.import-status-grid strong{color:#1d1d1f;font-size:1rem}.import-status-grid .good{background:#edf9f0}.import-status-grid .warn{background:#fff7df}.import-status-grid .bad{background:#fff1f0}.import-status-grid button.good:hover,.import-status-grid button.good.active{background:#e3f5e8}.import-status-grid button.warn:hover,.import-status-grid button.warn.active{background:#fff0c2}.import-status-grid button.bad:hover,.import-status-grid button.bad.active{background:#ffe2df}.import-safety-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.import-safety-strip span{display:inline-flex;align-items:center;min-width:0;min-height:32px;gap:6px;padding:0 9px;border:1px solid rgba(0,0,0,.055);border-radius:10px;background:#f5f5f7d1;color:#424245;font-size:.7rem;font-weight:780;line-height:1.2}.import-safety-strip svg{flex:0 0 auto;color:#0071e3}.import-safety-strip .warn{background:#ffcc0021;color:#7a4d00}.import-review-callout{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(255,149,0,.18);border-radius:15px;background:linear-gradient(180deg,#fff8ebe6,#fffffff0)}.import-review-callout>svg{color:#b25d00}.import-review-callout div{display:grid;min-width:0;gap:3px}.import-review-callout strong{overflow:hidden;color:#1d1d1f;font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.import-review-callout span{overflow:hidden;color:#6e6e73;font-size:.75rem;font-weight:680;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.import-review-callout button{min-height:34px;white-space:nowrap}.same-name-aggregate-callout{grid-template-columns:auto minmax(0,1fr);border-color:#0071e329;background:linear-gradient(180deg,#f4fafff0,#fffffff5)}.same-name-aggregate-callout>svg{color:#0071e3}.unmatched-preview-card{display:grid;gap:12px;padding:14px;border:1px solid rgba(255,59,48,.18);border-radius:16px;background:linear-gradient(180deg,#fff5f5db,#ffffffeb)}.unmatched-preview-table{max-height:280px;border:1px solid rgba(17,24,39,.08);border-radius:12px}.unmatched-preview-table table{min-width:1040px}.unmatched-preview-table td strong,.unmatched-preview-table td span{display:block}.unmatched-preview-table td strong{color:#1d1d1f;font-size:.8rem}.unmatched-preview-table td span{margin-top:2px;color:#86868b;font-size:.7rem;font-weight:650}.resolved-review-row{background:#edf9f0b3}.score-review-history,.score-review-actions{display:grid;gap:5px}.score-review-history span{color:#6e6e73;font-size:.68rem;white-space:nowrap}.score-review-actions{min-width:190px}.score-review-actions button{min-height:28px;padding:5px 9px;border:1px solid rgba(0,113,227,.16);border-radius:9px;background:#ffffffd1;color:#0055b8;font-size:.69rem;font-weight:760;text-align:left}.score-review-actions button.active{border-color:#0071e361;background:#0071e31a;color:#004b9a}.score-review-actions button.danger{border-color:#ff3b302e;color:#b42318}.score-review-actions span{color:#86868b;font-size:.7rem;font-weight:650}.settings-modal.import-review-modal{display:grid;align-content:start;gap:14px;width:min(1220px,calc(100vw - 40px));max-height:calc(100vh - 48px);overflow-y:auto;overscroll-behavior:contain}.settings-modal.import-history-modal{display:grid;align-content:start;gap:12px;width:min(1480px,100%);max-height:calc(100vh - 48px);grid-template-rows:auto minmax(0,1fr);overflow:hidden}.modal-head-actions{display:flex;align-items:center;gap:8px}.modal-head-actions .secondary.compact-button{width:auto;min-width:72px;height:34px;padding:0 12px;border-radius:999px;white-space:nowrap}.import-history-layout{display:grid;grid-template-columns:minmax(220px,.24fr) minmax(0,1fr);gap:14px;height:min(640px,calc(100vh - 150px));min-height:0}.import-history-list{display:grid;align-content:start;gap:8px;min-height:0;max-height:min(620px,70vh);overflow-y:auto;overscroll-behavior:contain;padding:8px;border:1px solid rgba(17,24,39,.08);border-radius:16px;background:#f5f5f7d1;scrollbar-gutter:stable;scrollbar-color:rgba(142,142,147,.65) transparent}.import-history-list button{display:grid;gap:4px;width:100%;min-height:58px;padding:10px 11px;border:1px solid transparent;border-radius:12px;background:#ffffffb8;color:#1d1d1f;text-align:left}.import-history-list button.active{border-color:#0071e338;background:#0071e31a}.import-history-list strong{display:block;overflow:hidden;font-size:.78rem;line-height:1.28;min-height:1.28em;text-overflow:ellipsis;white-space:nowrap}.import-history-list span{display:block;color:#6e6e73;font-size:.69rem;font-weight:720;line-height:1.35}.import-history-detail{display:grid;grid-template-rows:auto auto auto auto auto auto minmax(0,1fr);align-content:start;gap:10px;min-width:0;min-height:0;overflow:hidden;overflow-x:hidden;padding-right:2px;overscroll-behavior:contain}.import-history-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:16px;background:#f5f5f7c7}.import-history-summary div:first-child{display:grid;gap:4px;min-width:0}.import-history-summary strong{overflow:hidden;color:#1d1d1f;font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.import-history-summary span{color:#6e6e73;font-size:.74rem;font-weight:720}.import-history-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.import-history-tabs{display:flex;gap:6px;padding:4px;border-radius:999px;background:#f2f2f7eb}.import-history-tabs button{flex:1;min-height:34px;border:0;border-radius:999px;background:transparent;color:#6e6e73;font-size:.75rem;font-weight:820}.import-history-tabs button.active{background:#fff;color:#1d1d1f;box-shadow:0 8px 22px #00000014}.import-history-tab-help{margin:-4px 2px 0;color:#6e6e73;font-size:.72rem;font-weight:700;line-height:1.45}.import-history-filters{display:grid;gap:8px;padding:10px;border:1px solid rgba(17,24,39,.07);border-radius:16px;background:#f5f5f7c2}.import-history-filter-row{display:grid;grid-template-columns:minmax(260px,1.35fr) minmax(92px,.48fr) minmax(108px,.56fr) minmax(92px,.48fr) minmax(96px,.42fr) minmax(96px,.42fr) minmax(64px,auto);gap:8px;align-items:end}.import-history-search-wrap{position:relative;min-width:0}.import-history-filter-control{display:grid;grid-template-rows:13px 36px;gap:3px;min-width:0}.import-history-filter-control span{padding-left:4px;color:#6e6e73;font-size:.64rem;font-weight:820;line-height:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-history-filters .search-field,.import-history-filters input,.import-history-filters select{height:36px;min-height:36px;border:1px solid rgba(17,24,39,.1);border-radius:999px;background-color:#ffffffdb;color:#1d1d1f;font-size:.75rem;font-weight:740}.import-history-filters .search-field{display:flex;align-items:center;gap:7px;padding:0 12px}.import-history-filters .search-field input{min-height:0;padding:0;border:0;border-radius:0;background:transparent}.import-history-filters input,.import-history-filters select{width:100%;padding:0 12px}.import-history-filters input::placeholder{color:#8e8e93;opacity:1}.history-date-input-wrap{position:relative;min-width:0}.history-date-input-wrap input[type=text]{padding-right:36px}.history-date-calendar-icon{position:absolute;top:50%;right:12px;z-index:1;color:#8e8e93;pointer-events:none;transform:translateY(-50%)}.history-date-picker{position:absolute;top:0;right:0;z-index:2;width:38px!important;min-width:38px;padding:0!important;cursor:pointer;opacity:.01}.import-history-filters .compact-button{height:36px;min-width:64px;padding:0 10px}.import-history-suggestions{position:absolute;z-index:10;top:calc(100% + 7px);left:0;right:0;display:grid;gap:5px;max-height:236px;padding:6px;overflow-y:auto;border:1px solid rgba(17,24,39,.1);border-radius:12px;background:#fffffff5;box-shadow:0 18px 42px #0f172a29;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.import-history-suggestions button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:34px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:#1d1d1f;text-align:left}.import-history-suggestions button:hover,.import-history-suggestions button:focus-visible{background:#0071e31a}.import-history-suggestions strong,.import-history-suggestions span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-history-suggestions span,.import-history-suggestion-empty{color:#6e6e73;font-size:.7rem;font-weight:720}.import-history-suggestion-empty{padding:9px}.import-history-status-cell{display:flex;flex-wrap:wrap;gap:5px;align-items:flex-start}.history-status-chip,.history-result-chip{display:inline-flex;align-items:center;min-height:21px;padding:0 8px;border-radius:999px;font-size:.67rem;font-weight:830;line-height:1;white-space:nowrap}.history-status-chip.good,.history-result-chip.good{background:#34c7591f;color:#0b7a33}.history-status-chip.warn,.history-result-chip.warn{background:#ffcc002b;color:#8a5a00}.history-status-chip.bad,.history-result-chip.bad{background:#ff3b301c;color:#b42318}.history-status-chip.neutral,.history-result-chip.neutral{background:#8e8e9324;color:#5f6368}.import-history-table{min-height:0;max-height:none;overflow:auto;border:1px solid rgba(17,24,39,.08);border-radius:16px;background:#ffffffe6;scrollbar-gutter:stable;scrollbar-color:rgba(142,142,147,.65) transparent}.import-history-table table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed}.import-history-table th:nth-child(1),.import-history-table td:nth-child(1){width:50px}.import-history-table th:nth-child(2),.import-history-table td:nth-child(2){width:126px}.import-history-table th:nth-child(3),.import-history-table td:nth-child(3){width:98px}.import-history-table th:nth-child(4),.import-history-table td:nth-child(4){width:68px}.import-history-table th:nth-child(5),.import-history-table td:nth-child(5){width:160px}.import-history-table th{position:sticky;top:0;z-index:2;background:#f7f8fbfa;color:#6e6e73;font-size:.7rem;font-weight:850;white-space:nowrap}.import-history-table th,.import-history-table td{padding:10px 11px;border-bottom:1px solid rgba(0,0,0,.055);color:#1d1d1f;font-size:.75rem;text-align:left;vertical-align:top}.import-history-evidence-note{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-3px 0 0;color:#6e6e73;font-size:.72rem;font-weight:720}.import-history-pager{display:flex;gap:7px}.import-history-pager .compact-button{height:30px;min-width:72px;padding:0 10px}@media(max-width:1120px){.import-history-layout{grid-template-columns:1fr}.import-history-list{grid-auto-flow:column;grid-auto-columns:minmax(220px,.32fr);overflow-x:auto;overflow-y:hidden;max-height:none}}@media(max-width:940px){.import-history-filters{grid-template-columns:1fr}.import-history-filter-row{grid-template-columns:repeat(3,minmax(0,1fr))}.import-history-search-wrap{grid-column:1 / -1}}.import-history-raw{display:-webkit-box;overflow:hidden;color:#6e6e73;font-size:.7rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.import-review-modal .modal-head p{max-width:860px}.import-review-modal-body{overflow:auto;overscroll-behavior:contain;max-height:min(360px,42vh);border:1px solid rgba(0,0,0,.06);border-radius:16px;background:#ffffffe6}.import-review-modal-body table{width:100%;min-width:1160px;border-collapse:collapse;table-layout:fixed}.import-review-modal-body th{position:sticky;top:0;z-index:2;background:#f7f8fbfa;color:#6e6e73;font-size:.7rem;font-weight:850;text-transform:none;white-space:nowrap}.import-review-modal-body th,.import-review-modal-body td{padding:10px 11px;border-bottom:1px solid rgba(0,0,0,.055);color:#1d1d1f;font-size:.76rem;text-align:left;vertical-align:top}.import-review-modal-body th:nth-child(1),.import-review-modal-body td:nth-child(1){width:60px}.import-review-modal-body th:nth-child(2),.import-review-modal-body td:nth-child(2){width:120px}.import-review-modal-body th:nth-child(3),.import-review-modal-body td:nth-child(3),.import-review-modal-body th:nth-child(4),.import-review-modal-body td:nth-child(4),.import-review-modal-body th:nth-child(5),.import-review-modal-body td:nth-child(5),.import-review-modal-body th:nth-child(6),.import-review-modal-body td:nth-child(6){width:86px;white-space:nowrap}.import-review-modal-body th:nth-child(7),.import-review-modal-body td:nth-child(7){width:190px}.import-review-modal-body th:nth-child(8),.import-review-modal-body td:nth-child(8){width:210px}.import-review-modal-body th:nth-child(9),.import-review-modal-body td:nth-child(9){width:230px}.import-review-student-cell{display:grid;gap:3px;min-width:0}.import-review-student-cell strong{overflow:hidden;color:#1d1d1f;font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.import-review-student-cell span{color:#86868b;font-size:.68rem;font-weight:700}.import-review-reason{display:-webkit-box;overflow:hidden;color:#424245;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:3}.total-check-review-card{display:grid;gap:10px;min-height:0;padding:12px;border:1px solid rgba(255,149,0,.18);border-radius:16px;background:linear-gradient(180deg,#fff8ebeb,#fffffff2)}.total-check-review-table{overflow:auto;overscroll-behavior:contain;max-height:min(220px,24vh);border:1px solid rgba(0,0,0,.055);border-radius:12px;background:#ffffffe0}.total-check-review-table table{width:100%;min-width:900px;border-collapse:collapse;table-layout:fixed}.total-check-review-table th{position:sticky;top:0;z-index:1;background:#fffaf2fa;color:#6e6e73;font-size:.7rem;font-weight:850;white-space:nowrap}.total-check-review-table th,.total-check-review-table td{padding:9px 10px;border-bottom:1px solid rgba(0,0,0,.05);color:#1d1d1f;font-size:.75rem;text-align:left;vertical-align:top}.total-check-review-table th:nth-child(1),.total-check-review-table td:nth-child(1){width:58px}.total-check-review-table th:nth-child(2),.total-check-review-table td:nth-child(2){width:130px}.total-check-review-table th:nth-child(3),.total-check-review-table td:nth-child(3),.total-check-review-table th:nth-child(4),.total-check-review-table td:nth-child(4),.total-check-review-table th:nth-child(5),.total-check-review-table td:nth-child(5),.total-check-review-table th:nth-child(6),.total-check-review-table td:nth-child(6){width:105px;white-space:nowrap}.import-review-modal .modal-actions{position:sticky;bottom:-18px;z-index:3;margin:0 -18px -18px;padding:10px 18px 18px;background:linear-gradient(180deg,#fff0,#fffffff5 36%)}.manual-roster-panel{display:grid;gap:14px}.manual-roster-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.manual-roster-form-card,.manual-roster-directory-card{display:grid;gap:12px;min-width:0;padding:14px;border:1px solid rgba(17,24,39,.08);border-radius:14px;background:linear-gradient(180deg,#fffffff0,#f8f9fce6);box-shadow:0 14px 36px #0f172a0f}.manual-roster-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(140px,.42fr) minmax(120px,.34fr) auto;gap:10px;align-items:end}.manual-roster-form label,.manual-roster-filter-row label{display:grid;gap:6px;min-width:0}.manual-roster-form span,.manual-roster-filter-row span{color:#6e6e73;font-size:.72rem;font-weight:800}.manual-roster-form input,.manual-roster-form select,.manual-roster-filter-row select{width:100%;min-height:40px;padding:0 11px;border:1px solid #dfe3ea;border-radius:10px;background:#fff;color:#1d1d1f}.manual-roster-form .primary{min-height:40px;border-radius:10px;white-space:nowrap}.manual-roster-form .primary:disabled{cursor:not-allowed;opacity:.5}.manual-roster-directory-toolbar{display:grid;grid-template-columns:minmax(150px,.34fr) minmax(0,1fr);gap:12px;align-items:end}.manual-roster-filter-row{display:grid;grid-template-columns:minmax(132px,.34fr) minmax(0,1fr);gap:10px;align-items:end}.manual-roster-search-shell{position:relative;min-width:0}.manual-roster-search{min-height:40px;margin-bottom:0;border-radius:10px;background:#fff}.manual-roster-suggestions{position:absolute;z-index:16;top:calc(100% + 6px);left:0;right:0;display:grid;gap:5px;max-height:230px;padding:6px;overflow-y:auto;border:1px solid #e1e5ec;border-radius:10px;background:#fffffff5;box-shadow:0 18px 40px #0f172a29;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.manual-roster-suggestions button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:34px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:#1d1d1f;text-align:left}.manual-roster-suggestions button:hover{background:#eef4ff}.manual-roster-result-head,.manual-roster-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.manual-roster-result-head{align-content:center;min-height:40px;padding:0 2px}.manual-roster-result-head strong{font-size:.94rem}.manual-roster-result-head span,.manual-roster-row em,.manual-roster-empty,.manual-roster-suggestions span{color:#6e6e73;font-size:.72rem;font-style:normal}.manual-roster-results{display:grid;max-height:292px;overflow-y:auto;gap:8px;padding-right:3px}.manual-roster-row{min-height:52px;padding:9px 12px;border:1px solid rgba(17,24,39,.07);border-radius:11px;background:#ffffffe0;box-shadow:0 8px 20px #0f172a0a}.manual-roster-row.editing{align-items:stretch;grid-template-columns:minmax(0,1fr)}.manual-roster-student-copy{display:grid;gap:2px;min-width:0}.manual-roster-student-copy strong,.manual-roster-student-copy em,.manual-roster-suggestions strong,.manual-roster-suggestions span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manual-roster-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}.manual-roster-row b{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;color:#075985;background:#e7f6ff;font-size:.68rem;font-weight:800}.manual-roster-edit-grid{display:grid;grid-template-columns:minmax(140px,1fr) minmax(105px,.42fr) minmax(90px,.32fr) minmax(100px,.38fr) auto;gap:8px;align-items:end;width:100%}.manual-roster-edit-grid label{display:grid;gap:5px;min-width:0}.manual-roster-edit-grid span{color:#6e6e73;font-size:.68rem;font-weight:800}.manual-roster-edit-grid input,.manual-roster-edit-grid select{width:100%;min-height:34px;padding:0 9px;border:1px solid #dfe3ea;border-radius:9px;background:#fff;color:#1d1d1f}.manual-roster-edit-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px}.compact-button,.icon-button{border:0;white-space:nowrap}.compact-button{min-height:34px;gap:6px;padding:0 10px;border-radius:9px;font-size:.76rem;font-weight:780}.icon-button{display:inline-grid;width:32px;height:32px;place-items:center;padding:0;border-radius:999px;color:#424245;background:#e8e8edd1;transition:transform .15s ease,background .15s ease,color .15s ease}.icon-button:hover,.compact-button:hover{transform:translateY(-1px)}.icon-button.subtle:hover{color:#0057c2;background:#0071e31f}.ghost{color:#1d1d1f;background:#f2f2f7f2}.danger,.danger-subtle{color:#b42318}.danger{background:#fff1f0}.danger-subtle{background:#fff1f0eb}.danger:hover,.danger-subtle:hover{background:#ffe3e1}.manual-roster-empty{min-height:48px;display:grid;place-items:center;border:1px dashed #dfe3ea;border-radius:9px;background:#fff}.import-period-card,.outside-summary-card{display:grid;grid-template-columns:minmax(210px,1fr) repeat(4,minmax(132px,.45fr));gap:10px;align-items:end;margin:14px 0;padding:14px;border:1px solid rgba(0,0,0,.07);border-radius:14px;background:linear-gradient(180deg,#ffffffeb,#f7f9fcdb)}.outside-summary-card{grid-template-columns:minmax(260px,1fr) auto;align-items:center;background:linear-gradient(180deg,#fff8e7e0,#ffffffe6)}.import-period-card strong,.outside-summary-card strong{display:block;font-size:.92rem}.import-period-card>div>span,.outside-summary-card>div>span{display:block;margin-top:3px;color:#6e6e73;font-size:.74rem;line-height:1.4}.outside-summary-badge{justify-self:end;display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border:1px solid rgba(180,129,0,.16);border-radius:999px;background:#ffffffb8;color:#8a5a00;font-size:.74rem;font-weight:750;white-space:nowrap}.import-period-card label{display:grid;gap:6px}.import-period-card label span{color:#6e6e73;font-size:.7rem;font-weight:800}.import-period-card input{width:100%;min-height:38px;padding:0 10px;border:1px solid #dfe3ea;border-radius:10px;background:#fff}.outside-policy-toggle{min-width:240px}.workbook-analysis-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.workbook-analysis-tab{display:grid;align-content:start;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:168px;padding:13px;border:1px solid rgba(0,0,0,.06);border-radius:14px;background:#ffffffc7}.analysis-mini-list{display:grid;align-content:start;gap:7px}.analysis-mini-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:34px;padding:0 9px;border-radius:9px;background:#f5f5f7}.analysis-mini-list span{overflow:hidden;color:#424245;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.analysis-mini-list b{font-size:.78rem}.preview-table-heading{display:grid;gap:3px;margin:14px 0 8px}.preview-table-heading strong{color:#1d1d1f;font-size:.86rem}.preview-table-heading span{color:#6e6e73;font-size:.72rem;font-weight:700;line-height:1.35}.table-wrap{overflow:auto;border:1px solid rgba(0,0,0,.06);border-radius:14px}.ledger-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.source-mode-bar{display:grid;grid-template-columns:minmax(240px,.45fr) minmax(0,1fr);gap:10px;align-items:center;margin-bottom:10px}.source-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.source-summary-card{display:grid;min-height:54px;padding:9px 12px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:#fbfbfd;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.source-summary-card:hover{transform:translateY(-1px);border-color:#0071e32e;background:#fff;box-shadow:0 10px 22px #0f172a0f}.source-summary-card.active{border-color:#0071e352;background:#0071e314;box-shadow:inset 0 0 0 1px #0071e314}.source-summary-card span{color:#6e6e73;font-size:.68rem;font-weight:800}.source-summary-card strong{align-self:end;font-size:1rem}.ledger-sort-button{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;cursor:pointer}.ledger-sort-button:hover{color:#0071e3}.ledger-sort-button b{display:inline-flex;width:12px;justify-content:center;color:#0071e3;font-size:.7rem;line-height:1}.ledger-search-field{width:min(480px,100%);min-height:40px;margin-bottom:0;padding:0 12px;border-color:#00000014;border-radius:14px;background:#f5f5f7db;color:#6e6e73}.ledger-search-field input{width:100%;min-height:0;padding:0 0 0 2px;border:0;background:transparent;color:#1d1d1f}.modal-backdrop{position:fixed;z-index:80;inset:0;display:grid;place-items:center;overflow:hidden;overscroll-behavior:contain;padding:24px;background:#f5f5f78a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.settings-modal{width:min(520px,100%);padding:18px;border:1px solid rgba(0,0,0,.08);border-radius:20px;background:#fffffff0;box-shadow:0 28px 80px #0000002e}.report-email-modal{display:grid;gap:14px;width:min(720px,100%);max-height:calc(100vh - 48px);overflow:hidden}.report-email-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.report-email-summary div,.report-email-content-card,.report-email-attachment-card{min-width:0;padding:12px;border-radius:14px;background:linear-gradient(180deg,#fbfbfdeb,#f5f5f7eb);box-shadow:inset 0 0 0 1px #0000000f}.report-email-summary dt,.report-email-fields span{color:#6e6e73;font-size:.72rem;font-weight:850}.report-email-summary dd{margin:4px 0 0;color:#1d1d1f;font-size:.9rem;font-weight:780;line-height:1.25}.report-email-content-card,.report-email-attachment-card,.report-email-fields{display:grid;gap:8px}.report-email-content-card h4,.report-email-attachment-card h4{margin:0;color:#1d1d1f;font-size:.94rem;line-height:1.2}.report-email-content-card pre{max-height:190px;margin:0;overflow:auto;white-space:pre-wrap;color:#424245;font:.82rem/1.55 var(--font)}.report-email-attachment-card p{margin:0;color:#6e6e73;font-size:.82rem;line-height:1.45}.report-email-fields label{display:grid;gap:6px}.report-email-fields input,.report-email-fields textarea{width:100%;border:1px solid rgba(0,0,0,.1);border-radius:13px;background:#ffffffe0;color:#1d1d1f;font:inherit}.report-email-fields input{min-height:42px;padding:0 12px}.report-email-fields textarea{resize:vertical;min-height:82px;padding:10px 12px}.category-settings-modal{display:grid;gap:14px;max-height:calc(100vh - 48px);overflow:hidden}.category-settings-editor{display:grid;gap:7px;min-height:0}.category-settings-editor span{color:#6e6e73;font-size:.74rem;font-weight:800}.category-editor-list{display:grid;gap:8px;max-height:320px;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}.category-editor-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.category-editor-row input{width:100%;min-height:40px;padding:0 11px;border:1px solid #dfe3ea;border-radius:10px;background:#fbfbfd;color:#1d1d1f;font:inherit}.category-add-button{justify-self:start;min-height:36px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.assignment-confirm-modal{display:grid;gap:14px}.assignment-confirm-list{display:grid;gap:8px;padding:4px 0}.assignment-confirm-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:#f5f5f7}.assignment-confirm-row.changed{border-color:#0071e32e;background:#0071e312}.assignment-confirm-row span{color:#6e6e73;font-size:.74rem;font-weight:800}.assignment-confirm-row strong,.assignment-confirm-row b{overflow:hidden;color:#1d1d1f;font-size:.82rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.assignment-confirm-row b{color:#0071e3}.assignment-confirm-warning{display:flex;align-items:center;gap:8px;margin:0;padding:10px 12px;border-radius:12px;color:#8a4b00;background:#fff7e6;font-size:.78rem;font-weight:750}.ledger-pagination{display:flex;align-items:center;gap:8px;color:#6e6e73;font-size:.78rem;font-weight:800;white-space:nowrap}.ledger-pagination .secondary{min-height:32px;padding:0 10px}.ledger-pagination .secondary:disabled{cursor:not-allowed;opacity:.45}.biweekly-report-card{display:grid;gap:16px}.biweekly-controls{display:grid;grid-template-columns:minmax(260px,.5fr) minmax(280px,1fr);gap:12px;align-items:end}.biweekly-controls label,.biweekly-controls>div{display:grid;gap:7px;min-width:0}.biweekly-controls span,.biweekly-summary-grid span,.biweekly-table-card .section-title span{color:#6e6e73;font-size:.72rem;font-weight:850}.biweekly-controls select{min-height:42px}.biweekly-summary-grid{display:grid;grid-template-columns:1.5fr repeat(4,minmax(0,1fr));gap:10px}.biweekly-summary-grid div,.biweekly-table-card,.biweekly-rank-card{min-width:0;border:1px solid rgba(0,0,0,.06);border-radius:16px;background:linear-gradient(180deg,#fbfbfdf2,#f5f5f7eb)}.biweekly-summary-grid div{display:grid;gap:5px;min-height:70px;padding:12px 14px}.biweekly-summary-grid strong{align-self:end;overflow:hidden;color:#1d1d1f;font-size:1.05rem;text-overflow:ellipsis;white-space:nowrap}.biweekly-report-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:14px;align-items:stretch}.biweekly-table-card,.biweekly-rank-card{padding:14px}.section-title.compact{align-items:center;margin-bottom:10px}.section-title.compact h4,.biweekly-rank-card h4{margin:0;color:#1d1d1f;font-size:.96rem;line-height:1.2}.compact-table-wrap table,.biweekly-group-table table,.biweekly-student-table table{min-width:760px}.biweekly-group-card{display:grid;gap:10px}.biweekly-group-table table{min-width:1040px}.biweekly-group-table tr{cursor:pointer}.biweekly-group-table tr.is-selected td{background:#0071e312}.group-filter-link{padding:0;color:#1d1d1f;font-weight:800;text-align:left}.biweekly-student-card{display:grid;gap:10px}.biweekly-student-card .section-title.compact{margin-bottom:0}.biweekly-student-toolbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;align-items:center}.biweekly-student-search{width:min(460px,100%);min-height:42px;margin-bottom:0}.biweekly-group-filter{display:inline-flex;align-items:center;gap:9px;min-height:42px;min-width:min(310px,100%)}.biweekly-group-filter span{flex:0 0 auto;color:#6e6e73;font-size:.72rem;font-weight:850;white-space:nowrap}.biweekly-group-filter select{flex:1 1 180px;min-width:180px;min-height:42px}.compact-action{min-height:40px;padding:0 14px}.biweekly-group-table th[aria-sort],.biweekly-student-table th[aria-sort]{white-space:normal}.biweekly-group-table .ledger-sort-button,.biweekly-student-table .ledger-sort-button{justify-content:flex-start;min-height:28px;width:100%;color:inherit;text-align:left}.biweekly-rank-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.biweekly-rank-card>div{display:grid;gap:8px;min-width:0}.biweekly-rank-list{display:grid;gap:7px}.rank-row.compact{min-height:38px;padding:7px 8px}@media(max-width:980px){.biweekly-controls,.biweekly-report-grid,.biweekly-rank-card{grid-template-columns:1fr}.biweekly-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}table{width:100%;border-collapse:collapse;min-width:780px;background:#fff}th,td{padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.06);text-align:left;white-space:nowrap}th{color:#424245;background:#fbfbfd;font-size:.8rem;font-weight:700}tbody tr:hover{background:#0071e30a}tbody tr:last-child td{border-bottom:0}.focus-row{background:#0071e30f}.pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;color:#0057c2;background:#0071e31a;font-size:.78rem;font-weight:700}.ledger-edit-stack{display:grid;gap:6px;min-width:120px}.ledger-edit-input{width:100%;min-height:32px;padding:0 9px;border:1px solid #dfe3ea;border-radius:8px;background:#fff;color:#1d1d1f;font-size:.82rem}.ledger-edit-input.compact{width:92px}.ledger-edit-input.reason{min-width:220px}.ledger-row-actions{display:flex;align-items:center;gap:6px}.icon-action,.danger-action{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;border:1px solid rgba(0,0,0,.08);border-radius:9px;background:#fff;color:#1d1d1f;box-shadow:0 1px 2px #0000000a;transition:transform .15s ease,background .15s ease,border-color .15s ease}.icon-action:hover,.danger-action:hover{transform:translateY(-1px);border-color:#0071e33d;background:#f5f8ff}.primary-action{border-color:#0071e347;color:#0071e3;background:#0071e314}.danger-icon,.danger-action{color:#c62828}.danger-action{min-width:76px;padding:0 10px;font-size:.78rem;font-weight:800}.confirm-delete{min-width:118px}.muted-action{color:#a1a1a6}.inline-status{margin:14px 0 0;padding:11px 12px;border-radius:12px;background:#f5f5f7}.seating-publish-status{margin:0;padding:9px 11px;white-space:nowrap}.seating-publish-status.success{color:#0f7a3a;background:#34c7591f}.seating-publish-status.error{color:#b42318;background:#ff3b301a}.classroom-panel{padding:22px}.stage-label{display:grid;height:44px;place-items:center;margin-bottom:16px;border-radius:14px;color:#424245;background:linear-gradient(180deg,#fff,#f5f5f7);box-shadow:inset 0 0 0 1px #00000014;font-weight:700}.seat-map{display:grid;grid-template-columns:repeat(var(--seat-map-cols, 8),minmax(76px,1fr));gap:10px;padding:20px;border-radius:22px;background:#fbfbfd;box-shadow:inset 0 0 0 1px #00000014}.seat{position:relative;display:grid;align-content:space-between;min-height:82px;padding:8px;border:1px solid rgba(0,0,0,.06);border-radius:16px;background:#fff;transition:transform .17s ease,border-color .17s ease,box-shadow .17s ease}.seat.middle{background:#34c75914}.seat.front{box-shadow:inset 0 3px #0071e32e}.seat.back{box-shadow:inset 0 -3px #ff950033}.seat.corner{border-color:#d12f2f38}.seat.locked{border-color:#0071e366}.seat.drag-over{transform:translateY(-2px) scale(1.01);border-color:#0071e394;box-shadow:0 0 0 4px #0071e324,0 16px 30px #0000001a}.seat.drop-flash,.waiting-bench-slot.drop-flash{animation:seatDropPulse .85s ease both}@keyframes seatDropPulse{0%{transform:scale(1);box-shadow:0 0 #0071e33d}35%{transform:scale(1.025);box-shadow:0 0 0 5px #0071e324,0 14px 28px #0000001a}to{transform:scale(1);box-shadow:none}}.seat span{color:#86868b;font-size:.72rem;font-weight:600}.seat button{min-height:36px;padding:0 8px;border-radius:11px;color:#1d1d1f;background:hsl(calc(var(--group) * 37 + 194),76%,88%);box-shadow:0 8px 16px #00000014;font-size:.9rem;line-height:1.1;overflow-wrap:anywhere;white-space:normal}.zone-legend{display:flex;align-items:center;align-content:flex-start;gap:8px;flex-wrap:wrap;margin-top:14px;max-height:86px;overflow-y:auto;color:#6e6e73;font-size:.86rem}.zone-legend span{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border:1px solid rgba(0,0,0,.06);border-radius:999px;background:#ffffffbd;color:#424245;font-size:.78rem;font-weight:700;white-space:nowrap}.unseated-student-panel{display:grid;gap:12px;margin-top:12px;padding:13px;border:1px solid rgba(255,149,0,.24);border-radius:12px;background:linear-gradient(180deg,#fffaedf0,#ffffffe6);transition:border-color .17s ease,box-shadow .17s ease,background .17s ease}.unseated-student-panel.drag-over{border-color:#0071e385;background:linear-gradient(180deg,#edf7fff5,#fffffff0);box-shadow:0 0 0 4px #0071e31f,0 16px 34px #00000014}.unseated-student-panel>div:first-child{display:grid;gap:3px}.unseated-student-panel strong{color:#1d1d1f;font-size:.92rem}.unseated-student-panel>div:first-child span{color:#6e6e73;font-size:.76rem;line-height:1.42}.waiting-bench-grid{display:grid;grid-template-columns:repeat(8,minmax(96px,1fr));gap:8px;overflow-x:auto;padding:1px 1px 4px}.waiting-bench-slot{position:relative;display:grid;align-content:center;gap:2px;min-width:0;min-height:54px;padding:8px 9px;border:1px dashed rgba(0,113,227,.28);border-radius:10px;background:#ffffffa3;color:#86868b;font-size:.78rem;font-weight:700;text-align:center;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.waiting-bench-slot.filled{border-style:solid;border-color:#00000012;background:#ffffffe6;color:#1d1d1f;cursor:grab;box-shadow:0 8px 18px #0000000f}.waiting-bench-slot.filled:hover{transform:translateY(-1px);border-color:#0071e342;box-shadow:0 12px 26px #00000017}.unseated-student-panel.drag-over .waiting-bench-slot.empty{border-color:#0071e36b;background:#0071e30f}.waiting-bench-slot b,.waiting-bench-slot em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.waiting-bench-slot b{color:#1d1d1f;font-size:.8rem}.waiting-bench-slot em{color:#6e6e73;font-size:.68rem;font-style:normal}.waiting-bench-overflow{margin:-2px 0 0;color:#b36b00;font-size:.75rem;font-weight:700}.unseated-student-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;max-height:178px;overflow-y:auto;padding-right:3px}.unseated-student-list>span{display:grid;gap:2px;min-width:0;min-height:46px;padding:8px 9px;border:1px solid rgba(17,24,39,.07);border-radius:9px;background:#ffffffdb;cursor:grab;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.unseated-student-panel:has(.unseated-student-list>span:hover){border-color:#0071e338}.unseated-student-list>span:hover{transform:translateY(-1px);border-color:#0071e338;box-shadow:0 10px 24px #00000014}.unseated-empty-drop{display:grid;min-height:46px;place-items:center;border:1px dashed rgba(0,113,227,.24);border-radius:10px;color:#86868b;background:#ffffffb8;font-size:.82rem;font-weight:700}.unseated-student-list b,.unseated-student-list em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unseated-student-list b{color:#1d1d1f;font-size:.82rem}.unseated-student-list em{color:#6e6e73;font-size:.7rem;font-style:normal}.legend-dot{display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%;background:#c7c7cc}.legend-dot.middle{background:#34c759}.legend-dot.front{background:#0071e3}.legend-dot.back{background:#ff9500}.legend-dot.corner{background:#d12f2f}.report-fact-rail{display:grid;justify-items:end;min-width:230px;gap:5px;padding:2px 0;text-align:right}.report-fact-rail strong{color:#1d1d1f;font-size:1rem;font-weight:860;letter-spacing:0}.report-fact-rail small,.report-fact-rail em{color:#6e6e73;font-size:.76rem;font-style:normal;font-weight:720;line-height:1.35}.report-fact-rail .gender-meta-line{justify-content:flex-end}.school-intelligence-panel{display:grid;gap:14px;padding:22px;overflow:hidden;background:linear-gradient(180deg,#ffffffeb,#f7f9fce6),#fff}.school-intelligence-title{align-items:center;margin-bottom:0}.school-status{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;font-size:.74rem;font-weight:800;white-space:nowrap}.school-status.ok{color:#0b6623;background:#34c75921}.school-status.warning{color:#7a3b00;background:#ff950029}.school-intelligence-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.72fr);gap:14px;align-items:stretch}.school-landscape,.school-insight-side,.daily-pressure-strip{border:0;border-radius:0;background:transparent;box-shadow:none}.school-landscape{min-width:0;padding:8px 6px 4px}.school-chart-heading{display:flex;justify-content:space-between;gap:14px;margin-bottom:6px}.school-chart-heading h4,.mini-section-heading strong,.mini-section-heading h4{display:block;margin:0;font-size:.94rem;letter-spacing:0}.school-chart-heading p,.mini-section-heading span,.focus-mini-stat span,.focus-mini-stat em{color:#6e6e73;font-size:.76rem;line-height:1.45}.focus-mini-stat{display:grid;min-width:154px;justify-items:end;align-content:start;gap:3px}.focus-mini-stat strong{font-size:1rem}.landscape-svg{display:block;width:100%;min-height:340px}.school-bubble{cursor:pointer;outline:none;transition:opacity .16s ease,transform .16s ease}.school-bubble:hover{opacity:.86}.school-bubble .bubble-label{opacity:0;pointer-events:none;transition:opacity .16s ease}.school-bubble.active .bubble-label,.school-bubble:hover .bubble-label,.school-bubble:focus-visible .bubble-label{opacity:1}.school-bubble:focus-visible circle:first-of-type{stroke:#0071e3;stroke-width:3;opacity:1}.school-insight-side{display:grid;align-content:start;gap:14px;min-width:0;padding:10px 2px 4px}.data-source-badges{display:flex;gap:7px;flex-wrap:wrap}.data-source-badges span{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border:1px solid rgba(0,113,227,.12);border-radius:999px;color:#0057c2;background:#0071e312;font-size:.7rem;font-weight:800}.reason-mix{display:grid;gap:10px}.mini-section-heading{display:grid;gap:3px}.reason-bar-row{display:grid;grid-template-columns:minmax(70px,.74fr) minmax(100px,1fr) auto;align-items:center;gap:8px}.reason-bar-row span,.reason-bar-row em{overflow:hidden;color:#424245;font-size:.72rem;font-style:normal;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.reason-bar-row em{color:#6e6e73;font-weight:700}.reason-bar-track{height:9px;overflow:hidden;border-radius:999px;background:#edf0f5}.reason-bar-track i{display:block;width:var(--bar);height:100%;border-radius:inherit}.reason-bar-track i.negative{background:linear-gradient(90deg,#d12f2f57,#d12f2fad)}.reason-bar-track i.positive{background:linear-gradient(90deg,#34c7594d,#34c7599e)}.daily-pressure-strip{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:center;min-height:146px;padding:6px 4px 2px}.daily-pressure-strip svg{display:block;width:100%;min-height:112px;border-radius:14px;background:linear-gradient(180deg,#fbfcff,#f6f8fb)}.dormitory-analytics-panel{display:grid;gap:14px;background:linear-gradient(180deg,#fffffff0,#f7f9fce6),#fff}.dormitory-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dormitory-chart-card{display:grid;align-content:start;gap:12px;min-height:300px;padding:14px;border:1px solid rgba(0,0,0,.06);border-radius:16px;background:#ffffffc2;box-shadow:0 18px 48px #0f172a0d}.chart-bar-list,.high-negative-list{display:grid;gap:8px}.chart-bar-row{position:relative;display:grid;grid-template-columns:30px minmax(80px,.48fr) minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:0 10px;overflow:hidden;border:1px solid transparent;border-radius:10px;background:#f5f5f7;color:#1d1d1f;text-align:left}.chart-bar-row.active{border-color:#0071e33d;background:#0071e314}.chart-bar-row i{display:block;width:var(--bar);height:10px;border-radius:999px;background:linear-gradient(90deg,#d12f2f38,#d12f2fa3)}.chart-bar-row span,.chart-bar-row b{color:#6e6e73;font-size:.72rem;font-weight:800}.chart-bar-row strong{font-size:.8rem}.daily-deduction-heatmap{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px}.heat-cell{display:grid;min-height:58px;place-items:center;gap:1px;padding:7px 5px;border:1px solid rgba(209,47,47,.08);border-radius:10px;color:#1d1d1f;background:linear-gradient(180deg,#fff,#fbfbfd);box-shadow:inset 0 calc(-1 * var(--pressure)) 0 #d12f2f2e}.heat-cell.active{outline:2px solid rgba(0,113,227,.42);outline-offset:1px}.heat-cell strong,.heat-cell span,.heat-cell b{font-size:.66rem;line-height:1.1}.heat-cell b{color:#d12f2f}.high-negative-list button{display:grid;grid-template-columns:28px minmax(70px,.5fr) minmax(0,1fr) auto;align-items:center;gap:8px;min-height:36px;padding:0 10px;border:1px solid transparent;border-radius:10px;background:#f5f5f7;text-align:left}.high-negative-list button.active{border-color:#0071e33d;background:#0071e314}.high-negative-list span,.high-negative-list em{overflow:hidden;color:#6e6e73;font-size:.72rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.class-directory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.class-tile{display:grid;grid-template-columns:1fr auto;align-items:center;min-height:86px;gap:6px 10px;padding:16px;border:1px solid rgba(0,0,0,.08);border-radius:18px;background:#ffffffd1;text-align:left;box-shadow:0 12px 30px #0000000a}.class-tile strong,.class-tile span{grid-column:1}.class-tile svg{grid-column:2;grid-row:1 / span 2;color:#86868b}.class-tile.active{border-color:#0071e34d;background:#0071e314}.settings-form{display:grid;gap:12px}.settings-form button{justify-self:start}.accounts-grid{grid-template-columns:minmax(0,1fr);gap:14px}.accounts-hero{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:18px;min-height:112px}.accounts-hero h2{margin:0;font-size:1.34rem;letter-spacing:0}.accounts-hero p{max-width:720px;margin:8px 0 0;color:#6e6e73;font-size:.88rem;line-height:1.5}.accounts-hero-facts{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:360px}.accounts-hero-facts span{display:inline-flex;align-items:center;justify-content:flex-end;min-height:30px;padding:0 12px;border-radius:999px;background:#0071e313;color:#0057c2;font-size:.76rem;font-weight:850;white-space:nowrap}.account-card-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:14px}.account-card-grid.single{grid-template-columns:minmax(280px,560px)}.account-management-workspace{display:grid;grid-template-columns:minmax(310px,368px) minmax(0,1fr);gap:0;align-items:stretch;min-height:650px;overflow:hidden}.account-management-workspace.panel{padding:0}.account-list-pane,.account-editor-pane{min-width:0}.account-list-pane{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:11px;padding:17px 16px;border-right:1px solid rgba(0,0,0,.07);background:linear-gradient(180deg,#fbfbfdf0,#f5f5f7e0)}.account-editor-pane{display:grid;align-content:stretch;padding:17px}.account-directory-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px}.account-directory-header strong{color:#1d1d1f;font-size:.94rem;line-height:1.2}.account-search{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:40px;padding:0 12px;border-radius:13px;background:#ffffffc2;box-shadow:inset 0 0 0 1px #0000000f}.account-search svg{color:#86868b}.account-search input{min-width:0;border:0;background:transparent;box-shadow:none;padding:0;color:#1d1d1f}.account-filter-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;min-height:34px;padding:4px;border-radius:13px;background:#e8e8edb8}.account-filter-tabs button{min-width:0;height:26px;padding:0 6px;border-radius:9px;color:#515154;background:transparent;font-size:.72rem;font-weight:820;white-space:nowrap}.account-filter-tabs button.active{color:#1d1d1f;background:#fffffff5;box-shadow:0 2px 8px #00000014}.staff-account-list{display:grid;align-content:start;gap:7px;max-height:none;overflow-y:auto;padding-right:2px;scrollbar-width:thin}.staff-account-row{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"dot name role" "dot username access" "dot email access";gap:3px 10px;min-height:74px;padding:11px 12px;border-radius:14px;text-align:left;background:#ffffffbd;box-shadow:inset 0 0 0 1px #0000000e;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.staff-account-row:hover,.staff-account-row.active{background:#0071e314;box-shadow:inset 0 0 0 1px #0071e32e}.staff-account-row:hover{transform:translateY(-1px)}.staff-account-row.admin{background:#ffffffe0}.staff-account-row.demo{background:#f5f5f7c7}.staff-account-row.admin.active,.staff-account-row.demo.active{background:#0071e314}.staff-account-row .staff-status-dot{grid-area:dot;margin-top:6px}.staff-account-row strong{grid-area:name;color:#1d1d1f;font-size:.86rem}.staff-account-row em{grid-area:username;font-style:normal}.staff-account-row small{grid-area:email}.staff-account-row span:last-child{grid-area:access;align-self:start;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0057c2;font-size:.72rem;font-weight:800}.staff-account-row b{grid-area:role;align-self:start;min-height:22px;padding:4px 7px;border-radius:999px;color:#515154;background:#8e8e9321;font-size:.66rem;font-weight:860;line-height:1;white-space:nowrap}.staff-account-row.admin b{color:#0057c2;background:#0071e31a}.staff-account-row.demo b{color:#6e4b00;background:#ffcc002e}.staff-account-row em,.staff-account-row small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6e6e73;font-size:.74rem}.account-list-note{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;min-height:46px;padding:10px;border-radius:13px;color:#86868b;background:#ffffff9e;box-shadow:inset 0 0 0 1px #0000000b;font-size:.72rem;font-weight:760;line-height:1.38}.account-list-note svg{color:#0071e3;margin-top:1px}.managed-account-editor{display:grid;grid-template-rows:auto auto auto minmax(0,auto) auto auto;align-content:start;gap:13px;min-height:100%}.managed-account-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:64px;padding-bottom:13px;border-bottom:1px solid rgba(0,0,0,.06)}.managed-account-editor-head h3{margin:0 0 4px;color:#1d1d1f;font-size:1.12rem;letter-spacing:0}.managed-account-editor-head p{max-width:660px;margin:0;color:#6e6e73;font-size:.8rem;line-height:1.45}.account-editor-section{display:grid;gap:11px;padding:13px;border-radius:16px;background:linear-gradient(180deg,#fbfbfd,#f5f5f7);box-shadow:inset 0 0 0 1px #0000000e}.account-editor-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.account-editor-section-title strong{color:#1d1d1f;font-size:.88rem;line-height:1.2}.account-editor-section-title span{overflow:hidden;color:#86868b;font-size:.72rem;font-weight:820;text-overflow:ellipsis;white-space:nowrap}.account-editor-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.account-editor-field-wide{grid-column:1 / -1}.account-editor-form input,.account-access-top input,.account-access-top select{width:100%;height:40px;border:1px solid rgba(0,0,0,.1);border-radius:12px;background-color:#ffffffe6;box-shadow:inset 0 1px #ffffffc2;color:#1d1d1f;font-size:.82rem}.account-editor-form input:focus,.account-access-top input:focus,.account-access-top select:focus{border-color:#0071e373;box-shadow:0 0 0 4px #0071e31a,inset 0 1px #ffffffc2}.account-editor-form label,.account-access-top label{display:grid;gap:6px}.account-editor-form label span,.account-access-top label span,.account-status-cardlet>span{color:#6e6e73;font-size:.74rem;font-weight:800}.account-status-cardlet{display:grid;grid-template-columns:minmax(80px,1fr) auto;align-items:center;gap:12px;min-height:48px;padding:8px 10px;border-radius:14px;background:#ffffffbd;box-shadow:inset 0 0 0 1px #0000000e}.account-status-cardlet .segmented{width:min(270px,100%);min-width:238px;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:13px}.account-status-cardlet .segmented button{min-height:30px;padding:0 10px;border-radius:10px;font-size:.76rem;white-space:nowrap}.account-access-panel{display:grid;gap:12px;padding:0;border-radius:0;background:transparent;box-shadow:none}.account-access-top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.class-checkbox-panel{display:grid;gap:10px}.class-checkbox-panel>div:first-child{display:grid;gap:2px}.class-checkbox-panel strong{color:#1d1d1f;font-size:.83rem}.class-checkbox-panel span{color:#86868b;font-size:.72rem}.class-checkbox-actions{display:flex;gap:8px}.class-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:7px;max-height:138px;overflow-y:auto;padding-right:2px;scrollbar-width:thin}.class-checkbox-grid label{display:inline-grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;min-height:32px;padding:0 8px;border-radius:10px;background:#f5f5f7c7}.class-checkbox-grid input{width:14px;height:14px}.managed-account-card,.email-settings-panel,.email-status-card{border-radius:16px;background:linear-gradient(180deg,#fbfbfd,#f5f5f7);box-shadow:inset 0 0 0 1px #0000000f}.managed-account-card{display:grid;gap:14px;padding:16px}.managed-account-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.managed-account-head h4,.email-settings-panel h4,.email-status-card h4{margin:0 0 4px;color:#1d1d1f;font-size:.98rem;line-height:1.18}.managed-account-head p,.email-settings-panel p,.email-status-card p{margin:0;color:#6e6e73;font-size:.78rem;line-height:1.45}.account-status-pill,.email-status-card span{display:inline-flex;align-items:center;width:max-content;min-height:24px;padding:0 8px;border-radius:999px;background:#34c7591f;color:#137333;font-size:.7rem;font-weight:850;white-space:nowrap}.account-status-pill.read-only{background:#8e8e9329;color:#515154}.account-status-pill.disabled,.staff-status-dot.disabled{background:#ff3b3024;color:#b42318}.staff-status-dot.read-only{background:#a1a1a6}.account-status-toggle{min-height:36px}.account-admin-note{grid-template-columns:auto minmax(0,1fr);align-items:center;background:#0071e30f}.account-admin-note svg{color:#0071e3}.account-admin-note div{display:grid;gap:2px}.account-admin-note strong{color:#1d1d1f;font-size:.86rem}.account-admin-note span{color:#6e6e73;font-size:.76rem;font-weight:760;line-height:1.42}.account-editor-action-bar{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;margin-top:2px;padding:12px 0 0;background:linear-gradient(180deg,#fff0,#fff 42%)}.account-editor-action-bar .primary,.account-editor-action-bar .secondary{min-height:38px}.account-admin-strip{display:grid;grid-template-columns:minmax(220px,.62fr) minmax(360px,1fr);align-items:start;gap:18px}.account-admin-strip>.section-title{margin:0;padding:4px 0}.account-admin-strip .account-card-grid.single{grid-template-columns:minmax(0,1fr)}.account-admin-strip .managed-account-card{max-width:620px}.managed-account-action-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:12px}.managed-account-action-row:not(.has-status-toggle){grid-template-columns:auto}.managed-account-action-row .primary{min-height:38px;width:max-content}.account-status-inline{display:grid;justify-self:end;gap:5px;min-width:min(270px,100%)}.account-status-inline>span{color:#6e6e73;font-size:.72rem;font-weight:800}.account-scope-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border-radius:14px;background:#ffffffb8;box-shadow:inset 0 0 0 1px #0000000e}.account-scope-editor .account-scope-classes,.account-scope-editor p{grid-column:1 / -1}.account-scope-editor p{margin:0;color:#86868b;font-size:.72rem;line-height:1.4}.read-only-banner{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;border-color:#0071e324;background:linear-gradient(180deg,#f5fafffa,#fffffff5)}.read-only-banner>svg{color:#0071e3}.read-only-banner strong{display:block;color:#1d1d1f;font-size:.94rem}.read-only-banner span{display:block;margin-top:3px;color:#6e6e73;font-size:.78rem;font-weight:650}.is-read-only-page .panel:not(.read-only-banner){background:linear-gradient(180deg,#fafafcd6,#f5f5f7d1)}.is-read-only-page input:disabled,.is-read-only-page select:disabled,.is-read-only-page button:disabled,.sidebar-utility-actions button:disabled{cursor:not-allowed;opacity:.52}.email-status-grid{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:12px;margin-bottom:12px}.email-status-card{display:grid;gap:7px;align-content:start;min-height:116px;padding:14px}.bot-settings-panel{display:grid;grid-template-columns:minmax(240px,1fr) max-content;gap:14px;align-items:center;padding:14px;border-radius:16px;background:linear-gradient(180deg,#fbfbfd,#f5f5f7);box-shadow:inset 0 0 0 1px #0000000f}.bot-settings-panel h4{margin:0 0 6px;color:#1d1d1f;font-size:.98rem}.bot-settings-panel p{margin:8px 0 0;color:#6e6e73;font-size:.78rem;font-weight:650;line-height:1.45}.bot-status-pill{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;color:#0b5cab;background:#0071e31f;font-size:.7rem;font-weight:850}.bot-status-pill.off{color:#515154;background:#8e8e9329}.bot-provider-control{display:inline-grid;grid-template-columns:repeat(3,max-content);gap:5px;padding:5px;border-radius:15px;background:#e8e8edb8}.bot-provider-control button{min-height:34px;padding:0 12px;border-radius:11px;font-size:.78rem;font-weight:820}.bot-provider-control button.active{color:#1d1d1f;background:#fff;box-shadow:0 5px 16px #0000001a}.email-status-card strong{color:#1d1d1f;font-size:1.06rem;line-height:1.2}.email-status-card.ready span,.email-status-card.good span{background:#34c75924;color:#137333}.email-status-card.warn span{background:#ff950024;color:#9a5a00}.email-status-card.bad span{background:#ff3b301f;color:#b42318}.email-settings-panel{display:grid;gap:12px;padding:14px;margin-bottom:12px}.email-settings-grid{display:grid;grid-template-columns:minmax(180px,.85fr) minmax(230px,1fr) max-content;gap:10px;align-items:end}.email-settings-grid label{display:grid;gap:6px}.email-settings-grid input{min-height:40px;padding:0 12px;border:1px solid rgba(0,0,0,.1);border-radius:12px;background:#ffffffdb;color:#1d1d1f}.email-settings-grid .primary{height:40px;min-height:40px;padding:0 14px;white-space:nowrap}.email-settings-feedback{margin:0}.email-payload-preview{display:grid;gap:10px;margin-bottom:12px;padding:14px;border-radius:16px;background:#ffffffb8;box-shadow:inset 0 0 0 1px #0000000f}.email-payload-preview h4{margin:0;color:#1d1d1f;font-size:.98rem;line-height:1.18}.email-payload-preview dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.email-payload-preview div{display:grid;gap:4px;min-width:0;padding:10px;border-radius:12px;background:#f5f5f7}.email-payload-preview dt{color:#6e6e73;font-size:.7rem;font-weight:850}.email-payload-preview dd{margin:0;color:#1d1d1f;font-size:.78rem;font-weight:720;line-height:1.35}.email-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(260px,1fr) max-content;align-items:end;gap:12px;padding:14px;border-radius:16px;background:linear-gradient(180deg,#fbfbfd,#f5f5f7);box-shadow:inset 0 0 0 1px #0000000f}.email-row h4{margin:0 0 4px;color:#1d1d1f;font-size:.98rem;line-height:1.18}.email-row p{margin:0;color:#6e6e73;font-size:.78rem;line-height:1.45}.email-row label{display:grid;gap:6px;min-width:0}.email-row label span{color:#6e6e73;font-size:.74rem;font-weight:800}.email-row .primary{align-self:end;height:40px;min-height:40px;padding:0 14px;white-space:nowrap}.staff-email-directory{display:grid;gap:12px;margin-top:12px;padding:14px;border-radius:16px;background:linear-gradient(180deg,#fbfbfd,#f5f5f7);box-shadow:inset 0 0 0 1px #0000000f}.staff-email-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.staff-email-head h4{margin:0 0 4px;color:#1d1d1f;font-size:.98rem;line-height:1.18}.staff-email-head p,.staff-email-empty{margin:0;color:#6e6e73;font-size:.78rem;line-height:1.45}.staff-email-head>span{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:#0071e31a;color:#0057c2;font-size:.7rem;font-weight:850;white-space:nowrap}.staff-email-form{display:grid;grid-template-columns:minmax(140px,.75fr) minmax(220px,1fr) minmax(130px,.58fr) max-content max-content max-content;gap:10px;align-items:end}.staff-email-form label{display:grid;gap:6px;min-width:0}.staff-email-form input,.staff-email-form select{min-height:40px;padding:0 12px;border:1px solid rgba(0,0,0,.1);border-radius:12px;background:#ffffffdb;color:#1d1d1f}.staff-email-active{grid-template-columns:auto max-content;align-items:center;min-height:40px;padding:0 10px;border-radius:12px;background:#ffffffb8}.staff-email-active input{min-height:auto;padding:0}.staff-email-form .primary,.staff-email-form .secondary{min-height:40px;height:40px;padding:0 13px;white-space:nowrap}.staff-email-list{display:grid;gap:7px;max-height:260px;overflow-y:auto;padding-right:2px;scrollbar-width:thin}.staff-email-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(92px,max-content) max-content max-content;gap:10px;align-items:center;min-height:48px;padding:8px 10px;border-radius:12px;background:#ffffffc2;box-shadow:inset 0 0 0 1px #0000000e}.staff-email-row.inactive{opacity:.62}.staff-status-dot{width:8px;height:8px;border-radius:999px;background:#a1a1a6}.staff-status-dot.active{background:#34c759}.staff-email-row div{display:grid;gap:2px;min-width:0}.staff-email-row strong,.staff-email-row em,.staff-email-row small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staff-email-row strong{color:#1d1d1f;font-size:.83rem}.staff-email-row em,.staff-email-row small{color:#6e6e73;font-size:.74rem;font-style:normal}.secondary.compact{min-height:32px;padding:0 10px;border-radius:10px;font-size:.74rem}.secondary.danger{color:#b42318}.inline-status.error{background:#ff3b301a;color:#b42318}.logo-url-details{display:grid;gap:8px}.logo-url-details summary{width:max-content;cursor:pointer;color:#6e6e73;font-size:.76rem;font-weight:800;list-style-position:inside}.logo-url-details summary:hover{color:#1d1d1f}.logo-url-details[open]{padding:10px 12px;border:1px solid #e6e8ee;border-radius:10px;background:#fbfbfd}.logo-url-field{display:grid;gap:6px}.brand-upload-panel{display:grid;grid-template-columns:minmax(150px,max-content) minmax(0,1fr);gap:22px;align-items:center;padding:4px 0;border:0;border-radius:0;background:none}.brand-preview{display:grid;width:78px;height:78px;place-items:center;overflow:hidden;border-radius:999px;background:linear-gradient(145deg,#1d1d1f,#424245);color:#fff;font-weight:800;box-shadow:0 10px 24px #00000024}.brand-preview.has-logo{display:flex;width:auto;min-width:0;max-width:176px;height:auto;min-height:0;max-height:126px;align-items:center;justify-content:flex-start;overflow:visible;border-radius:0;background:transparent;box-shadow:none}.brand-preview img{display:block;width:auto;max-width:176px;height:auto;max-height:126px;border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}.brand-upload-copy{display:grid;gap:7px;min-width:0}.brand-upload-copy p{margin:0;color:#6e6e73;font-size:.76rem;line-height:1.45}.brand-upload-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.brand-upload-button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;border-radius:999px;background:#1d1d1f;color:#fff;font-size:.82rem;font-weight:800;cursor:pointer;transition:transform .15s ease,background .15s ease}.brand-upload-button:hover{transform:translateY(-1px);background:#000}.brand-upload-button input{display:none}.log-filters{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;min-width:min(460px,100%)}.log-filters label{display:grid;gap:6px}.log-table{display:grid;gap:8px;max-height:min(920px,calc(100vh - 250px));overflow-y:auto;padding-right:3px;scrollbar-width:thin}.log-table .compact-table-head,.log-row{display:grid;grid-template-columns:168px 108px minmax(210px,1.05fr) minmax(150px,.72fr) minmax(220px,1fr);align-items:center;gap:10px}.log-table .compact-table-head{min-height:34px;padding:0 12px}.log-row{min-height:58px;padding:12px;border-radius:12px;background:#fbfbfd;box-shadow:inset 0 0 0 1px #0000000f}.log-row{align-items:start}.log-row time,.log-row em,.log-row small,.log-technical-details{color:#6e6e73;font-style:normal}.log-actor-cell{display:grid;align-content:start;gap:3px;min-width:0}.log-actor-cell strong,.log-actor-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-actor-cell strong{color:#1d1d1f;font-size:.83rem;line-height:1.15}.log-actor-cell span{color:#86868b;font-size:.7rem;font-weight:760}.log-actor-cell b{width:fit-content;min-height:18px;padding:3px 6px;border-radius:999px;background:#0071e314;color:#0057c2;font-size:.64rem;line-height:1;text-transform:capitalize}.log-activity,.log-row small,.log-row em{overflow:hidden;text-overflow:ellipsis}.log-activity{color:#1d1d1f;font-weight:700;line-height:1.35}.log-summary-cell{display:grid;gap:6px;min-width:0}.log-summary-cell small{line-height:1.35}.log-technical-details{font-size:.72rem}.log-technical-details button{width:fit-content;padding:0;border:0;background:transparent;cursor:pointer;color:#2563eb;font-weight:700;font:inherit}.log-technical-details code,.log-technical-details pre{display:block;max-width:100%;overflow:auto;margin:6px 0 0;padding:8px;border-radius:8px;background:#f5f6f8;color:#424245;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.68rem;line-height:1.45;white-space:pre-wrap}.audit-preview{display:flex;align-items:center;gap:9px;min-height:44px;padding:0 12px;border-radius:13px;background:#f5f5f7;color:#424245}.email-row input{flex:1;width:100%;min-width:220px}.empty-state{display:grid;justify-items:center;gap:8px;padding:34px 18px;border:1px solid rgba(0,0,0,.07);border-radius:18px;background:#ffffffb8;text-align:center}.empty-state svg{color:#86868b}@media(max-width:1100px){.metric-strip,.preview-metrics,.class-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.score-grid,.settings-grid,.split-layout,.import-hero,.import-center-hero,.import-lane-grid,.score-toolbar,.seating-head,.school-hero,.logs-hero,.log-table .compact-table-head,.log-row,.log-filters{grid-template-columns:1fr}.manual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.import-mode-header{align-items:stretch;flex-direction:column}.import-mode-toggle{width:100%;min-width:0}.manual-roster-directory-toolbar,.school-intelligence-layout,.daily-pressure-strip{grid-template-columns:1fr}.focus-mini-stat{justify-items:start}}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}nav{grid-template-columns:repeat(2,minmax(0,1fr))}main{padding:20px 14px 28px}.topbar,.hero-panel,.profile-head{align-items:stretch;flex-direction:column}.hero-panel{display:grid;min-height:0;padding:22px}.class-score-orb{width:100%;min-width:0}.metric-strip,.preview-metrics,.class-directory,.dorm-grid{grid-template-columns:1fr}.school-chart-heading,.school-intelligence-title{align-items:stretch;flex-direction:column}.landscape-svg{min-height:260px}.reason-bar-row{grid-template-columns:minmax(74px,.72fr) minmax(86px,1fr)}.reason-bar-row em{grid-column:1 / -1}.seat-map{grid-template-columns:repeat(4,minmax(64px,1fr));padding:12px}.seat button{padding:0 4px;font-size:.8rem}.timeline-item,.manual-grid{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.notice,.toolbar-buttons,.hero-actions,.zone-legend{display:none}.app-shell{display:block}main{width:auto;padding:0}.panel,.hero-panel{box-shadow:none;border-color:#d2d2d7}}body{padding:6px;background:#f4f5f7}.desktop-frame{position:relative;width:calc(100vw - 12px);max-width:1528px;min-height:calc(100vh - 12px);margin-inline:auto;overflow:hidden;border:1px solid rgba(17,24,39,.12);border-radius:14px;background:#fbfbfd;box-shadow:0 24px 80px #1118271c}.window-traffic{position:absolute;z-index:4;top:26px;left:22px;display:flex;gap:8px}.window-traffic span{width:12px;height:12px;border-radius:50%}.window-traffic span:nth-child(1){background:#ff5f57}.window-traffic span:nth-child(2){background:#ffbd2e}.window-traffic span:nth-child(3){background:#28c840}.app-shell{grid-template-columns:236px minmax(0,1fr);min-height:calc(100vh - 12px)}.sidebar{padding:72px 14px 18px;background:#f8f9fce6}.brand{padding-bottom:20px}.brand-mark{width:28px;height:28px;border-radius:7px;background:#2563eb;box-shadow:0 8px 22px #2563eb4d;font-size:.8rem}.brand-mark img{width:100%;height:100%;border-radius:inherit;object-fit:cover}.brand-mark.has-logo{width:auto;min-width:0;max-width:88px;height:auto;max-height:44px;overflow:visible;border-radius:0;background:transparent;box-shadow:none}.brand-mark.has-logo img{width:auto;max-width:76px;height:auto;max-height:42px;border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}.brand strong{font-size:.94rem}.brand span{font-size:.75rem}.focus-card{padding:11px;border-radius:10px;box-shadow:none}.focus-card strong{font-size:1.25rem}.focus-card select,.class-select select,.settings-form input,.settings-form select,.email-row input,.manual-grid input,.search-box input{min-height:34px;border-radius:8px}nav button,.language,.secondary,.primary{min-height:36px;border-radius:8px;font-size:.9rem}nav button,nav button span{font-weight:700}nav button.active{background:#e9f1ff}main{width:100%;padding:22px 24px 16px;background:#fbfbfd}.topbar{min-height:54px;margin-bottom:14px}.title-row{display:flex;align-items:center;gap:9px}.topbar h1{margin:0;font-size:1.85rem;line-height:1.05}.focus-pill,.pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;color:#2563eb;background:#e9f1ff;font-size:.78rem;font-weight:700}.topbar p{margin-top:8px}.segmented{min-width:134px;border-radius:10px}.class-select{min-height:36px;border-radius:10px}.notice{padding:10px 12px;border-radius:10px}.panel,.metric,.hero-panel{border-radius:10px;background:#fff;box-shadow:0 8px 28px #1118270f}.panel{padding:16px}.metric-strip{grid-template-columns:repeat(6,minmax(0,1fr))}.metric{min-height:112px;padding:16px;align-content:start}.metric strong{font-size:1.58rem}.class-grid{grid-template-columns:minmax(0,1fr) minmax(360px,1.25fr) minmax(270px,.82fr);align-items:stretch;grid-auto-rows:312px}.wide-left{grid-column:span 2}.class-grid>.panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.class-dashboard>.class-search-panel{min-height:0}.class-dashboard>.class-search-panel .autocomplete-list{min-height:36px;max-height:260px;overflow-y:auto;overscroll-behavior:contain;padding-right:3px;scrollbar-gutter:stable}.section-title{margin-bottom:12px}.compact-table{display:grid;align-content:start;overflow:hidden;border:1px solid rgba(17,24,39,.08);border-radius:8px}.class-grid .compact-table,.class-grid .timeline,.class-grid .event-list,.class-grid .mini-seat-map,.class-grid .dorm-score-list{flex:1}.class-recent-panel .event-list{align-content:start;flex:0 0 222px;gap:6px;max-height:222px;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}.class-recent-panel .event-row{min-height:39px;padding:0 12px;border-radius:8px;background:#fbfbfd;box-shadow:inset 0 0 0 1px #11182712;font-size:.82rem}.class-recent-panel .event-row span,.class-recent-panel .event-row strong,.class-recent-panel .event-row em,.class-recent-panel .event-row b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-recent-panel .event-row strong,.class-recent-panel .event-row b{line-height:1.15}.class-recent-panel .event-row em{font-size:.72rem;line-height:1.15}.compact-table-head,.compact-table-row{display:grid;grid-template-columns:56px minmax(96px,1fr) 72px minmax(120px,1fr);align-items:center;gap:10px;min-height:39px;padding:0 12px;border-bottom:1px solid rgba(17,24,39,.07)}.compact-table-head{color:#6e6e73;background:#f5f6f8;font-size:.78rem;font-weight:700}.compact-table-row:last-child{border-bottom:0}.compact-table-row em{color:#6e6e73;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dorm-table .compact-table-head,.dorm-table .compact-table-row{grid-template-columns:minmax(58px,.82fr) 56px minmax(84px,1.18fr);column-gap:8px}.dorm-table .compact-table-head span:nth-child(2),.dorm-table .compact-table-row b{white-space:nowrap}.dorm-table{max-height:238px;overflow:auto;scrollbar-gutter:stable}.dorm-table .compact-table-head{position:sticky;z-index:1;top:0}.dorm-table .compact-table-row{cursor:default}.dorm-table .compact-table-row:hover,.dorm-table .compact-table-row:focus-visible{background:#0071e30f}.dorm-table .compact-table-row:focus-visible{outline:2px solid rgba(0,113,227,.34);outline-offset:-2px}.dorm-row-tooltip{position:fixed;z-index:100;max-width:calc(100vw - 24px);max-height:min(300px,calc(100vh - 24px));overflow:auto;padding:12px 14px;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fffffff5;box-shadow:0 18px 46px #0f172a29;color:#1d1d1f;pointer-events:none;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.dorm-row-tooltip strong,.dorm-row-tooltip span{display:inline-flex;margin-right:8px}.dorm-row-tooltip span{color:#6e6e73;font-size:.8rem;font-weight:700}.dorm-row-tooltip p{margin:8px 0 0;color:#424245;font-size:.82rem;line-height:1.55}.reminder-list{display:grid;gap:10px}.reminder-list>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:48px;padding:0 12px;border:1px solid rgba(17,24,39,.08);border-radius:8px;background:#fbfbfd}.link-button{display:inline-flex;align-items:center;gap:4px;color:#2563eb;background:transparent;font-size:.86rem;white-space:nowrap}.event-row,.rank-row,.student-row,.dorm-chip{border-radius:8px}.seat-glimpse .mini-seat-map{margin-top:4px}.mini-seat-map{grid-template-columns:repeat(var(--seat-map-cols, 8),minmax(44px,1fr));gap:4px}.mini-seat{position:relative;min-width:0;min-height:38px;padding:2px 3px;border-radius:6px;background:var(--group-color-soft, hsl(calc(var(--group) * 26 + 205), 82%, 92%));font-size:.6rem;font-weight:780;line-height:1.04;text-align:center}.mini-seat-name{display:block;max-width:100%}.mini-seat.short-name .mini-seat-name{overflow:hidden;text-overflow:clip;white-space:nowrap;word-break:keep-all}.mini-seat.long-name .mini-seat-name{white-space:normal;overflow-wrap:anywhere;word-break:normal}.mini-seat.overflow-seat{background:var(--group-color-soft, #fff4d7);box-shadow:inset 0 -2px #ff95003d}.class-grid .seat-glimpse .mini-seat-map{min-height:0;grid-template-columns:repeat(var(--seat-map-cols, 8),minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,1fr));align-content:stretch;overflow:hidden}.class-grid .seat-glimpse .mini-seat{min-height:0;padding:1px 2px}.class-grid .seat-glimpse .mini-seat-name{line-height:1}.seating-workbench{display:grid;grid-template-columns:250px minmax(0,1fr);gap:14px}.group-editor-list{display:grid;max-height:620px;overflow:auto;gap:8px}.group-row{display:grid;gap:6px;padding:10px;border-radius:8px;background:#f5f6f8}.group-row>span{color:#1d1d1f;font-weight:700}.group-row select{min-height:32px;border:1px solid rgba(17,24,39,.1);border-radius:8px;background:#fff}.classroom-panel{padding:18px}.stage-label{height:38px;margin-bottom:12px;border-radius:8px}.seat-map{grid-template-columns:repeat(var(--seat-map-cols, 8),minmax(70px,1fr));gap:6px;padding:12px;border-radius:10px;background:#fff}.seat{min-height:64px;border-radius:8px;border-color:var(--group-color-border, rgba(0, 0, 0, .06));background:var(--group-color-wash, hsl(calc(var(--group) * 26 + 205), 82%, 94%))}.seat.overflow-seat{background:var(--group-color-wash, #fff6dd);box-shadow:inset 0 -2px #ff950038}.seat span{font-size:.66rem}.seat button{position:relative;min-height:30px;border-radius:6px;background:var(--group-color-soft, hsl(calc(var(--group) * 26 + 205), 72%, 84%));border:1px solid var(--group-color-border, transparent);box-shadow:none}.seat .seat-gender-dot,.waiting-bench-slot .seat-gender-dot{position:absolute;top:4px;right:4px;width:7px;height:7px}.legend-dot.group-dot{background:var(--group-color, hsl(calc(var(--group) * 26 + 205), 72%, 70%))}.legend-dot.overflow{background:#f59e0b}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:auto;padding-top:18px;color:#9ca3af;font-size:.78rem}.app-footer .footer-text{min-width:0}.build-stamp{justify-self:end;color:transparent;user-select:text;-webkit-user-select:text}.build-stamp::selection{color:#6e6e73;background:#0071e324}@media(max-width:1180px){.metric-strip,.class-grid,.settings-grid,.seating-workbench{grid-template-columns:1fr 1fr}.wide-left,.group-editor{grid-column:1 / -1}}@media(max-width:820px){body{padding:0}.desktop-frame{min-height:100vh;border:0;border-radius:0}.window-traffic{display:none}.app-shell,.metric-strip,.class-grid,.settings-grid,.seating-workbench{grid-template-columns:1fr}.sidebar{padding-top:24px}.topbar{align-items:flex-start}.metric{min-height:94px}.seat-map{grid-template-columns:repeat(4,minmax(64px,1fr))}}@media(min-width:561px){body{display:block;padding:7px;background:#f5f6f8}.desktop-frame{width:calc(100vw - 14px);max-width:1518px;min-height:calc(100vh - 14px);margin-inline:auto;border:1px solid #d9dce3;border-radius:12px;background:#fbfbfd;box-shadow:0 22px 70px #0f172a1a}.window-traffic{top:13px;left:13px;display:flex}.app-shell{grid-template-columns:148px minmax(0,1fr);align-items:stretch;min-height:calc(100vh - 14px)}.sidebar{position:static;align-self:stretch;min-height:inherit;height:auto;padding:38px 10px 12px;border-right:1px solid #e0e3e8;background:linear-gradient(180deg,#f8f9fcf0,#f3f5f9db)}.brand{gap:8px;padding:0 2px 14px}.brand-mark{width:26px;height:26px;border-radius:7px;font-size:.75rem}.brand-mark.has-logo{width:auto;min-width:0;max-width:64px;height:auto;max-height:30px}.brand-mark.has-logo img{width:auto;max-width:58px;height:auto;max-height:28px}.brand strong{max-width:88px;overflow:hidden;font-size:.74rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.brand span{font-size:.62rem}.focus-card{gap:5px;padding:8px;margin-bottom:11px;border-radius:8px;background:#ffffffad}.focus-card span{font-size:.64rem}.focus-card strong{font-size:.96rem}.focus-card select{min-height:28px;padding:0 8px;border-radius:7px;font-size:.72rem}nav{grid-template-columns:1fr;gap:3px;padding-bottom:44px}nav button,.language{min-height:31px;gap:7px;padding:0 8px;border-radius:7px;font-size:.78rem;font-weight:700}nav button svg,.language svg{width:15px;height:15px}nav button.active{background:#e7f0ff;box-shadow:inset 0 0 0 1px #0071e308}.language{position:fixed;left:max(18px,calc((100vw - 1518px)/2 + 18px));bottom:19px;z-index:6;width:126px;min-height:30px;padding:0 8px;font-size:.72rem;box-shadow:0 10px 24px #0f172a14}main{width:100%;padding:18px 22px 12px}.topbar{min-height:36px;margin-bottom:13px}.topbar h1{font-size:1.24rem;font-weight:700;line-height:1.12}.topbar p{margin-top:5px;font-size:.72rem}.focus-pill{min-height:22px;padding:0 8px;font-size:.66rem}.top-actions{gap:8px}.segmented{min-width:120px;padding:3px;border-radius:8px}.segmented button{min-height:28px;padding:0 10px;border-radius:7px;font-size:.72rem}.class-select{min-height:31px;padding:0 4px 0 9px;border-radius:8px}.class-select span{font-size:.68rem}.class-select select{min-height:25px;padding:0 18px 0 6px;border-radius:6px;font-size:.72rem}.secondary,.primary{min-height:31px;gap:6px;padding:0 11px;border-radius:7px;font-size:.74rem;font-weight:650}.notice{padding:8px 10px;margin-bottom:12px;border-radius:8px;font-size:.78rem}.page-stack{gap:12px}.panel,.metric{border-color:#e6e8ee;border-radius:8px;box-shadow:0 7px 24px #0f172a0b}.panel{padding:14px}.metric-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.preview-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.metric{min-height:78px;padding:11px;gap:1px 8px}.metric svg{width:15px;height:15px}.metric span{font-size:.68rem}.metric strong{font-size:1.3rem}.metric em{font-size:.66rem}.class-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1.05fr) minmax(260px,.8fr);gap:12px}.dashboard-grid,.score-grid,.settings-grid{gap:12px}.section-title{margin-bottom:10px}.section-title h3,.section-title p{font-size:.9rem}.section-title p{margin-top:3px;font-size:.7rem}.compact-table-head,.compact-table-row{min-height:34px;padding:0 10px;font-size:.74rem}.rank-row,.event-row,.student-row{min-height:42px;padding:8px 10px}.import-hero,.import-center-hero,.score-toolbar,.seating-head,.school-hero{grid-template-columns:minmax(0,1fr) auto;align-items:center}.import-hero h2,.import-center-hero h2,.score-toolbar h2,.seating-head h2,.school-hero h2,.detail-panel h2{margin:4px 0 6px;font-size:1.22rem}.dropzone{min-width:215px;min-height:126px;border-radius:8px}.workbook-inspector{display:grid;grid-template-columns:minmax(160px,.9fr) minmax(120px,.55fr) minmax(240px,1.2fr);gap:8px;margin:12px 0}.workbook-inspector>div,.reconcile-list>div{display:grid;gap:3px;padding:9px 10px;border:1px solid #e6e8ee;border-radius:8px;background:#fbfbfd}.workbook-inspector strong{font-size:.72rem}.workbook-inspector span,.reconcile-list span{color:#6e6e73;font-size:.7rem;line-height:1.35}.reconcile-list{display:grid;gap:7px;margin-bottom:10px}.reconcile-list>div{grid-template-columns:auto 1fr;align-items:center;color:#b45309;background:#fff8e7}.seating-workbench{grid-template-columns:212px minmax(0,1fr);gap:12px}.group-editor-list{max-height:520px;gap:6px}.group-row{grid-template-columns:minmax(0,1fr);gap:5px;padding:7px;border-radius:7px}.group-row>span{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.group-row select{min-height:27px;font-size:.7rem}.classroom-panel{padding:14px}.stage-label{height:30px;margin-bottom:9px;border-radius:7px;font-size:.74rem}.seat-map{grid-template-columns:repeat(var(--seat-map-cols, 8),minmax(56px,1fr));gap:5px;padding:10px;border-radius:8px}.seat{min-height:50px;border-radius:7px}.seat button{min-height:25px;padding:0 4px;border-radius:6px;font-size:.7rem}.seat span,.seat em{font-size:.58rem}}@media(max-width:560px){body{padding:0}.desktop-frame{width:100%;max-width:none;min-height:100vh;border:0;border-radius:0}.window-traffic{display:none}.app-shell,.metric-strip,.preview-metrics,.class-grid,.settings-grid,.seating-workbench,.workbook-inspector{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:22px 14px 12px}nav{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:0}.language{position:static;width:100%;box-shadow:none}main{padding:18px 14px 24px}.topbar{align-items:stretch;flex-direction:column}.metric{min-height:88px}.seat-map{grid-template-columns:repeat(4,minmax(64px,1fr))}}@media(min-width:561px)and (max-width:900px){.topbar{align-items:flex-start;flex-direction:column}.metric-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.preview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.class-grid,.dashboard-grid,.score-grid,.settings-grid,.seating-workbench,.workbook-inspector,.import-hero,.import-center-hero,.import-lane-grid,.score-toolbar,.seating-head,.school-hero{grid-template-columns:1fr}.metric{min-height:92px}.compact-table-head,.compact-table-row{grid-template-columns:44px minmax(76px,1fr) 54px minmax(90px,1fr)}.seat-map{grid-template-columns:repeat(4,minmax(64px,1fr))}}.window-traffic{display:none}.desktop-frame .sidebar{padding-top:22px}.brand{align-items:center}.brand-mark{width:34px;height:34px;font-size:.9rem}.brand strong{font-size:1.08rem;letter-spacing:0}.focus-card em{display:block;margin-top:3px;color:#6b7280;font-size:.8rem;font-style:normal}nav button{font-size:.96rem;font-weight:760}.cohort-select{min-width:190px}.school-summary em{display:block;margin-top:4px;color:#6b7280;font-size:.78rem;font-style:normal}.assignment-card{margin-bottom:14px;padding:14px;border:1px solid rgba(17,24,39,.09);border-radius:12px;background:linear-gradient(180deg,#fffffff0,#f7f9fce6)}.assignment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.assignment-head strong,.assignment-preview-card strong{color:#111827;font-size:.94rem}.assignment-head span{display:block;margin-top:2px;color:#6b7280;font-size:.8rem}.assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.assignment-grid label,.assignment-import-layout label:not(.dropzone){display:grid;gap:5px;color:#6b7280;font-size:.76rem;font-weight:700}.assignment-grid input,.assignment-grid select{width:100%;min-height:34px;border:1px solid rgba(17,24,39,.11);border-radius:8px;background:#fff;color:#111827;font:inherit}.assignment-import-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(320px,1fr);gap:16px;align-items:stretch}.compact-dropzone{width:100%;min-height:116px;align-content:center;gap:6px;padding:14px 16px;border-radius:16px}.compact-dropzone svg{width:20px;height:20px}.compact-dropzone strong{font-size:.86rem}.compact-dropzone span{max-width:280px;font-size:.74rem;line-height:1.3}.assignment-preview-card{min-height:166px;padding:14px;border:1px solid rgba(17,24,39,.09);border-radius:12px;background:#ffffffb3}.assignment-preview-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.assignment-preview-metrics span{display:grid;gap:2px;min-height:54px;padding:9px;border-radius:10px;background:#f5f7fb;color:#6b7280;font-size:.74rem}.assignment-preview-metrics strong{font-size:1.1rem}.assignment-preview-list{display:grid;gap:7px;margin-bottom:12px}.assignment-preview-list div{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;padding:7px 9px;border-radius:9px;background:#fff;color:#6b7280;font-size:.8rem}@media(max-width:900px){.desktop-frame .sidebar{padding-top:12px}.assignment-import-layout,.assignment-grid{grid-template-columns:1fr}}:root{--surface: rgba(255, 255, 255, .86);--surface-strong: rgba(255, 255, 255, .96);--hairline: rgba(0, 0, 0, .075);--text-primary: #1d1d1f;--text-secondary: #6e6e73;--accent: #0071e3;--soft-blue: rgba(0, 113, 227, .1);--panel-radius: 16px;--control-radius: 11px}body{font-size:15px;line-height:1.42}.desktop-frame{max-width:1548px;border-color:#0000001a;background:#fbfbfd}.app-shell{grid-template-columns:224px minmax(0,1fr)}.desktop-frame .sidebar{padding:20px 14px 18px;background:linear-gradient(180deg,#ffffffb8,#f5f7fbe0),#f8f9fceb}.brand{min-height:62px;gap:10px;padding:0 4px 16px}.brand-mark{width:44px;height:44px;flex:0 0 auto;border-radius:12px;box-shadow:0 10px 24px #0071e32e}.brand-mark.has-logo{width:auto;max-width:128px;height:auto;max-height:58px}.brand-mark.has-logo img{max-width:124px;max-height:56px}.brand strong{color:var(--text-primary);font-size:1.05rem;font-weight:760;line-height:1.12}.focus-card{gap:7px;padding:12px;border-radius:13px;background:var(--surface)}.focus-card strong{font-size:1.22rem;line-height:1.08}nav{gap:4px}nav button{min-height:38px;padding:0 10px;border-radius:10px;color:#2f3034;font-size:.95rem;font-weight:730}nav button svg{flex:0 0 auto}main{max-width:1240px;margin-inline:auto;padding:24px 22px 16px}.topbar{display:grid;grid-template-columns:minmax(210px,1fr) minmax(0,auto);align-items:start;gap:18px}.topbar h1{font-size:clamp(1.72rem,2.1vw,2.18rem);line-height:1.08}.top-actions{display:grid;grid-template-columns:auto auto auto auto;justify-content:end;align-items:center;gap:8px;max-width:100%}.period-control{grid-template-columns:repeat(3,minmax(58px,1fr));min-width:224px;max-width:244px;border-radius:12px}.period-control button{min-width:0;padding:0 10px;white-space:nowrap}.class-select{min-width:156px;min-height:38px;border-radius:12px}.cohort-select{min-width:196px}.top-actions .secondary,.top-actions .account-button{min-height:38px;white-space:nowrap}.hero-panel,.panel{border-color:var(--hairline);border-radius:var(--panel-radius);background:var(--surface);box-shadow:0 18px 44px #0f172a0e}.panel{padding:18px}.page-stack{gap:14px}.section-title h3,.manual-card h3{font-size:1rem;font-weight:760}.section-title p,.topbar p,.brand span,.focus-card span,.focus-card em{color:var(--text-secondary)}.brand-preview{width:96px;height:96px}.brand-preview.has-logo,.brand-preview img{max-width:244px;max-height:154px}.brand-upload-panel{grid-template-columns:minmax(180px,max-content) minmax(0,1fr);gap:26px;align-items:center}.manual-ledger-card{gap:14px;overflow:visible}.manual-ledger-card .section-title{margin-bottom:2px}.manual-ledger-grid{display:grid;gap:12px;align-items:stretch}.manual-ledger-row{display:grid;gap:10px;min-width:0;align-items:end}.manual-ledger-row-main{grid-template-columns:minmax(430px,1fr) minmax(148px,.26fr) minmax(104px,.16fr)}.manual-ledger-row-detail{grid-template-columns:minmax(148px,.22fr) minmax(260px,.38fr) minmax(360px,1fr)}.manual-action-row{display:flex;align-items:center;justify-content:flex-start;gap:10px}.manual-action-buttons{display:inline-flex;align-items:center;gap:10px;margin-left:auto}.manual-action-row button{width:auto;min-width:112px;min-height:40px;padding:0 16px;border-radius:var(--control-radius)}.manual-action-row .primary{min-width:154px}.manual-score-feedback{display:inline-flex;align-items:center;min-height:40px;margin:0;padding:0 12px;border-radius:var(--control-radius);font-size:.78rem;font-weight:720;line-height:1.2;white-space:nowrap}.manual-student-picker,.manual-source-field,.manual-value-field,.manual-category-field,.manual-reason{display:grid;gap:6px;min-width:0}.manual-mode-toggle{width:100%;max-width:100%;min-width:0;min-height:40px;overflow:hidden;grid-template-columns:repeat(2,minmax(0,1fr))}.manual-mode-toggle button{min-width:0;white-space:nowrap}.manual-ledger-grid input,.manual-ledger-grid select{height:40px;min-height:38px;border-color:#00000017;border-radius:var(--control-radius);background:var(--surface-strong)}.manual-ledger-grid .manual-search-field>input{height:auto;min-height:0;border:0;background:transparent;box-shadow:none}.manual-student-row{grid-template-columns:minmax(220px,1fr) minmax(184px,.62fr);gap:10px}.manual-search-field,.manual-selected-student{height:40px;min-height:40px;border-color:#00000017;border-radius:var(--control-radius);background:var(--surface-strong)}.manual-selected-student{align-content:center;padding-inline:12px}.category-combo-field{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px;align-items:center;min-width:0}.source-select-shell,.category-input-shell{position:relative;min-width:0}.category-input-shell input{padding-right:38px}.source-select-button{display:flex;align-items:center;justify-content:space-between;width:100%;height:40px;min-height:40px;padding:0 10px 0 12px;border:1px solid rgba(0,0,0,.09);border-radius:var(--control-radius);color:#1d1d1f;background:linear-gradient(180deg,#fffffff5,#f5f5f7eb);box-shadow:inset 0 1px #ffffffbd;font-size:.88rem;font-weight:760;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.source-select-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-select-button:hover,.source-select-shell.open .source-select-button{border-color:#0071e357;background:#fff;box-shadow:inset 0 1px #ffffffd1,0 0 0 3px #0071e31f}.source-select-shell.open .source-select-button svg{transform:rotate(180deg)}.category-menu-trigger{position:absolute;top:4px;right:4px;display:inline-grid;width:32px;height:32px;place-items:center;padding:0;border-radius:9px;color:#6e6e73;background:linear-gradient(180deg,#ffffffeb,#f5f5f7e6);box-shadow:inset 0 0 0 1px #0000000f;transition:transform .15s ease,color .15s ease,background .15s ease}.category-menu-trigger:hover,.category-input-shell.open .category-menu-trigger{color:#1d1d1f;background:#e8e8edf5}.category-input-shell.open .category-menu-trigger svg{transform:rotate(180deg)}.source-preset-menu,.category-preset-menu{position:absolute;z-index:30;top:calc(100% + 7px);left:0;right:0;display:grid;gap:4px;max-height:220px;padding:6px;overflow-y:auto;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fffffff5;box-shadow:0 18px 40px #0f172a29;-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px)}.source-preset-menu button,.category-preset-menu button{display:flex;align-items:center;min-height:34px;padding:0 10px;border-radius:8px;color:#1d1d1f;background:transparent;font-size:.84rem;font-weight:720;text-align:left}.source-preset-menu button:hover,.source-preset-menu button[aria-selected=true],.category-preset-menu button:hover,.category-preset-menu button[aria-selected=true]{color:#0057c2;background:#0071e31a}.category-combo-field .inline-icon-button{width:40px;height:40px;border:1px solid rgba(0,0,0,.08);border-radius:var(--control-radius);background:#f5f5f7e6}.category-picker-card{padding:12px;border:1px solid rgba(0,0,0,.07);border-radius:14px;background:linear-gradient(180deg,#fffffff0,#f7f9fce6)}.category-preset-grid{display:flex;flex-wrap:nowrap;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.category-preset-grid button{min-width:auto;flex:0 0 auto;min-height:30px;padding:0 12px;border-radius:999px;font-size:.74rem}.category-custom-field{grid-template-columns:86px minmax(0,1fr);align-items:center}.category-custom-field span{font-size:.72rem}.source-mode-bar{align-items:stretch}.source-mode-bar .segmented.three,.source-summary-card{height:58px;min-height:58px}.source-mode-bar .segmented.three{align-self:stretch}.source-summary-card{align-content:center;gap:2px;padding-block:8px}.score-toolbar{min-height:112px}.score-toolbar h2{font-size:clamp(1.35rem,1.7vw,1.75rem)}@media(max-width:1240px){main{max-width:100%}.topbar{grid-template-columns:1fr}.top-actions{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}.period-control,.top-actions .class-select,.top-actions .secondary,.top-actions .account-button{width:100%;max-width:none}.manual-ledger-grid{grid-template-columns:1fr}.manual-ledger-row-main{grid-template-columns:minmax(360px,1fr) minmax(140px,.3fr) minmax(100px,.18fr)}.manual-ledger-row-detail{grid-template-columns:minmax(140px,.24fr) minmax(240px,.38fr) minmax(300px,1fr)}}@media(max-width:900px){body{padding:0}.desktop-frame{width:100%;min-height:100vh;border-radius:0;border-inline:0}.app-shell{grid-template-columns:1fr}.desktop-frame .sidebar{display:grid;grid-template-columns:minmax(190px,auto) minmax(180px,1fr);gap:10px;padding:12px}.brand{min-height:54px;padding-bottom:0}.brand-mark.has-logo img{max-height:48px}nav{grid-column:1 / -1;display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}nav button{width:auto;flex:0 0 auto;white-space:nowrap}main{padding:14px}.top-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.period-control{grid-column:1 / -1}.manual-ledger-grid,.manual-ledger-row-main,.manual-ledger-row-detail,.manual-student-row{grid-template-columns:1fr}}@media(max-width:620px){.desktop-frame .sidebar{grid-template-columns:1fr}.focus-card{margin-bottom:0}.top-actions{grid-template-columns:1fr}.period-control{grid-template-columns:repeat(3,minmax(0,1fr))}.manual-ledger-grid,.category-custom-field{grid-template-columns:1fr}.manual-ledger-grid>.primary{width:100%}.brand-preview.has-logo,.brand-preview img{max-width:min(260px,100%)}}.class-control-grid{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(300px,1fr) minmax(360px,1.15fr);gap:12px}.class-search-panel,.dorm-score-panel,.class-group-panel{min-height:260px}.class-search-box,.group-member-search{margin-bottom:10px}.autocomplete-list,.dorm-score-list,.member-suggestions,.member-chip-list,.group-tabs{display:grid;gap:7px}.autocomplete-list button,.dorm-score-list button,.member-suggestions button,.class-comparison-table button{position:relative;display:grid;align-items:center;width:100%;border:1px solid #e7e9ef;border-radius:8px;background:#fbfbfd;color:#1d1d1f;text-align:left}.autocomplete-list button{grid-template-columns:auto 1fr auto;gap:8px;min-height:34px;padding:0 9px}.autocomplete-list em,.member-suggestions em,.dorm-score-list em,.class-comparison-table em{color:#6e6e73;font-style:normal}.search-hints{display:flex;gap:7px;flex-wrap:wrap}.search-hints span{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border-radius:7px;color:#6e6e73;background:#f5f6f8;font-size:.72rem;font-weight:700}.dorm-score-focus{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;min-height:50px;margin-bottom:8px;padding:7px 10px;border-radius:8px;background:#f5f8ff}.dorm-score-focus strong{font-size:1.06rem;line-height:1.05}.dorm-score-focus span{min-width:0;overflow:hidden;color:#6e6e73;font-size:.72rem;line-height:1.22;text-overflow:ellipsis;white-space:nowrap}.dorm-score-list{max-height:225px;overflow:auto}.dorm-score-list button{grid-template-columns:minmax(0,1fr) 58px 52px;gap:8px;min-height:48px;padding:5px 9px}.dorm-score-list button.active,.class-comparison-table button.active{border-color:#0071e352;background:#edf5ff}.dorm-score-list span,.class-comparison-table span{display:grid;align-content:center;min-width:0}.dorm-score-list strong{line-height:1.15}.dorm-score-list em{overflow:hidden;font-size:.68rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.dorm-score-list i{font-style:normal;font-weight:700;text-align:right}.class-grid .dorm-score-panel .section-title{margin-bottom:8px}.class-grid .dorm-score-panel .section-title p{display:none}.class-grid .dorm-score-focus{min-height:42px;margin-bottom:6px;padding:5px 9px}.class-grid .dorm-score-list{min-height:0;max-height:none;gap:4px;overflow-y:auto}.class-grid .dorm-score-list button{min-height:46px;padding:4px 8px}.group-tabs{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:9px}.group-tabs button{min-height:28px;padding:0 6px;border-radius:7px;color:#1d1d1f;background:#f1f3f7;font-size:.7rem;font-weight:700}.group-tabs button.active{color:#0057c2;background:#e7f0ff}.group-name-field{display:grid;gap:4px;margin-bottom:8px}.group-name-field input,.group-name-row input{min-height:30px;padding:0 9px;border:1px solid rgba(17,24,39,.1);border-radius:7px;background:#fff}.member-suggestions{margin-bottom:8px}.member-suggestions button{grid-template-columns:1fr auto;min-height:31px;padding:0 9px}.member-chip-list{max-height:92px;overflow:auto}.member-chip-list span{display:grid;grid-template-columns:minmax(60px,1fr) minmax(96px,1fr);align-items:center;gap:6px;padding:6px 7px;border-radius:7px;background:#f5f6f8;font-size:.72rem;font-weight:700}.member-chip-list select{min-height:26px;border:1px solid #e0e3e8;border-radius:6px;background:#fff;font-size:.68rem}.comparison-selector{display:inline-flex;align-items:center;gap:8px}.comparison-selector select{min-height:30px;padding:0 24px 0 9px;border:1px solid rgba(17,24,39,.1);border-radius:7px;background:#fff}.class-comparison-table{display:grid;overflow:hidden;border:1px solid #e6e8ee;border-radius:8px}.class-comparison-table .compact-table-head,.class-comparison-table button{grid-template-columns:92px 88px 96px minmax(160px,1fr)}.class-comparison-table button{min-height:42px;padding:0 12px;border-width:0 0 1px;border-radius:0;overflow:hidden}.class-comparison-table button:last-child{border-bottom:0}.class-comparison-table i{position:absolute;left:0;bottom:0;width:var(--bar);height:2px;background:#0071e3}@media(max-width:1180px){.class-control-grid{grid-template-columns:1fr 1fr}.class-group-panel{grid-column:1 / -1}}@media(max-width:760px){.class-control-grid{grid-template-columns:1fr}.class-comparison-table .compact-table-head,.class-comparison-table button{grid-template-columns:70px 62px 72px minmax(96px,1fr)}}.class-overview-grid{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(0,1.45fr);gap:12px}.student-command-panel,.groups-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}.group-roster-warning{display:inline-flex;align-items:center;gap:7px;width:fit-content;max-width:100%;margin-top:12px;padding:8px 11px;border:1px solid rgba(191,111,0,.18);border-radius:999px;color:#8a4b00;background:#fff7e6db;font-size:.78rem;font-weight:760;line-height:1.25}.group-roster-warning svg{flex:0 0 auto}.student-controls{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:10px;align-items:center}.student-table-controls{margin:-2px 0 12px}.roster-search{min-width:320px;margin:0}.segmented.three{grid-template-columns:repeat(3,1fr);min-width:220px}.student-workspace-grid,.dormitory-workspace,.groups-workspace{display:grid;grid-template-columns:minmax(420px,1fr) minmax(440px,.72fr);gap:12px;align-items:start}.roster-panel,.student-inspector,.dormitory-board,.dormitory-inspector,.group-sidebar-panel,.group-detail-panel{min-width:0}.roster-table{display:grid;overflow:hidden;border:1px solid #e6e8ee;border-radius:8px}.roster-head,.roster-row{display:grid;grid-template-columns:minmax(108px,1.15fr) minmax(74px,.75fr) minmax(82px,.8fr) 56px 62px;align-items:center;gap:10px;min-height:38px;padding:0 12px;border-bottom:1px solid #e8ebf1}.roster-head{color:#6e6e73;background:#f5f6f8;font-size:.72rem;font-weight:800}.roster-head button{min-height:28px;justify-content:start;padding:0;color:inherit;background:transparent;font-size:inherit;font-weight:800;text-align:left}.roster-head button:hover{color:#0071e3}.roster-row{width:100%;color:#1d1d1f;background:#fff;text-align:left}.roster-row:last-child,.roster-group:last-child,.dorm-member-row:last-child{border-bottom:0}.roster-row.selected,.mini-student-row.selected{background:#edf5ff;box-shadow:inset 3px 0 #0071e3}.roster-row.selected.avatar-male{background:linear-gradient(90deg,#0071e321,#fffffff5 72%),#f5faff;box-shadow:inset 3px 0 #0071e3}.roster-row.selected.avatar-female{background:linear-gradient(90deg,#ff375f21,#fffffff5 72%),#fff6fa;box-shadow:inset 3px 0 #ff375f}.roster-row.selected.avatar-neutral{background:linear-gradient(90deg,#8e8e9324,#fffffff5 72%),#f7f7fa;box-shadow:inset 3px 0 #8e8e93}.grouped-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.roster-group{overflow:hidden;border:1px solid #e6e8ee;border-radius:8px;background:#fff}.roster-group.no-dorm-group{border-style:dashed;background:#fffaf0}.roster-group-head,.mini-student-row,.dorm-member-row,.group-member-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.roster-group-head{min-height:36px;padding:0 10px;color:#424245;background:#f5f6f8}.mini-student-row{width:100%;min-height:34px;padding:0 10px;border-top:1px solid #edf0f4;color:#1d1d1f;background:transparent;text-align:left}.mini-student-row em,.group-member-row em{color:#6e6e73;font-style:normal}.student-pagination{justify-content:flex-end;margin-top:10px}.student-inspector .profile-head{grid-template-columns:auto minmax(0,1fr) auto;gap:12px}.student-inspector{display:flex;flex-direction:column;overflow:hidden}.student-inspector .profile-head h2,.student-inspector .profile-head p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-inspector>.assignment-card{flex:0 0 auto;margin:14px 0 0}.student-record-card,.class-change-card{display:flex;flex:0 0 auto;flex-direction:column;gap:10px;margin-top:14px;padding:12px;border:1px solid rgba(0,0,0,.07);border-radius:14px;background:linear-gradient(180deg,#fffffff5,#f7f9fce0),#fff;box-shadow:0 14px 36px #0f172a0d}.student-record-card{flex:0 0 auto;min-height:356px}.student-section-head,.class-change-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.student-section-head strong,.class-change-head strong,.class-change-empty strong{color:#111827;font-size:.94rem;line-height:1.2}.student-section-head span,.class-change-head span,.class-change-empty span{display:block;margin-top:2px;color:#6b7280;font-size:.8rem;font-weight:400;line-height:1.35}.class-change-list{display:grid;gap:6px;max-height:286px;overflow-y:auto;padding-right:2px;scrollbar-width:thin}.class-change-row{display:grid;grid-template-columns:98px minmax(0,1fr) 18px;align-items:start;gap:12px;min-height:62px;padding:10px 11px;border:1px solid transparent;border-radius:10px;background:#f5f5f7;color:#1d1d1f;text-align:left;transition:background .16s ease,border-color .16s ease,transform .16s ease}.class-change-row:hover{border-color:#0071e32e;background:#0071e312;transform:translateY(-1px)}.class-change-row time,.class-change-row em{color:#6b7280;font-size:.76rem;font-style:normal;font-weight:500;line-height:1.28}.class-change-content,.class-change-content strong,.class-change-content em{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.class-change-row time{overflow:hidden;text-overflow:ellipsis;white-space:normal}.class-change-row strong{color:#111827;font-size:.86rem;font-weight:720;line-height:1.25;white-space:normal}.class-change-row em{margin-top:2px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.class-change-empty{padding:10px;border-radius:11px;background:#f5f5f7}.class-change-log-link{justify-self:end;min-height:26px;padding:0;white-space:nowrap}.student-inspector .manual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-inspector .manual-reason,.student-inspector .manual-grid .primary{grid-column:1 / -1}.student-inspector .timeline{flex:0 0 286px;align-content:start;gap:7px;height:286px;margin-top:0;min-height:286px;max-height:286px;overflow-y:auto;padding-right:4px;scrollbar-width:thin}.student-inspector .student-record-list{padding:2px 4px 2px 0;border:0;border-radius:0;background:transparent}.student-inspector .timeline-item{grid-template-columns:96px 56px minmax(0,1fr) 68px;gap:10px;height:50px;min-height:50px;padding:9px 11px;border-radius:10px;background:#fbfbfd}.student-inspector .timeline-item time,.student-inspector .timeline-item b,.student-inspector .timeline-item span,.student-inspector .timeline-item em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-inspector .timeline-item time,.student-inspector .timeline-item em{color:#6b7280;font-size:.76rem;font-weight:700}.student-inspector .timeline-item span,.student-inspector .timeline-item b{font-size:.84rem;line-height:1.25}.dormitory-metrics.metric-strip{grid-template-columns:repeat(6,minmax(0,1fr))}.dormitory-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:10px}.dormitory-card{position:relative;display:grid;min-height:134px;align-content:space-between;gap:8px;padding:12px;border:1px solid #e6e8ee;border-radius:8px;color:#1d1d1f;background:#fff;text-align:left}.dormitory-card.female-room{background:linear-gradient(180deg,#fff7fbeb,#ffffffd6),#fff}.dormitory-card.male-room{background:linear-gradient(180deg,#f5fafff0,#ffffffd6),#fff}.dormitory-room-title{display:grid;gap:2px}.dormitory-room-title em{max-width:calc(100% - 16px)}.room-sex-dot{position:absolute;top:10px;right:10px;width:8px;height:8px;border-radius:999px;box-shadow:0 0 0 3px #ffffffbd}.room-sex-dot.female{background:#ff4f93}.room-sex-dot.male{background:#0071e3}.dormitory-card.selected{border-color:#0071e357;background:#edf5ff;box-shadow:inset 0 0 0 1px #0071e314}.dormitory-card.no-dorm{border-color:#b47e0033;background:#fff8e8}.dormitory-card.no-dorm.selected{border-color:#b47e005c;background:#fff3d1;box-shadow:inset 0 0 0 1px #b47e0014}.dormitory-card span,.dorm-member-row span{display:grid;min-width:0}.dormitory-card em,.dormitory-card small,.dorm-member-row em{color:#6e6e73;font-style:normal}.dormitory-card small{display:block;overflow:visible;line-height:1.45;overflow-wrap:anywhere;white-space:normal}.dorm-member-list{display:grid;overflow:hidden;border:1px solid #e6e8ee;border-radius:8px}.dorm-member-row{width:100%;min-height:56px;padding:9px 12px;border-bottom:1px solid #edf0f4;color:#1d1d1f;background:#fff;text-align:left}.dorm-member-row strong,.dorm-member-row em{line-height:1.28}.group-health{display:grid;justify-items:end}.group-health strong{font-size:2.4rem}.group-health span{color:#6e6e73}.groups-workspace{grid-template-columns:300px minmax(0,1fr)}.group-card-list,.group-member-table{display:grid;gap:8px}.group-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:52px;padding:0 10px;border-radius:8px;color:#1d1d1f;background:#f5f6f8;text-align:left}.group-card.active{color:#0057c2;background:#e7f0ff}.group-card span,.group-member-row button{display:grid;min-width:0}.group-card em{color:#6e6e73;font-style:normal;font-size:.68rem}.group-seat-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0;padding:10px;border:1px solid #e6e8ee;border-radius:8px;background:#fbfbfd}.group-seat-preview span{display:grid;min-height:34px;place-items:center;border-radius:7px;background:#dcecff;font-size:.72rem;font-weight:700}.group-member-row{min-height:42px;padding:8px;border-radius:8px;background:#f5f6f8}.group-member-row button{color:#1d1d1f;background:transparent;text-align:left}.group-member-row select{min-height:30px;border:1px solid #dfe3ea;border-radius:7px;background:#fff}.group-board-hero{grid-template-columns:minmax(0,1fr) minmax(360px,.78fr)}.group-board-tools{display:grid;grid-template-columns:minmax(156px,1.15fr) repeat(2,minmax(108px,1fr));gap:10px}.group-layout-control{display:grid;gap:5px;min-width:220px}.group-layout-control span{color:#6e6e73;font-size:.68rem;font-weight:800}.group-layout-control select{min-height:36px;width:100%;padding:0 30px 0 10px;border:1px solid #dfe3ea;border-radius:8px;color:#1d1d1f;background:#fff;font-weight:760}.group-board-search{grid-column:1 / -1;min-width:0;margin:0}.group-board-status{grid-column:1 / -1;margin:0;padding:8px 10px;border-radius:10px;background:#007aff14;color:#1d4f91;font-weight:760}.group-file-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:36px;padding:0 12px;overflow:hidden;cursor:pointer}.group-file-button.primary,.group-export-button.primary{min-height:38px;border-radius:12px;font-size:.76rem;font-weight:800;white-space:nowrap}.group-template-button.subtle-action{min-height:38px;border-radius:12px;font-size:.76rem;font-weight:760;white-space:nowrap}.group-file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.group-file-button.disabled{cursor:not-allowed;color:#8e8e93;background:#f5f5f7f5;box-shadow:inset 0 0 0 1px #00000014;opacity:.72;transform:none}.group-file-button.disabled:disabled{color:#8e8e93;background:#f5f5f7f5;box-shadow:inset 0 0 0 1px #00000014}.group-file-button.disabled input{cursor:not-allowed;pointer-events:none}.dropzone.disabled{cursor:not-allowed;color:#8e8e93;background:#f5f5f7c7;box-shadow:inset 0 0 0 1px #0000000f;opacity:.72}.dropzone.disabled input{cursor:not-allowed;pointer-events:none}.group-quick-move-panel{display:grid;gap:14px}.group-quick-move-panel .section-title{align-items:end}.group-quick-move-panel .section-title p{max-width:520px;margin:0;color:#6e6e73;font-size:.8rem;font-weight:720;line-height:1.45}.group-quick-move-grid{display:grid;grid-template-columns:minmax(280px,1.32fr) minmax(230px,.92fr) minmax(170px,.68fr) auto;gap:12px;align-items:end;padding:12px;border:1px solid rgba(0,0,0,.06);border-radius:18px;background:#f5f5f7b8}.group-quick-search,.group-move-selected,.group-move-target{display:grid;gap:6px;min-width:0}.group-quick-search>span,.group-move-selected>span{color:#6e6e73;font-size:.68rem;font-weight:800}.group-move-search-shell{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:54px;padding:0 12px;border:1px solid rgba(0,0,0,.08);border-radius:14px;color:#6e6e73;font-size:.82rem;background:#ffffffeb}.group-move-search-shell input{width:100%;min-width:0;min-height:52px;padding:0;border:0;outline:0;background:transparent;color:#1d1d1f;font-size:.82rem;font-weight:760}.group-move-suggestions{position:absolute;z-index:18;top:calc(100% + 8px);left:0;right:0;display:grid;gap:5px;max-height:292px;overflow-y:auto;padding:8px;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fffffff5;box-shadow:0 18px 42px #0f172a24}.group-move-suggestions button{display:grid;gap:3px;width:100%;min-height:46px;padding:7px 9px;border:0;border-radius:10px;background:transparent;color:#1d1d1f;text-align:left}.group-move-suggestions button:hover,.group-move-suggestions button:focus-visible{background:#f5f7fb}.group-move-suggestions strong,.group-move-selected strong{font-size:.88rem;font-weight:820;line-height:1.18}.group-move-suggestions span,.group-move-selected em{color:#6e6e73;font-size:.7rem;font-style:normal;font-weight:720;line-height:1.22}.group-move-selected-field{display:grid;align-content:center;gap:4px;height:54px;min-height:54px;min-width:0;padding:7px 12px;overflow:hidden;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#ffffffeb;font-size:.82rem}.group-move-selected-field strong,.group-move-selected-field em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-move-actions{display:grid;grid-template-columns:auto auto;gap:8px;align-self:end}.ghost-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;height:54px;padding:0 14px;border-radius:999px;font-size:.82rem;font-weight:820;white-space:nowrap}.ghost-button{border:1px solid #dfe3ea;color:#1d1d1f;background:#ffffffd1}.primary-button{border:1px solid #0071e3;color:#fff;background:#0071e3;box-shadow:0 10px 22px #0071e333}.primary-button:disabled,.ghost-button:disabled{cursor:default;opacity:.42;box-shadow:none}.group-move-target select{min-height:54px;border-radius:14px;background-color:#ffffffeb;font-size:.82rem}.group-board-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}.group-board-card{position:relative;display:grid;gap:11px;min-width:0;overflow:hidden;border-color:var(--group-color-border, #e1e4ea);background:linear-gradient(180deg,var(--group-color-wash, rgba(255, 255, 255, .92)),rgba(255,255,255,.96) 68%),#fff;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.group-board-card:before{position:absolute;inset:0 0 auto;height:5px;background-color:var(--group-color, #0071e3);content:""}.group-board-card.drag-over{transform:translateY(-2px);border-color:#0071e37a;background:#f6fbff;box-shadow:0 18px 45px #0071e321}.group-block-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:end}.group-block-head label{display:grid;gap:5px;min-width:0}.group-block-head label span{color:#6e6e73;font-size:.68rem;font-weight:800}.group-block-head input{width:100%;min-height:38px;padding:0 10px;border:1px solid #dfe3ea;border-radius:8px;background:#fff;color:#1d1d1f;font-size:.9rem;font-weight:800}.group-layout-tag{display:grid;gap:1px;align-content:center;min-height:38px;padding:5px 10px;border:1px solid var(--group-color-border, rgba(0, 113, 227, .22));border-radius:12px;color:var(--group-color, #075985);background:#ffffffbd;white-space:nowrap}.group-layout-tag b{font-size:.72rem;font-weight:850;line-height:1.1}.group-layout-tag em{color:#6e6e73;font-size:.64rem;font-style:normal;font-weight:760;line-height:1.1}.group-color-trigger{display:inline-grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;justify-self:start;min-height:38px;max-width:142px;padding:0 10px 0 7px;border:1px solid #dfe3ea;border-radius:999px;color:#1d1d1f;background:#ffffffe0;box-shadow:0 6px 16px #0f172a0d;font-size:.78rem;font-weight:820;white-space:nowrap}.group-slogan-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:5px 6px 5px 10px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:#ffffffc7}.group-slogan-row.editing{grid-template-columns:minmax(0,1fr) auto;background:#fffffff0}.group-slogan-text{display:block;width:100%;min-width:0;overflow:hidden;padding:0;border:0;background:transparent;color:#1d1d1f;font-size:.78rem;font-weight:760;text-align:left;text-overflow:ellipsis;white-space:nowrap}.group-slogan-text:hover,.group-slogan-text:focus-visible{color:var(--group-color, #0071e3)}.group-slogan-text.empty{color:#86868b;font-weight:720}.group-slogan-row input{width:100%;min-width:0;min-height:30px;padding:0 8px;border:0;border-radius:8px;outline:0;background:#f5f5f7;color:#1d1d1f;font-size:.78rem;font-weight:760}.group-slogan-save{min-height:30px;padding:0 10px;border:1px solid var(--group-color-border, rgba(0, 113, 227, .22));border-radius:999px;color:var(--group-color, #0071e3);background:var(--group-color-soft, rgba(0, 113, 227, .12));font-size:.72rem;font-weight:820}.group-color-trigger i{width:22px;height:22px;border:1px solid var(--group-color-border, rgba(0, 0, 0, .12));border-radius:999px;background:var(--group-color, #0071e3);box-shadow:inset 0 1px #ffffff61}.group-color-trigger:hover,.group-color-trigger:focus-visible{border-color:var(--group-color-border, rgba(0, 113, 227, .3));box-shadow:0 10px 24px var(--group-color-soft, rgba(0, 113, 227, .14))}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.modal-head h3{margin:2px 0 0}.modal-head button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #dfe3ea;border-radius:999px;color:#1d1d1f;background:#f5f5f7db}.group-arrangement-modal{width:min(1120px,calc(100vw - 48px));max-height:min(840px,calc(100vh - 48px));display:grid;grid-template-rows:auto auto auto minmax(260px,1fr) auto auto;gap:14px;overflow:hidden}.group-arrangement-modal.export{width:min(1240px,calc(100vw - 48px));grid-template-rows:auto auto minmax(360px,1fr) auto}.group-arrangement-modal-tools,.group-export-options{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:12px;align-items:start}.group-arrangement-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;color:#6e6e73;font-size:.78rem;font-weight:760}.group-arrangement-summary span{padding:7px 10px;border-radius:999px;background:#f5f5f7e6;box-shadow:inset 0 0 0 1px #0000000f}.group-arrangement-tabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}.group-arrangement-tabs button{min-height:32px;white-space:nowrap;border-radius:999px;padding:0 12px;color:#6e6e73;background:#f5f5f7d1}.group-arrangement-tabs button.active{color:#fff;background:#1d1d1f}.group-arrangement-table-scroll{overflow:auto;border-radius:16px;background:#f5f5f7c2;box-shadow:inset 0 0 0 1px #0000000f}.group-arrangement-table{min-width:980px}.group-arrangement-row,.group-arrangement-head{display:grid;grid-template-columns:82px 132px 120px 190px 70px 104px minmax(180px,1fr) 112px;min-height:46px;align-items:center;gap:8px;padding:0 10px;border-bottom:1px solid rgba(0,0,0,.055)}.group-arrangement-head{position:sticky;top:0;z-index:2;min-height:40px;color:#6e6e73;background:#fbfbfdf5;font-size:.72rem;font-weight:800}.group-arrangement-row strong,.group-arrangement-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-arrangement-row input,.group-arrangement-row select{min-width:0;width:100%;min-height:32px;border:1px solid rgba(0,0,0,.08);border-radius:9px;background-color:#fff;font-size:.78rem;font-weight:720}.group-arrangement-row select.row-action-disabled,.group-arrangement-row select:disabled,.group-arrangement-row input:disabled{color:#8e8e93;background-color:#f5f5f7e0;border-color:#0000000f;box-shadow:none;cursor:not-allowed}.group-import-commit-button{min-width:190px}.group-import-commit-button:disabled .button-spinner{border-color:#8e8e9347;border-top-color:#8e8e93}.group-arrangement-row.status-unmatched,.group-arrangement-row.status-collision,.group-arrangement-row.status-class_mismatch,.group-arrangement-row.status-invalid{background:#ff950014}.group-arrangement-row.status-ready,.group-arrangement-row.status-capacity_warning{background:#34c7590e}.group-arrangement-empty,.group-arrangement-missing{padding:12px 14px;color:#6e6e73;font-size:.82rem;font-weight:720}.group-arrangement-missing{display:grid;gap:4px;max-height:76px;overflow:auto;border-radius:14px;background:#ff950014}.group-export-column-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,max-content));gap:8px;justify-content:flex-end}.group-export-column-grid label{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:999px;background:#f5f5f7e0;box-shadow:inset 0 0 0 1px #0000000f;color:#424245;font-size:.76rem;font-weight:760}.group-export-preview{width:100%;min-width:1040px;border-collapse:collapse;font-size:.78rem}.group-export-preview th,.group-export-preview td{padding:10px 12px;border-bottom:1px solid rgba(0,0,0,.055);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-export-preview th{position:sticky;top:0;z-index:2;color:#6e6e73;background:#fbfbfdf5;font-weight:760}.group-export-preview td{max-width:190px}.group-export-preview tr:nth-child(n+3):nth-child(odd) td{background:#ffffff6b}.group-export-title-cell{max-width:none!important;color:#6e6e73;font-size:.82rem;font-weight:720;background:#fbfbfdf5}.group-export-head-row th:first-child,.group-export-preview td:first-child{min-width:94px}.group-export-head-row th:nth-child(2),.group-export-preview td:nth-child(2){min-width:132px}.group-export-head-row th:nth-child(3),.group-export-preview td:nth-child(3){min-width:142px}.group-color-modal{display:grid;gap:14px;width:min(720px,100%)}.group-color-dialog-help{margin:0;color:#6e6e73;font-size:.82rem;font-weight:680;line-height:1.45}.group-color-modal-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px}.group-color-modal-grid button{position:relative;min-width:0;min-height:42px;border:1px solid var(--group-color-border, rgba(0, 0, 0, .1));border-radius:14px;background:radial-gradient(circle at 28% 22%,rgba(255,255,255,.42),transparent 38%),var(--group-color, #0071e3);box-shadow:inset 0 1px #ffffff57,0 10px 24px var(--group-color-soft, rgba(15, 23, 42, .12))}.group-color-modal-grid button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.group-color-modal-grid button.active{outline:3px solid rgba(0,113,227,.3);outline-offset:3px}.group-block-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid #edf0f4;border-radius:8px}.group-block-metrics span{display:grid;gap:2px;min-width:0;padding:8px 9px;border-right:1px solid #edf0f4;background:#ffffffb8}.group-block-metrics span:last-child{border-right:0}.group-block-metrics b{font-size:.95rem}.group-block-metrics em,.group-change-line span,.group-student-chip span,.group-student-chip em{color:#6e6e73;font-size:.7rem;font-style:normal}.group-change-line{display:flex;flex-wrap:wrap;gap:8px}.group-change-line span{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:0 8px;border:1px solid #edf0f4;border-radius:999px;background:#ffffffc2;font-weight:700}.group-seat-cells{display:grid;grid-template-columns:repeat(var(--group-block-cols, 4),minmax(0,1fr));gap:7px}.group-student-chip,.group-empty-seat{display:grid;min-height:74px;align-content:space-between;gap:3px;padding:8px 18px 8px 8px;border:1px solid #e3e7ef;border-radius:8px;background:#ffffffe6;text-align:left}.group-student-chip{position:relative;color:#1d1d1f;cursor:grab;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,opacity .16s ease}.group-student-chip:hover{transform:translateY(-1px);border-color:var(--group-color-border, rgba(0, 113, 227, .24));box-shadow:0 10px 24px var(--group-color-soft, rgba(15, 23, 42, .08))}.group-student-chip[data-score-hint]:after{position:absolute;z-index:12;bottom:calc(100% + 8px);left:50%;width:max-content;max-width:230px;padding:7px 9px;border:1px solid rgba(255,255,255,.16);border-radius:9px;color:#fff;background:#1d1d1fe6;box-shadow:0 14px 32px #0f172a29;content:attr(data-score-hint);font-size:.72rem;font-weight:700;line-height:1.25;opacity:0;pointer-events:none;text-align:center;transform:translate(-50%,4px);transition:opacity .15s ease,transform .15s ease;white-space:normal}.group-student-chip[data-score-hint]:hover:after,.group-student-chip[data-score-hint]:focus-visible:after{opacity:1;transform:translate(-50%)}.group-student-chip.dragging{opacity:.45}.group-student-chip .group-chip-gender-dot{position:absolute;top:7px;right:7px;width:8px;height:8px;pointer-events:none}.group-student-chip strong,.group-student-chip span,.group-student-chip em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-empty-seat{place-items:center;color:#a1a1a6;border-style:dashed;background:#fbfbfd;font-size:.76rem;font-weight:700}.seating-map-only{grid-template-columns:1fr}.seating-age-card{display:grid;min-width:178px;gap:3px;padding:12px 14px;border:1px solid #edf0f4;border-radius:8px;background:#fbfbfd}.seating-age-card span,.seating-age-card em{color:#6e6e73;font-size:.72rem;font-style:normal;font-weight:700}.seating-age-card strong{font-size:1.05rem}.seat.readonly button{cursor:default}.seat-history-panel,.seat-movement-panel{display:grid;gap:14px}.seat-history-controls{display:grid;grid-template-columns:minmax(180px,.35fr) minmax(260px,1fr);gap:10px}.seat-history-controls label{display:grid;gap:6px}.seat-history-controls span{color:#6e6e73;font-size:.72rem;font-weight:800}.seat-history-controls input,.seat-history-controls select{min-height:38px;padding:0 10px;border:1px solid #dfe3ea;border-radius:8px;background:#fff}.seat-history-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:12px}.seat-history-list{display:grid;align-content:start;max-height:548px;overflow:auto;gap:8px}.seat-history-list button{display:grid;gap:4px;min-height:62px;padding:10px;border:1px solid #e3e7ef;border-radius:8px;background:#fff;text-align:left}.seat-history-list button.active{border-color:#0071e36b;background:#f5fbff}.seat-history-list span{color:#6e6e73;font-size:.75rem}.seat-history-editor{display:grid;gap:10px}.seat-history-editor.editing .seat-map{box-shadow:inset 0 0 0 2px #0071e342}.seat-history-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px 12px;border:1px solid #e3e7ef;border-radius:12px;background:#fbfbfd}.seat-history-editor-head>div:first-child{display:grid;gap:3px;min-width:0}.seat-history-editor-head strong,.seat-history-editor-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-history-editor-head span{color:#6e6e73;font-size:.72rem}.history-action-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.history-action-row button{min-height:34px;padding:0 10px;border-radius:9px}.danger-secondary{color:#c62828}.seat-movement-map-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;align-items:start}.seat-movement-controls{display:grid;gap:10px;min-width:0}.movement-student-picker{display:grid;gap:6px;min-width:0}.movement-student-picker>span,.movement-summary span{color:#6e6e73;font-size:.72rem;font-weight:800}.movement-search-field{position:relative;display:flex;align-items:center;width:100%;min-height:38px;padding:0 10px;border:1px solid #dfe3ea;border-radius:10px;background:#fff;color:#6e6e73}.movement-search-field input{min-height:0;padding:0 0 0 8px;border:0;background:transparent}.movement-student-suggestions{position:absolute;z-index:18;top:calc(100% + 7px);left:0;right:0;display:grid;gap:5px;max-height:260px;padding:7px;overflow-y:auto;border:1px solid #e1e5ec;border-radius:12px;background:#fffffff5;box-shadow:0 20px 44px #0f172a29;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.movement-student-suggestions button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center;min-height:42px;padding:7px 8px;border-radius:8px;background:transparent;color:#1d1d1f;text-align:left}.movement-student-suggestions button:hover,.movement-student-suggestions button[aria-selected=true]{background:#eef4ff}.movement-student-suggestions strong,.movement-student-suggestions span,.movement-student-suggestions em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.movement-student-suggestions em{grid-column:1 / -1;color:#6e6e73;font-size:.7rem;font-style:normal}.movement-summary{display:grid;gap:4px;padding:12px;border:1px solid #edf0f4;border-radius:12px;background:#fbfbfd}.movement-summary strong{font-size:1.08rem}.movement-summary em{color:#6e6e73;font-size:.82rem;font-style:normal}.seat-movement-map-shell{min-width:0}.movement-seat-map{position:relative;grid-auto-rows:58px;gap:6px;overflow:hidden;padding:12px}.movement-seat-map .seat{height:58px;min-height:58px;opacity:.62}.movement-seat-map .seat button{color:#3c3c436b;background:#e8e8ed94;box-shadow:none}.movement-seat-map .seat button small{display:block;margin-top:2px;color:#3c3c4357;font-size:.64rem;font-weight:700}.movement-seat-map .movement-selected-seat{opacity:1;border-color:#0071e342;background:#0071e312}.movement-seat-map .movement-origin-seat,.movement-seat-map .movement-destination-seat{opacity:1;overflow:visible}.movement-seat-map .movement-origin-seat{border-color:#ff9500a8;background:linear-gradient(180deg,#fff7e6f5,#ffffffd1),#fff;box-shadow:inset 0 0 0 2px #ff950038,0 10px 26px #ff950021}.movement-seat-map .movement-destination-seat{border-color:#0071e3ad;background:linear-gradient(180deg,#ebf4fff5,#ffffffdb),#fff;box-shadow:inset 0 0 0 2px #0071e333,0 12px 28px #0071e324}.movement-seat-badge{position:absolute;z-index:3;top:-10px;left:8px;display:inline-flex;min-height:20px;align-items:center;padding:0 7px;border-radius:999px;color:#fff;font-size:.62rem;font-weight:850;line-height:1;box-shadow:0 8px 18px #0f172a21}.movement-seat-badge.origin{background:#ff9500}.movement-seat-badge.destination{background:#0071e3}.movement-seat-map .movement-selected-seat button{visibility:hidden}.movement-runner{position:absolute;z-index:4;isolation:isolate;display:grid;width:max-content;overflow:visible;place-items:center;left:var(--from-x);top:var(--from-y);color:#fff;transform:translate(-50%,-50%);animation:seatMoveTravel 4.8s cubic-bezier(.28,.02,.18,1) infinite}.movement-runner.no-motion{animation:none}.movement-runner:after{position:absolute;z-index:1;inset:4px -5px;border-radius:999px;content:"";border:1px solid rgba(255,255,255,.28);pointer-events:none}.movement-racing-shade{position:absolute;z-index:0;top:calc(50% - 17px);right:50%;width:124px;height:34px;border-radius:999px;opacity:0;background:radial-gradient(circle at 94% 50%,rgba(255,255,255,.7),transparent 18%),linear-gradient(90deg,#0071e300,#0071e32e 46%,#0071e380);clip-path:polygon(0 50%,20% 16%,100% 31%,100% 69%,20% 84%);filter:blur(.8px);transform:rotate(var(--trail-angle));transform-origin:right center;animation:seatMoveTailFade 4.8s cubic-bezier(.28,.02,.18,1) infinite;pointer-events:none}.movement-racing-shade:before,.movement-racing-shade:after{position:absolute;right:8px;width:82px;height:3px;border-radius:999px;background:linear-gradient(90deg,#0071e300,#0071e36b);content:""}.movement-racing-shade:before{top:-7px}.movement-racing-shade:after{bottom:-7px}.movement-runner strong{display:inline-flex;position:relative;z-index:2;min-width:78px;min-height:36px;align-items:center;justify-content:center;padding:0 12px;border-radius:999px;background:#0071e3;box-shadow:0 14px 34px #0071e347,0 10px 28px #0071e34d;font-size:.86rem;white-space:nowrap}@keyframes seatMoveTravel{0%,12%{left:var(--from-x);top:var(--from-y)}82%,to{left:var(--to-x);top:var(--to-y)}}@keyframes seatMoveTailFade{0%,12%{width:16px;opacity:0;transform:rotate(var(--trail-angle)) scaleX(.12)}22%{width:124px;opacity:.86;transform:rotate(var(--trail-angle)) scaleX(1)}70%{width:112px;opacity:.68;transform:rotate(var(--trail-angle)) scaleX(.92)}82%{width:58px;opacity:.28;transform:rotate(var(--trail-angle)) scaleX(.48)}90%,to{width:12px;opacity:0;transform:rotate(var(--trail-angle)) scaleX(.08)}}@media(min-width:561px)and (max-width:900px){.desktop-frame{overflow:visible}.app-shell{grid-template-columns:1fr;min-height:calc(100vh - 14px)}.sidebar{position:sticky;z-index:20;top:0;display:grid;grid-template-columns:minmax(150px,auto) minmax(170px,1fr);gap:10px 12px;align-items:center;min-height:auto;padding:12px 16px 10px;border-right:0;border-bottom:1px solid rgba(17,24,39,.1);background:#fbfbfdf0}.brand{min-width:0;padding:0}.brand strong{max-width:160px}.focus-card{margin:0;padding:8px 10px}.focus-card strong{font-size:1rem}nav{grid-column:1 / -1;display:flex;gap:6px;max-width:100%;overflow-x:auto;padding:1px 0 2px;scrollbar-width:thin}nav button{width:auto;min-height:34px;flex:0 0 auto;padding:0 10px;white-space:nowrap}main{width:100%;min-width:0;padding:16px}.topbar{gap:10px}.top-actions{width:100%}.top-actions .segmented,.top-actions .class-select,.top-actions .secondary,.top-actions .account-button{flex:1 1 190px}}@media(max-width:1180px){.class-overview-grid,.student-command-panel,.student-controls,.student-workspace-grid,.dormitory-workspace,.groups-hero,.groups-workspace,.group-board-hero,.group-board-grid,.manual-roster-layout,.seat-history-layout,.seat-movement-map-layout{grid-template-columns:1fr}.manual-roster-form,.manual-roster-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-roster-edit-actions,.manual-roster-form .primary{grid-column:1 / -1}.roster-search{min-width:0}.dormitory-metrics.metric-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.grouped-roster,.group-board-tools,.dormitory-card-grid,.dormitory-metrics.metric-strip,.group-block-head,.group-block-metrics{grid-template-columns:1fr}.group-block-metrics span{border-right:0;border-bottom:1px solid #edf0f4}.group-block-metrics span:last-child{border-bottom:0}.roster-head,.roster-row{grid-template-columns:minmax(92px,1fr) 68px 64px 48px 54px;gap:6px;padding:0 8px;font-size:.7rem}.student-command-panel,.groups-hero{align-items:stretch}}@media(min-width:561px){.app-shell{grid-template-columns:176px minmax(0,1fr)}.brand strong{max-width:118px}nav{padding-bottom:0}}@media(max-width:1180px){.manual-ledger-grid,.manual-ledger-row-main,.manual-ledger-row-detail{grid-template-columns:1fr}.import-period-card,.workbook-analysis-tabs,.dormitory-analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.outside-summary-card,.source-mode-bar{grid-template-columns:1fr}.student-inspector{max-height:none;overflow:visible}.manual-action-row{justify-content:flex-start}}@media(max-width:760px){.manual-ledger-grid,.import-period-card,.workbook-analysis-tabs,.dormitory-analytics-grid,.source-summary-strip,.manual-roster-form,.manual-roster-edit-grid,.manual-roster-filter-row,.manual-roster-directory-toolbar{grid-template-columns:1fr}.manual-roster-actions{justify-content:flex-start;flex-wrap:wrap}.manual-ledger-grid .manual-reason,.manual-ledger-grid .primary{grid-column:auto}.ledger-toolbar{align-items:stretch;flex-direction:column}.ledger-search-field,.ledger-pagination{width:100%}.ledger-pagination{justify-content:space-between}}@media(min-width:561px)and (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:minmax(150px,auto) minmax(170px,1fr);gap:10px 12px;min-height:auto;padding:12px 16px 10px;border-right-width:0;border-bottom:1px solid rgba(17,24,39,.1)}nav{display:flex;grid-column:1 / -1;overflow-x:auto}nav button{width:auto;flex:0 0 auto;white-space:nowrap}main{width:100%;min-width:0;padding:16px}}@media(min-width:901px){.app-shell{grid-template-columns:224px minmax(0,1fr)}.brand strong{max-width:100%;font-size:1.08rem}.brand:has(.brand-mark.has-logo){display:grid;grid-template-columns:1fr;gap:8px;align-items:start}.brand:has(.brand-mark.has-logo) .brand-mark.has-logo,.brand:has(.brand-mark.has-logo) .brand-mark.has-logo img{max-width:138px;max-height:58px}.top-actions{grid-template-columns:auto auto auto auto auto}.period-control{grid-template-columns:repeat(3,minmax(58px,1fr))}.manual-ledger-grid{grid-template-columns:1fr}.manual-ledger-row-main{grid-template-columns:minmax(430px,1fr) minmax(148px,.26fr) minmax(104px,.16fr)}.manual-ledger-row-detail{grid-template-columns:minmax(148px,.22fr) minmax(260px,.38fr) minmax(360px,1fr)}}@media(min-width:561px)and (max-width:900px){.app-shell{grid-template-columns:1fr;min-height:auto}.desktop-frame .sidebar,.sidebar{min-height:auto;align-items:center}nav{align-items:center}nav button{min-height:34px}}@media(max-width:560px){body{padding:0}.desktop-frame{width:100%;min-height:100vh;border:0;border-radius:0}.app-shell{grid-template-columns:1fr;min-height:auto}.desktop-frame .sidebar,.sidebar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr;gap:10px;align-items:start;min-height:auto;height:auto;padding:14px;border-right:0;border-bottom:1px solid rgba(17,24,39,.1);background:#fbfbfdf5}.brand{min-height:auto;padding:0}.brand:has(.brand-mark.has-logo){display:flex;gap:12px;align-items:center}.brand:has(.brand-mark.has-logo) .brand-mark.has-logo,.brand:has(.brand-mark.has-logo) .brand-mark.has-logo img{max-width:92px;max-height:40px}.brand strong{max-width:220px;font-size:1rem}.focus-card{gap:6px;padding:10px;margin:0}.focus-card strong{font-size:1.08rem}nav{display:flex;gap:6px;align-items:center;max-width:100%;overflow-x:auto;padding:1px 0 2px;scrollbar-width:thin}nav button{width:auto;min-height:34px;flex:0 0 auto;padding:0 10px;white-space:nowrap}main{width:100%;min-width:0;padding:14px}.top-actions{grid-template-columns:1fr}.period-control{grid-template-columns:repeat(3,minmax(0,1fr))}}.score-grid{align-items:stretch}.total-ranking-panel{display:grid;grid-template-rows:auto 1fr}.total-ranking-panel .ranking{align-content:start}.ledger-panel .table-wrap{overflow-x:auto;scrollbar-gutter:stable}.ledger-panel table{min-width:720px;table-layout:fixed}.ledger-panel th,.ledger-panel td{padding-inline:12px}.ledger-panel th:nth-child(1),.ledger-panel td:nth-child(1){width:112px}.ledger-panel th:nth-child(2),.ledger-panel td:nth-child(2){width:92px}.ledger-panel th:nth-child(3),.ledger-panel td:nth-child(3){width:142px}.ledger-panel th:nth-child(4),.ledger-panel td:nth-child(4){width:70px}.ledger-panel th:nth-child(5),.ledger-panel td:nth-child(5){min-width:120px;overflow:hidden;text-overflow:ellipsis}.ledger-panel th:nth-child(6),.ledger-panel td:nth-child(6){width:84px;padding-right:18px;text-align:right}.ledger-panel .pill{max-width:116px;overflow:hidden;text-overflow:ellipsis}.ledger-row-actions{justify-content:flex-end}@media(max-width:1180px){.ledger-panel .table-wrap{overflow-x:auto}.ledger-panel table{min-width:720px}}.grade-report-overview,.class-risk-panel,.class-board-panel,.class-performance-panel,.dormitory-report-center,.focused-class-report{border-color:#0000000f;background:linear-gradient(180deg,#fffffff5,#f8f9fceb),#fff;box-shadow:0 18px 42px #0f172a0f}.report-source-pill,.verification-pill{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 11px;border-radius:999px;font-size:.74rem;font-weight:800;white-space:nowrap}.report-source-pill.ok,.verification-pill.matched{color:#0b6623;background:#34c75921}.report-source-pill.warning,.verification-pill.different,.verification-pill.missing-detail{color:#7a3b00;background:#ff95002b}.verification-pill.missing-report{color:#6e6e73;background:#8e8e9324}.grade-report-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.grade-report-stats>div{display:grid;align-content:start;gap:5px;min-height:116px;padding:16px;border-radius:18px;background:#ffffffb8;box-shadow:inset 0 0 0 1px #0000000e}.grade-report-stats span,.grade-report-stats em,.grade-report-stats small,.grade-report-period,.risk-side-panel span,.class-focus-card span,.class-focus-card em,.class-focus-card p,.focused-detail-row em{color:#6e6e73;font-size:.78rem;font-style:normal;line-height:1.4}.grade-report-stats strong{font-size:1.8rem;letter-spacing:0}.grade-report-period{margin:2px 0 0}.grade-card-subline{display:block;margin-top:2px}.class-risk-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.34fr);gap:16px;align-items:stretch}.risk-map-svg{display:block;width:100%;min-height:360px;border-radius:22px;background:linear-gradient(180deg,#fbfcff,#f5f7fb)}.risk-point{cursor:pointer;outline:none}.risk-point circle{fill:#8e8e9380;stroke:#ffffffdb;stroke-width:2;transition:transform .16s ease,opacity .16s ease}.risk-point text{fill:#1d1d1f;font-size:10px;font-weight:850;pointer-events:none}.risk-point.trend-stable circle{fill:#34c75980}.risk-point.trend-spike circle{fill:#ff95008c}.risk-point.trend-long-term circle{fill:#0071e375}.risk-point.trend-review circle{fill:#d12f2f8a}.risk-point:hover circle,.risk-point:focus-visible circle{opacity:.86}.risk-side-panel{display:grid;align-content:start;gap:14px;min-width:0}.risk-legend-list{display:grid;gap:9px;padding:12px;border-radius:16px;background:#ffffffad;box-shadow:inset 0 0 0 1px #0000000e}.risk-legend-list span{display:flex;align-items:center;gap:8px;font-weight:800}.trend-dot{width:10px;height:10px;border-radius:50%;background:#8e8e93}.trend-dot.trend-stable{background:#34c759}.trend-dot.trend-spike{background:#ff9500}.trend-dot.trend-long-term{background:#0071e3}.trend-dot.trend-review{background:#d12f2f}.class-focus-card{display:grid;gap:10px;padding:16px;border:1px solid rgba(0,113,227,.16);border-radius:18px;background:linear-gradient(180deg,#ffffffe6,#eff6ffc2);color:#1d1d1f;text-align:left;box-shadow:0 16px 36px #0071e314}.class-focus-card strong{font-size:1.35rem}.class-focus-card div{display:flex;justify-content:space-between;gap:10px}.class-focus-card p{margin:2px 0 0}.class-board-list{display:grid;overflow:hidden;border:1px solid rgba(0,0,0,.065);border-radius:18px;background:#ffffff9e}.class-board-head,.class-board-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(110px,.58fr) minmax(110px,.58fr) minmax(180px,1fr) minmax(128px,.68fr);align-items:center;gap:14px}.class-board-head{min-height:42px;padding:0 16px;color:#6e6e73;background:#f5f5f7e6;font-size:.72rem;font-weight:850}.class-board-row{min-height:58px;padding:0 16px;border-top:1px solid rgba(0,0,0,.06);color:#1d1d1f;background:transparent;text-align:left}.class-board-row.active{background:#0071e313}.class-board-row strong{display:flex;align-items:center;gap:9px;min-width:0}.class-board-row strong>span{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;border-radius:10px;color:#0057c2;background:#0071e31a;font-size:.78rem}.class-board-row strong em,.class-board-row>em{overflow:hidden;color:#6e6e73;font-size:.76rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.performance-sort-bar{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.performance-sort-bar button{min-height:30px;padding:0 10px;border:0;border-radius:999px;background:#f5f5f7;color:#424245;font-size:.74rem;font-weight:850}.performance-sort-bar button.active{color:#fff;background:#1d1d1f}.performance-ladder-list{display:grid;max-height:760px;overflow:hidden;overflow-y:auto;border:1px solid rgba(0,0,0,.065);border-radius:18px;background:#ffffff9e;scrollbar-width:thin}.performance-ladder-head,.performance-ladder-row{display:grid;grid-template-columns:minmax(104px,.6fr) minmax(220px,1.4fr) 90px 110px minmax(160px,1fr) 86px;align-items:center;gap:12px}.performance-ladder-head{min-height:42px;padding:0 16px;color:#6e6e73;background:#f5f5f7eb;font-size:.72rem;font-weight:850}.performance-ladder-row{min-height:62px;padding:0 16px;border-top:1px solid rgba(0,0,0,.06);color:#1d1d1f;background:transparent;text-align:left}.performance-ladder-row.active{background:#0071e313;box-shadow:inset 3px 0 #0071e3}.performance-ladder-row>strong,.performance-ladder-row small,.performance-ladder-row>span,.performance-ladder-row em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.performance-ladder-row small,.performance-ladder-row>span,.performance-ladder-row em{color:#6e6e73;font-size:.76rem;font-style:normal;font-weight:760}.score-balance-bars{display:grid;gap:6px}.score-balance-bars span{display:grid;grid-template-columns:minmax(0,1fr) 58px;align-items:center;gap:8px}.score-balance-bars i{display:block;width:var(--bar);height:8px;border-radius:999px}.score-balance-bars .positive i{background:linear-gradient(90deg,#34c75947,#34c759b3)}.score-balance-bars .negative i{background:linear-gradient(90deg,#d12f2f3d,#d12f2fa8)}.score-balance-bars b{font-size:.76rem;text-align:right}.dormitory-report-grid,.focused-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.report-card,.focused-detail-list{display:grid;align-content:start;gap:12px;min-height:292px;padding:16px;border:1px solid rgba(0,0,0,.06);border-radius:18px;background:#ffffffb8;box-shadow:0 16px 38px #0f172a0b}.report-bar-list .chart-bar-row{grid-template-columns:30px minmax(86px,.46fr) minmax(0,1fr) auto}.weekly-snapshot-card,.pressure-ladder-card,.dormitory-report-center .high-negative-card{grid-column:span 2}.snapshot-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.snapshot-meta-grid>div{display:grid;gap:4px;min-height:66px;padding:11px 12px;border:1px solid rgba(0,0,0,.06);border-radius:14px;background:linear-gradient(180deg,#fff,#f8f9fb)}.snapshot-meta-grid span,.snapshot-ranking-list>strong,.pressure-ladder-head span{color:#6e6e73;font-size:.72rem;font-weight:800}.snapshot-meta-grid strong{color:#1d1d1f;font-size:.88rem;line-height:1.25}.snapshot-ranking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.snapshot-ranking-list{display:grid;gap:8px}.snapshot-warning,.snapshot-note{margin:0;padding:10px 12px;border-radius:12px;font-size:.78rem;font-weight:800;line-height:1.45}.snapshot-warning{color:#9a5a00;background:#ff95001f}.snapshot-note{color:#4f5b68;background:#f5f5f7}.pressure-ladder-list{display:grid;gap:8px;max-height:354px;overflow-y:auto;padding-right:4px}.pressure-ladder-head,.pressure-ladder-row{display:grid;grid-template-columns:minmax(92px,.55fr) 104px 104px 118px minmax(0,1fr);align-items:center;gap:10px}.pressure-ladder-head{min-height:28px;padding:0 10px}.pressure-ladder-row{min-height:42px;padding:0 10px;border:1px solid transparent;border-radius:12px;background:#f5f5f7;text-align:left;transition:transform .16s ease,border-color .16s ease,background .16s ease}.pressure-ladder-row:hover{transform:translateY(-1px);border-color:#0071e32e;background:#fff}.pressure-ladder-row.active{border-color:#0071e342;background:#0071e314}.pressure-ladder-row strong,.pressure-ladder-row b,.pressure-ladder-row em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pressure-ladder-row strong{color:#1d1d1f;font-size:.82rem}.pressure-ladder-row b{color:#d12f2f;font-size:.8rem}.pressure-ladder-row em{color:#6e6e73;font-size:.74rem;font-style:normal;font-weight:800}.report-heatmap,.report-negative-list{max-height:252px;overflow-y:auto;padding-right:4px}.focused-class-grid{grid-template-columns:minmax(250px,.72fr) minmax(0,1fr) minmax(0,1fr)}.focus-balance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.focus-balance-grid>div{display:grid;gap:4px;min-height:78px;padding:12px;border-radius:14px;background:#f5f5f7}.focus-balance-grid span,.focus-event-count,.student-movement-list small{color:#6e6e73;font-size:.74rem;font-weight:800}.focus-balance-grid strong{font-size:1.28rem}.focus-event-count{margin:0}.focus-reason-list{display:grid;gap:7px}.focus-reason-row{display:grid;grid-template-columns:minmax(90px,.72fr) minmax(0,1fr) 58px;align-items:center;gap:8px;min-height:32px;padding:0 8px;border-radius:10px;background:#f5f5f7}.focus-reason-row span{overflow:hidden;color:#424245;font-size:.74rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.focus-reason-row i{display:block;width:var(--bar);height:7px;border-radius:999px}.focus-reason-list.positive i{background:linear-gradient(90deg,#34c75947,#34c759ad)}.focus-reason-list.negative i{background:linear-gradient(90deg,#d12f2f38,#d12f2fa3)}.focus-reason-row b{font-size:.74rem;text-align:right}.focus-reason-empty{min-height:32px;padding:8px;border-radius:10px;color:#86868b;background:#f5f5f7;font-size:.74rem;font-weight:800}.student-movement-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.student-movement-list{display:grid;align-content:start;gap:7px}.student-movement-list>strong{color:#424245;font-size:.78rem}.student-movement-list span{display:flex;justify-content:space-between;gap:8px;min-height:30px;padding:6px 8px;border-radius:10px;background:#f5f5f7}.student-movement-list em{overflow:hidden;color:#424245;font-size:.74rem;font-style:normal;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.recent-class-records{display:grid;gap:7px}.focused-detail-row{display:grid;grid-template-columns:minmax(110px,1fr) auto auto;align-items:center;gap:10px;min-height:38px;padding:0 10px;border-radius:12px;background:#f5f5f7;font-size:.82rem;font-weight:800}.focused-detail-row .verification-pill{justify-self:end}@media(max-width:1180px){.grade-report-stats,.class-risk-layout,.dormitory-report-grid,.focused-class-grid{grid-template-columns:1fr 1fr}.risk-side-panel,.focused-class-grid .class-focus-card{grid-column:1 / -1}.class-board-head,.class-board-row{grid-template-columns:minmax(140px,1fr) 96px 96px minmax(140px,1fr) 104px}}@media(max-width:760px){.grade-report-stats,.class-risk-layout,.dormitory-report-grid,.focused-class-grid{grid-template-columns:1fr}.class-board-list{overflow-x:auto}.class-board-head,.class-board-row{min-width:720px}}.sidebar-account-card{display:grid;gap:7px;margin-top:auto;padding:12px;border-radius:14px;background:#ffffffbd;box-shadow:inset 0 0 0 1px #0000000f}.sidebar-utility-actions{display:grid;gap:8px;margin-top:auto}.sidebar-report-email-action,.sidebar-screenshot-action{width:100%;min-height:38px;justify-content:center;border:1px solid rgba(0,113,227,.12);background:#ffffffbd}.sidebar-utility-actions+.sidebar-account-card{margin-top:8px}.account-identity{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.sidebar-account-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-account-card .secondary{width:100%;min-height:34px;justify-content:center}.role-badge{display:inline-flex;align-items:center;width:max-content;min-height:24px;padding:0 8px;border-radius:999px;color:#0057c2;background:#0071e31a;font-size:.7rem;font-weight:850}.top-actions{gap:12px}.school-hero{grid-template-columns:minmax(0,1fr) minmax(180px,auto) auto}.report-source-selector{display:grid;gap:5px;min-width:190px}.sidebar .brand{display:grid;align-items:start;justify-items:start;gap:7px;min-height:74px}.sidebar .brand .brand-mark.has-logo,.sidebar .brand .brand-mark.has-logo img{max-width:170px;max-height:66px;border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}.sidebar .brand .brand-mark.has-logo{width:min(170px,100%);height:66px;align-items:center;justify-content:flex-start;flex:0 0 auto}.sidebar .brand .brand-mark.has-logo img{width:100%;height:100%;max-width:100%;max-height:100%;object-position:left center}.lockup-preview .brand-mark.has-logo,.lockup-preview .brand-mark.has-logo img{width:auto;height:auto;max-width:220px;max-height:88px;border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}.lockup-preview .brand-mark.has-logo{width:min(220px,100%);max-height:none}.lockup-preview .brand-mark.has-logo img{width:100%}.sidebar .brand strong{font-size:1.08rem;line-height:1.16}.brand-studio{display:grid;grid-template-columns:minmax(220px,.86fr) minmax(260px,1.14fr);gap:14px;align-items:stretch}.brand-studio-preview,.brand-dropzone{min-height:132px;border-radius:18px;background:linear-gradient(180deg,#fbfbfd,#f5f5f7);box-shadow:inset 0 0 0 1px #0000000f}.brand-studio-preview{display:grid;align-content:space-between;gap:12px;padding:16px}.lockup-preview{display:grid;align-content:center;justify-items:start;gap:9px;padding:0}.brand-dropzone{position:relative;display:grid;grid-template-columns:1fr;align-content:center;justify-items:start;gap:10px;padding:14px 16px;color:#1d1d1f;text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.brand-upload-title{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:start;gap:8px;white-space:nowrap}.brand-dropzone:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px #0071e32e,0 14px 28px #0f172a0f}.brand-dropzone span{max-width:none;color:#6e6e73;font-size:.78rem;line-height:1.45}.brand-dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.brand-studio-preview .brand-upload-actions{display:flex;justify-content:flex-start}.brand-studio-preview .brand-upload-actions .secondary{min-height:30px;padding:0 10px;border-radius:999px}.brand-logo-error{grid-column:2;margin:0}.auth-card .auth-brand,.auth-card .auth-brand:has(.brand-mark.has-logo){display:flex;grid-template-columns:none;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:0}.auth-brand-lockup{display:flex;align-items:center;gap:12px;min-width:0}.auth-brand-title{min-width:0}.auth-brand-title strong{display:block;max-width:100%;overflow:hidden;color:#1d1d1f;font-size:1.02rem;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.auth-console-badge{flex:0 0 auto;padding:5px 9px;border:1px solid rgba(0,0,0,.08);border-radius:999px;background:#f5f5f7d1;color:#6e6e73;font-size:.72rem;font-weight:800;line-height:1;white-space:nowrap}.auth-card .auth-brand .brand-mark.has-logo,.auth-card .auth-brand .brand-mark.has-logo img{max-width:86px;max-height:42px}.auth-card .auth-brand.auth-brand:has(.brand-mark.has-logo) .auth-brand-lockup{flex:1 1 auto;flex-direction:column;align-items:flex-start;gap:8px}.auth-card .auth-brand.auth-brand:has(.brand-mark.has-logo) .auth-brand-lockup .brand-mark.has-logo{flex:0 0 auto;width:112px;max-width:min(112px,100%);height:46px;max-height:46px;overflow:hidden}.auth-card .auth-brand.auth-brand:has(.brand-mark.has-logo) .auth-brand-lockup .brand-mark.has-logo img{width:100%;max-width:100%;height:100%;max-height:100%;object-fit:contain}@media(max-width:430px){.auth-card{padding:22px}.auth-card .auth-brand,.auth-card .auth-brand:has(.brand-mark.has-logo){align-items:flex-start;gap:10px}.auth-brand-lockup{flex:1 1 auto;gap:9px;min-width:0}.auth-card .auth-brand.auth-brand:has(.brand-mark.has-logo) .auth-brand-lockup{gap:7px}.auth-card .auth-brand .brand-mark{flex:0 0 auto;width:34px;height:34px;border-radius:11px;font-size:.92rem}.auth-card .auth-brand .brand-mark.has-logo,.auth-card .auth-brand .brand-mark.has-logo img{max-width:58px;max-height:34px}.auth-card .auth-brand.auth-brand:has(.brand-mark.has-logo) .auth-brand-lockup .brand-mark.has-logo{width:92px;max-width:min(92px,100%);height:42px;max-height:42px}.auth-brand-title strong{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.auth-console-badge{margin-top:2px;padding:4px 8px;font-size:.68rem}}@media(max-width:760px){.brand-studio,.account-card-grid,.accounts-hero,.account-admin-strip,.account-management-workspace,.account-editor-form,.account-access-top,.bot-settings-panel,.email-status-grid,.email-settings-grid,.email-payload-preview dl,.report-email-summary{grid-template-columns:1fr}.email-row{display:grid;grid-template-columns:1fr}.bot-provider-control{grid-template-columns:repeat(3,1fr)}.brand-logo-error{grid-column:1}.email-row input{min-width:0}.accounts-hero-facts span{justify-content:flex-start}.email-row .primary{width:100%;justify-content:center}}.dormitory-report-hero{display:grid;gap:16px}.dormitory-report-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dormitory-report-summary{min-width:250px}.report-hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.dormitory-report-workspace{display:grid;gap:14px}.report-filter-row{display:grid;grid-template-columns:minmax(260px,1fr) repeat(4,minmax(118px,.28fr));gap:10px;align-items:end}.report-filter-row>label{display:grid;gap:5px;color:#6e6e73;font-size:.78rem;font-weight:760}.report-filter-row input,.report-filter-row select{width:100%;min-height:36px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#ffffffd1;box-shadow:inset 0 1px #ffffffb3;color:#1d1d1f;font:inherit}.report-filter-row input:disabled,.report-filter-row select:disabled{cursor:not-allowed;border-color:#0000000f;background:#f5f5f7bd;color:#a1a1a6}.report-filter-row input{padding:0 12px}.report-filter-row select{padding:0 36px 0 12px}.report-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px;border-radius:14px;background:#f5f5f7}.report-tabs button{min-height:34px;padding:0 13px;border-radius:11px;color:#424245;background:transparent;font-weight:800;white-space:nowrap}.report-tabs button.active{color:#1d1d1f;background:#fff;box-shadow:0 4px 14px #00000014}.class-record-period-tools{display:flex;gap:7px;overflow-x:auto;padding:4px;border-radius:14px;background:#f5f5f7d1}.class-record-period-tools button{min-height:32px;padding:0 12px;border-radius:10px;color:#424245;background:transparent;font-size:.78rem;font-weight:820;white-space:nowrap}.class-record-period-tools button:hover,.class-record-period-tools button.active{color:#1d1d1f;background:#fff;box-shadow:0 4px 14px #00000014}.dormitory-report-table{display:grid;overflow:hidden;border:1px solid rgba(0,0,0,.06);border-radius:16px;background:#ffffffbd}.report-table-head,.report-table-row{display:grid;align-items:center;gap:10px;min-height:44px;padding:0 14px;border-bottom:1px solid rgba(0,0,0,.055)}.report-table-head{color:#6e6e73;background:#f5f5f7;font-size:.76rem;font-weight:850}.report-table-head span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-table-head button{display:inline-flex;min-width:0;align-items:center;justify-content:flex-start;gap:4px;padding:0;color:inherit;background:transparent;font:inherit;text-align:left;white-space:nowrap}.report-table-head button.active{color:#1d1d1f}.report-table-row{width:100%;color:#1d1d1f;background:transparent;font-size:.84rem;text-align:left}.report-table-body{display:grid;max-height:clamp(360px,58vh,680px);overflow-y:scroll;overscroll-behavior:contain;scrollbar-gutter:stable}.report-table-body .empty-state{margin:14px}.report-table-note,.report-period-hint{margin:0;padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.055);color:#6e6e73;background:#ffffff9e;font-size:.78rem;line-height:1.45}.report-period-hint.muted{color:#86868b;background:#f5f5f7b3}.report-table-row:last-child{border-bottom:0}.report-table-row em{overflow:hidden;color:#6e6e73;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.detail-table .report-table-head,.detail-table .report-table-row{grid-template-columns:96px minmax(82px,.8fr) 70px 82px minmax(96px,.9fr) minmax(150px,1.4fr) 68px}.student-report-table .report-table-head,.student-report-table .report-table-row{grid-template-columns:minmax(72px,.72fr) 62px 48px 76px 108px 118px 112px 104px}.class-records-report-table .report-table-head,.class-records-report-table .report-table-row{grid-template-columns:minmax(128px,.9fr) minmax(86px,.74fr) 132px 132px 150px}.ranking-report-table .report-table-head,.ranking-report-table .report-table-row{grid-template-columns:70px minmax(96px,1fr) 136px 136px 150px}.dormitory-performance-lens{display:grid;gap:12px;padding:16px;border:1px solid rgba(0,0,0,.06);border-radius:18px;background:linear-gradient(180deg,#ffffffeb,#f8fafddb),#fff;box-shadow:0 18px 46px #0000000e}.performance-lens-chart{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.performance-lens-row{display:grid;grid-template-columns:76px minmax(120px,1fr) 64px 68px;align-items:center;gap:10px;min-height:38px;padding:7px 10px;border:1px solid rgba(0,0,0,.055);border-radius:12px;background:#ffffffc2;color:#1d1d1f;text-align:left}.performance-lens-row:hover{border-color:#0071e338;background:#fffffff5;box-shadow:0 10px 28px #00000012;transform:translateY(-1px)}.performance-lens-row strong,.performance-lens-row b,.performance-lens-row small{white-space:nowrap}.performance-lens-row strong{font-size:.82rem;font-weight:850}.performance-lens-row b{color:#bf4800;font-size:.78rem;font-weight:850}.performance-lens-row small{color:#6e6e73;font-size:.74rem;font-weight:760}.lens-track{position:relative;display:block;height:11px;overflow:hidden;border-radius:999px;background:#eceff5}.lens-track i,.lens-track em{position:absolute;top:0;bottom:0;left:0;border-radius:inherit}.lens-track i{width:var(--term-width);background:linear-gradient(90deg,#86868b2e,#86868b61)}.lens-track em{top:3px;bottom:3px;width:var(--weekly-width);background:linear-gradient(90deg,#0071e3,#5ac8fa)}.performance-lens-row.attention .lens-track:after{position:absolute;top:1px;right:2px;width:9px;height:9px;border-radius:50%;background:#ff9f0a;content:""}.performance-lens-legend{display:flex;flex-wrap:wrap;gap:10px 16px;color:#6e6e73;font-size:.76rem;font-weight:760}.performance-lens-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.performance-lens-legend i{width:18px;height:7px;border-radius:999px}.legend-weekly{background:linear-gradient(90deg,#0071e3,#5ac8fa)}.legend-term{background:linear-gradient(90deg,#86868b33,#86868b85)}.legend-check{width:8px!important;height:8px!important;background:#ff9f0a}.student-ranking-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dormitory-student-rank-card{min-height:360px}@media(max-width:1180px){.report-filter-row{grid-template-columns:1fr 1fr}.dormitory-report-table{overflow-x:auto}.report-table-head,.report-table-row{min-width:820px}}@media(max-width:760px){.student-ranking-split{grid-template-columns:1fr}.dormitory-report-hero-top{display:grid}.report-filter-row{grid-template-columns:1fr}}:root{--select-arrow-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M3.6 5.2 7 8.5l3.4-3.3' fill='none' stroke='%236e6e73' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}select:not([multiple]){min-height:40px;padding:0 38px 0 12px;border:1px solid rgba(0,0,0,.1);border-radius:12px;appearance:none;-webkit-appearance:none;background-color:#ffffffe0;background-image:var(--select-arrow-svg);background-repeat:no-repeat;background-position:right 12px center;background-size:14px 14px;box-shadow:inset 0 1px #ffffffb8;color:#1d1d1f;font:inherit;line-height:1.2}select:not([multiple]):hover:not(:disabled){border-color:#0071e338;background-color:#fffffff5}select:not([multiple]):focus-visible{border-color:#0071e37a;box-shadow:0 0 0 4px #0071e31f,inset 0 1px #ffffffb8}select:not([multiple]):disabled{cursor:not-allowed;opacity:1;border-color:#0000000f;background-color:#f5f5f7c2;color:#a1a1a6}
