:root{font-family:Avenir Next,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(170deg,#f4f8f8,#e9f2f5 45%,#f6efe4);color:#17222b}button,input,select{font:inherit}#root{min-height:100vh}.app-shell{width:min(1180px,100% - 2rem);margin:0 auto;padding:1.5rem 0 2rem}.app-header{background:linear-gradient(155deg,#0f766e,#0d9488 45%,#0f766e);color:#f6fcfb;border-radius:1rem;padding:1.5rem;box-shadow:0 14px 30px #082f4933}.app-header h1{margin:.35rem 0 .75rem;font-size:clamp(1.45rem,2.2vw,2rem)}.app-header p{margin:0}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;opacity:.9}.grid-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.panel{background:#ffffffe0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(15,118,110,.14);border-radius:.95rem;padding:1rem;box-shadow:0 8px 24px #0f172a14}.panel h2{margin:0 0 .85rem;font-size:1.1rem}.form-grid{display:grid;grid-template-columns:1fr;gap:.35rem}.form-grid label{font-size:.9rem;font-weight:650;color:#155e75}.form-grid select,.form-grid input{width:100%;border:1px solid #94a3b8;border-radius:.6rem;padding:.56rem .64rem;background:#fff}.form-grid select:focus,.form-grid input:focus,.primary-button:focus-visible{outline:3px solid #67e8f9;outline-offset:2px;border-color:#0891b2}.consent-box{margin-top:.85rem;padding:.7rem;border:1px solid #bae6fd;border-radius:.65rem;background:#f0f9ff}.consent-box p{margin:0;font-size:.84rem;color:#334155}.primary-button{width:100%;border:none;border-radius:.7rem;padding:.72rem 1rem;margin-top:.85rem;background:linear-gradient(145deg,#ea580c,#f97316);color:#fff;font-weight:700;cursor:pointer;transition:transform .14s ease,filter .14s ease}.primary-button:hover{transform:translateY(-1px);filter:brightness(1.04)}.primary-button:disabled{cursor:wait;opacity:.75;transform:none;filter:none}.event-status{margin:.6rem 0 0;font-size:.85rem}.status-sent{color:#166534}.status-failed{color:#991b1b}.status-sending{color:#0c4a6e}.funding-layout{display:grid;grid-template-columns:138px 1fr;gap:.9rem;align-items:center}.donut{width:138px;height:138px;border-radius:50%;position:relative;border:1px solid #cbd5e1}.donut:after{content:"";position:absolute;inset:24%;background:#fff;border-radius:50%;border:1px solid #e2e8f0}.legend-table{display:grid;gap:.45rem}.legend-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding-bottom:.3rem;border-bottom:1px dashed #cbd5e1}.legend-label{display:flex;align-items:center;gap:.45rem;font-weight:600}.legend-value{font-variant-numeric:tabular-nums;font-size:.89rem;text-align:right}.swatch{width:.75rem;height:.75rem;border-radius:.22rem}.subsection{margin-top:1rem}.subsection h3{margin:0;font-size:1rem}.hint{margin:.5rem 0;font-size:.84rem;color:#475569}.age-chart{display:grid;gap:.42rem}.age-row{display:grid;grid-template-columns:3.1rem minmax(0,1fr) 5.6rem;align-items:center;gap:.5rem}.age-label,.age-value{font-size:.82rem;font-variant-numeric:tabular-nums}.age-value{text-align:right}.age-track{display:flex;min-width:0;height:.75rem;border-radius:999px;overflow:hidden;background:#e2e8f0}.age-tax{background:#14b8a6}.age-premium{background:#0ea5e9}.chart-legend{margin-top:.55rem;display:flex;gap:1rem;font-size:.82rem;color:#334155}.legend-chip{display:inline-block;width:.8rem;height:.8rem;border-radius:.22rem;margin-right:.25rem;vertical-align:-.12rem}.payer-card{border:1px solid #bae6fd;border-radius:.7rem;padding:.75rem;background:#f8fdff}.payer-card p{margin:.55rem 0 0}.break-even ul,.caution-list ul{padding-left:1.2rem;margin:.55rem 0 0}.break-even li,.caution-list li{margin:.38rem 0}.data-note p{margin:.5rem 0 0;font-size:.84rem;color:#334155}.loading-message,.error-message{margin:3rem auto;text-align:center;font-size:1rem}.error-message{color:#b91c1c}@media(max-width:1080px){.grid-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-shell{width:min(740px,100% - 1rem);padding-top:.8rem}.app-header{border-radius:.8rem;padding:1rem}.grid-layout{grid-template-columns:1fr;gap:.75rem}.panel{padding:.85rem}.funding-layout{grid-template-columns:1fr;justify-items:center}.legend-table{width:100%}}
