:root{--paper:#f7f4ee;--surface:#fff;--surface-alt:#f0ede7;--ink:#1c1917;--ink-muted:#5e5852;--ink-light:#716a64;--rule:#e2ddd5;--rule-dark:#c4bdb3;--accent:#1d3461;--accent-light:#ebf0fa;--pass:#14532d;--pass-light:#d1fae5;--fail:#c2410c;--fail-light:#fff7ed;--font-display:"DM Serif Display", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--gutter:20px;--radius-md:10px;--radius-lg:16px;--shadow-card:0 2px 8px #1c191712;--max-width:480px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:var(--max-width);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex;position:relative}.screen{padding:24px var(--gutter) 32px;flex:1}.title{font-family:var(--font-display);margin-bottom:4px;font-size:36px;font-weight:400;line-height:1.1}.subtitle{color:var(--ink-muted);margin-bottom:24px;font-size:13px}.section-label,.field-label,.topbar-crumb,.card-badge{text-transform:uppercase;letter-spacing:1.2px;font-size:11px;font-weight:500}.section-label{color:var(--ink-light);margin-bottom:12px}.empty,.hint{text-align:center;color:var(--ink-muted);padding-top:32px}.hint{color:var(--ink-light);font-size:13px}.topbar{min-height:52px;padding:0 var(--gutter);color:var(--ink-light);border-bottom:1px solid #0000;align-items:center;gap:4px;display:flex}.topbar:has(.topbar-back){padding-left:6px}.topbar-back{width:44px;height:44px;color:var(--ink);border-radius:50%;place-items:center;display:grid}.topbar-back:active{background:#1c19170f}.topbar-crumb{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.home{padding-top:48px}.feedback-btn{top:12px;right:var(--gutter);background:var(--accent-light);width:44px;height:44px;color:var(--accent);border:1px solid #bccfe8;border-radius:50%;place-items:center;display:grid;position:absolute}.brand{flex-direction:column;align-items:center;margin-bottom:72px;display:flex}.brand-logo{border-radius:var(--radius-md);background:var(--accent);color:#fff;width:56px;height:56px;box-shadow:var(--shadow-card);place-items:center;margin-bottom:16px;font-size:26px;font-weight:700;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:-.5px;font-size:48px;font-weight:400;line-height:1.1}.brand-tagline{color:var(--ink-muted);margin-top:4px}.card-list{flex-direction:column;gap:8px;display:flex}.card{border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card);flex-direction:column;padding:20px 48px 20px 24px;transition:transform .1s,opacity .1s;display:flex;position:relative}.card:after{content:"›";color:var(--rule-dark);font-size:28px;position:absolute;top:50%;right:24px;transform:translateY(-50%)}.card:active{opacity:.85;transform:scale(.988)}.card-badge{color:var(--ink-light);margin-bottom:8px}.card-title{font-family:var(--font-display);font-size:20px;line-height:1.3}.card-meta{color:var(--ink-muted);font-size:13px}.level-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:28px;display:grid}.level-pill{aspect-ratio:1.6;border-radius:var(--radius-md);min-height:100px;font-family:var(--font-display);letter-spacing:.5px;border:1.5px solid;place-items:center;font-size:26px;transition:transform .1s,opacity .1s;display:grid}.level-pill:active{opacity:.75;transform:scale(.97)}.score-form{flex-direction:column;flex:1;display:flex}.divider{background:var(--rule);border:0;height:1px;margin:0 0 24px}.score-field{margin-bottom:24px;display:block}.field-label{color:var(--ink-muted);margin-bottom:8px;display:block}.field-optional{text-transform:none;letter-spacing:0;font-weight:400}.score-row{align-items:center;gap:12px;display:flex}.score-input{border:1.5px solid var(--rule);border-radius:var(--radius-md);background:var(--surface);width:100px;min-height:56px;color:var(--ink);font-family:var(--font-display);text-align:center;padding:8px;font-size:26px}.score-input::placeholder{color:var(--ink-light)}.score-input:focus{border-color:var(--accent);outline:none}.score-input[aria-invalid=true]{border-color:var(--fail)}.score-max{color:var(--ink-light);font-size:17px}.field-error{color:var(--fail);margin-top:4px;font-size:12px;display:block}.footer{padding:12px var(--gutter) max(16px, env(safe-area-inset-bottom));border-top:1px solid var(--rule);background:var(--paper);flex-direction:column;gap:8px;display:flex;position:sticky;bottom:0}.footer-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.btn{border-radius:var(--radius-md);letter-spacing:.3px;border:1.5px solid #0000;width:100%;min-height:52px;padding:0 16px;font-size:15px}.btn-primary{background:var(--accent);color:#fff;font-weight:700}.btn-primary:disabled{background:var(--surface-alt);color:var(--ink-light);cursor:default}.btn-secondary{border-color:var(--rule-dark);color:var(--ink-muted);background:0 0;font-weight:500}.btn-soft{background:var(--accent-light);width:auto;color:var(--accent);padding:0 32px;font-weight:700}.btn:not(:disabled):active{opacity:.8}.result-layout{flex-direction:column;flex:1;display:flex}.result-layout .topbar{justify-content:center}.badge{border-radius:var(--radius-lg);border:1.5px solid;flex-direction:column;align-items:center;min-width:200px;max-width:280px;margin:8px auto 0;padding:24px 48px;animation:.35s cubic-bezier(.34,1.56,.64,1) badge-in;display:flex}.badge-pass{background:var(--pass-light);color:var(--pass)}.badge-fail{background:var(--fail-light);color:var(--fail)}.badge-score{font-family:var(--font-display);font-size:48px;line-height:1.15}.badge-label{text-transform:uppercase;letter-spacing:.8px;text-align:center;font-size:13px;font-weight:500}@keyframes badge-in{0%{opacity:0;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.badge{animation:none}}.disclaimer{text-align:center;color:var(--ink-light);margin-top:16px;font-size:12px}.reason{text-align:center;color:var(--fail);margin-top:12px;font-size:13px}.result-layout .section-label{color:var(--ink-muted);margin-top:48px}.breakdown{border-collapse:separate;border-spacing:0;border:1px solid var(--rule);border-radius:var(--radius-md);width:100%;overflow:hidden}.breakdown th,.breakdown td{text-align:right;vertical-align:middle;padding:12px 16px}.breakdown th:first-child,.breakdown td:first-child{text-align:left}.breakdown th:not(:first-child),.breakdown td:not(:first-child){white-space:nowrap}.breakdown th{background:var(--surface-alt);border-bottom:1px solid var(--rule);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.8px;font-size:11px;font-weight:500}.breakdown tbody tr{background:var(--surface)}.breakdown tbody tr:nth-child(2n){background:var(--paper)}.breakdown tbody td:not(:first-child){font-weight:500}.part-max,.part-note{color:var(--ink-muted);font-size:11px;font-weight:400;display:block}.breakdown tfoot td{background:var(--surface-alt);border-top:1px solid var(--rule-dark);font-weight:700}.breakdown tfoot .breakdown-total{font-family:var(--font-display);font-size:20px;font-weight:400}.ranges .ranges-pass{color:var(--pass)}.ranges .ranges-fail{color:var(--fail)}.ranges tbody tr.ranges-current{background:var(--accent-light);box-shadow:inset 4px 0 0 var(--accent)}.ranges tbody tr.ranges-current td{font-weight:700}.minimums{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--surface);margin-top:12px;padding:12px 16px;font-size:13px}.minimums-label{color:var(--ink-muted);margin-bottom:4px;font-weight:500}.minimums ul{margin:0;padding-left:18px}.install-btn{justify-content:center;align-items:center;gap:8px;margin-top:32px;display:flex}.install-steps{margin:0 0 24px;padding-left:22px}.install-steps li{margin-bottom:16px}.install-steps svg{vertical-align:-4px;color:var(--accent);margin-left:6px}.install-hint{color:var(--ink-light);font-size:13px;display:block}.sheet{width:100%;max-width:var(--max-width);background:var(--surface);max-height:90dvh;color:var(--ink);box-shadow:var(--shadow-card);border:0;border-radius:20px 20px 0 0;margin:auto auto 0;padding:0}.sheet::backdrop{background:#1c191766}.sheet[open]{animation:.25s ease-out sheet-up}@keyframes sheet-up{0%{transform:translateY(100%)}}.sheet-body{padding:12px 24px max(48px, env(safe-area-inset-bottom))}.sheet-handle{background:var(--rule);border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.sheet-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.sheet-title{font-family:var(--font-display);font-size:20px;font-weight:400}.sheet-version{font-family:var(--font-body);color:var(--ink-light);margin-left:6px;font-size:11px}.sheet-close{width:44px;height:44px;color:var(--ink-light);background:0 0;border:0;margin-right:-12px}.sheet .field-label{color:var(--ink-light)}.text-input{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--surface-alt);width:100%;color:var(--ink);font:inherit;resize:vertical;margin-bottom:16px;padding:12px 16px;font-size:16px;display:block}.text-input::placeholder{color:var(--ink-light)}.sheet .field-error{margin:-4px 0 12px;font-size:13px}.sheet-success{text-align:center;flex-direction:column;align-items:center;padding:24px 0;display:flex}.sheet-success-icon{color:var(--pass);margin-bottom:12px;font-size:32px}.sheet-success h3{font-family:var(--font-display);margin-bottom:8px;font-size:26px;font-weight:400}.sheet-success p{color:var(--ink-muted);margin-bottom:24px}
