@font-face{font-family:LocalSans;src:local("Aptos"),local("Segoe UI"),local("Arial");font-display:swap}
:root{color-scheme:light;--ink:#203b32;--green:#174b3f;--muted:#68786f;--paper:#f7f8f2;--line:#dfe5dc;--accent:#d8e9a0;--white:#fff;--shadow:0 15px 45px #233b2910;font-family:LocalSans,system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.55}button,input,textarea{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:var(--green)}:focus-visible{outline:3px solid #52822b;outline-offset:4px}button::-moz-focus-inner{border:0}[hidden]{display:none!important}.page-shell{width:min(1040px,calc(100% - 64px));margin:auto}.site-header{display:flex;align-items:center;justify-content:space-between;padding:34px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;letter-spacing:.13em;font-size:15px;font-weight:800;line-height:1.35}.brand-subtitle{display:block;font-size:8px;letter-spacing:.16em;margin-top:4px;font-weight:600}.brand-mark{display:flex;align-items:center;gap:3px;background:var(--green);width:39px;height:39px;border-radius:11px;padding:10px}.brand-mark span{width:4px;background:var(--accent);border-radius:3px;transform:rotate(-17deg);height:17px}.brand-mark span:nth-child(2){height:23px}.header-note{font-size:12px;line-height:1.5;color:var(--muted);text-align:right}main{max-width:800px;margin:auto}.intro{padding:53px 0 30px}.eyebrow{display:flex;gap:8px;align-items:center;font-size:10px;font-weight:750;letter-spacing:.15em;color:#4d6355;margin:0 0 17px}.eyebrow>span{width:7px;height:7px;background:#95af62;border-radius:50%}h1{font-size:clamp(38px,5.6vw,58px);font-weight:650;line-height:1.06;letter-spacing:-.055em;margin:0 0 20px}.title-period{color:#9cab71}.intro-copy{max-width:610px;color:var(--muted);font-size:16px;line-height:1.7;margin:0}.upload-card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:29px;box-shadow:var(--shadow)}.card-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:23px}.step-number{font-size:11px;color:#657854;border:1px solid #dfe5d5;background:#f6f8ef;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;flex-shrink:0;margin-top:1px}.card-heading h2{font-size:17px;line-height:1.3;margin:0 0 5px;font-weight:650;letter-spacing:-.015em}.card-heading p{font-size:13px;color:var(--muted);margin:0}.file-area{border:1px dashed #bdcbbb;background:#fafbf7;border-radius:10px;padding:24px 20px;display:flex;gap:16px;align-items:center}.document-icon{width:31px;height:40px;display:flex;flex-direction:column;gap:5px;justify-content:center;border:1.5px solid #8ea381;border-radius:4px;padding:6px;flex-shrink:0}.document-icon span{height:2px;background:#a8b69b;display:block}.document-icon span:last-child{width:70%}.file-description{flex:1;min-width:0}.file-description p{margin:0}#file-name{font-size:14px;font-weight:650;overflow-wrap:anywhere}#file-help{font-size:11px;color:var(--muted);margin-top:5px}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:44px;border-radius:7px;padding:10px 20px;font-size:13px;font-weight:650;border:1px solid transparent;text-decoration:none;line-height:1.35;transition:background .15s}.button-secondary{color:var(--green);border-color:#cbd6c5;background:var(--white);white-space:nowrap}.button-secondary:hover{background:#f1f6e9}.button-primary{color:white;background:var(--green);min-width:132px}.button-primary:hover{background:#10392e}.button-arrow{font-size:19px;font-weight:400;line-height:1}.form-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px}.privacy-note{font-size:11px;color:var(--muted);margin:0;display:flex;gap:6px;align-items:center}.privacy-note span{font-size:19px;color:#7c936e}.status-text{font-size:13px;color:var(--muted);margin:0}.status-text:not(:empty){margin-top:15px}.spinner{width:17px;height:17px;border:2px solid #ffffff66;border-top-color:white;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.download-result{border-top:1px solid var(--line);padding-top:20px;margin-top:21px;display:flex;gap:12px}.success-dot{background:#e6f0cf;color:var(--green);width:27px;height:27px;border-radius:50%;text-align:center}.download-result strong{font-size:14px}.download-result p{font-size:12px;color:var(--muted);margin:3px 0 7px}.download-result a{font-size:13px;text-underline-offset:3px}.output-summary{padding:31px 0 37px}.output-summary>h2{font-size:10px;letter-spacing:.12em;color:#7c8878;font-weight:650;margin:0 0 20px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:33px}.summary-grid article{display:flex;gap:12px}.mini-icon{background:#edf0e5;border:1px solid #e2e7d8;display:grid;place-items:center;width:32px;height:32px;border-radius:8px;flex-shrink:0;font-size:20px;color:#66804c}.summary-grid h3{font-size:13px;font-weight:650;margin:1px 0 5px}.summary-grid p{font-size:12px;line-height:1.65;color:var(--muted);margin:0}.week-note{font-size:11px;color:var(--muted);margin:21px 0 0}.site-footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:22px 0 30px;font-size:10px;color:#7f897b}.site-footer>span:first-child{letter-spacing:.11em;font-size:9px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.modal{border:1px solid var(--line);border-radius:17px;padding:0;box-shadow:0 25px 90px #0b241b33;color:var(--ink);width:min(560px,calc(100% - 32px));max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.modal::backdrop{background:#15372966;backdrop-filter:blur(3px)}.modal-body{padding:31px}.modal h2{font-size:25px;line-height:1.2;letter-spacing:-.03em;margin:0 0 12px}.modal-body>p:not(.eyebrow){font-size:13px;line-height:1.65;color:var(--muted)}.modal-body>.eyebrow{font-size:9px;margin-bottom:12px}.modal-check{display:grid;place-items:center;background:#edf3da;color:#486b28;border-radius:50%;width:47px;height:47px;font-size:24px;margin-bottom:21px}.success-modal{width:min(445px,calc(100% - 32px))}.success-modal form{margin-top:24px}.success-modal .button{width:100%}.report-label{display:block;font-size:12px;font-weight:650;margin:18px 0 7px}#error-report{resize:vertical;min-height:190px;width:100%;border:1px solid #ccd5c6;border-radius:7px;background:#f8faf5;padding:13px;font-family:ui-monospace,monospace;font-size:11px;line-height:1.6;color:var(--ink)}.copy-status{min-height:20px;margin:5px 0 12px}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.modal-actions form{margin:0}.error-footer{border-top:1px solid var(--line);padding-top:15px;margin:22px 0 0}.noscript-note{border:1px solid #ddcaa1;background:#fff5d5;border-radius:8px;padding:15px;font-size:13px}
@media(min-width:1400px){.intro{padding-top:70px}.output-summary{padding-bottom:60px}}@media(max-width:600px){.page-shell{width:calc(100% - 36px)}.site-header{padding:24px 0}.header-note{display:none}.intro{padding:34px 0 25px}.intro-copy{font-size:14px}.upload-card{padding:20px}.card-heading{gap:10px}.card-heading h2{font-size:15px}.card-heading p{font-size:12px}.file-area{flex-wrap:wrap;gap:12px;padding:20px 16px}.file-description{flex-basis:calc(100% - 45px)}#select-file{width:100%;margin-top:4px}.form-bottom{flex-direction:column;gap:14px;align-items:stretch}.privacy-note{order:2;justify-content:center;text-align:center;font-size:10px}#format-button{min-height:47px}.summary-grid{grid-template-columns:1fr;gap:21px}.output-summary{padding-top:27px}.site-footer{flex-direction:column;gap:5px}.modal-body{padding:25px}.modal h2{font-size:22px}.modal-actions .button{min-width:100px}#error-report{font-size:16px;line-height:1.45}.eyebrow{font-size:9px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.spinner{animation:none;border-style:dotted}}

/* The upload keeps its familiar width; the roster has room for a full attendance grid. */
select{font:inherit;touch-action:manipulation}.has-results .page-shell{width:min(1440px,calc(100% - 64px))}.has-results main{max-width:none}.has-results .intro,.has-results .upload-card,.has-results .output-summary{max-width:800px;margin-left:auto;margin-right:auto}.results-section{margin:48px 0 0;scroll-margin-top:24px}.results-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:23px}.results-heading .eyebrow{font-size:9px;margin-bottom:12px}.results-heading h2{font-size:32px;line-height:1.2;letter-spacing:-.035em;font-weight:650;margin:0 0 9px}.results-week{font-size:13px;color:var(--muted);margin:0}.roster-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:25px}.roster-summary>div{background:#edf2e4;border:1px solid #dee6d5;border-radius:12px;padding:19px 23px;display:flex;flex-direction:column;gap:3px}.roster-summary>div:nth-child(2){background:#eaf3ed;border-color:#d5e5da}.roster-summary>div:nth-child(3){background:#fbf0e7;border-color:#eedecf}.roster-summary>div>span:last-child{font-size:12px;color:#566951}.stat-number{font-size:30px;letter-spacing:-.035em;font-weight:650;line-height:1.1}.results-section>.status-text:not(:empty){margin:0 0 20px}.results-section>.download-result{background:white;border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin:0 0 23px}.results-workspace{background:white;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow:hidden}.results-tabs{display:flex;gap:26px;padding:0 27px;border-bottom:1px solid var(--line);background:#fafbf7}.results-tabs>button{display:inline-flex;align-items:center;justify-content:center;gap:11px;border:0;border-bottom:3px solid transparent;color:var(--muted);padding:20px 2px 17px;background:transparent;font-size:14px;font-weight:650;border-radius:0}.results-tabs>button[aria-selected=true]{color:var(--green);border-bottom-color:var(--green)}.results-tabs>button:hover{color:var(--green)}.results-tabs>button:focus-visible{outline-offset:-5px}.tab-count{font-size:10px;padding:1px 7px;border-radius:20px;background:#e8efdc;color:#526940}.results-panel{padding:25px 27px 21px;min-width:0}.results-panel:focus-visible{outline-offset:-5px}.panel-intro{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:21px}.panel-intro h3{font-size:16px;line-height:1.35;letter-spacing:-.015em;font-weight:650;margin:0 0 6px}.panel-intro p{font-size:12px;color:var(--muted);margin:0;max-width:750px}.attendance-legend{display:flex;gap:13px;flex-shrink:0}.attendance-legend>span{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:11px}.attendance-mark{display:inline-grid;place-items:center;width:25px;height:25px;line-height:1;border-radius:6px;font-size:14px;font-weight:700}.attended{color:#256645;background:#e3f1e7}.missed{color:#a33f38;background:#f9e8e4}.attendance-filters{display:flex;align-items:flex-end;gap:13px;background:#fafbf8;border:1px solid #e4e9de;border-radius:10px;padding:15px;margin-bottom:17px}.filter-field{display:flex;flex-direction:column;gap:7px;min-width:130px}.search-field{flex:1;min-width:160px}.filter-field label{font-size:11px;font-weight:650;color:#526750}.filter-field input,.filter-field select{height:42px;background:white;border:1px solid #ccd6c7;color:var(--ink);border-radius:6px;padding:9px 11px;width:100%;font-size:12px}.filter-field input::placeholder{color:#7b8879}.checkbox-filter{display:flex;gap:8px;align-items:center;align-self:flex-end;min-height:42px;font-size:12px;white-space:nowrap;padding:0 2px 0 5px;cursor:pointer}.checkbox-filter input{width:16px;height:16px;accent-color:var(--green);margin:0}.grid-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}.grid-toolbar p{font-size:11px;color:var(--muted);margin:0}.scroll-hint{font-size:10px;color:#7d8878;white-space:nowrap}.attendance-scroll{width:100%;max-height:1440px;overflow:auto;border:1px solid var(--line);border-radius:8px;overscroll-behavior:contain;scrollbar-color:#b9c8ac #f4f6ef;position:relative;isolation:isolate}.attendance-scroll:focus-visible{outline-offset:2px}#attendance-grid{border-spacing:0;border-collapse:separate;min-width:100%;width:max-content;font-size:12px;line-height:1.4}#attendance-grid th,#attendance-grid td{text-align:left;border-bottom:1px solid #e9eee4;padding:12px 13px}#attendance-grid thead th{background:#f1f5e9;position:sticky;top:0;z-index:3;font-size:10px;color:#53684b;font-weight:650;height:66px;vertical-align:middle;border-bottom:1px solid #d8e1cf}#attendance-grid .student-column{min-width:200px;width:200px;max-width:240px;position:sticky;left:0;z-index:2;background:white;overflow-wrap:anywhere;border-right:1px solid #e2e8db}#attendance-grid thead .student-column{background:#f1f5e9;z-index:4}#attendance-grid tbody th.student-column{font-weight:600;color:#2d493a}#attendance-grid .number-column{min-width:85px;text-align:center;font-variant-numeric:tabular-nums}#attendance-grid .date-column{min-width:123px;white-space:nowrap;font-size:11px;color:#62725b}#attendance-grid .days-column{min-width:98px;text-align:center;font-variant-numeric:tabular-nums}#attendance-grid .week-column{min-width:77px;width:77px;text-align:center;border-left:1px solid #f0f3ea}#attendance-grid td.latest-week{background:#f8faf3}#attendance-grid th.latest-week{background:#e7eedb}.week-date,.week-year{display:block;white-space:nowrap}.week-year{font-size:9px;font-weight:400;color:#7d8a73;margin-top:2px}.latest-label{display:block;font-size:7px;letter-spacing:.09em;color:#456631;margin-top:3px}#attendance-grid .student-row:hover td,#attendance-grid .student-row:hover th{background:#fbfcf7}#attendance-grid .group-row th{padding:9px 13px;background:#eef3e5;font-size:11px;letter-spacing:.025em;font-weight:650;border-bottom:1px solid #e1e8d8;height:35px}.group-heading-label{position:sticky;left:13px;display:inline-block;max-width:calc(100vw - 130px);overflow-wrap:anywhere}.group-heading-leaders{display:block;margin-top:3px;font-weight:400;letter-spacing:normal;color:#405b48}#attendance-grid .empty-group-row td{height:48px;background:#fcfdf9}.empty-group-label{position:sticky;left:13px;display:inline-block;color:#87927e;font-size:11px;max-width:calc(100vw - 130px)}#attendance-grid tbody tr:last-child td,#attendance-grid tbody tr:last-child th{border-bottom:0}.days-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;min-width:31px;min-height:25px;padding:3px 7px;font-size:11px;color:#5b7050;background:#f0f4e9}.days-yellow{color:#816309;background:#fcf1c4}.days-orange{color:#954c12;background:#ffe1bf}.days-red{color:#a13730;background:#f9d9d3}.grid-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:17px}.days-legend{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:10px;color:#77866b;margin:0}.days-legend .days-badge{font-size:9px;min-width:28px;min-height:20px;padding:2px 5px}#days-as-of{margin-left:4px}.pagination{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-shrink:0}.pagination>span{font-size:11px;color:var(--muted);white-space:nowrap}.pagination .button{min-height:36px;padding:8px 12px;font-size:11px}.pagination .button:disabled{cursor:default;opacity:.4}.messages-count{font-size:11px;color:var(--muted);margin:0 0 15px}.leader-messages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.message-card{border:1px solid #dfe6d7;border-radius:11px;background:#fcfdf9;padding:20px;min-width:0}.message-heading{margin-bottom:14px}.message-heading h4{font-size:17px;font-weight:650;letter-spacing:-.015em;margin:3px 0 4px;overflow-wrap:anywhere}.message-heading p{color:var(--muted);font-size:11px;margin:0;overflow-wrap:anywhere}.message-heading .message-student-count{color:#88764f;font-size:9px;text-transform:uppercase;letter-spacing:.09em}.leader-message-text{display:block;resize:vertical;min-height:185px;width:100%;border:1px solid #d8e1d0;border-radius:7px;background:white;padding:14px;font-size:12px;line-height:1.75;color:#405b48;white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:14px}.message-card>.button{font-size:11px;min-height:38px;padding:9px 14px}.message-copy-status{font-size:11px;line-height:1.6;color:#4c6d3b;margin:9px 0 0}.message-copy-status:empty{display:none}.message-pagination{margin-top:23px}.messages-empty{grid-column:1/-1;padding:35px 20px 42px;text-align:center}.messages-empty .modal-check{margin:0 auto 16px}.messages-empty h4{font-size:18px;font-weight:650;letter-spacing:-.015em;margin:0 0 7px}.messages-empty p{font-size:12px;color:var(--muted);margin:0}
@media(max-width:1050px){.attendance-filters{flex-wrap:wrap}.search-field{flex-basis:45%}.checkbox-filter{flex-basis:100%;min-height:26px;padding-left:0}.grid-footer{align-items:flex-start;flex-wrap:wrap}.grid-footer .pagination{margin-left:auto}.panel-intro{align-items:flex-start}.attendance-legend{padding-top:3px}}
@media(max-width:700px){.has-results .page-shell{width:calc(100% - 36px)}.results-section{margin-top:34px}.results-heading{align-items:flex-start;gap:15px;flex-wrap:wrap}.results-heading h2{font-size:28px}.results-heading .eyebrow{font-size:8px}.results-week{font-size:12px}.results-heading>.button{width:100%;min-height:44px}.roster-summary{gap:8px;margin-bottom:21px}.roster-summary>div{padding:14px 11px;border-radius:9px}.roster-summary>div>span:last-child{font-size:10px;line-height:1.45;max-width:90px}.stat-number{font-size:25px}.results-tabs{padding:0 16px;gap:21px}.results-tabs>button{font-size:12px;padding:17px 0 14px;gap:8px}.results-panel{padding:20px 15px 17px}.panel-intro{flex-direction:column;gap:13px;margin-bottom:17px}.panel-intro h3{font-size:15px}.panel-intro p{font-size:11px}.attendance-filters{gap:11px;padding:12px}.search-field{flex-basis:100%}.filter-field:not(.search-field){flex:1;min-width:0}.filter-field input,.filter-field select{font-size:16px;height:43px}.filter-field input::placeholder{font-size:13px}.checkbox-filter{font-size:11px;min-height:30px}.grid-toolbar{flex-wrap:wrap;gap:4px}.grid-toolbar p{font-size:10px}.scroll-hint{font-size:9px}.attendance-scroll{max-height:1180px}#attendance-grid .student-column{min-width:148px;width:148px;max-width:148px}#attendance-grid th,#attendance-grid td{padding:11px 10px}.group-heading-label,.empty-group-label{left:10px;max-width:calc(100vw - 93px)}.grid-footer{gap:14px}.grid-footer .pagination{justify-content:space-between;width:100%;margin-left:0}.days-legend{font-size:9px}#days-as-of{flex-basis:100%;margin:4px 0 0}.leader-messages{grid-template-columns:1fr;gap:15px}.message-card{padding:16px}.message-heading h4{font-size:16px}.leader-message-text{font-size:16px;line-height:1.55;padding:12px}.message-copy-status{font-size:11px}.message-pagination{gap:8px;justify-content:space-between;flex-wrap:wrap}.message-pagination .button{font-size:10px;padding:8px}.message-pagination>span{font-size:10px}}

/* A theme preference changes only colors, keeping both layouts identical. */
.header-actions{display:flex;align-items:center;gap:22px;flex-shrink:0}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);font-size:11px;font-weight:650;white-space:nowrap}
.theme-toggle:hover{border-color:#9aaf8c;background:#f1f6e9}
.theme-toggle-track{display:block;position:relative;flex-shrink:0;width:34px;height:20px;border:1px solid #9caf90;border-radius:20px;background:#dce5d4}
.theme-toggle-track::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #203b3240;transition:transform .15s}
.theme-toggle[aria-checked=true] .theme-toggle-track{background:#b9d99e;border-color:#b9d99e}
.theme-toggle[aria-checked=true] .theme-toggle-track::after{transform:translateX(14px);background:#21392a}
html[data-theme="dark"]{color-scheme:dark;--ink:#e3eae2;--green:#b9d99e;--muted:#a6b7aa;--paper:#111b17;--line:#344a3c;--white:#192720;--shadow:0 15px 45px #00000026}
html[data-theme="dark"] :focus-visible{outline-color:#c4e49d}
html[data-theme="dark"] .brand-mark{background:#345d4d}
html[data-theme="dark"] .eyebrow{color:#b1c6a5}
html[data-theme="dark"] .eyebrow>span{background:#b9d384}
html[data-theme="dark"] .title-period{color:#b7cd8a}
html[data-theme="dark"] .step-number{color:#c0d4ab;border-color:#46563b;background:#293825}
html[data-theme="dark"] .file-area{background:#15221b;border-color:#546b52}
html[data-theme="dark"] .document-icon{border-color:#a3bc91}
html[data-theme="dark"] .document-icon span{background:#a3bc91}
html[data-theme="dark"] .button-secondary{border-color:#617956}
html[data-theme="dark"] .button-secondary:hover,
html[data-theme="dark"] .theme-toggle:hover{background:#293b2b;border-color:#7d9768}
html[data-theme="dark"] .button-primary{background:#b9d99e;color:#163a2c}
html[data-theme="dark"] .button-primary:hover{background:#cee8ba}
html[data-theme="dark"] .privacy-note span{color:#acbf98}
html[data-theme="dark"] .spinner{border-color:#163a2c55;border-top-color:#163a2c}
html[data-theme="dark"] .success-dot{background:#32482b}
html[data-theme="dark"] .output-summary>h2,
html[data-theme="dark"] .site-footer{color:#a1b09b}
html[data-theme="dark"] .mini-icon{background:#2b3927;border-color:#46583b;color:#bcd79b}
html[data-theme="dark"] .modal{background:var(--white);box-shadow:0 25px 90px #00000066}
html[data-theme="dark"] .modal::backdrop{background:#020805b3}
html[data-theme="dark"] .modal-check{background:#32482b;color:#c0df9f}
html[data-theme="dark"] #error-report{border-color:#617956;background:#131f19}
html[data-theme="dark"] .noscript-note{border-color:#746337;background:#3e341b;color:#f0dcaa}
html[data-theme="dark"] .roster-summary>div{background:#293621;border-color:#455637}
html[data-theme="dark"] .roster-summary>div:nth-child(2){background:#213b2c;border-color:#355c43}
html[data-theme="dark"] .roster-summary>div:nth-child(3){background:#3c2e24;border-color:#614934}
html[data-theme="dark"] .roster-summary>div>span:last-child{color:#c0cbb8}
html[data-theme="dark"] .results-section>.download-result,
html[data-theme="dark"] .results-workspace{background:var(--white)}
html[data-theme="dark"] .results-tabs{background:#16231b}
html[data-theme="dark"] .tab-count{background:#33452b;color:#c7dda9}
html[data-theme="dark"] .attended{color:#a8dfb8;background:#274834}
html[data-theme="dark"] .missed{color:#ffc0b7;background:#572f2b}
html[data-theme="dark"] .attendance-filters{background:#15221b;border-color:#344a3c}
html[data-theme="dark"] .filter-field label{color:#bacbb0}
html[data-theme="dark"] .filter-field input,
html[data-theme="dark"] .filter-field select{background:#101c15;border-color:#617956}
html[data-theme="dark"] .filter-field input::placeholder{color:#a0b099}
html[data-theme="dark"] .scroll-hint{color:#a5b19b}
html[data-theme="dark"] .attendance-scroll{scrollbar-color:#607854 #142019}
html[data-theme="dark"] #attendance-grid th,
html[data-theme="dark"] #attendance-grid td{border-bottom-color:#304332}
html[data-theme="dark"] #attendance-grid thead th{background:#273723;color:#c3d5b4;border-bottom-color:#4a5f3d}
html[data-theme="dark"] #attendance-grid .student-column{background:var(--white);border-right-color:#405138}
html[data-theme="dark"] #attendance-grid thead .student-column{background:#273723}
html[data-theme="dark"] #attendance-grid tbody th.student-column{color:var(--ink)}
html[data-theme="dark"] #attendance-grid .date-column{color:#b5c4aa}
html[data-theme="dark"] #attendance-grid .week-column{border-left-color:#2e402e}
html[data-theme="dark"] #attendance-grid td.latest-week{background:#202e1d}
html[data-theme="dark"] #attendance-grid th.latest-week{background:#35482a}
html[data-theme="dark"] .week-year{color:#adbe9f}
html[data-theme="dark"] .latest-label{color:#cae3a9}
html[data-theme="dark"] #attendance-grid .student-row:hover td,
html[data-theme="dark"] #attendance-grid .student-row:hover th{background:#293c29}
html[data-theme="dark"] #attendance-grid .group-row th{background:#2d3e27;border-bottom-color:#435637}
html[data-theme="dark"] .group-heading-leaders{color:#c1d1b4}
html[data-theme="dark"] #attendance-grid .empty-group-row td{background:#17241b}
html[data-theme="dark"] .empty-group-label{color:#a6b598}
html[data-theme="dark"] .days-badge{color:#c5d7b6;background:#2c3f25}
html[data-theme="dark"] .days-yellow{color:#f7df89;background:#544623}
html[data-theme="dark"] .days-orange{color:#ffd09a;background:#5c3c24}
html[data-theme="dark"] .days-red{color:#ffc0b7;background:#572f2b}
html[data-theme="dark"] .days-legend{color:#aab99e}
html[data-theme="dark"] .message-card{background:#17241b;border-color:#3e5135}
html[data-theme="dark"] .message-heading .message-student-count{color:#d2be8e}
html[data-theme="dark"] .leader-message-text{background:#111e16;border-color:#617956;color:#d1dfc8}
html[data-theme="dark"] .message-copy-status{color:#bbdba1}
@media(max-width:600px){.header-actions{gap:0}.theme-toggle{padding:8px;min-width:50px}.theme-toggle-label{display:none}}
@media(prefers-reduced-motion:reduce){.theme-toggle-track::after{transition:none}}
