:root{color-scheme:light;--text:#203b34;--input:#fff;--soft:#eaf0e9}
body{padding-top:74px}
.portal-tools{position:fixed;top:0;left:0;right:0;height:74px;display:flex;justify-content:flex-end;align-items:center;padding:12px 24px;background:var(--paper);border-bottom:1px solid var(--line);z-index:5}
@media(min-width:761px){body:has(#app:not([hidden])) .portal-tools{left:250px}}
.theme-cycle{min-width:156px;font-size:14px;padding:11px 16px}
.session-loading{max-width:520px;margin:12vh auto;padding:28px;text-align:center}
.session-loading .form-actions{justify-content:center;flex-wrap:wrap}
.date-input{position:relative;display:flex;margin-top:8px;align-items:stretch}
.date-input input:not(.date-picker-native){margin:0;padding-right:48px;min-width:0}
.date-input .date-picker-button{position:absolute;top:1px;right:1px;bottom:1px;display:grid;place-items:center;width:42px;padding:0;border-radius:0 7px 7px 0}
.date-input .date-picker-native{position:absolute;inset:0;width:100%;min-width:0;height:100%;padding:0;margin:0;border:0;opacity:0;pointer-events:none}
.confirmation-dialog{color:var(--text);background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:28px;max-width:430px;width:calc(100% - 40px)}
.confirmation-dialog::backdrop{background:#071810b8}
.attendance-dialog{background:var(--paper);color:var(--text)}
html[data-theme="dark"]{color-scheme:dark;--text:#e3eee7;--green:#8cd6b6;--muted:#aec3b6;--line:#3b5146;--paper:#192b22;--input:#112018;--soft:#293f32;color:var(--text);background:#0f1c15}
html[data-theme="dark"] button{color:#0b281a}
html[data-theme="dark"] button.secondary,html[data-theme="dark"] nav button.active{background:var(--soft);color:#bcebd1}
html[data-theme="dark"] button.quiet{background:transparent;color:var(--green)}
html[data-theme="dark"] input,html[data-theme="dark"] select{background:var(--input);color:var(--text);border-color:#647e6c}
html[data-theme="dark"] .login-card,html[data-theme="dark"] aside,html[data-theme="dark"] .stat{background:var(--paper)}
html[data-theme="dark"] .brand{color:var(--text)}
html[data-theme="dark"] nav button{color:var(--muted);background:transparent}
html[data-theme="dark"] .badge,html[data-theme="dark"] .check{background:var(--soft);color:var(--text)}
html[data-theme="dark"] .stat:first-child{background:#285c46;border-color:#4b8065;color:#f3fff7}
html[data-theme="dark"] .stat:first-child small{color:#d6e9da}
html[data-theme="dark"] th,html[data-theme="dark"] td{border-color:var(--line)}
html[data-theme="dark"] .pill,html[data-theme="dark"] .pill.available,html[data-theme="dark"] .pill.collected{background:#294d36;color:#c2efcc}
html[data-theme="dark"] .pill.linked{background:#234944;color:#bdeae6}
html[data-theme="dark"] .pill.retired,html[data-theme="dark"] .pill.disabled,html[data-theme="dark"] .pill.expired{background:#543a30;color:#ffcfb8}
html[data-theme="dark"] .pill.awaiting{background:#51451d;color:#ffe6a3}
html[data-theme="dark"] .error{color:#ffb4a8}
html[data-theme="dark"] #notice{background:#2a4833;color:#daf6df}
html[data-theme="dark"] #notice.error{background:#4b302c;color:#ffd1c9}
html[data-theme="dark"] header .eyebrow{color:var(--muted)}
html[data-theme="dark"] .check input,html[data-theme="dark"] progress{accent-color:var(--green)}
.apk-download-link{color:var(--green);display:inline-block;margin-top:12px;text-decoration:underline}
