:root{--sand:#f3eee4;--sand-deep:#e8e0d2;--ink:#1a2332;--ink-muted:#4a5568;--teal:#0f6b6b;--teal-deep:#0a4f4f;--coral:#c45c3e;--coral-soft:#e8a08c;--panel:#fffcf7d1;--stroke:#1a23321f;--shadow:0 18px 40px #1a233214;--radius:14px;--font-display:"Fraunces", Georgia, serif;--font-body:"Source Sans 3", system-ui, sans-serif;color:var(--ink);background:var(--sand);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(1200px 600px at 10% -10%, #0f6b6b29, transparent 55%), radial-gradient(900px 500px at 100% 0%, #c45c3e1f, transparent 50%), linear-gradient(180deg, #f7f3eb 0%, var(--sand) 40%, #ebe4d6 100%);background-attachment:fixed;margin:0}body:before{content:"";pointer-events:none;opacity:.35;mix-blend-mode:multiply;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:1;position:relative}a{color:var(--teal);text-decoration:none}a:hover{color:var(--teal-deep)}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .5rem;font-weight:700}p{color:var(--ink-muted);margin:0 0 1rem}button,input,select{font:inherit}.route-frame{animation:.35s both rise}select{border:1px solid var(--stroke);color:var(--ink);background:#ffffffb3;border-radius:10px;padding:.65rem .8rem}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--stroke);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#f3eee4bf;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);color:var(--ink);align-items:baseline;gap:.45rem;font-size:1.35rem;display:flex}.brand span{color:var(--teal);font-size:.85rem;font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;font-weight:600}.nav-links{flex-wrap:wrap;align-items:center;gap:.35rem .85rem;display:flex}.nav-links a{color:var(--ink-muted);border-radius:999px;padding:.35rem .55rem;font-weight:600;transition:color .2s,background .2s,transform .2s}.nav-links a:hover,.nav-links a.active{color:var(--teal-deep);background:#0f6b6b1a;transform:translateY(-1px)}.page{width:min(1120px,100% - 2rem);margin:0 auto;padding:1.75rem 0 3rem;animation:.35s both rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero-home{place-items:center;min-height:calc(100vh - 4rem);padding:2rem 1rem 3rem;display:grid}.hero-panel{text-align:left;border-radius:calc(var(--radius) + 4px);background:var(--panel);border:1px solid var(--stroke);width:min(720px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:2.5rem}.hero-panel .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--coral);margin-bottom:.75rem;font-size:.8rem;font-weight:700}.hero-panel h1{margin-bottom:.75rem;font-size:clamp(2.4rem,5vw,3.4rem);line-height:1.05}.hero-panel p{max-width:36rem;font-size:1.1rem}.cta-row{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.btn{appearance:none;cursor:pointer;border:1px solid #0000;border-radius:999px;padding:.7rem 1.25rem;font-weight:600;transition:transform .18s,box-shadow .18s,background .18s}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--teal);color:#f7f3eb;box-shadow:0 10px 24px #0f6b6b47}.btn-primary:hover{background:var(--teal-deep)}.btn-secondary{border-color:var(--stroke);color:var(--ink);background:0 0}.btn-secondary:hover{border-color:var(--teal);color:var(--teal-deep)}.btn-danger{background:var(--coral);color:#fff7f3}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.panel{background:var(--panel);border:1px solid var(--stroke);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.25rem;padding:1.25rem 1.35rem}.panel h2{font-size:1.35rem}.grid-metrics{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.85rem;display:grid}.metric{border:1px solid var(--stroke);background:linear-gradient(160deg,#0f6b6b14,#fff6);border-radius:12px;padding:1rem}.metric .label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-size:.78rem;font-weight:700}.metric .value{font-family:var(--font-display);margin-top:.25rem;font-size:1.8rem}.form-stack{gap:.85rem;max-width:420px;display:grid}label{gap:.35rem;font-size:.92rem;font-weight:600;display:grid}input{border:1px solid var(--stroke);color:var(--ink);background:#ffffffb3;border-radius:10px;padding:.65rem .8rem}input:focus{border-color:var(--teal);outline:2px solid #0f6b6b59}.table-wrap{border:1px solid var(--stroke);border-radius:12px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--stroke);white-space:nowrap;padding:.7rem .85rem}th{background:#0f6b6b14;font-weight:700}tr:hover td{background:#ffffff73}.badge{letter-spacing:.03em;border-radius:999px;align-items:center;padding:.15rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.badge-ok{color:var(--teal-deep);background:#0f6b6b26}.badge-warn{color:var(--coral);background:#c45c3e26}.badge-muted{color:var(--ink-muted);background:#1a233214}.error-banner{color:#8a3a26;background:#c45c3e1f;border:1px solid #c45c3e59;border-radius:10px;margin-bottom:1rem;padding:.75rem 1rem}.actions{flex-wrap:wrap;gap:.55rem;margin:.75rem 0 1.25rem;display:flex}.muted{color:var(--ink-muted);font-size:.92rem}.docs pre{color:#f3eee4;background:#1a2332;border-radius:12px;padding:1rem;font-size:.85rem;overflow:auto}.docs code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media (width<=640px){.topbar{flex-direction:column;align-items:flex-start}.hero-panel{padding:1.5rem}}
