:root{color:#0b1a34;background:#f4f8ff;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--color-navy: #0a1932;--color-blue: #1768d1;--color-blue-light: #eaf3ff;--color-muted: #6d7f98;--color-line: #d4e2f5;--color-surface: rgba(255, 255, 255, .7);--color-error: #a82b31;--shadow-soft: 0 18px 50px rgba(33, 72, 124, .09);--radius-card: 24px;--radius-control: 18px}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:#f4f8ff}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;min-height:100dvh;overflow-x:hidden;background:radial-gradient(circle at 80% 36%,rgba(193,217,250,.42),transparent 33%),radial-gradient(circle at 18% 5%,rgba(255,255,255,.96),transparent 28%),linear-gradient(145deg,#f9fbff,#edf5ff 52%,#f8fbff)}.app-shell__content{width:min(100%,704px);min-height:100vh;min-height:100dvh;margin-inline:auto;padding:clamp(30px,6vh,64px) 28px 48px}.app-shell__content:has(.roster-screen){width:min(100%,1040px);padding-top:28px}.app-shell__content:has(.dashboard-screen){width:min(100%,1120px);padding-top:28px}.app-shell__content:has(.roster-screen) .brand-header{margin-bottom:30px}.app-shell__content:has(.dashboard-screen) .brand-header{margin-bottom:26px}.brand-header{display:flex;min-height:48px;align-items:flex-start;justify-content:space-between;margin-bottom:clamp(62px,11vh,112px)}.brand-logo{display:block;width:105px;height:auto}.brand-header__actions,.app-navigation{display:flex;align-items:center}.brand-header__actions{gap:18px}.app-navigation{gap:4px;padding:4px;border:1px solid var(--color-line);border-radius:12px;background:#ffffffb8}.app-navigation__button{min-height:34px;border:0;border-radius:8px;background:transparent;color:#47617f;cursor:pointer;font-size:14px;font-weight:750;padding:6px 10px}.app-navigation__button[data-active=true]{background:var(--color-navy);color:#fff}.app-navigation__button:focus-visible{outline:3px solid rgba(23,104,209,.28);outline-offset:2px}.app-shell__content:has(.guide-screen){width:min(100%,980px);padding-top:28px}.app-shell__content:has(.guide-screen) .brand-header{margin-bottom:30px}.guide-screen__heading{display:flex;align-items:end;justify-content:space-between;gap:28px}.guide-screen h1{margin:0;color:var(--color-navy);font-size:clamp(36px,6vw,54px);letter-spacing:-.05em;line-height:1.1}.guide-screen__heading p,.guide-count,.guide-card p,.guide-card li{color:var(--color-muted);font-size:16px;line-height:1.65}.guide-screen__heading p{margin:14px 0 0}.guide-search input{width:min(100%,288px);min-height:46px;border:1px solid var(--color-line);border-radius:14px;background:#ffffffd6;color:var(--color-navy);padding:10px 13px}.guide-alert{display:grid;gap:5px;margin-top:28px;border:1px solid #efb9bb;border-radius:16px;background:#fff5f5;color:#7f2028;padding:16px 18px;line-height:1.6}.guide-count{margin:22px 0 14px}.guide-card-list{display:grid;gap:12px}.guide-card{border:1px solid var(--color-line);border-radius:18px;background:#ffffffc7;box-shadow:0 8px 22px #2650890b;overflow:hidden}.guide-card summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;list-style:none;padding:18px 20px}.guide-card summary::-webkit-details-marker{display:none}.guide-card summary span{display:grid;gap:4px}.guide-card summary small{color:var(--color-blue);font-size:12px;font-weight:800}.guide-card summary strong{color:var(--color-navy);font-size:22px}.guide-card summary em{color:var(--color-muted);font-size:14px;font-style:normal;line-height:1.5}.guide-level{flex:0 0 auto;border-radius:999px;font-size:12px;padding:6px 9px}.guide-level--L1{background:#e9f4ec;color:#1e6b37}.guide-level--L2{background:#fff3d8;color:#815a00}.guide-level--L3{background:#ffe6e7;color:#9a232b}.guide-card__body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;border-top:1px solid var(--color-line);padding:20px}.guide-card__body section{border-radius:12px;background:#f7faff;padding:14px}.guide-card__body h2{margin:0;color:var(--color-navy);font-size:16px}.guide-card__body p{margin:8px 0 0}.guide-card__body ol{margin:8px 0 0;padding-left:21px}.guide-card__body li+li{margin-top:6px}.guide-card__parent{grid-column:1 / -1}.guide-card blockquote{margin:9px 0;border-left:3px solid var(--color-blue);color:#274568;font-size:16px;line-height:1.65;padding-left:12px}.guide-escalation{grid-column:1 / -1;margin:0!important;color:#354b68!important}.guide-empty{color:var(--color-muted);padding:24px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-button,.back-button{border:0;background:transparent;color:#47617f;cursor:pointer;font-size:14px;font-weight:700}.text-button{padding:10px 2px}.back-button{display:inline-flex;min-height:42px;align-items:center;gap:8px;padding:8px 0}.entrance__heading{margin-bottom:clamp(52px,8vh,76px)}.entrance__heading--compact{margin-bottom:40px}.entrance h1,.roster-placeholder h1{margin:0;color:var(--color-navy);font-size:clamp(38px,7vw,58px);font-weight:800;letter-spacing:-.055em;line-height:1.08}.entrance__heading p{margin:22px 0 0;color:var(--color-muted);font-size:clamp(18px,3.3vw,25px);font-weight:450;letter-spacing:.015em}.eyebrow{display:block;margin-bottom:14px;color:var(--color-blue);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.choice-stack{display:grid;gap:clamp(20px,3vh,28px)}.choice-button{width:100%;min-height:clamp(88px,13vh,122px);border:1.5px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:0 7px 20px #26508909;color:var(--color-navy);cursor:pointer;font-size:clamp(30px,5vw,42px);font-weight:750;letter-spacing:-.035em;transition:color .16s ease,background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}.choice-button:hover,.choice-button:focus-visible{border-color:#aecbed;outline:none;background:#e2effff0;box-shadow:0 14px 32px #2650891f;color:var(--color-navy);transform:translateY(-2px)}.choice-button[data-variant=primary]{border-color:var(--color-navy);background:linear-gradient(135deg,#0c1e3b,#07152b);box-shadow:0 18px 38px #0819342e;color:#fff}.choice-button:focus-visible{box-shadow:0 0 0 4px #1768d133,0 18px 38px #0819342e}.choice-button:active{transform:translateY(0)}.dashboard-entry{display:flex;width:100%;min-height:68px;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;border:1.5px solid #b8cce8;border-radius:18px;background:#ffffffc7;color:var(--color-navy);cursor:pointer;padding:14px 20px;text-align:left}.dashboard-entry span{font-size:19px;font-weight:850}.dashboard-entry small{color:var(--color-muted);font-size:12px;font-weight:700}.dashboard-entry:hover,.dashboard-entry:focus-visible{border-color:var(--color-blue);outline:none;box-shadow:0 0 0 3px #1768d11f}.login-card{width:min(100%,500px);margin-inline:auto;padding:clamp(28px,6vw,48px);border:1px solid rgba(212,226,245,.9);border-radius:var(--radius-card);background:#ffffffc2;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.legal-notice{width:min(100%,760px)}.legal-notice h1{margin:8px 0 6px}.legal-notice h2{margin:24px 0 6px;font-size:18px}.legal-notice p{margin:0;color:var(--color-muted);line-height:1.7}.access-form{display:grid;gap:12px;margin-top:24px}.access-form label{color:#354b68;font-size:14px;font-weight:700}.access-form input{width:100%;min-height:52px;border:1.5px solid var(--color-line);border-radius:14px;outline:none;background:#ffffffeb;color:var(--color-navy);padding:0 16px}.access-form input:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #1768d11f}.google-login-button{display:flex;min-height:44px;justify-content:center;margin-top:24px}.login-pending{margin:12px 0 0;color:var(--color-muted);font-size:14px;text-align:center}.primary-button{min-height:52px;border:0;border-radius:14px;background:var(--color-navy);color:#fff;cursor:pointer;font-weight:750}.primary-button:disabled{cursor:not-allowed;opacity:.55}.form-error{margin:16px 0 0;color:var(--color-error);font-size:14px}.loading-state,.load-error{padding:48px 0;color:var(--color-muted);text-align:center}.load-error .primary-button{padding-inline:24px}.roster-placeholder__actions{display:flex;justify-content:space-between;margin-bottom:46px}.roster-placeholder h1{overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.roster-screen__actions{display:flex;justify-content:space-between;margin-bottom:34px}.roster-screen__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:28px}.roster-screen__heading h1{margin:0;overflow-wrap:anywhere;color:var(--color-navy);font-size:clamp(34px,6vw,50px);letter-spacing:-.05em;line-height:1.05}.roster-screen__date{display:inline-flex;margin-top:12px;border-radius:999px;background:#1768d11a;color:var(--color-blue);padding:7px 11px;font-size:13px;font-weight:850;line-height:1.2}.roster-screen__heading p{margin:14px 0 0;color:var(--color-muted);font-size:14px}.roster-search{width:min(100%,260px);flex:0 0 260px}.roster-screen__filters{display:flex;align-items:flex-end;gap:10px}.roster-search input{width:100%;min-height:48px;border:1.5px solid var(--color-line);border-radius:15px;outline:none;background:#ffffffe0;color:var(--color-navy);padding:0 16px}.roster-search input:focus,.profile-form input:focus,.profile-form select:focus,.message-dialog textarea:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #1768d11f}.summary-bar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:24px}.attendance-group-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:10px;margin:16px 0;padding:14px;border:1px solid rgba(23,104,209,.16);border-radius:18px;background:#e8f2ff8c}.attendance-group-tab{display:grid;gap:5px;min-height:74px;align-content:center;border:1.5px solid var(--color-line);border-radius:15px;background:#fff;color:var(--color-navy);padding:10px 12px;text-align:left;cursor:pointer}.attendance-group-tab strong{font-size:16px}.attendance-group-tab span{color:var(--color-muted);font-size:12px;font-weight:750}.attendance-group-tab[aria-pressed=true]{border-color:var(--color-blue);background:var(--color-blue);color:#fff;box-shadow:0 9px 22px #1768d133}.attendance-group-tab[aria-pressed=true] span{color:#ffffffd1}.attendance-group-tab--all:not([aria-pressed=true]){border-style:dashed}.roster-lifecycle-actions{display:flex;flex-wrap:wrap;gap:10px;margin:-8px 0 24px}.roster-lifecycle-actions .primary-button,.roster-lifecycle-actions .secondary-button,.roster-lifecycle-actions .dashboard-button{min-height:44px;padding:8px 16px}.dashboard-button{border:1px solid var(--color-blue);border-radius:14px;background:var(--color-blue);color:#fff;cursor:pointer;font:inherit;font-weight:850}.dashboard-button:hover,.dashboard-button:focus-visible{background:var(--color-navy);border-color:var(--color-navy)}.lifecycle-toast{margin:-10px 0 20px;padding:11px 14px;border:1px solid rgba(34,130,82,.22);border-radius:12px;background:#eefcf5eb;color:#17633e;font-size:14px;font-weight:800}.summary-bar__item{min-width:0;padding:12px 6px;border:1px solid rgba(212,226,245,.9);border-radius:14px;background:#ffffffb3;text-align:center}.summary-bar__item>span:first-child{display:block;overflow:hidden;color:var(--color-muted);font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.summary-bar__item strong{display:block;margin-top:4px;color:var(--color-navy);font-size:22px}.dashboard-screen__actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.dashboard-screen__heading{margin-bottom:22px}.dashboard-screen__heading h1{margin:0;color:var(--color-navy);font-size:clamp(38px,6vw,54px);letter-spacing:-.05em;line-height:1}.dashboard-screen__heading p{margin:12px 0 0;color:var(--color-muted);font-size:14px;font-weight:650}.dashboard-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,220px));gap:8px;margin-bottom:16px}.dashboard-view-tabs button,.dashboard-week-controls button{min-height:42px;border:1px solid var(--color-line);border-radius:13px;background:#ffffffd6;color:#47617f;cursor:pointer;padding:8px 16px;font-size:13px;font-weight:850}.dashboard-view-tabs button[aria-pressed=true]{border-color:var(--color-blue);background:var(--color-blue);color:#fff}.dashboard-week-controls{display:flex;align-items:end;gap:8px;margin-bottom:16px;overflow-x:auto;padding-bottom:2px}.dashboard-week-controls label{display:grid;flex:1 0 175px;gap:5px;color:var(--color-muted);font-size:11px;font-weight:800}.dashboard-week-controls input{width:100%;min-height:42px;border:1px solid var(--color-line);border-radius:13px;background:#ffffffe6;color:var(--color-navy);padding:8px 11px;font:inherit;font-size:13px}.dashboard-week-controls button{flex:0 0 auto;white-space:nowrap}.dashboard-week-controls button:disabled{cursor:not-allowed;opacity:.46}.dashboard-filters{display:flex;gap:8px;margin-bottom:22px;overflow-x:auto;padding-bottom:2px}.dashboard-filters button{min-width:70px;min-height:42px;border:1px solid var(--color-line);border-radius:999px;background:#ffffffc7;color:#47617f;cursor:pointer;padding:8px 16px;font-size:13px;font-weight:800}.dashboard-filters button[aria-pressed=true]{border-color:var(--color-navy);background:var(--color-navy);color:#fff}.dashboard-status-controls{display:grid;grid-template-columns:minmax(180px,260px) minmax(220px,1fr) auto;align-items:end;gap:10px;margin:-10px 0 18px}.dashboard-status-controls label{display:grid;gap:5px;color:var(--color-muted);font-size:11px;font-weight:800}.dashboard-status-controls select,.dashboard-status-controls input,.dashboard-status-controls button{width:100%;min-height:42px;border:1px solid var(--color-line);border-radius:13px;background:#ffffffeb;color:var(--color-navy);padding:8px 12px;font:inherit;font-size:13px;font-weight:750}.dashboard-status-controls button{width:auto;min-width:116px;cursor:pointer}.dashboard-status-controls button[aria-pressed=true]{border-color:#c13c3c;background:#fff0f0;color:#a52e2e}.dashboard-status-table-wrap{max-height:calc(100vh - 310px);min-height:360px;overflow:auto;border:1px solid rgba(205,221,242,.96);border-radius:18px;background:#fffffff0;box-shadow:0 8px 24px #21487c0e}.dashboard-status-table{width:100%;min-width:1040px;border-collapse:separate;border-spacing:0;table-layout:fixed}.dashboard-status-table th,.dashboard-status-table td{border-bottom:1px solid #e7eef7;padding:12px 9px;text-align:center;vertical-align:middle}.dashboard-status-table thead th{position:sticky;z-index:3;top:0;background:#eef5ff;color:#49627f;font-size:13px;font-weight:900;letter-spacing:.02em}.dashboard-status-table thead th:first-child,.dashboard-status-table tbody th{width:170px;text-align:left}.dashboard-status-table thead th:nth-child(2){width:145px}.dashboard-status-table thead th:nth-child(3){width:80px}.dashboard-status-table tbody th{position:sticky;z-index:2;left:0;background:#fff;box-shadow:1px 0 #e7eef7}.dashboard-status-table tbody th strong,.dashboard-status-table tbody th small{display:block}.dashboard-status-table tbody th strong{overflow:hidden;color:var(--color-navy);font-size:16px;text-overflow:ellipsis;white-space:nowrap}.dashboard-status-table tbody th small{margin-top:2px;color:var(--color-muted);font-size:12px;font-weight:800}.dashboard-status-row:hover td,.dashboard-status-row:hover th{background:#f8fbff}.dashboard-status-teacher strong{color:#526b88;font-size:13px;font-weight:850}.dashboard-status-summary,.dashboard-status-cell{display:inline-flex;min-width:66px;min-height:34px;align-items:center;justify-content:center;border:1px solid #d8e2ef;border-radius:999px;background:#fff;color:#7a899d;font-size:12px;font-weight:900;line-height:1;white-space:nowrap}.dashboard-status-cell--active{border-color:var(--color-blue);background:var(--color-blue);color:#fff}.dashboard-status-cell--review-missing{border-color:#efb0b0;background:#fff0f0;color:#b42d2d}.dashboard-status-cell--na{border-color:transparent;background:transparent;color:#a9b3c1}.dashboard-status-summary--arrived{border-color:#a9dec0;background:#ecf8f1;color:#177444}.dashboard-status-summary--absent{border-color:#efb0b0;background:#fff0f0;color:#b42d2d}.dashboard-status-summary--unmarked{border-color:#ecd28b;background:#fffaf0;color:#876018}.dashboard-status-table__empty{height:180px;color:var(--color-muted);font-size:13px;font-weight:750}.dashboard-screen--teacher .dashboard-screen__heading h1{font-size:clamp(40px,5vw,58px)}.dashboard-screen--teacher .dashboard-status-controls{grid-template-columns:minmax(260px,1fr) auto}.dashboard-screen--teacher .dashboard-status-table{min-width:1120px}.dashboard-screen--teacher .dashboard-status-table tbody th strong{font-size:18px}.dashboard-screen--teacher .dashboard-status-summary,.dashboard-screen--teacher .dashboard-status-cell{min-height:38px;font-size:13px}.dashboard-loading,.dashboard-error{min-height:220px;padding:70px 24px;border:1px solid var(--color-line);border-radius:var(--radius-card);background:#ffffffb8;color:var(--color-muted);text-align:center}.dashboard-error .primary-button{padding-inline:22px}.dashboard-groups,.dashboard-weekly-groups{display:grid;gap:14px}.dashboard-weekly-group{overflow:hidden;border:1px solid rgba(205,221,242,.96);border-radius:20px;background:#ffffffe0;box-shadow:0 8px 24px #21487c0e}.dashboard-weekly-group__heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px}.dashboard-weekly-group__identity{display:grid;gap:4px}.dashboard-weekly-group__identity small{color:var(--color-blue);font-size:12px;font-weight:900}.dashboard-weekly-group__identity strong{color:var(--color-navy);font-size:20px;overflow-wrap:anywhere}.dashboard-weekly-total{display:grid;min-width:124px;justify-items:end}.dashboard-weekly-total span,.dashboard-weekly-total small{color:var(--color-muted);font-size:11px;font-weight:800}.dashboard-weekly-total strong{margin:1px 0;color:var(--color-blue);font-size:27px;line-height:1}.dashboard-weekdays-scroll{overflow-x:auto;border-top:1px solid #e5edf7;background:#f7fafecc;padding:14px 20px 18px}.dashboard-weekdays{display:grid;min-width:680px;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px}.dashboard-weekday{display:grid;min-width:0;gap:5px;border:1px solid #dce7f4;border-radius:14px;background:#fff;padding:12px}.dashboard-weekday__date{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.dashboard-weekday__date span{color:var(--color-navy);font-size:12px;font-weight:900}.dashboard-weekday__date small,.dashboard-weekday>small{color:var(--color-muted);font-size:10px;font-weight:750}.dashboard-weekday>strong{color:var(--color-blue);font-size:24px;line-height:1.1}.dashboard-weekday>span{color:#47617f;font-size:11px;font-weight:800}.dashboard-group{overflow:hidden;border:1px solid rgba(205,221,242,.96);border-radius:20px;background:#ffffffdb;box-shadow:0 8px 24px #21487c0e}.dashboard-group__toggle{display:flex;width:100%;min-height:74px;align-items:center;justify-content:space-between;gap:16px;border:0;background:transparent;color:var(--color-navy);cursor:pointer;padding:16px 20px 10px;text-align:left}.dashboard-group__toggle>span:first-child{display:flex;align-items:center;gap:10px}.dashboard-group__identity{display:grid;gap:5px}.dashboard-group__identity>span{display:flex;align-items:baseline;gap:10px}.dashboard-group__toggle small{color:var(--color-blue);font-size:12px;font-weight:900}.dashboard-group__toggle strong{font-size:20px;overflow-wrap:anywhere}.dashboard-group__toggle .dashboard-group__marked-at{color:#5f728d;font-size:13px;font-weight:750;line-height:1.35}.dashboard-group__toggle>span:last-child{display:inline-flex;width:34px;height:34px;flex:0 0 34px;align-items:center;justify-content:center;border-radius:50%;background:var(--color-blue-light);color:var(--color-blue);font-size:20px;font-weight:800}.dashboard-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:0 20px 18px}.dashboard-metric{min-width:0;padding:10px 5px;border-radius:12px;background:#f4f7fb;text-align:center}.dashboard-metric span{display:block;overflow:hidden;color:var(--color-muted);font-size:11px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.dashboard-metric strong{display:block;margin-top:3px;color:var(--color-navy);font-size:20px}.dashboard-metric--arrived{background:#ecf8f1}.dashboard-metric--absent{background:#fff0f0}.dashboard-unmarked{display:grid;gap:9px;margin:0 20px 18px;padding:12px;border:1px solid #f3dda3;border-radius:14px;background:#fffaf0}.dashboard-unmarked__label{color:#876018;font-size:13px;font-weight:900}.dashboard-unmarked__students{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}.dashboard-unmarked__students li{display:inline-flex;align-items:baseline;gap:5px;min-width:0;padding:6px 9px;border:1px solid #f0d488;border-radius:999px;background:#fff;color:#4e3a16}.dashboard-unmarked__students strong{overflow:hidden;max-width:160px;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.dashboard-unmarked__students small{color:#866f45;font-size:10px;font-weight:800}.dashboard-students{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:16px 20px 20px;border-top:1px solid #e5edf7;background:#f7fafec7;list-style:none}.dashboard-student{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:12px;border-left:4px solid #9eabbc;border-radius:10px;background:#fff;padding:10px 12px}.dashboard-student strong{overflow:hidden;min-width:0;color:var(--color-navy);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.dashboard-student__details{display:grid;min-width:0;justify-items:end;gap:6px}.dashboard-student__status{flex:0 0 auto;color:var(--color-muted);font-size:11px;font-weight:800;white-space:nowrap}.dashboard-student__absence-reason{color:#a52e2e;font-size:11px;font-weight:850;text-align:right;overflow-wrap:anywhere}.dashboard-student__events{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.dashboard-student__event{display:inline-flex;min-width:26px;min-height:24px;align-items:center;justify-content:center;border:1px solid #cfdded;border-radius:999px;background:#fff;color:#647894;font-size:11px;font-weight:900;line-height:1}.dashboard-student__event--active{border-color:var(--color-blue);background:var(--color-blue);color:#fff}.dashboard-student--arrived{border-left-color:#1e9e58}.dashboard-student--absent{border-left-color:#d94141}.dashboard-students__empty{grid-column:1 / -1;padding:16px;color:var(--color-muted);text-align:center}.roster-support-errors{display:grid;gap:8px;margin:-12px 0 18px}.support-error{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:16px;padding:8px 12px;border:1px solid rgba(168,43,49,.22);border-radius:12px;background:#fff5f6e6;color:var(--color-error);font-size:13px;font-weight:750}.roster-loading,.roster-error,.roster-empty{min-height:240px;padding:70px 24px;border:1px solid var(--color-line);border-radius:var(--radius-card);background:#ffffff94;color:var(--color-muted);text-align:center}.roster-error .primary-button{padding-inline:24px}.student-list{height:min(66vh,620px);min-height:440px;overflow:auto;overscroll-behavior:contain;padding-right:5px;scrollbar-color:#b9cce7 transparent}.student-list__canvas{position:relative;width:100%}.student-list__row{position:absolute;top:0;left:0;width:100%;padding-bottom:14px}.student-card{padding:18px;border:1.5px solid rgba(212,226,245,.95);border-radius:20px;background:#ffffffd6;box-shadow:0 8px 24px #21487c0e}.student-card--selected{border-color:var(--color-blue);box-shadow:0 0 0 3px #1768d11a,0 12px 30px #21487c17}.student-card--correction-pending{border-color:#dc4545;box-shadow:0 0 0 3px #dc45451c}.student-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.student-card__identity-area{flex:1 1 auto;min-width:0}.student-card__identity{display:flex;width:100%;min-width:0;border:0;background:transparent;color:var(--color-navy);cursor:pointer;flex-direction:column;align-items:flex-start;padding:2px;text-align:left}.student-card__name-line{display:flex;max-width:100%;align-items:baseline;flex-wrap:wrap;gap:4px 9px}.student-card__identity strong{overflow:hidden;max-width:390px;font-size:20px;text-overflow:ellipsis;white-space:nowrap}.student-card__grade,.student-card__school{color:var(--color-muted);font-size:13px;font-weight:700}.student-card__attendance-group{border-radius:999px;background:#e8f1ff;color:#1768d1;padding:2px 8px;font-size:12px;font-weight:900}.student-card__school{margin-top:5px}.student-card__classmates{max-width:100%;margin-top:6px;color:#365b85;font-size:13px;font-weight:800;line-height:1.5;overflow-wrap:anywhere}.student-card__labels{display:flex;width:100%;align-items:flex-start;flex-wrap:wrap;gap:6px;margin-top:9px}.profile-label{display:inline-flex;max-width:100%;min-height:28px;align-items:center;gap:6px;border:1px solid currentColor;border-radius:999px;padding:3px 9px 3px 4px;font-size:12px;font-weight:800;line-height:1.35;white-space:normal}.profile-label__icon{display:inline-flex;width:20px;height:20px;flex:0 0 20px;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-size:11px;font-weight:900}.profile-label__text{overflow-wrap:anywhere}.profile-label--van{border-color:#80cda2;background:#e8f8ef;color:#146b3d}.profile-label--van .profile-label__icon{background:#1e9e58}.profile-label--homework{border-color:#f1bd70;background:#fff3df;color:#985006}.profile-label--homework .profile-label__icon{background:#ef8e16}.profile-label--dinner{border-color:#eda0a0;background:#fff0f0;color:#a52e2e}.profile-label--dinner .profile-label__icon{background:#d94141}.profile-label--stay{border-color:#e4ca59;background:#fff8d9;color:#755d00}.profile-label--stay .profile-label__icon{background:#f2c94c;color:#5e4900}.profile-label--detention,.profile-label--note{border-color:#b9a3ed;background:#f3efff;color:#5b3ea8}.profile-label--detention .profile-label__icon,.profile-label--note .profile-label__icon{background:#7755c9}.profile-label--shower{border-color:#83cbd2;background:#eaf9fa;color:#176a72}.profile-label--shower .profile-label__icon{background:#269aa5}.student-card__pickup{display:grid;grid-template-columns:auto auto;gap:2px 8px;color:var(--color-muted);font-size:12px;text-align:right}.student-card__pickup span{color:var(--color-blue);font-weight:800}.student-card__pickup strong{color:var(--color-navy)}.student-card__pickup small{grid-column:1 / -1}.event-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.student-card__correction-start{margin-top:10px;border:1px solid #efaaaa;border-radius:10px;background:#fff8f8;color:#b12e2e;padding:7px 11px;cursor:pointer;font-size:12px;font-weight:850}.student-card__correction{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;border:1px solid #dc4545;border-radius:12px;background:#fff0f0;color:#a31818;padding:9px 11px}.student-card__correction button{border:0;border-radius:9px;background:#c92828;color:#fff;padding:7px 11px;cursor:pointer;font-weight:850}.student-card__attendance-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.event-button{min-width:0;min-height:42px;border:1px solid var(--color-line);border-radius:11px;background:var(--color-blue-light);color:#31577f;cursor:pointer;font-size:13px;font-weight:800}.event-button[aria-pressed=true]{border-color:var(--color-blue);background:var(--color-blue);color:#fff}.event-button:disabled,.clear-button:disabled{cursor:wait;opacity:.55}.student-card__stop-button{min-width:58px;min-height:42px;border:1px solid #e7a5a5;border-radius:11px;background:#fff7f7;color:#aa3939;cursor:pointer;font-size:13px;font-weight:800}.student-card__stop-button:hover,.student-card__stop-button:focus-visible{border-color:#c96b6b;background:#ffe8e8}.student-card__absence-reason{display:inline-flex;max-width:100%;margin:10px 0 0;border:1px solid #eda0a0;border-radius:999px;background:#fff0f0;color:#a52e2e;padding:5px 10px;font-size:12px;font-weight:850;overflow-wrap:anywhere}.student-card__footer{display:flex;min-height:34px;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:12px}.student-card__footer-actions{display:flex;align-items:center;gap:10px}.profile-shortcut-button{min-height:40px;border:1px solid var(--color-blue);border-radius:11px;background:var(--color-blue);color:#fff;cursor:pointer;padding:6px 16px;font-size:13px;font-weight:800}.profile-shortcut-button:focus-visible,.profile-shortcut-button:hover{background:#0f5dbd}.student-card__parent-replies,.dashboard-student__parent-response{display:grid;gap:.2rem;margin-top:.7rem;padding:.7rem .85rem;border-radius:.8rem;background:#eef9f5;color:#176b5d;font-size:.88rem}.guardian-dialog{width:min(760px,calc(100vw - 2rem));max-height:min(880px,calc(100vh - 2rem));overflow-y:auto}.guardian-dialog__header,.guardian-card,.guardian-dialog__invite{display:flex;justify-content:space-between;gap:1rem}.guardian-dialog__header h2,.guardian-dialog__invite h3,.guardian-list h3{margin:.25rem 0}.guardian-dialog__invite{margin:1rem 0;padding:1rem;border-radius:1rem;background:#f2f7ff}.guardian-invite-card{display:grid;justify-items:center;gap:.55rem;min-width:230px}.guardian-invite-card img{width:180px;height:180px;border-radius:.75rem}.guardian-list{display:grid;gap:.75rem}.guardian-card{align-items:center;padding:.9rem 1rem;border:1px solid #dbe5f2;border-radius:.9rem}.guardian-card>div,.guardian-card__toggles{display:flex;flex-wrap:wrap;gap:.55rem .9rem;align-items:center}.guardian-card>div:first-child{flex-direction:column;align-items:flex-start;gap:.15rem}.guardian-dialog__message{color:#087967;font-weight:700}.parent-auth-page,.parent-dashboard{min-height:100vh;color:#09213f;background:linear-gradient(145deg,#eff9f6,#edf5ff 55%,#f9fbff)}.parent-auth-page{display:grid;place-items:center;padding:1rem}.parent-auth-card{width:min(480px,100%);padding:clamp(1.5rem,6vw,2.5rem);border:1px solid rgba(30,127,110,.18);border-radius:1.5rem;background:#fffffff0;box-shadow:0 24px 70px #09213f1f}.parent-brand-mark{display:grid;place-items:center;width:3.2rem;height:3.2rem;margin-bottom:1rem;border-radius:1rem;background:#0b8c78;color:#fff;font-weight:900}.parent-auth-card h1{margin:.35rem 0;font-size:clamp(1.8rem,8vw,2.5rem)}.parent-auth-card>p{color:#62738b;line-height:1.6}.parent-auth-form{display:grid;gap:1rem;margin-top:1.5rem}.parent-auth-form label{display:grid;gap:.4rem;font-weight:800}.parent-auth-form input,.parent-auth-form select,.parent-absence-form textarea{min-height:3.2rem;border:1px solid #cbd9e7;border-radius:.8rem;background:#fff;color:#09213f;font:inherit;padding:.7rem .85rem}.parent-auth-form__checks{display:grid;gap:.75rem}.parent-auth-form__checks label{display:flex;align-items:flex-start}.parent-auth-form__checks input{min-height:auto;margin-top:.15rem}.parent-primary-button{min-height:3.2rem;border:0;border-radius:.85rem;background:#087f6c;color:#fff;font:inherit;font-weight:900;cursor:pointer}.parent-primary-button:disabled{opacity:.55;cursor:wait}.parent-form-error{color:#b4232c;font-weight:700}.parent-test-code{padding:.8rem;border-radius:.7rem;background:#fff6d8}.parent-dashboard{max-width:920px;margin:0 auto;padding-bottom:3rem}.parent-dashboard__topbar{display:flex;justify-content:space-between;gap:1rem;padding:1.25rem;background:#087f6c;color:#fff}.parent-dashboard__topbar h1{margin:.1rem 0;font-size:1.5rem}.parent-dashboard__topbar>div:last-child{display:flex;gap:.5rem;align-items:start}.parent-dashboard__topbar button{border:1px solid rgba(255,255,255,.5);border-radius:.7rem;background:transparent;color:#fff;padding:.6rem .8rem;font-weight:800}.parent-child-tabs{display:flex;gap:.75rem;overflow-x:auto;padding:1rem}.parent-child-tabs button{display:grid;grid-template-columns:auto 1fr;column-gap:.7rem;min-width:220px;padding:.85rem;border:1px solid #d3e2e0;border-radius:1rem;background:#fff;color:#53647c;text-align:left}.parent-child-tabs button[aria-pressed=true]{border-color:#139c86;background:#e7f7f3;color:#09213f}.parent-child-tabs button>span{grid-row:1 / span 2;display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:50%;background:#139c86;color:#fff;font-weight:900}.parent-child-tabs small{grid-column:2}.parent-child-heading,.parent-status-section,.parent-absence-form,.parent-replies{display:flex;justify-content:space-between;gap:1rem;align-items:end}.parent-child-heading h2{margin:.2rem 0;font-size:1.8rem}.parent-child-heading p{margin:0;color:#65778d}.parent-preferences{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.parent-preferences>span{width:100%;text-align:right;font-weight:900}.parent-preferences label{padding:.45rem .6rem;border-radius:999px;background:#eef6f5;font-size:.88rem}.parent-status-section h2{margin-top:0}.parent-status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.parent-status-card{display:grid;gap:.35rem;min-height:125px;padding:1rem;border:1px solid #dbe4e9;border-radius:.9rem;color:#687991}.parent-status-card strong{color:#213653;font-size:1.35rem}.parent-status-card small{align-self:end}.parent-status-card--active{border-color:#75cbbb;background:#eefaf7}.parent-status-card--active strong{color:#087f6c}.parent-status-card em{color:#a14628;font-size:.85rem;font-style:normal}.parent-absence-form h3,.parent-replies h3{margin-top:0}.parent-reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem}.parent-reason-grid button{min-height:2.8rem;border:1px solid #c9d9e1;border-radius:.7rem;background:#fff;font-weight:800}.parent-reason-grid button[aria-pressed=true]{border-color:#087f6c;background:#087f6c;color:#fff}.parent-absence-form textarea{width:100%;min-height:100px;resize:vertical;margin-bottom:.75rem}.parent-replies p{display:grid;grid-template-columns:auto 1fr;gap:.2rem .5rem;padding:.75rem 0;border-bottom:1px solid #e5ecef;margin:0}.parent-replies small{grid-column:2;color:#718198}.parent-loading,.parent-empty{margin:1rem;padding:2rem;border-radius:1rem;background:#fff;text-align:center}@media(max-width:620px){.guardian-dialog__invite,.guardian-card,.parent-child-heading{flex-direction:column;align-items:stretch}.guardian-invite-card{min-width:0}.parent-dashboard__topbar{position:sticky;top:0;z-index:4}.parent-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-reason-grid{grid-template-columns:repeat(2,1fr)}.parent-preferences{justify-content:flex-start}.parent-preferences>span{text-align:left}}.clear-button,.retry-button,.secondary-button{border:1px solid var(--color-line);border-radius:11px;background:#fff;color:#47617f;cursor:pointer;font-weight:750}.clear-button{min-height:32px;padding:4px 12px;font-size:12px}.student-card__save-state{display:inline-flex;min-height:28px;align-items:center;gap:8px;color:var(--color-muted);font-size:12px;font-weight:700}.retry-button{padding:4px 9px;color:var(--color-error);font-size:12px}.loading-more{padding:24px;color:var(--color-muted);text-align:center}.roster-workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.9fr);align-items:start;gap:28px;margin-top:28px}.roster-workspace__attendance,.roster-workspace__profile{min-width:0}.profile-panel{padding:clamp(20px,4vw,30px);border:1px solid var(--color-line);border-radius:var(--radius-card);background:#ffffffb8;box-shadow:var(--shadow-soft)}.profile-panel--side{position:sticky;top:24px;max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain}.profile-panel__heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.profile-panel__heading .eyebrow{margin-bottom:7px}.profile-panel__heading h2{margin:0;color:var(--color-navy);font-size:24px}.secondary-button{min-height:42px;padding:8px 15px}.profile-panel__empty{margin:-8px 0 18px;color:var(--color-error);font-weight:750}.student-profile-fields__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profile-form label,.message-dialog label{display:grid;gap:7px;color:#354b68;font-size:13px;font-weight:750}.profile-form input,.profile-form select,.message-dialog textarea{width:100%;border:1.5px solid var(--color-line);border-radius:12px;outline:none;background:#fffffff0;color:var(--color-navy)}.profile-form input,.profile-form select{min-height:44px;padding:0 12px}.profile-form input:disabled,.profile-form select:disabled{background:#f4f7fb;color:#8796aa}.student-profile-fields__stay{display:grid;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--color-line)}.student-profile-fields__program{display:grid;gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid var(--color-line)}.student-profile-fields__program>label{max-width:260px}.student-profile-fields__homework{display:grid;gap:16px;padding:16px;border:1px solid rgba(23,104,209,.2);border-radius:14px;background:var(--color-blue-light)}.student-profile-fields__homework-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.student-profile-fields__homework-days,.student-profile-fields__van-days{display:grid;gap:10px}.student-profile-fields__van-days{grid-column:1 / -1}.student-profile-fields__homework-days h3,.student-profile-fields__van-days h3{margin:0;color:var(--color-navy);font-size:14px}.student-profile-fields__homework-days>div,.student-profile-fields__van-days>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.profile-form .student-profile-fields__homework-days label,.lifecycle-form .student-profile-fields__homework-days label,.profile-form .student-profile-fields__van-days label,.lifecycle-form .student-profile-fields__van-days label{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 10px;border:1.5px solid var(--color-line);border-radius:12px;background:#fff;cursor:pointer}.profile-form .student-profile-fields__van-days label,.lifecycle-form .student-profile-fields__van-days label{align-items:stretch;flex-direction:column;cursor:default}.student-profile-fields__van-days label>span{font-size:13px;font-weight:800}.student-profile-fields__van-days select{width:100%}.profile-form .student-profile-fields__homework-days input[type=checkbox],.lifecycle-form .student-profile-fields__homework-days input[type=checkbox],.profile-form .student-profile-fields__van-days input[type=checkbox],.lifecycle-form .student-profile-fields__van-days input[type=checkbox]{width:20px;min-height:20px;margin:0;padding:0;accent-color:var(--color-blue)}.student-profile-fields__dinner{display:grid;gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid var(--color-line)}.student-profile-fields__dinner>label{max-width:260px}.student-profile-fields__dinner-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.student-profile-fields__stay h3{margin:0;color:var(--color-navy);font-size:14px}.student-profile-fields__stay-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.student-profile-fields__notes{display:grid;gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid var(--color-line)}.student-profile-fields__notes>h3,.student-profile-fields__detentions>h4,.student-profile-fields__special-notes>h4{margin:0;color:var(--color-navy);font-size:14px}.student-profile-fields__detentions,.student-profile-fields__special-notes{display:grid;gap:10px;padding:16px;border:1px solid rgba(119,85,201,.22);border-radius:14px;background:#f8f5ff}.profile-form .student-profile-fields__detentions>label,.lifecycle-form .student-profile-fields__detentions>label,.profile-form .student-profile-fields__special-notes>label:not(.student-profile-fields__other-note),.lifecycle-form .student-profile-fields__special-notes>label:not(.student-profile-fields__other-note){display:flex;align-items:flex-start;gap:9px;min-height:44px;padding:10px 12px;border:1.5px solid #d8cdef;border-radius:12px;background:#fff;cursor:pointer}.profile-form .student-profile-fields__detentions input[type=checkbox],.lifecycle-form .student-profile-fields__detentions input[type=checkbox],.profile-form .student-profile-fields__special-notes input[type=checkbox],.lifecycle-form .student-profile-fields__special-notes input[type=checkbox]{width:20px;min-height:20px;flex:0 0 20px;margin:0;padding:0;accent-color:#7755c9}.profile-form__actions{display:flex;align-items:center;gap:16px;margin-top:20px}.profile-form__actions .primary-button{min-width:150px;padding-inline:18px}.profile-form__status{color:var(--color-muted);font-size:13px}.dialog-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:22px;background:#06152b7a}.message-dialog{width:min(100%,560px);max-height:min(760px,90vh);overflow:auto;padding:26px;border-radius:var(--radius-card);background:#f8fbff;box-shadow:0 26px 70px #06152b40}.lifecycle-dialog{width:min(100%,680px);max-height:min(820px,90vh);overflow:auto;padding:26px;border-radius:var(--radius-card);background:#f8fbff;box-shadow:0 26px 70px #06152b40}.lifecycle-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.lifecycle-dialog__header h2{margin:0;color:var(--color-navy)}.lifecycle-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lifecycle-form__grid--identity{grid-template-columns:repeat(3,minmax(0,1fr))}.lifecycle-form label{display:grid;gap:7px;color:#354b68;font-size:13px;font-weight:750}.lifecycle-form input,.lifecycle-form select{width:100%;min-height:44px;border:1.5px solid var(--color-line);border-radius:12px;outline:none;background:#fffffff0;color:var(--color-navy);padding:0 12px}.lifecycle-form input:focus,.lifecycle-form select:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #1768d11f}.lifecycle-form__profile,.candidate-list{display:grid;gap:10px;margin:20px 0 0;padding:16px;border:1px solid var(--color-line);border-radius:14px}.lifecycle-form__profile legend,.candidate-list legend{padding:0 6px;color:var(--color-navy);font-size:14px;font-weight:800}.lifecycle-form>.primary-button,.lifecycle-dialog__confirm{width:100%;margin-top:14px}.lifecycle-form>.secondary-button{margin-top:14px}.candidate-list label{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;background:#fff;color:#354b68;cursor:pointer;font-size:13px;font-weight:700;line-height:1.4}.candidate-list input{margin-top:2px}.lifecycle-confirmation{display:grid;gap:6px;margin-top:18px;padding:14px;border:1px solid rgba(23,104,209,.2);border-radius:12px;background:var(--color-blue-light);color:var(--color-muted);font-size:13px}.lifecycle-confirmation strong{color:var(--color-navy);font-size:15px}.lifecycle-dialog__empty{color:var(--color-muted);text-align:center}.attendance-group-manager{display:grid;gap:14px}.attendance-group-manager__intro,.attendance-group-manager__count,.attendance-group-manager__message{margin:0;color:var(--color-muted)}.attendance-group-manager__quick-groups{display:flex;flex-wrap:wrap;gap:8px}.group-chip{min-height:38px;border:1.5px solid var(--color-line);border-radius:999px;background:#fff;color:var(--color-navy);padding:7px 14px;font-weight:800;cursor:pointer}.group-chip--active{border-color:var(--color-blue);background:var(--color-blue-light);color:var(--color-blue)}.attendance-group-manager__target,.attendance-group-manager__filters label{display:grid;gap:7px;color:#354b68;font-size:13px;font-weight:750}.attendance-group-manager__target input,.attendance-group-manager__filters input,.attendance-group-manager__filters select{width:100%;min-height:44px;border:1.5px solid var(--color-line);border-radius:12px;outline:none;background:#fff;color:var(--color-navy);padding:0 12px}.attendance-group-manager__target input:focus,.attendance-group-manager__filters input:focus,.attendance-group-manager__filters select:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #1768d11f}.attendance-group-manager__filters,.attendance-group-manager__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attendance-group-manager__select-all,.attendance-group-manager__student{display:flex;align-items:center;gap:11px;cursor:pointer}.attendance-group-manager__select-all{color:var(--color-navy);font-size:14px;font-weight:800}.attendance-group-manager__students{display:grid;gap:8px;max-height:330px;overflow:auto;padding:10px;border:1px solid var(--color-line);border-radius:14px;background:#e8f2ff73}.attendance-group-manager__student{min-height:58px;padding:10px 12px;border-radius:11px;background:#fff}.attendance-group-manager__student>span{display:grid;gap:3px}.attendance-group-manager__student small{color:var(--color-muted)}.attendance-group-manager__actions button{width:100%}.attendance-group-manager__message{color:#087967;font-weight:800}.absence-reason-form>p{margin:0 0 16px;color:var(--color-muted)}.absence-reason-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;border:0;padding:0}.absence-reason-options legend{margin-bottom:10px;color:var(--color-navy);font-size:14px;font-weight:850}.absence-reason-options label{display:flex;min-height:48px;align-items:center;gap:10px;border:1.5px solid var(--color-line);border-radius:12px;background:#fff;color:var(--color-navy);cursor:pointer;padding:10px 12px;font-weight:800}.absence-reason-options label:has(input:checked){border-color:var(--color-blue);background:var(--color-blue-light)}.absence-reason-options input{width:18px;height:18px;accent-color:var(--color-blue)}.absence-reason-other{display:grid;gap:7px;margin-top:14px;color:#354b68;font-size:13px;font-weight:750}.absence-reason-other input{width:100%;min-height:46px;border:1.5px solid var(--color-line);border-radius:12px;outline:none;background:#fff;color:var(--color-navy);padding:0 12px}.absence-reason-other input:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #1768d11f}.absence-reason-form>.primary-button{width:100%;margin-top:16px}.attendance-records{display:grid;gap:18px}.attendance-records__toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px}.attendance-records__group{margin:0;color:var(--color-navy);font-size:18px;font-weight:850}.attendance-records__date{display:grid;gap:7px;color:#354b68;font-size:13px;font-weight:750}.attendance-records__date input{min-height:44px;border:1.5px solid var(--color-line);border-radius:12px;outline:none;background:#fff;color:var(--color-navy);padding:0 12px}.attendance-records__date input:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #1768d11f}.attendance-records__lists{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.attendance-records__card{min-width:0;padding:14px;border:1px solid var(--color-line);border-radius:14px;background:#fff}.attendance-records__card h3{margin:0 0 12px;color:var(--color-navy);font-size:15px}.attendance-records__card ul,.attendance-records__conflicts ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.attendance-records__card li{display:grid;gap:2px;padding-top:8px;border-top:1px solid #edf2f8}.attendance-records__card li:first-child{padding-top:0;border-top:0}.attendance-records__card strong{overflow-wrap:anywhere;color:var(--color-navy);font-size:13px}.attendance-records__card span,.attendance-records__empty,.attendance-records__loading{color:var(--color-muted);font-size:12px}.attendance-records__card .attendance-records__absence-reason{color:#a52e2e;font-weight:800;overflow-wrap:anywhere}.attendance-records__empty{margin:0}.attendance-records__error,.attendance-records__conflicts{display:grid;gap:10px;padding:14px;border:1px solid rgba(193,58,58,.25);border-radius:12px;background:#fff5f5;color:#973333;font-size:13px}.attendance-records__error .secondary-button{justify-self:start}.attendance-records__conflicts p{margin:0}.message-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.message-dialog__header h2{margin:0;color:var(--color-navy)}.message-dialog textarea{resize:vertical;padding:12px;line-height:1.5}.message-dialog form .primary-button{width:100%;margin-top:14px}.message-history{display:grid;gap:10px;margin-top:18px}.message-history article{padding:12px 14px;border:1px solid var(--color-line);border-radius:12px;background:#fff}.message-history time{color:var(--color-muted);font-size:12px}.message-history p{margin:6px 0 0;white-space:pre-wrap}@media(min-width:861px){.app-shell__content:has(.dashboard-screen){width:100%;max-width:1480px;padding-inline:32px}.dashboard-status-table-wrap{min-height:440px}.dashboard-status-table th,.dashboard-status-table td{padding:16px 12px}.dashboard-status-table thead th{font-size:15px}.dashboard-status-table thead th:first-child,.dashboard-status-table tbody th{width:210px}.dashboard-status-table thead th:nth-child(2){width:170px}.dashboard-status-table thead th:nth-child(3){width:100px}.dashboard-screen--teacher .dashboard-status-table{min-width:1280px}.dashboard-screen--teacher .dashboard-status-table tbody th strong{font-size:20px}.dashboard-screen--teacher .dashboard-status-table tbody th small,.dashboard-screen--teacher .dashboard-status-teacher strong{font-size:14px}.dashboard-screen--teacher .dashboard-status-summary,.dashboard-screen--teacher .dashboard-status-cell{min-width:82px;min-height:44px;font-size:14px}}@media(max-width:860px){.roster-workspace{grid-template-columns:1fr}.profile-panel--side{position:static;max-height:none}}@media(max-width:520px){.app-shell__content{padding:40px 28px 38px}.brand-header{margin-bottom:76px}.app-shell__content:has(.entrance--branch){padding-top:96px}.app-shell__content:has(.entrance--branch) .brand-header{margin-bottom:52px}.entrance__heading{margin-bottom:52px}.entrance__heading--compact{margin-bottom:34px}.entrance h1,.roster-placeholder h1{font-size:36px}.entrance__heading p{margin-top:18px;font-size:18px;line-height:1.5}.choice-stack{gap:22px}.choice-button{min-height:84px;border-radius:20px;font-size:30px}.entrance--branch .entrance__heading{margin-bottom:49px}.entrance--branch .choice-stack{gap:25px}.entrance--branch .choice-button{min-height:90px}.login-card{padding:26px 22px}.roster-screen__heading{display:grid;gap:20px}.roster-search{width:100%;flex-basis:auto}.roster-screen__filters{display:grid}.roster-group-filter select{width:100%}.summary-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-entry{align-items:flex-start;flex-direction:column;gap:4px}.app-shell__content:has(.dashboard-screen){padding:24px 18px 34px}.dashboard-screen__actions{margin-bottom:22px}.dashboard-screen__heading h1{font-size:38px}.dashboard-view-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-status-controls{grid-template-columns:1fr;margin-top:-8px}.dashboard-status-controls button{width:100%}.dashboard-status-table-wrap{max-height:calc(100vh - 360px);min-height:420px}.dashboard-status-table{min-width:0}.dashboard-status-table th,.dashboard-status-table td{padding:7px 2px}.dashboard-status-table thead th:first-child,.dashboard-status-table tbody th{width:96px;padding-left:7px}.dashboard-status-table thead th:nth-child(2),.dashboard-status-table tbody td:nth-child(2){display:none}.dashboard-status-table thead th:nth-child(3){width:48px}.dashboard-status-table thead th:nth-child(n+4){width:29px}.dashboard-status-table tbody th strong{font-size:13px}.dashboard-status-table tbody th small{overflow:hidden;max-width:86px;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.dashboard-status-summary{min-width:42px;min-height:28px;font-size:10px}.dashboard-status-cell{min-width:28px;min-height:28px;font-size:0}.dashboard-status-cell:after{content:"未";font-size:9px}.dashboard-status-cell--active:after{content:"✓";font-size:12px}.dashboard-status-cell--na:after{content:"—";font-size:10px}.dashboard-screen--teacher .dashboard-status-table{min-width:0}.dashboard-screen--teacher .dashboard-status-controls{grid-template-columns:1fr}.dashboard-screen--teacher .dashboard-status-table tbody th strong{font-size:14px}.dashboard-screen--teacher .dashboard-status-summary,.dashboard-screen--teacher .dashboard-status-cell{min-height:30px}.dashboard-week-controls{align-items:stretch}.dashboard-week-controls label{flex-basis:155px}.dashboard-weekly-group__heading{padding:14px}.dashboard-weekdays-scroll{padding:12px 14px 16px}.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr));padding-inline:14px}.dashboard-unmarked{margin-inline:14px}.dashboard-group__toggle{padding-inline:14px}.dashboard-students{grid-template-columns:1fr;padding:14px}.student-list{height:62vh;min-height:410px;padding-right:0}.student-card{padding:15px;border-radius:17px}.student-card__identity strong{max-width:210px;font-size:17px}.student-card__labels{gap:5px;margin-top:7px}.profile-label{min-height:26px;padding:3px 8px 3px 4px;font-size:11px}.profile-label__icon{width:18px;height:18px;flex-basis:18px;font-size:10px}.event-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-card__attendance-actions,.absence-reason-options,.student-profile-fields__grid{grid-template-columns:1fr}.student-profile-fields__stay-grid,.student-profile-fields__dinner-days,.student-profile-fields__homework-days>div,.student-profile-fields__van-days>div{grid-template-columns:repeat(2,minmax(0,1fr))}.student-profile-fields__homework-times,.lifecycle-form__grid,.lifecycle-form__grid--identity,.attendance-group-manager__filters,.attendance-group-manager__actions{grid-template-columns:1fr}.attendance-group-manager__students{max-height:42vh}.attendance-records__toolbar{align-items:stretch;flex-direction:column}.attendance-records__lists{grid-template-columns:1fr}.profile-form__actions{align-items:stretch;flex-direction:column}}@media(prefers-reduced-motion:reduce){.choice-button{transition:none}}@media(max-width:680px){.app-shell__content:has(.guide-screen){padding:22px 18px 36px}.brand-header{align-items:flex-start;gap:12px}.brand-header__actions{align-items:flex-end;flex-direction:column;gap:3px}.app-navigation__button{font-size:13px;padding-inline:8px}.guide-screen__heading{align-items:stretch;flex-direction:column;gap:18px}.guide-search input{width:100%}.guide-card summary{align-items:flex-start;padding:16px}.guide-card__body{grid-template-columns:1fr;padding:14px}.guide-card__parent,.guide-escalation{grid-column:auto}}
