:root{--bg:#f4f6f8;--surface:#fff;--surface-raised:#fbfcfd;--surface-muted:#eef3f7;--border:#d5dde7;--text:#101820;--muted:#637083;--primary:#17212f;--primary-strong:#030712;--primary-soft:#e6ebf0;--primary-text:#fff;--accent:#0d7f76;--accent-strong:#0a625c;--accent-text:#fff;--danger:#b42318;--danger-soft:#fef2f2;--drive:#2563eb;--patient:#059669;--shadow:0 14px 36px #0f172a17;--shadow-soft:0 8px 20px #0f172a0f}[data-theme=blue]{--bg:#f2f7ff;--surface:#fff;--surface-raised:#f8fbff;--surface-muted:#e6f0ff;--border:#bfd3f3;--text:#102033;--muted:#52657f;--primary:#155e9f;--primary-strong:#0b3d73;--primary-soft:#dbeafe;--primary-text:#fff;--accent:#0f766e;--accent-strong:#0b5f59;--drive:#1d4ed8;--patient:#047857;--shadow:0 12px 30px #155e9f21}[data-theme=pink]{--bg:#fff5f8;--surface:#fff;--surface-raised:#fff9fb;--surface-muted:#ffe4ec;--border:#f3bed0;--text:#2b1520;--muted:#76576a;--primary:#be185d;--primary-strong:#831843;--primary-soft:#fce7f3;--primary-text:#fff;--accent:#7c2d12;--accent-strong:#5f1f0d;--drive:#9f1239;--patient:#0f766e;--shadow:0 12px 30px #be185d1f}[data-theme=green]{--bg:#f2faf6;--surface:#fff;--surface-raised:#f8fffb;--surface-muted:#dcfce7;--border:#b7dec5;--text:#102017;--muted:#4e6659;--primary:#166534;--primary-strong:#14532d;--primary-soft:#dcfce7;--primary-text:#fff;--accent:#1d4ed8;--accent-strong:#1e40af;--drive:#1d4ed8;--patient:#047857;--shadow:0 12px 30px #16653421}[data-theme=glass]{--bg:#dce8f5;--surface:#ffffff57;--surface-raised:#ffffff6b;--surface-muted:#c6e2f466;--border:#ffffff6b;--text:#07111f;--muted:#52667b;--primary:#091423e6;--primary-strong:#06101c;--primary-soft:#ffffff59;--primary-text:#fff;--accent:#00b8a9e0;--accent-strong:#04766e;--drive:#3060ffb8;--patient:#00a679b8;--shadow:0 22px 58px #0f172a2e;--shadow-soft:0 14px 34px #0f172a1f;--glass-bg:#ffffff47;--glass-bg-strong:#ffffff61;--glass-border:#ffffff94;--glass-highlight:#fffc}.brand-lockup{gap:5px;min-width:0;display:grid}.brand-wordmark{filter:drop-shadow(0 1px #ffffff8c);width:min(230px,44vw);height:auto;display:block}.auth-brand{justify-items:center;gap:12px;margin-bottom:20px;display:grid}.auth-brand img{filter:drop-shadow(0 14px 26px #0f172a1a);width:min(310px,100%);height:auto}@media (width<=720px){.brand-wordmark{width:min(170px,42vw)}}.app-shell{--tabs-sticky-height:54px;width:min(980px,100%);margin:0 auto;padding:16px}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:10px 0 16px;display:flex}.topbar p,.eyebrow{color:var(--muted);text-transform:uppercase;margin:0 0 4px;font-size:13px;font-weight:750}.top-actions,.compact-selects,.tabs{align-items:center;gap:8px;display:flex}.compact-selects{flex-wrap:nowrap}.compact-selects select{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 78%, var(--surface-muted));min-height:38px;color:var(--text);border-radius:8px;padding:0 8px;font-size:13px;font-weight:750}.compact-logout{min-height:38px;padding:0 10px;font-size:13px}.install-button{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.tabs{z-index:10;min-height:var(--tabs-sticky-height);border:1px solid color-mix(in srgb, var(--border) 82%, transparent);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-soft);border-radius:8px;margin-bottom:12px;padding:5px;position:sticky;top:0}[data-theme=glass] .tabs{box-shadow:inset 0 1px 0 #ffffffc7, var(--shadow-soft);-webkit-backdrop-filter:blur(18px)saturate(1.45);backdrop-filter:blur(18px)saturate(1.45);background:linear-gradient(145deg,#ffffff6b,#ffffff2e);border-color:#ffffff94}.tabs button{min-height:42px;box-shadow:none;background:0 0;border-color:#0000;flex:1}.tabs .active{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.auth-screen{background:linear-gradient(145deg, color-mix(in srgb, var(--primary-soft) 68%, var(--bg)), transparent 52%), var(--bg);place-items:center;min-height:100vh;padding:18px;display:grid}.auth-panel{width:min(440px,100%);padding:22px}@media (width<=720px){.app-shell{padding:10px}.topbar{align-items:center}.top-actions{flex-wrap:nowrap;justify-content:flex-end;min-width:0}.compact-selects{justify-content:flex-end;gap:6px;display:flex}.install-button{min-height:38px;padding:0 10px;font-size:13px}}.shift-grid{gap:14px;display:grid}.active-banner{top:calc(var(--tabs-sticky-height,54px) + 14px);z-index:8;background:var(--surface-raised);border:1px solid color-mix(in srgb, var(--primary) 28%, var(--border));color:var(--text);box-shadow:0 10px 22px color-mix(in srgb, var(--primary) 12%, transparent);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px 13px 13px 16px;display:grid;position:sticky}[data-theme=glass] .active-banner{border-color:#ffffffa3}.active-banner span{color:var(--muted);font-size:13px}.active-banner strong{margin-top:2px;font-size:18px;display:block}.active-copy{min-width:0}.active-title{overflow-wrap:anywhere}.timers{grid-column:1/-1;gap:8px;min-width:0;display:flex}.timer{color:#fff;border-radius:8px;flex:1 1 0;min-height:0;padding:10px 11px;box-shadow:inset 0 1px #ffffff2e}[data-theme=glass] .timer{background:linear-gradient(145deg, #fff3, #ffffff0a), var(--drive);-webkit-backdrop-filter:blur(14px)saturate(1.35);backdrop-filter:blur(14px)saturate(1.35);border:1px solid #ffffff47}[data-theme=glass] .timer.patient{background:linear-gradient(145deg, #fff3, #ffffff0a), var(--patient)}.timer strong{color:#fff;font-size:22px}.timer span{color:#ffffffc7}.drive{background:var(--drive)}.patient{background:var(--patient)}.patient-action{background:var(--accent);border-color:var(--accent);color:#fff}.patient-action:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.wake-lock-compact{align-self:start;justify-items:end;gap:4px;display:grid}.wake-lock-compact button{border-color:var(--border);background:var(--surface);min-height:36px;color:var(--text);padding:0 10px;font-size:13px}.wake-lock-compact .primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.wake-lock-compact .error{text-align:right;max-width:180px;color:var(--danger);font-size:12px}.postal-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.postal-panel label{margin-top:0}.gps-row{grid-column:1/-1;align-items:center;gap:10px;min-height:40px;padding-top:2px;display:flex}.gps-row button{flex:none;min-height:40px;padding:0 12px}.gps-row span{color:var(--muted);font-size:13px;line-height:1.35}.mini-timers{white-space:nowrap;flex-wrap:wrap;gap:6px;display:flex}.mini-timers span{color:#fff;border-radius:6px;padding:6px 9px;font-weight:800;box-shadow:inset 0 1px #ffffff29}.blue{background:var(--drive)}.green{background:var(--patient)}@media (width<=720px){.postal-panel{grid-template-columns:1fr}.gps-row{flex-flow:wrap;align-items:center}}.assignment-card{gap:10px;display:grid}.assignment-main{gap:3px;min-width:0;display:grid}.assignment-main strong{overflow-wrap:anywhere}.assignment-route{font-weight:750;color:var(--text)!important}.assignment-meta{font-size:13px}.assignment-row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.note-button{background:color-mix(in srgb, var(--surface) 82%, var(--surface-muted));min-height:38px;padding:0 12px}.log-reminder{background:color-mix(in srgb, var(--drive) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--drive) 34%, var(--border));color:var(--text);border-radius:8px;margin:0;padding:12px;font-weight:700}.neutral{background:var(--muted)}.base-monitor{background:color-mix(in srgb, var(--patient) 9%, var(--surface));border:1px solid color-mix(in srgb, var(--patient) 30%, var(--border));box-shadow:var(--shadow-soft);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}[data-theme=glass] .note-button,[data-theme=glass] .donation-button,[data-theme=glass] .wake-lock-compact button,[data-theme=glass] .action-bar .secondary{-webkit-backdrop-filter:blur(14px)saturate(1.35);backdrop-filter:blur(14px)saturate(1.35);background:#ffffff57;border-color:#ffffff8a}.institution-prompt{background:color-mix(in srgb, var(--accent) 11%, var(--surface));border-color:color-mix(in srgb, var(--accent) 34%, var(--border))}.institution-prompt .return-prompt{width:auto}.institution-prompt button{min-height:40px;padding:0 14px}.base-monitor div:first-child{gap:2px;display:grid}.return-prompt{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.wake-lock-control{background:var(--surface-raised);border:1px solid color-mix(in srgb, var(--border) 86%, transparent);box-shadow:var(--shadow-soft);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.wake-lock-control div:first-child{gap:2px;display:grid}.wake-lock-control .error{width:100%}@media (width<=720px){.assignment-row-actions{justify-content:space-between}.editor-grid{grid-template-columns:1fr}}.admin-view{gap:16px;display:grid}.admin-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-heading span{background:color-mix(in srgb, var(--primary-soft) 70%, var(--surface));border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:5px 10px;font-size:13px;font-weight:850}.admin-section{background:color-mix(in srgb, var(--surface-raised) 86%, var(--surface-muted));border:1px solid color-mix(in srgb, var(--border) 88%, transparent);box-shadow:var(--shadow-soft);border-radius:8px;padding:0}.admin-section summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:52px;padding:0 14px;font-size:17px;font-weight:800;list-style:none;display:flex}.admin-section summary::-webkit-details-marker{display:none}.admin-section summary:after{color:var(--muted);content:"+";font-size:22px;font-weight:700}.admin-section[open] summary{border-bottom:1px solid var(--border)}.admin-section[open] summary:after{content:"−"}.admin-section>.inline-form,.admin-section>.list,.admin-section>.privacy,.admin-section>.muted,.admin-section>.check-row,.admin-section>button{margin:12px}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}[data-theme=glass] .admin-section{background:linear-gradient(145deg, #ffffff57, #ffffff1f), var(--glass-bg);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);border-color:#ffffff8a}.app-footer{color:var(--muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:26px 0 10px;font-size:13px;font-weight:750;display:flex}.donation-button{background:color-mix(in srgb, var(--surface) 86%, var(--surface-muted));border:1px solid color-mix(in srgb, var(--border) 86%, transparent);color:var(--text);cursor:pointer;font:inherit;border-radius:8px;align-items:center;min-height:42px;padding:0 14px;font-weight:800;text-decoration:none;display:inline-flex}.terms-backdrop{z-index:50;background:#10182875;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.terms-dialog{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;width:min(100%,620px);max-width:620px;max-height:calc(100vh - 36px);padding:24px;position:relative;overflow:auto;box-shadow:0 24px 64px #10182838}.terms-dialog h2{margin:0 0 14px}.terms-dialog p{color:var(--muted);margin:0 0 12px;line-height:1.55}.terms-close{color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:28px;display:inline-flex;position:absolute;top:8px;right:10px}.primary-link{justify-content:center;margin-top:6px}.confirm-dialog{max-width:420px}.confirm-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.tariff-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 12px;display:grid}.check-row{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;gap:8px;margin:0;padding:10px;display:flex}.check-row input{width:20px;min-height:20px}.tariff-result{margin-top:14px}.tariff-reference{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 12px;display:grid}.tariff-reference-group{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:hidden}.tariff-reference-group h4{color:#fff;margin:0;padding:10px 12px}.tariff-reference-group.standard h4{background:#0a9f20}.tariff-reference-group.possible h4{background:#d9b900}.tariff-reference-row{border-top:1px solid var(--border);grid-template-columns:56px 1fr;gap:4px 10px;padding:10px 12px;display:grid}.tariff-reference-row small{color:var(--muted);grid-column:2}.tariff-table-wrap{margin-top:12px;overflow-x:auto}.tariff-table{border-collapse:collapse;width:100%;font-size:14px}.tariff-table th,.tariff-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:8px}[data-theme=glass] .tariff-reference-group,[data-theme=glass] .tariff-table{-webkit-backdrop-filter:blur(14px)saturate(1.35);backdrop-filter:blur(14px)saturate(1.35);background:#ffffff3d}[data-theme=glass] .tariff-table th,[data-theme=glass] .tariff-table td{border-bottom-color:#fff6}.tariff-warning{color:var(--danger);margin-top:3px;font-weight:700;display:block}.tariff-uncertain{border:1px solid color-mix(in srgb, var(--danger) 32%, var(--border));background:color-mix(in srgb, var(--danger-soft) 70%, var(--surface));color:var(--text);border-radius:8px;margin:8px 0 10px;padding:10px 12px;font-weight:750;line-height:1.4}.tariff-possible-row{background:color-mix(in srgb, #d9b900 10%, var(--surface))}.tariff-badge{background:color-mix(in srgb, #d9b900 18%, var(--surface));width:fit-content;color:var(--text);border-radius:999px;margin-top:4px;padding:2px 7px;font-size:11px;font-weight:850;display:block}@media (width<=720px){.tariff-options,.tariff-reference{grid-template-columns:1fr}}:root{color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-muted) 54%, var(--bg)) 0, var(--bg) 34rem), var(--bg);min-width:320px;min-height:100vh;margin:0}[data-theme=glass] body{background:linear-gradient(115deg, #ffffff80 0 12%, transparent 12% 34%, #2dd4bf2e 34% 44%, transparent 44%), linear-gradient(145deg, #2763ff57, transparent 34%, #00d2be42 68%, #fff6), linear-gradient(#ffffff2e 1px, transparent 1px), linear-gradient(90deg, #ffffff29 1px, transparent 1px), var(--bg);background-size:auto,auto,34px 34px,34px 34px,auto;background-attachment:fixed}button,input,select,textarea{font:inherit}button{border:1px solid var(--border);background:var(--surface);min-height:48px;color:var(--text);cursor:pointer;border-radius:8px;padding:0 16px;font-weight:750;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}button:hover:not(:disabled){background:color-mix(in srgb, var(--surface) 78%, var(--primary-soft));border-color:color-mix(in srgb, var(--border) 60%, var(--primary));box-shadow:var(--shadow-soft)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.primary:hover:not(:disabled){background:var(--primary-strong);border-color:var(--primary-strong)}.danger{background:var(--danger);border-color:var(--danger);color:#fff}.outline{background:var(--surface);color:var(--danger)}.big{width:100%;min-height:64px;font-size:18px}h1,h2{letter-spacing:0;margin:0;line-height:1.1}h1{font-size:28px}h2{letter-spacing:0;font-size:21px}.action-bar,.inline-form{align-items:center;gap:8px;display:flex}.auth-panel,.panel,.editor{background:var(--surface-raised);border:1px solid color-mix(in srgb, var(--border) 86%, transparent);box-shadow:var(--shadow);border-radius:8px;padding:18px}[data-theme=glass] .auth-panel,[data-theme=glass] .panel,[data-theme=glass] .editor,[data-theme=glass] .active-banner,[data-theme=glass] .list-row,[data-theme=glass] .assignment-row,[data-theme=glass] .base-monitor,[data-theme=glass] .wake-lock-control,[data-theme=glass] .terms-dialog{background:linear-gradient(145deg, var(--glass-bg-strong), #ffffff29), var(--glass-bg);border-color:var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-highlight), inset 0 -1px 0 #ffffff2e, var(--shadow);-webkit-backdrop-filter:blur(18px)saturate(1.45);backdrop-filter:blur(18px)saturate(1.45)}label{color:var(--text);gap:6px;margin-top:14px;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 88%, var(--surface-muted));width:100%;min-height:52px;color:var(--text);border-radius:8px;padding:10px 12px;transition:background .16s,border-color .16s,box-shadow .16s}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 26%, transparent);outline-offset:2px}input:focus,select:focus,textarea:focus{background:var(--surface);border-color:color-mix(in srgb, var(--accent) 68%, var(--border));box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent)}[data-theme=glass] input,[data-theme=glass] select,[data-theme=glass] textarea{-webkit-backdrop-filter:blur(14px)saturate(1.35);backdrop-filter:blur(14px)saturate(1.35);background:#ffffff4d;border-color:#ffffff8f}textarea{resize:vertical}.error{color:var(--danger);font-weight:700}.privacy{color:var(--muted);line-height:1.4}.field-warning{color:var(--danger);line-height:1.35}.action-bar{flex-wrap:wrap;padding:3px 0}.action-bar button{flex:150px;min-height:52px}.action-bar .secondary{background:color-mix(in srgb, var(--surface-raised) 88%, var(--surface-muted));color:var(--text)}.shift-empty{gap:16px;display:grid}.editor{gap:8px;display:grid}.list{gap:10px;margin-top:14px;display:grid}.list-row,.assignment-row{border:1px solid color-mix(in srgb, var(--border) 88%, transparent);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px;display:flex;box-shadow:0 1px #0f172a08}.list-row span,.assignment-row span{color:var(--muted);margin-top:4px;display:block}.export-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.inline-form{flex-wrap:wrap;align-items:end}.inline-form input{flex:180px}.inline-label{flex:190px;margin-top:0}@media (width<=720px){h1{font-size:23px}.export-controls{grid-template-columns:1fr}.list-row,.assignment-row{flex-direction:column;align-items:stretch}}
