:root{--bg: #eef1f7;--surface: #ffffff;--text: #1c2333;--muted: #5a6578;--accent: #2563eb;--accent-text: #ffffff;--fate: #1d4ed8;--will: #c53030;--overlap: #7c3aed;--v1: #93b8f0;--v2: #6b9ae8;--v3: #4a82dc;--border: #d0d7e3;--chart-grid: #c5cedd;--age-marker-line: #d97706;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.page{max-width:920px;margin:0 auto;padding:2rem 1.25rem 3rem}.header h1{font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.lead{color:var(--muted);margin:0;font-size:.95rem}.form{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin:2rem 0;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 3px #1c23330f}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.field input{padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:#f8f9fc;color:var(--text);min-width:160px}.field input:focus{outline:2px solid rgba(37,99,235,.35);outline-offset:1px;border-color:var(--accent);background:var(--surface)}.birth-group{display:inline-flex;align-items:center;gap:.35rem}.birth-group input{min-width:0;width:4.2rem;text-align:center;font-variant-numeric:tabular-nums}#birth-year{width:6rem}.birth-sep{color:var(--muted);font-weight:600}.field--birth{min-width:320px}@media(max-width:640px){.field--birth{min-width:100%}}.field-hint{font-size:.78rem;color:var(--muted);margin-top:.2rem}.field-error{display:block;font-size:.82rem;color:#b91c1c;margin-top:.35rem}.field-error.hidden{display:none}.btn{padding:.55rem 1.25rem;border-radius:8px;border:none;background:var(--accent);color:var(--accent-text);font-weight:600;cursor:pointer;box-shadow:0 1px 2px #2563eb40}.btn:hover{filter:brightness(1.05)}.panel.hidden{display:none}.panel h2{font-size:1.1rem;margin:2rem 0 .75rem}.panel h2:first-of-type{margin-top:0}.hint{font-size:.85rem;color:var(--muted);margin:0 0 1rem}.result-summary{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem;margin-bottom:.5rem;box-shadow:0 1px 2px #1c23330a}.result-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;padding:.65rem 0;border-bottom:1px solid var(--border);font-size:.95rem}.result-row:last-child{border-bottom:none;padding-bottom:0}.result-row:first-child{padding-top:0}.result-label{flex:0 0 min(220px,40%);color:var(--muted);font-weight:500}.result-value{flex:1 1 200px;color:var(--text);font-variant-numeric:tabular-nums}.result-muted{color:var(--muted);font-weight:400;font-size:.9em}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;font-size:.9rem;box-shadow:0 1px 2px #1c23330a}.card strong{display:block;color:var(--muted);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}.chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem;overflow-x:auto;box-shadow:0 1px 3px #1c23330f}.chart-wrap--tall{min-height:320px}.chart-wrap svg{display:block;max-width:100%;height:auto}.volume-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:var(--muted);margin-top:.75rem}.volume-legend span{display:inline-flex;align-items:center;gap:.35rem}.swatch{width:12px;height:12px;border-radius:2px}.age-marker{font-size:.75rem;fill:var(--muted)}
