.age-app{--age-accent:var(--color-primary,#4f46e5);--age-tint:var(--color-primary-light,#eef2ff)}.age-app [hidden]{display:none!important}.age-app .btn{line-height:1.4;min-height:44px;white-space:normal}.age-app .btn--primary{background:var(--age-accent);color:var(--color-text-inverse,#fff)}.age-app .age-tabs{background:var(--color-bg-tertiary);border-radius:12px;display:flex;gap:4px;margin-bottom:20px;padding:5px}.age-app .age-tabs button{background:transparent;border:0;border-radius:8px;color:var(--color-text-secondary);cursor:pointer;flex:1;font:inherit;font-size:.88rem;font-weight:600;min-height:44px;padding:10px 12px}.age-app .age-tabs [aria-selected=true]{background:var(--color-bg-elevated,#fff);box-shadow:0 1px 4px #0f172a12;color:var(--age-accent)}.age-app label{color:var(--color-text);display:grid;font-size:.88rem;font-weight:600;gap:8px}.age-app :is(input,select){background:var(--color-bg-elevated,#fff);border:1px solid var(--color-border-strong,#cbd5e1);border-radius:8px;box-sizing:border-box;color:var(--color-text);color-scheme:light;font:inherit;min-height:46px;min-width:0;padding:10px 12px;width:100%}.age-app input[type=date]{appearance:none;min-inline-size:0}.age-app input[aria-invalid=true]{border-color:var(--color-error,#dc2626)}.age-app select{font-size:.86rem}.age-app .age-fields{align-items:start;display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.age-app .age-fields>*{min-width:0}.age-app .age-inline{background:transparent;border:0;color:var(--age-accent);cursor:pointer;font:inherit;font-size:.8rem;font-weight:600;margin-top:3px;min-height:32px;padding:6px 0}.age-app .age-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0}.age-app :is(button,a,input,select):focus-visible{outline:3px solid var(--age-accent);outline-offset:3px}.age-app .age-result{background:var(--color-bg-elevated,#fff);border:1px solid var(--color-border);border-radius:16px;margin-top:24px;padding:24px}.age-app .age-result h3{font-size:1.05rem;margin:0 0 16px}.age-app .age-result-date{color:var(--color-text-secondary);font-size:.8rem;margin:0 0 12px}.age-app .age-big{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 20px}.age-app .age-big>div{align-items:center;background:var(--age-tint);border-radius:12px;display:flex;flex-direction:column-reverse;gap:6px;padding:20px 8px}.age-app .age-big dd{color:var(--age-accent);font-size:clamp(1.8rem,4vw,3rem);font-weight:750;letter-spacing:-.04em;line-height:1.1;margin:0}.age-app .age-big dt{color:var(--color-text-secondary);font-size:.82rem;font-weight:500}.age-app .age-totals{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.age-app .age-totals>div{padding:12px 0}.age-app .age-totals dt{color:var(--color-text-secondary);font-size:.78rem;line-height:1.5}.age-app .age-totals dd{font-size:1.05rem;font-weight:650;line-height:1.5;margin:6px 0 0;overflow-wrap:anywhere}.age-app .age-birthday{align-items:center;border-top:1px solid var(--color-border);display:flex;gap:14px;margin-top:10px;padding-top:18px}.age-app .age-birthday-icon{background:var(--age-tint);border-radius:10px;color:var(--age-accent);display:grid;flex:0 0 48px;height:48px;place-items:center;width:48px}.age-app .age-birthday-icon svg{display:block;height:24px;width:24px}.age-app h4{font-size:.9rem;margin:0 0 6px}.age-app .age-birthday p{color:var(--color-text-secondary);font-size:.88rem;line-height:1.6;margin:0}.age-app .age-milestones{margin-top:24px}.age-app [data-milestones]{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.age-app .age-milestone{border:1px solid var(--color-border);border-radius:10px;display:grid;gap:6px;padding:14px}.age-app .age-milestone strong{font-size:.88rem}.age-app .age-milestone span{color:var(--color-text-secondary);font-size:.83rem}.age-app .age-note{color:var(--color-text-secondary);font-size:.85rem;line-height:1.65;margin:0 0 16px}.age-app .age-comparison{color:var(--age-accent);font-size:1rem;line-height:1.7}.age-app .age-people{display:grid;gap:12px;margin-bottom:12px}.age-app .age-person{align-items:end;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:10px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;padding:14px}.age-app .age-remove{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);cursor:pointer;font-size:1.2rem;min-height:46px;min-width:44px}.age-app button:disabled{cursor:not-allowed;opacity:.45}.age-app .age-calendar-range{margin-top:24px}.age-app .age-events{display:grid;gap:10px;list-style:none;margin:16px 0 0;padding:0}.age-app .age-events li{border:1px solid var(--color-border);border-radius:10px;display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:space-between;padding:12px 14px}.age-app .age-events strong{flex:1 1 160px;overflow-wrap:anywhere}.age-app .age-events span{color:var(--color-text-secondary);font-size:.85rem}.age-app .age-status{color:var(--color-text-secondary);font-size:.87rem;line-height:1.6;margin:16px 0 0}.age-app .age-status[data-error=true]{background:var(--color-error-light,#fef2f2);border-radius:8px;color:var(--color-error,#b91c1c);padding:12px}.age-app .age-export{align-items:center;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:20px;padding-top:18px}.age-app .age-export>span{color:var(--color-text-secondary);font-size:.85rem}.age-app .age-export .age-actions{margin:0}[data-theme=dark] .age-app{--age-tint:#273251;--age-accent:#b3baff}[data-theme=dark] .age-app :is(input,select){color-scheme:dark}.age-print-sheet{display:none}@media (max-width:600px){.age-app .age-fields,.age-app [data-milestones]{grid-template-columns:minmax(0,1fr)}.age-app .age-result{padding:16px}.age-app .age-tabs button{font-size:.77rem;padding:10px 6px}.age-app .age-totals{gap:0;grid-template-columns:minmax(0,1fr)}.age-app .age-totals>div{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.age-app .age-totals dd{text-align:right}.age-app .age-person{grid-template-columns:minmax(0,1fr) auto}.age-app .age-person label:first-child{grid-column:1/-1}.age-app .age-actions>button{flex:1 1 auto}.age-app .age-export .age-actions{width:100%}}@media print{body>:not(.age-print-sheet){display:none!important}body>.age-print-sheet{background:#fff;color:#111;display:block!important;font-family:Arial,sans-serif;font-size:12pt;padding:20px}.age-print-sheet h1{font-size:22pt;margin-bottom:18px}.age-print-sheet p{break-inside:avoid;margin:0 0 12px;overflow-wrap:anywhere;white-space:pre-wrap}}