:root{color-scheme:light;--md-primary: #b04c38;--md-on-primary: #ffffff;--md-primary-container: #ffede5;--md-on-primary-container: #6b3a2e;--md-secondary: #c4a35a;--md-surface: #fffbf7;--md-surface-container: #fffcfa;--md-surface-container-low: #fff4e8;--md-on-surface: #3e2e28;--md-on-surface-variant: #7a6258;--md-outline: #e0d0c6;--md-outline-variant: #f0e6df;--md-error: #b91c1c;--md-error-container: #fef2f2;--md-success: #15803d;--app-bg: var(--md-surface);--card: var(--md-surface-container);--ink: var(--md-on-surface);--ink-soft: var(--md-on-surface);--muted: var(--md-on-surface-variant);--border: var(--md-outline-variant);--border-strong: var(--md-outline);--accent: var(--md-primary);--accent-hover: #964032;--accent-soft: var(--md-primary-container);--accent-ring: rgb(176 76 56 / 28%);--danger: var(--md-error);--danger-soft: var(--md-error-container);--highlight: #fff4d2;--chip-bg: var(--md-surface-container-low);--disclaimer-bg: var(--md-surface-container-low);--shadow-sm: 0 1px 3px rgb(62 46 40 / 6%);--shadow-md: 0 6px 18px rgb(62 46 40 / 8%);--radius: 20px;--radius-sm: 14px;--radius-pill: 999px;--header-h: 48px;--mobile-bar-h: 64px;--app-max: 1040px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{min-height:100vh;min-height:100dvh;background:var(--app-bg);color:var(--ink)}#app{max-width:var(--app-max);margin:0 auto;padding:0 .85rem 1.5rem;min-height:100vh;min-height:100dvh}.skip-link{position:absolute;left:1rem;top:-100px;z-index:100;padding:.5rem .85rem;background:var(--accent);color:var(--md-on-primary);font-weight:650;font-size:.85rem;border-radius:var(--radius-sm);text-decoration:none;box-shadow:var(--shadow-md)}.skip-link:focus{top:.65rem;outline:none;box-shadow:0 0 0 3px var(--accent-ring),var(--shadow-md)}.app-header{position:sticky;top:0;z-index:40;margin:0 -.85rem .85rem;padding:.55rem .85rem;min-height:var(--header-h);display:flex;align-items:center;background:color-mix(in srgb,var(--md-surface-container) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.app-header-inner{width:100%;max-width:var(--app-max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.app-brand{min-width:0;flex:1}.app-brand h1{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.2}.layout{display:grid;grid-template-columns:minmax(260px,300px) 1fr;gap:.85rem;align-items:start}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem .95rem;box-shadow:var(--shadow-sm)}.card.panel-sticky{position:sticky;top:calc(var(--header-h) + 8px)}.card h2{margin:0 0 .65rem;font-size:.88rem;font-weight:700;letter-spacing:-.01em;color:var(--ink-soft)}.card-section-title{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}.card-section-title h2{margin:0}.section-kicker{font-size:.68rem;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.results-toolbar{display:flex;align-items:center;gap:.4rem}.results-column{display:grid;gap:.75rem}.results-panel{margin:0}.results-panel .card-section-title h2{font-size:.95rem}.subpanel-title{margin:.15rem 0 .45rem;font-size:.85rem;font-weight:700;letter-spacing:-.01em;color:var(--ink-soft)}form{display:grid;gap:.65rem}label{display:grid;gap:.28rem;font-size:.78rem;font-weight:600;color:var(--ink-soft)}.label-optional{font-weight:400;color:var(--muted)}input,select,button{font:inherit}input,select{padding:.5rem .65rem;min-height:40px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--md-surface-container);color:var(--ink);transition:border-color .15s,box-shadow .15s}input:hover,select:hover{border-color:var(--md-outline)}input:focus,select:focus,button:focus-visible,.ref-chip:focus-visible,.measure-tabs button:focus-visible,.chart-focus-tabs button:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ref-fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .65rem .5rem;margin:0;background:var(--chip-bg)}.ref-fieldset legend{font-size:.78rem;font-weight:700;padding:0 .3rem;color:var(--ink-soft)}.ref-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}.ref-chip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border-strong);background:var(--md-surface-container);border-radius:var(--radius-pill);padding:.4rem .7rem;min-height:36px;cursor:pointer;font-size:.78rem;font-weight:600;color:var(--ink-soft);-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s,color .15s}.ref-chip input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ref-chip:has(input:checked){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.ref-chip .chip-dot{width:7px;height:7px;border-radius:50%;background:var(--border-strong)}.ref-chip:has(input:checked) .chip-dot{background:var(--accent)}.ref-chip:has(input:disabled){opacity:.55;cursor:not-allowed}button.btn-ghost,button.primary{margin-top:.1rem;padding:.55rem .85rem;min-height:40px;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:filter .15s,background .15s,border-color .15s,color .15s}button.btn-ghost{border:1px solid var(--border-strong);background:var(--md-surface-container);color:var(--muted);font-size:.82rem}button.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}button.primary{border:none;background:var(--accent);color:var(--md-on-primary);box-shadow:0 1px 2px #b04c3840}button.primary:hover{background:var(--accent-hover)}.toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.65rem 0}.measure-tabs,.chart-focus-tabs{display:flex;flex-wrap:wrap;gap:.35rem}.measure-tabs button,.chart-focus-tabs button{border:1px solid var(--border);background:var(--md-surface-container);border-radius:var(--radius-pill);padding:.4rem .75rem;min-height:36px;cursor:pointer;font-size:.78rem;font-weight:550;color:var(--ink-soft);transition:background .15s,border-color .15s,color .15s}.measure-tabs button.active,.chart-focus-tabs button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700}.chart-focus-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.55rem}.chart-focus-wrap .label{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.results{display:grid;gap:.55rem;margin-bottom:0}.results-empty{padding:1.1rem .9rem;text-align:center;color:var(--muted);background:var(--chip-bg);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);font-size:.86rem}.results-empty-title{display:block;font-weight:700;color:var(--ink-soft);margin-bottom:.2rem;letter-spacing:-.01em}.results-empty-copy{display:block;font-size:.82rem;color:var(--muted)}.measure-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--md-surface-container);padding:.65rem .8rem;box-shadow:var(--shadow-sm)}.measure-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:.65rem;margin-bottom:.45rem}.measure-card-head .measure-name{font-size:.82rem;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.measure-card-head .measure-value{font-size:.92rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.measure-hero{display:flex;align-items:baseline;gap:.65rem;margin-bottom:.45rem;padding:.35rem 0 .15rem}.measure-hero .hero-pct{font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}.measure-hero .hero-pct .pct-suffix{font-size:.55em;font-weight:650;color:var(--muted);margin-left:.05em}.measure-hero .hero-meta{display:flex;flex-direction:column;gap:.1rem;min-width:0}.measure-hero .hero-ref{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.measure-hero .hero-z{font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums}.measure-hero.is-na .hero-pct{font-size:1.35rem;color:var(--muted)}.delta-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin:0 0 .55rem}.delta-chip{display:inline-flex;align-items:center;font-size:.7rem;font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink-soft);background:var(--chip-bg);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.22rem .5rem;white-space:nowrap}.ref-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.4rem}.ref-metric{background:var(--chip-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .5rem;min-height:3.1rem}.ref-metric.is-primary{background:var(--md-surface-container);border-color:var(--accent);box-shadow:0 0 0 1px #b04c382e}.ref-metric .ref-name{font-size:.65rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:.15rem}.ref-metric.is-primary .ref-name{color:var(--accent)}.ref-metric .ref-pct{font-size:.9rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.ref-metric .pct-suffix{font-size:.75em;font-weight:600}.ref-metric .ref-z{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.ref-metric.is-na{background:var(--chip-bg);opacity:.85}.ref-metric.is-na .ref-pct{font-size:.78rem;font-weight:600;color:var(--muted)}.measure-summary{margin:0 0 .55rem;padding:.45rem .6rem;background:var(--accent-soft);border:1px solid rgb(176 76 56 / 15%);border-radius:var(--radius-sm);font-size:.8rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}.measure-summary strong{color:var(--md-on-primary-container)}.chart-wrap{position:relative;height:340px;margin-bottom:.75rem;padding:.55rem;background:var(--chip-bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.chart-wrap.is-empty:after{content:attr(data-empty);position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center;color:var(--muted);font-size:.86rem;pointer-events:none}.chart-wrap canvas{max-height:100%}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--md-surface-container)}table{width:100%;border-collapse:collapse;font-size:.84rem}th,td{border-bottom:1px solid var(--border);padding:.4rem .55rem;text-align:right;font-variant-numeric:tabular-nums}th:first-child,td:first-child{text-align:left}thead th{background:var(--chip-bg);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:700}tr.child-row{background:var(--highlight);font-weight:700}tbody tr:last-child td{border-bottom:none}.disclaimer{margin-top:0;font-size:.78rem;color:var(--muted);background:var(--disclaimer-bg);box-shadow:none;padding:.75rem .85rem}.disclaimer a{color:var(--accent);font-weight:600}.disclaimer p{margin:.4rem 0 0}.status{font-size:.78rem;color:var(--muted);min-height:1.1em;margin:.25rem 0 0}.status.error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:.4rem .55rem}.age-fields{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .65rem .4rem;margin:0;background:var(--chip-bg)}.age-fields legend{font-weight:700;font-size:.78rem;padding:0 .3rem;color:var(--ink-soft)}.age-fields .hint{font-weight:400;color:var(--muted);font-size:.85em}.age-preview{margin:.3rem 0 .1rem;font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.form-hint{margin:0;font-size:.74rem;color:var(--muted)}.form-hint-persist{margin-top:.45rem}.form-hint.ref-note{color:var(--accent);font-size:.74rem;margin-top:.3rem}.chart-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.55rem}button.export-btn{border:1px solid var(--border-strong);background:var(--md-surface-container);border-radius:var(--radius-sm);padding:.45rem .75rem;min-height:40px;cursor:pointer;font-size:.78rem;font-weight:650;color:var(--ink-soft);transition:border-color .15s,color .15s,background .15s}button.export-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}button.export-btn-primary{border-color:var(--accent);background:var(--accent);color:var(--md-on-primary)}button.export-btn-primary:hover{background:var(--accent-hover);color:var(--md-on-primary);border-color:var(--accent-hover)}.export-advanced{display:inline-block;vertical-align:middle}.export-advanced summary{cursor:pointer;font-size:.74rem;color:var(--muted);list-style:none;-webkit-user-select:none;user-select:none;min-height:36px;display:inline-flex;align-items:center}.export-advanced summary::-webkit-details-marker{display:none}.export-advanced[open]{width:100%;flex-basis:100%}.export-advanced[open] summary{margin-bottom:.3rem}.table-caption{margin:0 0 .45rem;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.chart-focus-wrap[hidden],.measure-summary[hidden],.is-hidden{display:none!important}.loading-banner{display:flex;align-items:center;gap:.45rem;padding:.5rem .65rem;background:var(--chip-bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;color:var(--muted);margin-bottom:.55rem}.loading-banner .spinner{width:13px;height:13px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.view-switcher-bar,.view-tabs{position:sticky;top:var(--header-h);z-index:30;margin:0 0 .65rem;padding:.35rem 0;background:color-mix(in srgb,var(--md-surface) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.segmented{display:inline-flex;width:100%;max-width:420px;padding:3px;gap:2px;border-radius:var(--radius-pill);background:var(--md-surface-container-low);border:1px solid var(--md-outline-variant)}.segmented-btn{flex:1;min-height:40px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--md-on-surface-variant);font:inherit;font-size:.92rem;font-weight:600;cursor:pointer;padding:.35rem .75rem;transition:background .15s,color .15s,box-shadow .15s}.segmented-btn:hover{color:var(--md-on-surface);background:color-mix(in srgb,var(--md-surface-container) 70%,transparent)}.segmented-btn.active,.segmented-btn[aria-selected=true]{background:var(--md-surface-container);color:var(--md-primary);font-weight:700;box-shadow:var(--shadow-sm)}.segmented-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}.view-panel{margin:0}.view-panel.is-hidden,.view-panel[hidden]{display:none!important}.curves-panel .card-section-title{margin-bottom:.35rem}.curves-panel .subpanel-title{margin:1rem 0 .5rem;font-size:.88rem}.sticky-share,.app-header .export-btn-primary{flex-shrink:0}@media (max-width: 860px){.view-switcher-bar{top:var(--header-h);z-index:35}}.mobile-action-bar{display:none}.desktop-only{display:flex}@media (max-width: 860px){#app{padding-bottom:calc(var(--mobile-bar-h) + 1rem)}.layout{grid-template-columns:1fr}.card.panel-sticky{position:static}.desktop-only{display:none!important}.mobile-action-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;gap:.5rem;padding:.55rem .85rem calc(.55rem + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--md-surface-container) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border);box-shadow:0 -4px 16px #11182714}.mobile-action-bar .export-btn{flex:1;width:100%;justify-content:center;min-height:44px}.mobile-action-bar .export-btn-primary{flex:1}.measure-hero .hero-pct{font-size:1.75rem}.layout{display:flex;flex-direction:column}.results-column{order:1}.input-panel{order:2}}@media (min-width: 861px){button.btn-ghost{opacity:.85}}@media (prefers-reduced-motion: reduce){.loading-banner .spinner{animation:none;border-top-color:var(--border-strong);border-right-color:var(--accent)}button.btn-ghost,button.primary,button.export-btn,.ref-chip,.measure-tabs button,.chart-focus-tabs button,.segmented-btn,input,select{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
