:root{--page-bg: #f6f8f7;--soft-surface: #f7fbf9;--ink: #17211d;--muted: #66736e;--accent: #227360;--border: #e2e9e5;--border-strong: #cbd8d2;--shadow: 0 16px 42px rgba(34, 52, 44, .1);--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--ink);background:var(--page-bg);font-family:var(--sans);font-size:16px;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}button,input,select{font:inherit}button,select{-webkit-tap-highlight-color:transparent}img,svg{display:block}.app-shell{display:grid;align-content:start;min-height:100svh;background:linear-gradient(180deg,#f5faf8eb,#ffffffd1),var(--page-bg)}.onboarding,.dashboard{width:min(100%,1120px);margin:0 auto;padding:20px}.onboarding{display:grid;gap:22px;min-height:100svh;align-content:center}.brand-strip{display:inline-flex;align-items:center;gap:12px;color:var(--ink)}.brand-strip div:not(.logo-mark){display:grid;gap:1px;text-align:left}.brand-strip strong{font-size:1rem;line-height:1.2}.brand-strip span{color:var(--muted);font-size:.86rem;line-height:1.3}.logo-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:var(--ink);color:#fff;font-weight:800}.setup-card,.availability-card,.summary-card,.test-card{border:1px solid var(--border);border-radius:8px;background:#fffffff0;box-shadow:var(--shadow)}.setup-card{display:grid;gap:22px;width:min(100%,640px);padding:22px}.card-heading,.field-group,.notification-card,.summary-card{display:grid;gap:12px}.card-heading{gap:8px}.eyebrow{color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:0;margin:0;text-transform:uppercase}h1,h2,p{margin:0}h1{color:var(--ink);font-size:clamp(2rem,8vw,3.2rem);line-height:1.02;letter-spacing:0}h2{color:var(--ink);font-size:1rem;line-height:1.22;letter-spacing:0}p{color:var(--muted)}.field-group{padding-top:2px}.field-group>div:first-child p{margin-top:3px;font-size:.9rem}.info-panel,.readonly-choice,.radio-card,.select-wrap,.status-pill,.date-summary,.test-card{border:1px solid var(--border);border-radius:8px;background:var(--soft-surface)}.info-panel{display:flex;align-items:center;gap:12px;padding:14px;color:var(--accent)}.info-panel div{display:grid;gap:2px}.info-panel span,.status-pill span,.summary-list dt,.timing-grid dt{color:var(--muted);font-size:.78rem}.info-panel strong,.readonly-choice span,.status-pill strong,.summary-list dd,.timing-grid dd{color:var(--ink);font-weight:750}.readonly-choice{display:flex;align-items:center;gap:10px;padding:13px 14px;color:var(--accent)}.readonly-choice span{flex:1}.choice-grid,.date-inputs,.status-pills{display:grid;gap:10px}.radio-card{position:relative;display:grid;grid-template-columns:22px 1fr;gap:10px;min-height:94px;padding:14px;color:var(--ink);cursor:pointer}.radio-card input{position:absolute;inset:0;opacity:0}.radio-card small{display:block;margin-top:4px;color:var(--muted);font-size:.86rem;line-height:1.35}.radio-card.selected{border-color:#2273608c;background:#eff8f5}.radio-card:has(input:focus-visible),.primary-action:focus-visible,.secondary-action:focus-visible,.menu-button:focus-visible,.select-wrap:has(select:focus-visible),.date-field input:focus-visible{outline:3px solid rgba(34,115,96,.25);outline-offset:2px}.radio-visual{width:18px;height:18px;margin-top:1px;border:2px solid #9aa9a3;border-radius:999px}.selected .radio-visual{border:6px solid var(--accent)}.date-summary{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;background:var(--border)}.date-summary div{display:grid;gap:3px;padding:12px;background:var(--soft-surface)}.date-summary dt{color:var(--muted);font-size:.76rem}.date-summary dd{margin:0;color:var(--ink);font-weight:750}.date-field{display:grid;gap:7px;color:var(--ink);font-weight:700}.date-field input,.select-wrap select{min-height:48px;border:1px solid var(--border-strong);border-radius:8px;background:#fff;color:var(--ink);font:inherit}.date-field input{padding:0 12px}.date-field input[aria-invalid=true]{border-color:#ba4b4b;background:#fff8f8}.field-error{color:#a23c3c;font-weight:650}.language-row{align-items:start}.select-wrap{display:flex;align-items:center;gap:8px;padding:7px 9px;color:var(--accent)}.select-wrap select{width:100%;border:0;background:transparent}.primary-action,.secondary-action,.menu-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;border-radius:8px;font:inherit;font-weight:800;letter-spacing:0;cursor:pointer}.offline-banner{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:10px 16px;border-bottom:1px solid #ead6b3;background:#fff7e8;color:#523b15;font-weight:750}.offline-banner span{max-width:720px}.primary-action{width:100%;border:1px solid var(--accent);background:var(--accent);color:#fff}.primary-action:disabled{border-color:#cbd6d1;background:#d8e2de;color:#718079;cursor:not-allowed}.secondary-action:disabled{color:#718079;cursor:not-allowed}.secondary-action,.menu-button{border:1px solid var(--border-strong);background:#fff;color:var(--ink)}.secondary-action{padding:0 16px}.action-stack,.trust-list{display:grid;gap:10px}.notification-message{padding:12px 14px;border:1px solid #d6e6df;border-radius:8px;background:#eff8f5;color:var(--ink);font-weight:700}.notification-message.error{border-color:#efc7c7;background:#fff8f8;color:#a23c3c}.notification-error-panel{display:grid;gap:12px;padding:14px;border:1px solid #efc7c7;border-radius:8px;background:#fff8f8;color:var(--ink)}.notification-error-panel h2{font-size:1rem}.notification-error-panel p{margin-top:4px}.error-meta,.error-actions{display:flex;flex-wrap:wrap;gap:8px}.error-meta span,.reference-note{border-radius:8px;background:#fff;color:#7d2f2f;font-size:.82rem;font-weight:800;padding:6px 8px}.error-details{color:var(--ink)}.error-details summary{cursor:pointer;font-weight:800}.error-details dl{display:grid;gap:8px;margin:10px 0 0}.error-details div{display:grid;gap:2px}.error-details dt{color:var(--muted);font-size:.78rem}.error-details dd{margin:0;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem}.trust-list{list-style:none;padding:0;margin:0}.trust-list li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;color:var(--ink)}.trust-list svg{color:var(--accent)}.dashboard{display:grid;gap:18px}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:6px}.desktop-nav{display:none;gap:8px}.desktop-nav a{border-radius:8px;color:var(--muted);font-weight:750;padding:10px 12px;text-decoration:none}.desktop-nav a:hover{color:var(--ink);background:var(--soft-surface)}.menu-button{width:48px;padding:0}.dashboard-grid{display:grid;gap:14px}.availability-card{display:grid;gap:18px;padding:20px;background:linear-gradient(180deg,#f0f8f4,#fff)}.availability-card h1{margin-top:4px;font-size:clamp(1.85rem,7vw,3rem)}.status-icon{display:grid;width:64px;height:64px;place-items:center;border-radius:8px;background:#dcefe7;color:var(--accent)}.status-pills{grid-template-columns:1fr 1fr}.status-pill{display:grid;gap:3px;padding:12px}.timing-grid,.summary-list{display:grid;gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--border)}.timing-grid{grid-template-columns:1fr 1fr}.timing-grid div,.summary-list div{display:grid;gap:3px;padding:12px;background:#fff}.timing-grid dd,.summary-list dd{margin:0}.summary-card{padding:18px}.summary-heading{display:flex;align-items:center;gap:10px;color:var(--accent)}.summary-heading h2{flex:1}.summary-list{border:0}.full-width{width:100%}.install-hint{display:grid;gap:8px;padding:13px 14px;border:1px solid var(--border);border-radius:8px;background:var(--soft-surface);color:var(--ink)}.install-hint strong{font-size:.94rem}.install-hint ol{display:grid;gap:4px;margin:0;padding-left:20px;color:var(--muted)}.test-card{display:grid;gap:14px;padding:16px}.test-card p{margin-top:4px;font-size:.92rem}@media(min-width:680px){.onboarding,.dashboard{padding:32px}.setup-card{padding:30px}.choice-grid,.date-inputs,.language-row,.test-card{grid-template-columns:1fr 1fr;align-items:center}.test-card .secondary-action{justify-self:end}}@media(min-width:900px){.desktop-nav{display:flex}.menu-button{display:none}.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:start}.availability-card{min-height:430px;align-content:start;padding:30px}.test-card{grid-column:1 / -1}}
