:root{--ink:#191f28;--muted:#6b7684;--surface:#fff;--surface-muted:#f8fafc;--line:#0f172a14;--accent:#3182f6;--danger:#d14343;--shadow:0 12px 40px #0f172a0f;--sans:"Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Segoe UI", sans-serif;--heading:"Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Segoe UI", sans-serif;font:16px/1.5 var(--sans);letter-spacing:-.01em;color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f6f8}*{box-sizing:border-box}html{scrollbar-gutter:stable both-edges;min-height:100%;overflow-y:scroll}body{min-height:100svh;margin:0;overflow-x:clip}body,button,input,textarea,select{font-family:var(--sans)}#root{min-height:100svh}h1,h2{font-family:var(--heading);color:var(--ink);margin:0;font-weight:800;line-height:1.25}h1{letter-spacing:-.04em;font-size:clamp(2rem,4vw,2.75rem)}h2{letter-spacing:-.03em;font-size:clamp(1.35rem,3vw,1.75rem)}p{color:var(--muted);margin:0}.personal-grade-records-shell{gap:16px;display:grid}.personal-grade-records-toolbar h1{color:var(--ink);margin:0;font-size:22px;font-weight:800;line-height:1.18}.personal-grade-records-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.personal-grade-records-gender-field{background:linear-gradient(#fff 0%,#eff6ff 100%);border:1px solid #3182f62e;border-radius:15px;align-items:center;gap:10px;min-height:44px;margin:0;padding:5px 6px 5px 12px;display:inline-flex;box-shadow:inset 0 1px #ffffffe6,0 10px 18px #3182f614}.personal-grade-records-gender-field legend{float:left;color:var(--muted);padding:0;font-size:12px;font-weight:900;line-height:1}.personal-grade-records-gender-toggle{background:#3182f614;border-radius:12px;gap:4px;padding:3px;display:inline-flex}.personal-grade-records-gender-button{min-width:36px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 10px;font-family:inherit;font-size:13px;font-weight:900}.personal-grade-records-gender-button:hover:not(:disabled){color:var(--accent);background:#ffffffb8}.personal-grade-records-gender-button.is-active{color:#fff;background:#3182f6;box-shadow:0 6px 12px #3182f638}.personal-grade-records-gender-button:disabled{cursor:not-allowed;opacity:.56}.personal-grade-records-export-button{--export-border:#14b8a65c;--export-color:#0f766e;--export-bg-start:#fff;--export-bg-end:#ccfbf1;--export-depth:#0f766e38;--export-shadow:#14b8a626;border:1px solid var(--export-border);background:linear-gradient(180deg, var(--export-bg-start) 0%, var(--export-bg-end) 100%);min-height:44px;color:var(--export-color);box-shadow:inset 0 1px 0 #ffffffe6, inset 0 -1px 0 #0f172a0a, 0 3px 0 var(--export-depth), 0 12px 20px var(--export-shadow);letter-spacing:0;border-radius:14px;padding:0 16px;font-size:14px;font-weight:900;position:relative}.personal-grade-records-export-button:hover:not(:disabled){border-color:color-mix(in srgb, var(--export-color) 40%, transparent);background:linear-gradient(180deg, #fff 0%, var(--export-bg-end) 82%, #fff 160%);box-shadow:inset 0 1px 0 #fffffff5, inset 0 -1px 0 #0f172a0a, 0 4px 0 var(--export-depth), 0 16px 24px var(--export-shadow)}.personal-grade-records-export-button:active:not(:disabled){box-shadow:inset 0 2px 5px #0f172a14, 0 1px 0 var(--export-depth), 0 8px 14px var(--export-shadow);transform:translateY(2px)}.personal-grade-records-export-button--class{--export-border:#6366f157;--export-color:#4338ca;--export-bg-end:#e0e7ff;--export-depth:#4338ca38;--export-shadow:#6366f126}.personal-grade-records-export-button--combined{--export-border:#f59e0b5c;--export-color:#b45309;--export-bg-end:#fef3c7;--export-depth:#b4530938;--export-shadow:#f59e0b26}.personal-grade-records-import-controls{justify-items:end;gap:5px;min-width:0;display:grid}.personal-grade-records-import-controls__buttons{flex-wrap:nowrap;justify-content:flex-end;gap:8px;min-width:0;display:flex}.personal-grade-records-import-controls__button{--import-bg:#f8fafc;--import-border:#94a3b847;--import-color:var(--ink);--import-shadow:#0f172a14;border:1px solid var(--import-border);background:linear-gradient(180deg, #fff 0%, var(--import-bg) 100%);min-height:36px;color:var(--import-color);box-shadow:0 10px 20px var(--import-shadow);white-space:nowrap;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;padding:0 14px 0 28px;font-family:inherit;font-size:12px;font-weight:800;line-height:1;transition:transform .16s,border-color .16s,box-shadow .16s;display:inline-flex;position:relative}.personal-grade-records-import-controls__button:before{content:"";background:var(--import-color);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--import-color) 14%, transparent);border-radius:999px;position:absolute;left:12px}.personal-grade-records-import-controls__button:hover:not(:disabled){box-shadow:0 14px 24px var(--import-shadow);transform:translateY(-1px)}.personal-grade-records-import-controls__button:disabled{cursor:wait;opacity:.7}.personal-grade-records-import-controls__button--attendance{--import-bg:#ecfeff;--import-border:#0891b240;--import-color:#0e7490;--import-shadow:#0891b21f}.personal-grade-records-import-controls__button--club{--import-bg:#f0fdf4;--import-border:#16a34a3d;--import-color:#15803d;--import-shadow:#16a34a1c}.personal-grade-records-import-controls__button--volunteer{--import-bg:#fff7ed;--import-border:#ea580c3d;--import-color:#c2410c;--import-shadow:#ea580c1c}.personal-grade-records-import-controls__message{max-width:min(460px,100%);color:var(--accent);text-align:right;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:11px;font-weight:750;line-height:1.3;overflow:hidden}.personal-grade-records-import-controls__message--error{color:var(--danger)}.personal-grade-records-message{color:var(--accent);background:#3182f614;border:1px solid #3182f629;border-radius:16px;margin:0;padding:12px 14px;font-size:13px;font-weight:750;line-height:1.45}.personal-grade-records-message--error{color:var(--danger);background:#f43f5e14;border-color:#f43f5e2e}.personal-grade-records-upload-status{background:#fff;border:1px solid #0f172a14;border-radius:18px;gap:12px;width:min(100%,520px);margin-top:18px;padding:16px;display:grid;box-shadow:0 14px 30px #0f172a12}.personal-grade-records-upload-status__header{color:var(--ink);text-align:left;justify-content:space-between;align-items:center;gap:12px;display:flex}.personal-grade-records-upload-status__header strong{font-size:15px;font-weight:900}.personal-grade-records-upload-status__header span{color:var(--muted);font-size:12px;font-weight:800}.personal-grade-records-upload-status__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.personal-grade-records-upload-status__item{--status-color:var(--accent);text-align:left;background:#f8fafceb;border:1px solid #94a3b82e;border-radius:14px;gap:8px;min-width:0;padding:12px;display:grid}.personal-grade-records-upload-status__item--attendance{--status-color:#0e7490}.personal-grade-records-upload-status__item--club{--status-color:#15803d}.personal-grade-records-upload-status__item--volunteer{--status-color:#c2410c}.personal-grade-records-upload-status__item span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:850;overflow:hidden}.personal-grade-records-upload-status__item strong{color:var(--status-color);font-variant-numeric:tabular-nums;font-size:22px;font-weight:950;line-height:1}.personal-grade-records-upload-status__item small{color:var(--muted);margin-left:2px;font-size:11px;font-weight:800}.personal-grade-records-upload-status__bar{background:#94a3b82e;border-radius:999px;height:7px;overflow:hidden}.personal-grade-records-upload-status__bar span{border-radius:inherit;background:var(--status-color);height:100%;display:block}.personal-grade-records-upload-status__error{color:var(--danger);text-align:left;margin:0;font-size:13px;font-weight:750;line-height:1.45}.personal-grade-records-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.personal-grade-records-card{background:#fff;border:1px solid #0f172a14;border-radius:22px;gap:14px;min-width:0;padding:18px;display:grid;box-shadow:0 16px 32px #0f172a0f}.personal-grade-records-card__header{align-items:center;gap:10px;min-width:0;display:flex}.personal-grade-records-card__number{width:30px;height:30px;color:var(--accent);font-variant-numeric:tabular-nums;background:#3182f61a;border-radius:10px;flex:0 0 30px;place-items:center;font-size:14px;font-weight:900;display:inline-grid}.personal-grade-records-card h2{min-width:0;color:var(--ink);margin:0;font-size:18px;font-weight:850;line-height:1.22}.personal-grade-records-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.personal-grade-records-mini-grid--attendance{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.personal-grade-records-mini-grid--attendance .personal-grade-records-mini-card{text-align:left;grid-template-columns:minmax(0,1fr) 54px;align-items:center}.personal-grade-records-mini-card{background:var(--surface-muted);text-align:center;border:1px solid #0f172a14;border-radius:16px;align-content:center;justify-items:stretch;gap:9px;min-height:64px;padding:12px;display:grid}.personal-grade-records-mini-card--check{text-align:left;grid-template-columns:auto 1fr;place-items:center start}.personal-grade-records-mini-card--check strong{white-space:nowrap;font-size:13px}.personal-grade-records-mini-card strong{color:var(--ink);word-break:keep-all;font-size:15px;font-weight:800;line-height:1.25}.personal-grade-records-mini-grid--attendance .personal-grade-records-mini-card strong{white-space:nowrap;min-width:0;font-size:14px}.personal-grade-records-mini-card input[type=text],.personal-grade-records-mini-card input:not([type]){width:100%}.personal-grade-records-mini-card input:not([type=checkbox]){min-width:0;height:38px;color:var(--ink);font:inherit;text-align:center;background:#fff;border:1px solid #94a3b842;border-radius:12px;outline:none;padding:0 10px;font-size:14px;font-weight:700}.personal-grade-records-mini-grid--attendance .personal-grade-records-mini-card input:not([type=checkbox]){text-align:center;height:34px;padding:0 8px}.personal-grade-records-mini-card input:not([type=checkbox]):focus{border-color:#3182f685;box-shadow:0 0 0 3px #3182f61a}.personal-grade-records-mini-card input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}@media (width<=720px){.personal-grade-records-card-grid{grid-template-columns:1fr}.personal-grade-records-toolbar{flex-direction:column;align-items:flex-start}.personal-grade-records-actions{justify-content:flex-start;width:100%}.personal-grade-records-import-controls{justify-items:stretch}.personal-grade-records-import-controls__buttons{flex-wrap:wrap;justify-content:flex-start}.personal-grade-records-import-controls__button{flex:140px}.personal-grade-records-import-controls__message{text-align:left}.personal-grade-records-upload-status__grid{grid-template-columns:1fr}}@media (width<=520px){.personal-grade-records-mini-grid{grid-template-columns:1fr}.personal-grade-records-mini-grid--attendance{grid-template-columns:repeat(2,minmax(0,1fr))}}.page{background:var(--page-background);isolation:isolate;--page-background:#f2f4f6;--sticky-header-top:0px;--sticky-header-height:88px;--sticky-stack-gap:4px;--sticky-discovery-height:108px;--sticky-panel-top:calc(var(--sticky-header-top) + var(--sticky-header-height) + var(--sticky-stack-gap));--sticky-table-header-top:calc(var(--sticky-panel-top) + var(--sticky-discovery-height) + 8px);max-width:1320px;margin:0 auto;padding:0 20px 56px;position:relative}.page--auth{background:#f2f4f6;place-items:center;max-width:none;min-height:100svh;padding:40px 20px;display:grid}.app-header{top:var(--sticky-header-top);z-index:36;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:0 0 22px 22px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:6px;padding:14px 20px;display:flex;position:sticky}.app-header__identity{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.app-header__brand,.auth-intro{min-width:0}.app-header__brand{gap:2px;display:grid}.app-header__brand h2{letter-spacing:-.045em;font-size:clamp(1.1rem,1.45vw,1.3rem);line-height:1.06}.app-header__build-badge{color:#3182f6;letter-spacing:.02em;background:#eef5ff;border-radius:999px;align-items:center;width:fit-content;min-height:20px;padding:0 8px;font-size:11px;font-weight:800;display:inline-flex}.school-logo{flex:0 0 clamp(24px,1.7vw,28px);justify-content:center;align-items:center;width:clamp(24px,1.7vw,28px);height:clamp(24px,1.7vw,28px);font-size:clamp(20px,1.45vw,24px);line-height:1;display:inline-flex}.school-logo img{object-fit:contain;width:100%;height:100%;display:block}.app-header__nav{align-items:center;gap:22px;min-width:0;margin-left:18px;display:flex}.app-header__nav-dropdown{position:relative}.app-header__nav-button{color:#6b7684;cursor:pointer;background:0 0;border:0;min-height:40px;padding:0;font-size:15px;font-weight:700;transition:color .16s;position:relative}.app-header__nav-button:hover{color:var(--ink)}.app-header__nav-button--dropdown{background:#f8fafc;border-radius:999px;align-items:center;gap:10px;padding:0 16px;transition:color .16s,background-color .16s,box-shadow .2s;display:inline-flex}.app-header__nav-dropdown.is-open .app-header__nav-button--dropdown,.app-header__nav-button--dropdown:hover{background:#f4f6f8;box-shadow:0 10px 20px #0f172a0f}.app-header__nav-button.is-active{color:var(--ink)}.app-header__nav-button.is-active:after{content:"";background:var(--ink);border-radius:999px;height:3px;position:absolute;bottom:-6px;left:0;right:0}.app-header__nav-button--dropdown.is-active:after{display:none}.app-header__nav-chevron{transform-origin:50%;border-bottom:2px solid;border-right:2px solid;width:8px;height:8px;transition:transform .2s;transform:translateY(-2px)rotate(45deg)}.app-header__nav-dropdown.is-open .app-header__nav-chevron{transform:translateY(2px)rotate(-135deg)}.app-header__mega-menu{z-index:50;opacity:0;visibility:hidden;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffffa;border:1px solid #e5e9f0f5;border-radius:26px;width:min(760px,100vw - 80px);padding:18px;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;top:calc(100% + 14px);left:0;transform:translateY(10px);box-shadow:0 24px 48px #0f172a24}.app-header__nav-dropdown.is-open .app-header__mega-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.app-header__mega-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.app-header__mega-menu--compact{width:min(380px,100vw - 80px)}.app-header__mega-menu-grid--single{grid-template-columns:1fr}.app-header__mega-item{text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e9f0eb;border-radius:20px;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:14px;width:100%;padding:14px;transition:transform .16s,border-color .16s,box-shadow .16s,background-color .16s;display:grid}.app-header__mega-item:hover{background:#fbfdff;border-color:#3182f638;transform:translateY(-1px);box-shadow:0 14px 24px #3182f614}.app-header__mega-item-icon{color:#3182f6;background:linear-gradient(#eef5ff 0%,#e3efff 100%);border-radius:16px;justify-content:center;align-items:center;width:46px;height:46px;font-size:17px;font-weight:800;display:inline-flex}.app-header__mega-item-copy{gap:4px;min-width:0;display:grid}.app-header__mega-item-copy strong{color:var(--ink);letter-spacing:-.02em;font-size:18px;font-weight:800}.app-header__mega-item-copy span{color:#6b7684;font-size:14px;line-height:1.45}.app-header__copy{max-width:58ch;margin-top:8px}.app-header__actions{flex-wrap:nowrap;flex:none;justify-content:flex-end;align-items:center;gap:12px;margin-left:auto;display:flex}.profile-chip{background:var(--surface-muted);border:1px solid #e5e9f0f0;border-radius:16px;align-items:center;gap:8px;width:auto;min-width:0;max-width:160px;padding:8px 10px;display:flex}.profile-chip__avatar{width:34px;height:34px;color:var(--accent);background:#3182f61f;border-radius:999px;flex:0 0 34px;place-items:center;font-size:16px;font-weight:800;display:grid;overflow:hidden}.profile-chip__avatar img{object-fit:cover;width:100%;height:100%}.profile-chip__copy{gap:2px;min-width:0;display:grid}.profile-chip__copy strong{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.auth-shell{justify-content:center;width:100%;display:flex}.auth-panel{grid-template-columns:minmax(0,1.05fr) minmax(360px,.82fr);align-items:center;gap:28px;display:grid}.auth-title{max-width:10ch}.auth-copy{max-width:40ch;margin-top:14px;font-size:17px;line-height:1.7}.auth-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fff;border:1px solid #e5e9f0fa;border-radius:24px;width:min(100%,520px);padding:40px 36px;animation:.55s ease-out both auth-card-enter;box-shadow:0 28px 64px #0f172a1f}.auth-card__header{gap:8px;display:grid}.auth-card__header--center{text-align:center;justify-items:center}.auth-school-badge{background:linear-gradient(#f8fbff 0%,#f3f6fb 100%);border:1px solid #3182f61a;border-radius:999px;align-items:center;gap:12px;margin-bottom:8px;padding:10px 16px 10px 12px;display:inline-flex}.auth-school-badge__logo{border-radius:999px;flex:0 0 46px;width:46px;height:46px;display:block;box-shadow:0 10px 24px #18357d2e}.auth-school-badge__copy{text-align:left;gap:1px;display:grid}.auth-school-badge__copy strong{color:#191f28;letter-spacing:.08em;font-size:12px}.auth-school-badge__copy span{color:#8b95a1;letter-spacing:.08em;font-size:11px}.auth-icon{background:#f8fafc;border-radius:24px;place-items:center;width:72px;height:72px;margin-bottom:4px;font-size:34px;line-height:1;display:grid}.auth-system-title{color:#191f28;letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,2.4rem);font-weight:800}.auth-system-subtitle{color:#8b95a1;font-size:14px;font-weight:600}.auth-note{max-width:32ch;margin-top:8px;font-size:14px;line-height:1.65}.auth-form{gap:16px;margin-top:28px;display:grid}.auth-helper{color:#8b95a1;text-align:center;margin:0;font-size:13px;line-height:1.6}.google-button{width:100%;min-height:56px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #94a3b83d;border-radius:18px;justify-content:center;align-items:center;gap:12px;padding:16px;font-size:16px;font-weight:700;transition:transform .16s,box-shadow .16s,border-color .16s,background-color .16s;display:inline-flex;box-shadow:0 12px 28px #0f172a0d}.google-button:hover{background:#f8fafc;border-color:#3182f633;transform:translateY(-1px);box-shadow:0 16px 34px #0f172a14}.google-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.google-button__mark{color:#fff;background:linear-gradient(135deg,#4285f4 0%,#34a853 50%,#fbbc05 75%,#ea4335 100%);border-radius:999px;place-items:center;width:28px;height:28px;font-size:14px;font-weight:800;display:grid}.auth-error{color:var(--danger);margin:0;font-size:14px;font-weight:700}.auth-submit{width:100%}.auth-loading-card{width:100%;max-width:520px;margin-inline:auto}.detail-profile{align-items:center;gap:18px;min-width:0;display:flex}.detail-profile__avatar-button{cursor:pointer;background:0 0;border:0;flex:none;padding:0}.detail-profile__avatar-button:disabled{cursor:wait}.detail-profile__avatar-button--static{cursor:default}.detail-profile__avatar{background:#eef4ff;border:1px solid #e5e9f0fa;border-radius:999px;width:108px;height:108px;position:relative;overflow:hidden;box-shadow:0 16px 34px #0f172a14}.detail-profile__copy{min-width:0}.detail-profile__fallback{place-items:center;width:100%;height:100%;font-size:40px;font-weight:800;display:grid}.detail-profile__overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffc7;place-items:center;display:grid;position:absolute;inset:0}.detail-profile__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.detail-avatar-note{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.55}.camera-button{align-items:center;gap:8px;display:inline-flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.avatar-spinner{border:3px solid #3182f62e;border-top-color:var(--accent);border-radius:999px;width:30px;height:30px;animation:.82s linear infinite spin}@keyframes auth-card-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.view-switcher{justify-content:center;margin-bottom:16px;display:flex}.view-switcher__track{background:#ffffffeb;border:1px solid #e5e9f0fa;border-radius:24px;gap:8px;padding:8px;display:inline-flex;box-shadow:0 12px 30px #0f172a0f}.view-switcher__button{min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:18px;padding:0 18px;font-size:14px;font-weight:700;transition:background-color .16s,color .16s,box-shadow .16s}.view-switcher__button.is-active{background:var(--accent);color:#fff;box-shadow:0 10px 24px #3182f62e}.hero-card,.toolbar,.form-card,.batch-upload-card,.filter-card,.list-card,.empty-card,.detail-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:28px}.hero-card{grid-template-columns:minmax(0,1.5fr) minmax(280px,.9fr);gap:20px;padding:28px;display:grid}.workspace{grid-template-columns:minmax(0,1.55fr) minmax(340px,.9fr);align-items:start;gap:16px;display:grid}.hero-card,.toolbar{display:none}.workspace{grid-template-columns:minmax(320px,.96fr) minmax(0,1.92fr);gap:20px}.workspace--counseling{grid-template-columns:minmax(280px,.9fr) minmax(0,1.7fr)}.workspace--home{grid-template-columns:minmax(0,1fr)}.home-overview-grid{grid-template-columns:minmax(0,1.92fr) minmax(320px,.98fr);align-items:start;gap:20px;display:grid}.home-overview-grid>.list-card,.home-overview-grid>.empty-card,.home-overview-grid>.home-history-card{margin-top:0}.home-history-card{gap:16px;min-width:0;display:grid}.main-column,.detail-column{min-width:0}.main-column{align-content:start;gap:16px;display:grid}.main-column>.list-card,.main-column>.empty-card{order:1;margin-top:0}.main-column>.home-overview-grid{order:1}.main-column>.form-card{order:2}.main-column>.batch-upload-card{order:3}.detail-column,.home-history-card{top:var(--sticky-panel-top);position:sticky}.hero-content,.toolbar-copy{min-width:0}.hero-badge,.section-label,.toolbar-label{color:var(--accent);letter-spacing:-.01em;margin:0 0 10px;font-size:13px;font-weight:700}.hero-copy{max-width:56ch;margin-top:14px}.hero-side{gap:12px;display:grid}.summary-chip{background:var(--surface-muted);border:1px solid #e5e9f0e6;border-radius:22px;gap:8px;padding:18px 20px;display:grid}.summary-chip span{color:var(--muted);font-size:14px}.summary-chip strong{color:var(--ink);font-size:18px}.summary-chip.is-active{background:#3182f614;border-color:#3182f624}.toolbar{justify-content:space-between;align-items:center;gap:18px;margin-top:16px;padding:20px 24px;display:flex}.toolbar strong{color:var(--ink);font-size:17px;display:block}.toolbar-error,.detail-error{color:var(--danger);margin-top:6px}.detail-error{margin-bottom:0}.toolbar-actions{gap:10px;display:flex}.form-card,.batch-upload-card,.filter-card,.list-card,.empty-card,.detail-card{margin-top:16px;padding:24px}.list-card{flex-direction:column;min-height:0;display:flex;overflow:hidden}.detail-card{margin-top:0}.batch-upload-card__header{align-items:flex-start}.batch-upload-card__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.batch-phase-card{background:linear-gradient(#fbfdff 0%,#f7faff 100%);border:1px solid #e5e9f0f5;border-radius:24px;gap:12px;margin-top:18px;padding:18px 20px;display:grid}.batch-phase-card__steps{flex-wrap:wrap;gap:8px;display:flex}.batch-phase-card__steps span{color:#7b8794;background:#eef2f7;border-radius:999px;align-items:center;min-height:34px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.batch-phase-card__steps span.is-active{color:var(--accent);background:#3182f61a}.batch-phase-card strong{color:var(--ink);font-size:16px}.batch-dropzone{text-align:center;background:#fbfcfe;border:1px dashed #94a3b857;border-radius:28px;justify-items:center;gap:12px;margin-top:16px;padding:28px 24px;transition:border-color .18s,background-color .18s,transform .18s,box-shadow .18s;display:grid}.batch-dropzone.is-dragging{background:#3182f60f;border-color:#3182f673;transform:translateY(-1px);box-shadow:0 14px 32px #3182f614}.batch-dropzone__icon{width:64px;height:64px;color:var(--accent);background:#3182f61a;border-radius:22px;place-items:center;font-size:28px;font-weight:800;display:grid}.batch-dropzone h3{color:var(--ink);margin:0;font-size:24px;font-weight:800}.batch-dropzone p{max-width:42ch}.batch-progress-card{background:#fff;border:1px solid #e5e9f0f5;border-radius:24px;gap:14px;margin-top:18px;padding:20px;display:grid}.batch-progress-card__summary{justify-content:space-between;align-items:center;gap:14px;display:flex}.batch-progress-card__copy{gap:4px;display:grid}.batch-progress-card__copy strong{color:var(--ink);letter-spacing:-.04em;font-size:clamp(1.9rem,4vw,2.5rem);font-weight:800}.batch-stat-list{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.batch-stat-list span{background:var(--surface-muted);min-height:34px;color:var(--muted);border-radius:999px;align-items:center;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.batch-progress-bar{background:#eef2f7;border-radius:999px;width:100%;height:12px;overflow:hidden}.batch-progress-bar__fill{border-radius:inherit;background:linear-gradient(90deg,#8dbbff 0%,#3182f6 100%);height:100%;transition:width .24s}.batch-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.batch-review-panel{background:#fff;border:1px solid #e5e9f0f5;border-radius:24px;padding:20px}.batch-review-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.batch-review-item{background:var(--surface-muted);border:1px solid #e5e9f0eb;border-radius:20px;gap:6px;padding:16px 18px;display:grid}.batch-review-item.is-warning{background:#fff9f0;border-color:#f08c002e}.batch-review-item strong{color:var(--ink);font-size:15px}.batch-review-item p{font-size:14px}.batch-status-chip{min-height:30px;color:var(--accent);background:#3182f614;border-radius:999px;justify-self:start;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.batch-status-chip.is-completed{color:#2f9e44;background:#2f9e441f}.batch-status-chip.is-failed,.batch-status-chip.is-warning{color:#d97706;background:#f08c001f}.batch-status-chip.is-uploading,.batch-status-chip.is-updating{color:var(--accent);background:#3182f61a}.dashboard-shell{gap:16px;display:grid}.dashboard-header-card,.dashboard-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:28px;padding:24px}.dashboard-summary-grid,.dashboard-grade-grid,.dashboard-grid{gap:16px;display:grid}.dashboard-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grade-grid{grid-template-columns:minmax(0,1fr);gap:22px}.dashboard-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.dashboard-card--emphasis{background:linear-gradient(#fff 0%,#f6faff 100%)}.dashboard-total-card{justify-content:space-between;align-items:center;gap:18px;display:flex}.dashboard-total-card .dashboard-card-value{white-space:nowrap;margin-top:0}.dashboard-card-label{color:var(--muted);margin:0;font-size:15px;font-weight:700}.dashboard-card-value{color:var(--ink);letter-spacing:-.04em;margin-top:14px;font-size:clamp(2rem,4vw,3rem);font-weight:800;display:block}.dashboard-card-note{max-width:42ch;margin-top:10px}.dashboard-grade-card{background:#f8fbff;border-color:#d7e2ef;border-radius:14px;align-content:start;gap:10px;padding:12px;display:grid}.dashboard-grade-card h2{color:var(--ink);margin:0;font-size:21px;font-weight:800}.dashboard-class-list{grid-template-columns:repeat(8,minmax(92px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.dashboard-class-item{text-align:center;border:1px solid #cfdceb;border-radius:8px;align-content:center;place-items:center;gap:14px;min-height:122px;padding:16px 8px;display:grid}.dashboard-class-item--grade-1{background:#fff7d9}.dashboard-class-item--grade-2{background:#e8f2ff}.dashboard-class-item--grade-3{background:#e7f8e7}.dashboard-class-item--total{border-color:#b8c9df;box-shadow:inset 0 0 0 2px #ffffffb8}.dashboard-class-name{color:#0b1220;font-size:clamp(1.9rem,3vw,2.55rem);font-weight:900;line-height:1}.dashboard-class-name--total{font-size:clamp(1.2rem,1.8vw,1.55rem);line-height:1.1}.dashboard-class-total{color:#435673;font-size:clamp(1rem,1.5vw,1.25rem);font-weight:800}.dashboard-section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.dashboard-chart-card{min-height:420px}.dashboard-chart-wrap{width:100%;height:320px}.dashboard-empty{text-align:center;place-items:center;min-height:220px;display:grid}.dashboard-empty p{color:#8b95a1}.dashboard-breakdown-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.dashboard-breakdown-item{background:var(--surface-muted);border:1px solid #e5e9f0e6;border-radius:22px;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;display:grid}.dashboard-breakdown-dot{border-radius:999px;width:12px;height:12px}.dashboard-breakdown-main{justify-content:space-between;align-items:center;gap:12px;display:flex}.dashboard-breakdown-main strong{color:var(--ink);font-size:15px}.dashboard-breakdown-main span,.dashboard-breakdown-value{color:var(--muted);font-size:14px;font-weight:700}.form-header,.filter-header{align-items:start}.form-header-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.form-description,.filter-description,.detail-subtitle{max-width:48ch;margin-top:8px}.detail-note{color:var(--muted);margin-top:8px;font-size:14px;display:none}.student-form,.counseling-form{margin-top:20px}.counseling-stack{gap:14px;display:grid}.input-card{background:linear-gradient(#fbfdff 0%,#f7faff 100%);border:1px solid #e5e9f0fa;border-radius:24px;padding:18px;box-shadow:inset 0 1px #ffffffe6,0 8px 20px #0f172a08}.field--card-sub{margin-top:14px}.form-grid,.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field{gap:8px;display:grid}.field--wide{grid-column:1/-1}.field-label{color:var(--ink);font-size:14px;font-weight:700}.field-input{width:100%;min-height:52px;color:var(--ink);background:#fff;border:1px solid #94a3b859;border-radius:16px;outline:none;padding:0 16px;font-size:16px;transition:border-color .16s,box-shadow .16s,background-color .16s}.field-select{cursor:pointer}.field-textarea{resize:vertical;min-height:180px;padding-block:14px}.field-input::placeholder,.field-textarea::placeholder{color:#9aa4b2}.field-input:focus,.field-textarea:focus{border-color:#3182f68c;box-shadow:0 0 0 4px #3182f61a}.field-input.is-error,.field-textarea.is-error{border-color:#d1434399;box-shadow:0 0 0 4px #d1434314}.field-message{min-height:20px;color:var(--muted);font-size:13px}.field-message.is-error{color:var(--danger)}.form-footer,.filter-actions,.detail-actions{justify-content:space-between;align-items:center;gap:16px;margin-top:20px;display:flex}.form-note{font-size:14px}.student-discovery{top:var(--sticky-panel-top);z-index:12;background:var(--page-background);border-radius:28px 28px 0 0;width:100%;margin:0 0 10px;position:sticky}.student-discovery:before{content:"";height:calc(var(--sticky-stack-gap) + 8px);background:var(--page-background);pointer-events:none;position:absolute;bottom:calc(100% - 1px);left:0;right:0}.student-discovery__inner{z-index:1;background:#fff;border:1px solid #e5e9f0f0;border-radius:26px;gap:10px;padding:14px 20px;display:grid;position:relative;box-shadow:0 16px 36px #0f172a14}.student-discovery__search,.student-discovery__filters{min-width:0}.student-discovery__search{display:none}.student-discovery__title{height:42px;color:var(--ink);letter-spacing:-.045em;white-space:nowrap;align-self:center;align-items:center;gap:10px;margin:0;font-size:clamp(1.1rem,1.45vw,1.3rem);font-weight:800;line-height:1;display:inline-flex}.student-discovery__title-icon{flex:0 0 clamp(24px,1.7vw,28px);justify-content:center;align-items:center;width:clamp(24px,1.7vw,28px);height:42px;font-size:1em;line-height:1;display:inline-flex;transform:translateY(1px)}.student-discovery__title-text{align-items:center;height:42px;line-height:1;display:inline-flex;transform:translateY(1px)}.student-discovery__filter-row{grid-template-columns:max-content minmax(0,1fr) max-content;justify-content:flex-start;align-items:center;gap:16px;min-height:42px;margin-bottom:0;display:grid}.student-discovery__module-actions{justify-self:end;min-width:0}.student-discovery__filters{gap:10px;width:100%;display:grid}.student-discovery__filters--inline{grid-template-columns:1fr;align-items:center;gap:12px}.student-discovery__filter-block{gap:8px;width:100%;display:grid}.student-discovery__filter-block--grade,.student-discovery__filter-block--class{min-width:0}.student-discovery__subhead{color:var(--muted);font-size:13px;font-weight:700}.chip-row{gap:8px;width:100%;display:grid}.chip-row--grade{grid-template-columns:repeat(5,minmax(0,1fr))}.chip-row--grade-selected{grid-template-columns:repeat(3,minmax(0,1fr))}.chip-row--grade-inline{flex-wrap:nowrap;flex:0 auto;align-self:center;align-items:center;gap:8px;width:auto;height:42px;display:flex}.chip-row--class-picker{flex-wrap:wrap;align-self:center;align-items:center;gap:8px;width:100%;max-width:100%;display:flex}.chip-row--class-picker .chip-button{border-radius:14px;width:auto;min-width:66px;min-height:36px;padding:0 13px;font-size:13px;font-weight:800;line-height:1}.chip-row--personal-grade-records .chip-button{--class-button-border:#f43f5e52;--class-button-text:#9f1239;--class-button-bg-start:#fffafb;--class-button-bg-end:#ffe4e6;--class-button-depth:#be123c38;--class-button-glow:#e11d481f;--class-button-hover-border:#e11d487a;--class-button-hover-bg-end:#ffe0e5;--class-button-hover-depth:#be123c3d;--class-button-hover-glow:#e11d4829;--class-button-active-border:#be123c80;--class-button-active-bg-start:#fecdd3;--class-button-active-bg-end:#fb7185;--class-button-active-depth:#88133759;--class-button-active-glow:#e11d4833;border-width:1px;border-color:var(--class-button-border);background:linear-gradient(180deg, var(--class-button-bg-start) 0%, var(--class-button-bg-end) 100%);min-height:40px;color:var(--class-button-text);box-shadow:inset 0 1px 0 #ffffffe6, inset 0 -1px 0 #0f172a0f, 0 3px 0 var(--class-button-depth), 0 10px 18px var(--class-button-glow);border-radius:12px;font-weight:900;position:relative}.chip-row--personal-grade-records .chip-button:hover{border-color:var(--class-button-hover-border);background:linear-gradient(180deg, #fff 0%, var(--class-button-hover-bg-end) 100%);box-shadow:inset 0 1px 0 #fffffff2, inset 0 -1px 0 #0f172a0f, 0 4px 0 var(--class-button-hover-depth), 0 14px 22px var(--class-button-hover-glow)}.chip-row--personal-grade-records .chip-button:active{box-shadow:inset 0 2px 4px #0f172a1f, 0 1px 0 var(--class-button-depth), 0 6px 12px var(--class-button-glow);transform:translateY(2px)}.chip-row--personal-grade-records .chip-button.is-active{border-color:var(--class-button-active-border);background:linear-gradient(180deg, var(--class-button-active-bg-start) 0%, var(--class-button-active-bg-end) 100%);color:#fff;box-shadow:inset 0 1px 0 #ffffff85, inset 0 -1px 0 #0f172a29, 0 3px 0 var(--class-button-active-depth), 0 12px 22px var(--class-button-active-glow)}.chip-row--personal-grade-records .chip-button--grade-2{--class-button-border:#0ea5e952;--class-button-text:#075985;--class-button-bg-start:#f8fdff;--class-button-bg-end:#dbeafe;--class-button-depth:#0284c738;--class-button-glow:#0ea5e921;--class-button-hover-border:#0284c77a;--class-button-hover-bg-end:#d8ecff;--class-button-hover-depth:#0284c740;--class-button-hover-glow:#0ea5e92b;--class-button-active-border:#0369a180;--class-button-active-bg-start:#bae6fd;--class-button-active-bg-end:#38bdf8;--class-button-active-depth:#07598559;--class-button-active-glow:#0ea5e933}.chip-row--personal-grade-records .chip-button--grade-3{--class-button-border:#22c55e52;--class-button-text:#166534;--class-button-bg-start:#fbfffc;--class-button-bg-end:#dcfce7;--class-button-depth:#15803d38;--class-button-glow:#22c55e1f;--class-button-hover-border:#15803d7a;--class-button-hover-bg-end:#d5f8e0;--class-button-hover-depth:#15803d40;--class-button-hover-glow:#22c55e29;--class-button-active-border:#16653480;--class-button-active-bg-start:#bbf7d0;--class-button-active-bg-end:#22c55e;--class-button-active-depth:#16653459;--class-button-active-glow:#22c55e33}.chip-row--grade-inline.chip-row--grade,.chip-row--grade-inline.chip-row--grade-selected{grid-template-columns:none}.chip-row--class{grid-template-columns:repeat(8,minmax(0,1fr))}.chip-row--class-inline{align-items:center}.chip-button{--chip-bg:#f8fafc;--chip-border:#94a3b833;--chip-color:#4e5968;--chip-hover-border:#3182f633;--chip-active-bg:#3182f61a;--chip-active-border:#3182f62e;--chip-active-color:var(--accent);--chip-active-shadow:0 8px 18px #3182f61f;border:1px solid var(--chip-border);background:var(--chip-bg);width:100%;min-height:42px;color:var(--chip-color);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:700;transition:transform .16s,background-color .16s,color .16s,border-color .16s,box-shadow .16s;display:inline-flex}.chip-row--grade-inline .chip-button{white-space:nowrap;width:auto;min-width:72px;height:42px;padding:0 16px}.chip-row--grade-inline .chip-button--reset{min-width:96px}.chip-button:hover{border-color:var(--chip-hover-border);transform:translateY(-1px)}.chip-button.is-active{border-color:var(--chip-active-border);background:var(--chip-active-bg);color:var(--chip-active-color);box-shadow:var(--chip-active-shadow)}.chip-button--reset{color:var(--ink);background:#f8fafcf5;border-color:#94a3b82e}.chip-button--all{--chip-bg:#fff1f3;--chip-border:#f48fb15c;--chip-color:#c24672;--chip-hover-border:#e9618c70;--chip-active-bg:#ffe0e8;--chip-active-border:#e15d8980;--chip-active-color:#ad305f;--chip-active-shadow:0 8px 18px #e573972e}.chip-button--grade-1{--chip-bg:#fff8de;--chip-border:#e5cd746b;--chip-color:#8c6a00;--chip-hover-border:#ddb5407a;--chip-active-bg:#ffefb9;--chip-active-border:#ddb5408c;--chip-active-color:#7a5b00;--chip-active-shadow:0 8px 18px #e5bf4a2e}.chip-button--grade-2{--chip-bg:#e9f5ff;--chip-border:#7db2e766;--chip-color:#2563a6;--chip-hover-border:#5f9bd97a;--chip-active-bg:#d9ecff;--chip-active-border:#5f9bd98a;--chip-active-color:#1e5b98;--chip-active-shadow:0 8px 18px #66a8e62e}.chip-button--grade-3{--chip-bg:#edf8ee;--chip-border:#86c28e66;--chip-color:#2f7a3a;--chip-hover-border:#5da86775;--chip-active-bg:#dff1e1;--chip-active-border:#5da86780;--chip-active-color:#276b31;--chip-active-shadow:0 8px 18px #67b57129}.chip-button--reset:disabled{cursor:default;opacity:.5;box-shadow:none;transform:none}.chip-row--class-inline .chip-button{letter-spacing:-.02em;min-height:38px;padding:0 8px;font-size:12px}.infinite-status,.infinite-sentinel{text-align:center;border-radius:20px;margin-top:16px;padding:14px 16px;font-size:14px;font-weight:600}.infinite-status{background:var(--surface-muted);color:var(--muted);border:1px solid #e5e9f0f0}.infinite-status.is-complete{color:var(--accent);background:#3182f614;border-color:#3182f624}.infinite-sentinel{color:var(--muted);background:#f8fafceb;border:1px dashed #94a3b847}.card-header,.detail-header,.section-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.card-header--student-list{grid-template-columns:1fr auto 1fr;align-items:center;gap:0;display:grid}.card-header--student-list>:first-child{text-align:center;grid-column:2;justify-self:center}.card-header--student-list>.card-count{grid-column:3;justify-self:end}.detail-header{align-items:flex-start}.detail-title,.group-title{color:var(--ink);margin:0;font-size:22px;font-weight:800;line-height:1.2}.detail-section+.detail-section{border-top:1px solid #0f172a14;margin-top:28px;padding-top:24px}.card-count,.group-count{background:var(--surface-muted);min-height:36px;color:var(--ink);border-radius:999px;align-items:center;padding:0 14px;font-size:14px;font-weight:700;display:inline-flex}.filter-summary{background:var(--surface-muted);border:1px solid #e5e9f0e6;border-radius:22px;justify-items:end;gap:6px;padding:14px 16px;display:grid}.filter-summary strong{color:var(--ink);font-size:26px}.filter-summary span{color:var(--muted);font-size:13px}.ghost-button,.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:16px;min-height:48px;padding:0 18px;font-size:15px;font-weight:700;transition:transform .16s,box-shadow .16s,background-color .16s}.primary-button{background:var(--accent);color:#fff;box-shadow:0 12px 24px #3182f62e}.secondary-button{background:var(--surface-muted);color:var(--ink)}.ghost-button{color:var(--muted);background:0 0;border:1px solid #94a3b838}.ghost-button:hover,.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.ghost-button:disabled,.primary-button:disabled,.secondary-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.emergency-contacts-shell{--emergency-ink:#0f2f60;--emergency-blue:#173a76;--emergency-blue-soft:#eaf3ff;--emergency-line:#c4d5ee;--emergency-muted:#50627f;--emergency-shadow:0 16px 30px #15366d1f;gap:14px;display:grid}.emergency-contacts-toolbar,.emergency-contacts-preview,.emergency-contacts-card{box-shadow:var(--emergency-shadow);background:#fff;border:1px solid #ccd7ea}.emergency-contacts-toolbar{background:linear-gradient(#fcfdff 0%,#eef4ff 100%);border-radius:18px;justify-content:space-between;align-items:center;gap:18px;padding:20px 22px;display:flex}.emergency-contacts-toolbar .section-label{color:#2563eb;letter-spacing:0;margin-bottom:4px;font-size:12px;font-weight:900}.emergency-contacts-toolbar h1{color:#173a76;letter-spacing:0;font-size:28px;font-weight:900;line-height:1.16}.emergency-contacts-toolbar__copy{color:#4e607d;margin-top:8px;font-size:14px;font-weight:700;line-height:1.6}.emergency-contacts-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.emergency-contacts-actions .ghost-button,.emergency-contacts-actions .primary-button,.emergency-contacts-actions .secondary-button{letter-spacing:0;border:1px solid #b7cbea;border-radius:12px;min-height:42px;padding-inline:14px;font-size:14px;font-weight:900;box-shadow:inset 0 1px #ffffff6b}.emergency-contacts-actions .primary-button{color:#fff;background:linear-gradient(#5a96ff 0%,#1f57c2 100%);border-color:#1f4ea8;box-shadow:inset 0 1px #ffffff6b,0 2px #0b1c4c6b,0 8px 14px #0f245e3d}.emergency-contacts-actions .secondary-button,.emergency-contacts-actions .ghost-button{color:#173a76;background:linear-gradient(#fff 0%,#f5f9ff 100%)}.emergency-contacts-actions .ghost-button{color:#426083}.emergency-contacts-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:18px;display:grid}.emergency-contacts-preview{background:linear-gradient(#eef4fb 0%,#dbe5f2 100%);border-color:#ccd7ea;border-radius:18px;width:100%;min-width:0;padding:12px;box-shadow:inset 0 1px #ffffffb8}.emergency-contacts-paper-head{border-bottom:2px solid #dbe7f8;justify-content:space-between;align-items:end;gap:16px;margin-bottom:0;padding-bottom:14px;display:flex}.emergency-contacts-paper-title-wrap{align-items:center;gap:14px;min-width:0;display:flex}.emergency-contacts-paper-logo{object-fit:contain;flex:0 0 42px;width:42px;height:42px;display:block}.emergency-contacts-paper-head span{color:#c81e1e;letter-spacing:0;margin-bottom:4px;font-size:12px;font-weight:900;display:block}.emergency-contacts-paper-head h2{color:#15396f;letter-spacing:0;font-size:26px;font-weight:900;line-height:1.16}.emergency-contacts-paper-head p{color:#50627f;margin-top:6px;font-size:14px;font-weight:700}.emergency-contacts-paper-head>strong{color:#17408b;background:linear-gradient(#f8fbff 0%,#dbeafe 100%);border:1px solid #b7c9ea;border-radius:999px;justify-content:center;align-items:center;min-width:140px;min-height:42px;padding:0 16px;font-size:18px;font-weight:900;display:inline-flex;box-shadow:inset 0 1px #ffffffeb}.emergency-contact-pages{justify-items:center;gap:18px;display:grid}.emergency-contact-page{background:linear-gradient(#fff 0%,#f6faff 100%);border:1px solid #bfcfe6;grid-template-rows:auto 1fr auto;gap:12px;width:min(794px,100%);min-width:0;min-height:1123px;padding:24px 24px 18px;display:grid;box-shadow:0 22px 50px #0f172a29,0 6px 18px #2563eb1a}.emergency-contact-page footer{color:#516480;justify-content:flex-end;align-items:center;font-size:13px;font-weight:800;display:flex}.emergency-contact-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:194px;align-content:start;align-items:start;gap:12px;display:grid}.emergency-contact-card{min-width:0;height:194px;min-height:194px;max-height:194px;color:inherit;text-align:left;cursor:pointer;background:linear-gradient(#fff 0%,#f8fbff 100%);border:1px solid #c4d5ee;border-radius:22px;grid-template-columns:114px minmax(0,1fr);align-items:start;gap:12px;padding:14px;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #fffffff0,0 12px 24px #15366d1a}.emergency-contact-card:before{content:"";background:linear-gradient(90deg,#1d4ed8 0%,#0ea5e9 52%,#14b8a6 100%);height:5px;position:absolute;inset:0 0 auto}.emergency-contact-card:after{content:"";background:#ffffffb8;height:1px;position:absolute;top:5px;left:0;right:0}.emergency-contact-card--grade-1:before{background:linear-gradient(90deg,#dc2626 0%,#f97316 52%,#fb7185 100%)}.emergency-contact-card--grade-2:before{background:linear-gradient(90deg,#0284c7 0%,#38bdf8 52%,#60a5fa 100%)}.emergency-contact-card--grade-3:before{background:linear-gradient(90deg,#15803d 0%,#22c55e 52%,#84cc16 100%)}.emergency-contact-card:hover{border-color:#9db7e3;transform:translateY(-2px);box-shadow:inset 0 1px #fffffff5,0 18px 30px #15366d24}.emergency-contact-card.is-selected{border-color:#2563eb;box-shadow:inset 0 1px #fffffffa,0 0 0 5px #60a5fa57,0 18px 30px #15366d29}.emergency-contact-card__photo{z-index:1;color:#4c6a98;text-align:center;background:linear-gradient(145deg,#eef5ff 0%,#dbeafe 100%);border:1px solid #b9cae5;border-radius:16px;justify-content:center;place-self:center start;align-items:center;width:114px;height:158px;margin-block:auto;font-size:13px;font-weight:900;line-height:1.35;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #fffffff5,0 0 14px #15366d1a}.emergency-contact-card__photo img{object-fit:cover;object-position:center center;width:100%;height:100%}.emergency-contact-card__body{z-index:1;grid-template-rows:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;height:100%;min-height:0;padding:4px 0;display:grid;position:relative}.emergency-contact-card__meta{color:#18407b;letter-spacing:0;white-space:nowrap;background:linear-gradient(#fffffffa 0%,#e0ecfff0 100%);border:1px solid #c5d6f2;border-radius:999px;align-self:start;align-items:center;gap:7px;width:fit-content;max-width:100%;min-height:34px;padding:0 14px 0 12px;font-size:14px;font-weight:900;display:inline-flex;position:relative;box-shadow:inset 0 1px #fffffffa,inset 0 -1px #6d8bc729,0 6px 12px #2563eb1f}.emergency-contact-card__meta:before{content:"";background:#2563eb;border:1px solid #dbeafe;border-radius:999px;flex:none;width:6px;height:6px}.emergency-contact-card--grade-1 .emergency-contact-card__meta{color:#8c1d34;background:linear-gradient(#fffffffa 0%,#ffe9ebf0 100%);border-color:#f2c9cc;box-shadow:inset 0 1px #fffffffa,inset 0 -1px #c5566d24,0 6px 12px #e11d481f}.emergency-contact-card--grade-1 .emergency-contact-card__meta:before{background:#dc2626;border-color:#ffe4e6}.emergency-contact-card--grade-3 .emergency-contact-card__meta{color:#166043;background:linear-gradient(#fffffffa 0%,#e2f5ebf0 100%);border-color:#c7dfd1;box-shadow:inset 0 1px #fffffffa,inset 0 -1px #2d7f5b1f,0 6px 12px #16a34a1a}.emergency-contact-card--grade-3 .emergency-contact-card__meta:before{background:#16a34a;border-color:#dcfce7}.emergency-contact-card__body strong{color:#0c2d5d;letter-spacing:0;align-self:center;font-size:26px;font-weight:900;line-height:1.1}.emergency-contact-card__phones{align-content:start;align-self:end;gap:6px;display:grid}.emergency-contact-card__phone-row{background:linear-gradient(#fffffffa 0%,#f0f5fff0 100%);border:1px solid #d6e1ef;border-radius:14px;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px;min-width:0;min-height:39px;padding:7px 11px;display:grid;box-shadow:inset 0 1px #fffffff5,0 5px 10px #2457b814}.emergency-contact-card__phone-row:first-child{background:linear-gradient(#fbfdff 0%,#edf5ff 100%);border-color:#c9daf7}.emergency-contact-card__phone-row:nth-child(2){background:linear-gradient(#fcfffe 0%,#edf9f5 100%);border-color:#cbe4de}.emergency-contact-card__phone-label{color:#18407b;letter-spacing:0;text-align:center;background:linear-gradient(#f8fbff 0%,#dbeafe 100%);border:1px solid #bfd1f2;border-radius:999px;justify-content:center;align-items:center;min-width:56px;min-height:26px;padding:0 10px;font-size:11px;font-weight:900;display:inline-flex;box-shadow:inset 0 1px #fffffffa,inset 0 -1px #6382bd29,0 3px 7px #2563eb29}.emergency-contact-card__phone-row:nth-child(2) .emergency-contact-card__phone-label{color:#155e52;background:linear-gradient(#f6fffc 0%,#d8f5ec 100%);border-color:#b9d9d2;box-shadow:inset 0 1px #fffffffa,inset 0 -1px #20786624,0 4px 8px #0f766e24}.emergency-contact-card__phones b{color:#17345f;font-variant-numeric:tabular-nums;letter-spacing:0;white-space:nowrap;align-items:center;min-width:0;min-height:24px;font-size:17px;font-weight:900;line-height:1.22;display:inline-flex}.emergency-contact-card__phone-row.is-missing{background:linear-gradient(#fff8f8 0%,#fff1f2 100%);border-color:#efc2ca}.emergency-contact-card__phone-row.is-missing .emergency-contact-card__phone-label{color:#9f1c34;background:#fffbfcf5;border-color:#efc2ca}.emergency-contact-card__phone-row.is-missing b{color:#a11d35;white-space:normal;word-break:keep-all;font-size:14px}.emergency-contact-empty{text-align:center;background:linear-gradient(#fff 0%,#f3f8ff 100%);border:1px dashed #b9c8e2;border-radius:18px;place-items:center;gap:8px;min-height:280px;padding:24px;display:grid}.emergency-contact-empty strong{color:#183c78;font-size:22px;font-weight:900}.emergency-contact-empty p{color:#56708f;font-size:14px;font-weight:700;line-height:1.7}.emergency-contacts-panel{gap:14px;min-width:0;display:grid;position:sticky;top:96px}.emergency-contacts-card{background:linear-gradient(#fffffffa 0%,#f1f7fff5 100%);border-color:#bfd2ec;border-radius:20px;gap:16px;padding:16px 16px 14px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #fffffff0,0 14px 24px #2563eb1a}.emergency-contacts-card:before{content:"";background:linear-gradient(90deg,#1d4ed8 0%,#0ea5e9 52%,#14b8a6 100%);height:6px;position:absolute;inset:0 0 auto}.emergency-contacts-card h2{color:#14396f;letter-spacing:0;font-size:19px;font-weight:900;line-height:1.2;position:relative}.emergency-contacts-class-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.emergency-contacts-card .field{gap:6px}.emergency-contacts-card .field-label{color:#476180;letter-spacing:0;font-size:12px;font-weight:900}.emergency-contacts-card .field-input{color:#173a76;text-align:center;background:linear-gradient(#fff 0%,#f5f9ff 100%);border:1px solid #b7cbea;border-radius:12px;min-height:42px;font-size:14px;font-weight:800;box-shadow:inset 0 1px #fffffff0,0 6px 10px #2457b812}.emergency-contacts-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.emergency-contacts-stat-grid article{text-align:center;background:linear-gradient(#fff 0%,#f4f8ff 100%);border:1px solid #d0ddef;border-radius:16px;gap:4px;min-width:0;padding:12px 8px 11px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #fffffff0,0 10px 16px #15366d14}.emergency-contacts-stat-grid article:before{content:"";background:linear-gradient(90deg,#2563eb 0%,#38bdf8 100%);border-radius:999px;height:4px;position:absolute;top:0;left:12px;right:12px}.emergency-contacts-stat-grid article:nth-child(2):before{background:linear-gradient(90deg,#0f766e 0%,#14b8a6 100%)}.emergency-contacts-stat-grid span{color:#546985;letter-spacing:0;font-size:12px;font-weight:800;display:block}.emergency-contacts-stat-grid strong{color:#14386f;letter-spacing:0;margin-top:6px;font-size:25px;font-weight:900;line-height:1;display:block}.emergency-contacts-search,.emergency-contacts-phone-row{grid-template-columns:minmax(0,1fr) 74px;align-items:center;gap:8px;display:grid}.emergency-contacts-search .primary-button,.emergency-contacts-phone-row .secondary-button{color:#fff;letter-spacing:0;white-space:nowrap;background:linear-gradient(#5a96ff 0%,#1f57c2 100%);border:1px solid #1f4ea8;border-radius:11px;min-width:74px;min-height:42px;padding:0 10px;font-size:13px;font-weight:900;box-shadow:inset 0 1px #ffffff6b,0 2px #0b1c4c6b,0 8px 14px #0f245e47}.emergency-contacts-phone-row .field-input{font-variant-numeric:tabular-nums;font-size:19px;font-weight:900}.emergency-contacts-candidates{gap:6px;display:grid}.emergency-contacts-candidates button{width:100%;color:inherit;text-align:left;cursor:pointer;background:linear-gradient(#fff 0%,#f6faff 100%);border:1px solid #d4deee;border-radius:10px;gap:4px;padding:9px 10px;display:grid;box-shadow:inset 0 1px #ffffffeb,0 6px 12px #2457b80f}.emergency-contacts-candidates strong{color:#1f3f86;font-size:13px;font-weight:900;line-height:1.25}.emergency-contacts-candidates span{color:#61779a;font-size:12px;font-weight:700}.emergency-contacts-selected{text-align:center;background:linear-gradient(#fff 0%,#f3edff 100%);border:1px solid #ccb9ec;border-radius:12px;justify-self:center;justify-items:center;gap:5px;width:76%;min-height:50px;padding:8px 12px;display:grid;box-shadow:inset 0 1px #ffffffe6,0 6px 12px #4c1d951a}.emergency-contacts-selected span{color:#6b5a98;font-size:12px;font-weight:900}.emergency-contacts-selected strong{color:#4c1d95;font-size:22px;font-weight:900;line-height:1.15}.emergency-contacts-phone-fields{border-top:1px dashed #d2dcec;gap:10px;padding-top:12px;display:grid}.emergency-contacts-status{color:#5f7393;min-height:22px;font-size:12px;font-weight:700;line-height:1.5}.emergency-contacts-status.is-error{color:#9f1239}.record-list{max-height:min(520px, calc(100vh - var(--sticky-panel-top) - 240px));scrollbar-gutter:stable;overscroll-behavior:contain;gap:12px;margin:0;padding:0 6px 0 0;list-style:none;display:grid;overflow-y:auto}.student-grid__groups{gap:10px;padding-top:3px;padding-bottom:3px;padding-right:6px;display:grid}.student-grid{min-height:0;max-height:min(680px, calc(100vh - var(--sticky-panel-top) - 28px));scrollbar-gutter:stable;flex:auto;padding-right:0;position:relative;overflow-y:auto}.student-grid:after{content:"";pointer-events:none;z-index:3;background:linear-gradient(#fff 0%,#fffffff5 48%,#fff0 100%);height:12px;position:absolute;top:-18px;left:0;right:0}.student-grid__list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.student-grid__list--home{grid-template-columns:repeat(4,minmax(0,1fr))}.student-grid__list--counseling{grid-template-columns:repeat(3,minmax(0,1fr))}.student-grid__item{--student-card-bg:var(--surface-muted);--student-card-border:#e5e9f0eb;--student-card-selected-bg:#3182f60f;--student-card-selected-border:#3182f647;--student-card-selected-shadow:0 12px 28px #3182f61f;background:var(--student-card-bg);border:1px solid var(--student-card-border);cursor:pointer;text-align:left;border-radius:22px;grid-template-columns:64px minmax(0,1fr) auto;place-items:center stretch;gap:12px;min-height:98px;padding:12px 14px;transition:transform .16s,box-shadow .16s,border-color .16s,background-color .16s;display:grid;box-shadow:inset 0 1px #ffffffd6,inset 0 -1px #0f172a09,0 3px #0f172a0b,0 7px 14px #0f172a0f}.student-grid__item:hover{transform:translateY(-2px);box-shadow:inset 0 1px #ffffffeb,inset 0 -1px #0f172a0a,0 4px #0f172a0d,0 12px 24px #0f172a17}.student-grid__item.is-selected{border-color:var(--student-card-selected-border);background:var(--student-card-selected-bg);box-shadow:var(--student-card-selected-shadow)}.student-grid__item--summary{cursor:default;grid-template-columns:184px minmax(0,1fr);align-items:start;width:100%}.student-grid__item--summary:hover{box-shadow:none;transform:none}.student-grid__item--home{grid-template-columns:64px minmax(0,1fr)}.student-grid__item--summary .student-avatar.student-grid__avatar{flex-basis:184px;width:184px;height:184px}.student-grid__item--summary .student-grid__content{justify-content:flex-start;align-self:start;gap:10px;padding-top:4px}.student-grid__item--summary .student-grid__identity{gap:6px}.student-grid__item--summary .student-grid__school-number{font-size:24px;line-height:1.15}.student-grid__item--summary .student-grid__name{font-size:30px;font-weight:800;line-height:1.18}.student-grid__item--summary .student-grid__count{min-height:40px;padding:0 16px;font-size:18px;font-weight:800}.student-summary-actions{justify-content:center;gap:8px;width:min(100%,280px);margin-top:2px;display:flex}.student-summary-action{color:#334155;white-space:nowrap;cursor:pointer;background:linear-gradient(#fff 0%,#f8fafc 100%);border:1px solid #94a3b83d;border-radius:12px;flex:1 1 0;min-width:0;max-width:136px;min-height:38px;padding:0 10px;font-family:inherit;font-size:13px;font-weight:900;line-height:1;transition:transform .16s,border-color .16s,box-shadow .16s;box-shadow:inset 0 1px #ffffffdb,0 2px #0f172a0f,0 8px 14px #0f172a0f}.student-summary-action:hover{transform:translateY(-1px);box-shadow:inset 0 1px #ffffffeb,0 3px #0f172a12,0 12px 18px #0f172a14}.student-summary-action--counseling{color:#1d4ed8;background:linear-gradient(#fff 0%,#eaf3ff 100%);border-color:#3182f647}.student-summary-action--grade-record{color:#9f1239;background:linear-gradient(#fff 0%,#fff1f2 100%);border-color:#f43f5e3d}.student-grid__item--grade-1{--student-card-bg:#fff1f2;--student-card-border:#f43f5e3d;--student-card-selected-bg:#ffe4e6;--student-card-selected-border:#dc26266b;--student-card-selected-shadow:0 12px 28px #dc262624}.student-grid__item--grade-2{--student-card-bg:#eaf6ff;--student-card-border:#0ea5e947;--student-card-selected-bg:#dbeafe;--student-card-selected-border:#0284c775;--student-card-selected-shadow:0 12px 28px #0284c729}.student-grid__item--grade-3{--student-card-bg:#ecfdf5;--student-card-border:#22c55e47;--student-card-selected-bg:#dcfce7;--student-card-selected-border:#15803d6b;--student-card-selected-shadow:0 12px 28px #15803d24}.student-avatar{background:#e8f3ff;border-radius:999px;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}.student-avatar img,.detail-profile__avatar-image{object-fit:cover;object-position:center top;width:100%;height:100%}.student-avatar.student-grid__avatar{flex:0 0 64px;width:64px;height:64px}.student-avatar span{place-items:center;width:100%;height:100%;font-size:18px;font-weight:800;display:grid}.student-grid__content{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;min-width:0;display:flex}.student-grid__identity{flex-direction:column;align-items:center;gap:2px;width:100%;min-width:0;display:flex}.student-grid__name{text-overflow:ellipsis;white-space:nowrap;width:100%;min-width:0;color:var(--ink);letter-spacing:-.02em;text-align:center;font-size:14px;font-weight:700;line-height:1.25;display:block;overflow:hidden}.student-grid__school-number,.student-grid__count{color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:0;font-size:15px;font-weight:700}.student-grid__school-number{white-space:nowrap;color:var(--ink);text-align:center;font-size:14px;line-height:1.1}.student-grid__count{min-height:22px;color:var(--accent);white-space:nowrap;background:#fff;border-radius:999px;justify-content:center;align-self:center;align-items:center;padding:0 7px;font-size:11px;font-weight:800;display:inline-flex}.student-grid__item--counseling{grid-template-columns:minmax(0,1fr);align-content:start;justify-items:center;gap:10px;min-height:176px;padding:16px 14px 14px}.student-grid__avatar--counseling{flex-basis:84px!important;width:84px!important;height:84px!important}.student-grid__content--counseling{gap:8px}.student-grid__identity--counseling{flex-flow:wrap;justify-content:center;align-items:baseline;gap:6px}.student-grid__item--counseling .student-grid__school-number,.student-grid__item--counseling .student-grid__name,.student-grid__item--counseling .student-grid__count{width:100%;max-width:100%}.student-grid__item--counseling .student-grid__school-number{width:auto;max-width:none;font-size:15px;line-height:1.2}.student-grid__item--counseling .student-grid__name{white-space:nowrap;word-break:keep-all;width:auto;max-width:none;font-size:15px}.student-grid__item--counseling .student-grid__count{min-height:24px;padding:0 10px;font-size:12px}.record-content{margin-top:4px}.record-item{background:var(--surface-muted);border:1px solid #e5e9f0e6;border-radius:22px;padding:18px}.record-meta{color:var(--ink);justify-content:space-between;align-items:center;gap:12px;display:flex}.record-meta strong{color:var(--ink);font-size:16px}.record-badge{min-height:32px;color:var(--accent);background:#3182f61a;border-radius:999px;align-items:center;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.record-content{color:var(--ink);white-space:pre-wrap;line-height:1.65}.counseling-board{width:100%;grid-template-columns:minmax(0,1fr)!important}.detail-placeholder,.record-empty{text-align:center;justify-items:center;gap:12px;display:grid}.record-empty{padding:20px 0 8px}.empty-card{text-align:center;justify-items:center;gap:12px;padding-block:40px;display:grid}.empty-card p,.detail-placeholder p,.record-empty p{max-width:52ch}.empty-icon{background:var(--surface-muted);width:72px;height:72px;color:var(--accent);border-radius:24px;place-items:center;font-size:28px;font-weight:800;display:grid}.skeleton-list,.record-skeleton-list{gap:12px;display:grid}.toast{z-index:100;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;border:1px solid #3182f633;border-radius:22px;min-width:min(360px,100vw - 32px);max-width:420px;padding:16px 18px;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 18px 40px #0f172a29}.toast strong{color:var(--ink);font-size:15px;display:block}.toast p{color:var(--muted);margin-top:4px;font-size:14px}.toast--error{border-color:#f43f5e3d}.toast--error strong{color:var(--danger)}.skeleton-row,.record-skeleton{background:linear-gradient(90deg,#edf2f7e6,#fffffff2,#edf2f7e6) 0 0/200% 100%;border-radius:22px;animation:1.25s linear infinite pulse}.skeleton-row{height:88px}.record-skeleton{height:140px}@keyframes pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=1080px){.auth-panel,.workspace,.home-overview-grid,.dashboard-summary-grid,.dashboard-grade-grid,.batch-review-grid,.dashboard-grid{grid-template-columns:1fr}.dashboard-class-list{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.detail-column,.home-history-card{position:static}.counseling-board{grid-template-columns:1fr!important}}@media (width<=820px){.page{--sticky-header-top:0px;--sticky-header-height:150px;--sticky-stack-gap:6px;--sticky-discovery-height:132px;padding-inline:16px}.page--auth{padding-inline:16px}.hero-card,.dashboard-summary-grid,.dashboard-grade-grid,.form-grid,.filter-grid{grid-template-columns:1fr}.view-switcher{justify-content:stretch}.view-switcher__track{justify-content:stretch;width:100%}.view-switcher__button{flex:1}.toolbar,.form-footer,.filter-actions,.detail-actions,.detail-header,.section-row,.dashboard-section-header,.app-header,.batch-progress-card__summary,.student-discovery__meta{flex-direction:column;align-items:stretch}.form-header-actions,.toolbar-actions,.detail-profile__actions,.batch-upload-card__actions{flex-direction:column;width:100%}.filter-summary{justify-items:start;width:100%}.student-grid__list,.student-grid__list--home,.student-grid__list--counseling{grid-template-columns:repeat(3,minmax(0,1fr))}.student-grid{max-height:min(560px, calc(100vh - var(--sticky-panel-top) - 36px))}.detail-profile{flex-direction:column;align-items:flex-start;width:100%}.detail-profile__avatar{width:96px;height:96px}.record-meta{flex-direction:column;align-items:flex-start}.dashboard-breakdown-item{grid-template-columns:12px minmax(0,1fr)}.dashboard-breakdown-value{grid-column:2}.dashboard-grade-card h2{font-size:20px}.dashboard-class-list{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-class-item{gap:12px;min-height:112px;padding:14px 8px}.student-discovery__inner{padding:18px}.student-discovery__filters--inline{grid-template-columns:1fr}.student-discovery__filter-row,.chip-row--grade-inline{flex-wrap:wrap;height:auto;min-height:0}.student-discovery__filter-row{grid-template-columns:1fr}.student-discovery__module-actions{justify-self:stretch;width:100%}.chip-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.chip-row--class-picker{gap:6px;width:100%}.chip-row--class-picker .chip-button{flex:72px;min-width:72px}.chip-row--grade-selected{grid-template-columns:repeat(2,minmax(0,1fr))}.chip-row--class,.chip-row--class-inline{grid-template-columns:repeat(4,minmax(0,1fr))}.auth-card{padding:32px 24px}.auth-school-badge{padding-inline:12px}.auth-school-badge__logo{flex-basis:42px;width:42px;height:42px}.auth-title{max-width:none}.profile-chip{min-width:0}.batch-dropzone{padding-inline:18px}.batch-dropzone h3{font-size:22px}.batch-stat-list{justify-content:flex-start}.toast{min-width:auto;max-width:none;top:16px;left:16px;transform:none}}@media (width<=768px){.page{--sticky-header-top:env(safe-area-inset-top,0px);--sticky-header-height:168px;--sticky-stack-gap:6px;--sticky-discovery-height:148px;padding:0 12px 40px}.app-header{border-radius:0 0 20px 20px;gap:14px;margin-bottom:6px;padding:14px}.app-header__brand h2{font-size:1.05rem;line-height:1.08}.app-header__identity{align-items:center;gap:12px;width:100%}.app-header__copy{margin-top:6px;font-size:14px;line-height:1.6}.school-logo{flex-basis:24px;width:24px;height:24px}.app-header__nav{flex-wrap:wrap;gap:18px;width:100%;margin-left:10px}.app-header__nav-dropdown{width:100%}.app-header__nav-button--dropdown{justify-content:space-between;width:100%}.app-header__mega-menu{border-radius:22px;width:100%;margin-top:10px;padding:14px;position:static}.app-header__mega-menu-grid{grid-template-columns:1fr}.app-header__actions{flex-direction:column;align-items:stretch;width:100%}.profile-chip,.app-header__actions>.ghost-button{width:100%}.view-switcher{margin-bottom:12px}.view-switcher__track{border-radius:20px;width:100%;padding:6px}.workspace{flex-direction:column;gap:16px;display:flex}.home-overview-grid{gap:16px}.main-column,.detail-column{width:100%}.hero-card,.toolbar,.form-card,.batch-upload-card,.filter-card,.list-card,.empty-card,.detail-card{border-radius:24px;padding:18px}.hero-card{gap:16px}.toolbar strong{font-size:16px}.student-discovery{z-index:20}.student-discovery__inner{border-radius:22px;gap:14px;width:100%;padding:16px}.student-discovery__search,.student-discovery__search .field,.student-discovery__search .field-input{width:100%}.student-discovery__search .field-input{min-height:56px}.chip-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.chip-row--class-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%}.chip-row--class,.chip-row--class-inline{grid-template-columns:repeat(4,minmax(0,1fr))}.chip-button{justify-content:center;width:100%;min-height:48px}.student-grid__list,.student-grid__list--home,.student-grid__list--counseling{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.student-grid{max-height:540px}.toolbar-actions,.form-header-actions,.detail-profile__actions,.batch-upload-card__actions{gap:10px}.toolbar-actions>button,.form-header-actions>button,.detail-profile__actions>button,.batch-upload-card__actions>button,.form-footer .primary-button{width:100%}.detail-profile__actions .ghost-button{justify-content:center}}@media (width<=560px){.page{--sticky-header-top:env(safe-area-inset-top,0px);--sticky-header-height:156px;--sticky-stack-gap:6px;--sticky-discovery-height:160px;padding-inline:10px}.hero-card,.toolbar,.form-card,.batch-upload-card,.filter-card,.list-card,.empty-card,.detail-card{border-radius:20px}.app-header{border-radius:0 0 20px 20px}.chip-row{grid-template-columns:1fr}.chip-row--class-picker{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.chip-row--class,.chip-row--class-inline,.student-grid__list,.student-grid__list--home,.student-grid__list--counseling{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-class-list{grid-template-columns:1fr}.student-grid{max-height:480px}.student-grid__item{grid-template-columns:52px minmax(0,1fr);min-height:126px;padding:10px}.student-grid__item--counseling{grid-template-columns:minmax(0,1fr);min-height:164px;padding:14px 10px 12px}.student-avatar.student-grid__avatar{flex-basis:52px;width:52px;height:52px}.student-grid__avatar--counseling{flex-basis:72px!important;width:72px!important;height:72px!important}.student-grid__school-number,.student-grid__count,.student-grid__name,.detail-avatar-note{font-size:13px}.student-grid__item--counseling .student-grid__name{font-size:14px}.student-grid__item--counseling .student-grid__count{font-size:11px}.profile-chip__copy span{white-space:normal;text-overflow:unset;overflow:visible}.app-header__identity{flex-wrap:wrap;align-items:center;gap:12px}.school-logo{flex-basis:22px;width:22px;height:22px}.app-header__nav{gap:16px;width:100%;margin-left:0;padding-left:34px}.app-header__nav-button{min-height:34px;font-size:14px}}@media (width<=1080px){.emergency-contacts-layout{grid-template-columns:1fr}.emergency-contacts-preview{width:min(100%,846px)}.emergency-contacts-panel{position:static}}@media (width<=760px){.emergency-contacts-toolbar{flex-direction:column;align-items:stretch;padding:18px}.emergency-contacts-actions{justify-content:stretch}.emergency-contacts-actions .ghost-button,.emergency-contacts-actions .primary-button,.emergency-contacts-actions .secondary-button{flex:calc(50% - 6px)}.emergency-contacts-preview{padding:18px}.emergency-contact-page{min-height:auto;padding:18px}.emergency-contacts-card{border-radius:18px;padding:16px}.emergency-contacts-paper-head{flex-direction:column;align-items:start}.emergency-contacts-paper-head>strong{min-width:128px}.emergency-contact-card-grid,.emergency-contacts-class-grid,.emergency-contacts-stat-grid{grid-template-columns:1fr}.emergency-contact-card-grid{grid-auto-rows:auto}.emergency-contact-card{grid-template-columns:104px minmax(0,1fr);height:auto;min-height:180px;max-height:none}.emergency-contact-card__photo{width:104px;height:144px}}@media (width<=520px){.emergency-contacts-actions .ghost-button,.emergency-contacts-actions .primary-button,.emergency-contacts-actions .secondary-button,.emergency-contacts-search,.emergency-contacts-phone-row{width:100%}.emergency-contacts-search,.emergency-contacts-phone-row{grid-template-columns:1fr}.emergency-contact-card{text-align:center;grid-template-columns:1fr;justify-items:center;min-height:0;padding:14px}.emergency-contact-card__photo{justify-self:center;width:120px;height:156px;margin:0 auto}.emergency-contact-card__body,.emergency-contact-card__phones{width:100%}.emergency-contact-card__meta{justify-self:center}.emergency-contact-card__body strong{font-size:24px}.emergency-contact-card__phone-row{justify-content:center}.emergency-contacts-selected{width:100%}}
