:root{--accent: #c2410c;--accent-light: #c2410c;--accent-soft: #fdba74;--text: #12141a;--text-muted: #5c6370;--bg: #f7f8fa;--bg-card: #ffffff;--surface: #ffffff;--border: #d5d8de;--border-strong: #12141a;--warning-bg: #fef6e8;--warning-border: #e8c87a;--max-width: 72rem;--font-display: "Space Grotesk", "Public Sans", sans-serif;--font-sans: "Public Sans", "Noto Sans", sans-serif;--font-serif: var(--font-display);--radius: 2px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);font-size:1rem;line-height:1.55;color:var(--text);background-color:var(--bg);background-image:linear-gradient(90deg,rgba(18,20,26,.03) 1px,transparent 1px),linear-gradient(rgba(18,20,26,.03) 1px,transparent 1px);background-size:24px 24px;min-height:100vh}.site-header{max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem 2.5rem;border-bottom:2px solid var(--border-strong)}.brand{font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:-.04em;text-transform:none;color:var(--text);margin:0 0 .5rem}.auth-title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.25rem,3vw,1.75rem);letter-spacing:-.03em;margin:1rem 0 .5rem;color:var(--text)}.auth-shell{margin-top:1.25rem;max-width:28rem;padding:1rem 1.1rem;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius)}.lede{font-size:1.1rem;color:var(--text-muted);max-width:42rem;margin:0 0 1.5rem}.toc{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1rem}.toc a{color:var(--accent);text-decoration:none;font-weight:600;font-size:.95rem;padding:.25rem 0;border-bottom:2px solid transparent;transition:border-color .15s ease}.toc a:hover,.toc a:focus-visible{border-bottom-color:var(--accent);outline:none}.meta-line{font-size:.875rem;color:var(--text-muted);margin:0}main{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem 3rem}.section{padding:2rem 0;border-top:1px solid var(--border)}.section:first-of-type{border-top:none;padding-top:0}.section h2{font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--text);margin:0 0 .5rem}.section-lead{color:var(--text-muted);margin:0 0 1.5rem;max-width:40rem}.finance-form{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}@media(min-width:600px){.finance-form{grid-template-columns:repeat(2,1fr)}}.finance-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600;color:var(--text)}.finance-form input,.finance-form select{font-family:var(--font-sans);font-size:1rem;padding:.5rem .75rem;color:var(--text)}.finance-form input,.finance-form select,.profile-card input,.auth-shell input,.snapshot-form input{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);transition:outline-color .15s ease,border-color .15s ease}.finance-form input:focus,.finance-form select:focus,.profile-card input:focus,.auth-shell input:focus,.snapshot-form input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.warning{background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius);padding:.75rem 1rem;font-size:.9rem;margin-bottom:1rem}.warning[hidden]{display:none}.results{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:1.25rem;min-height:2rem}.results:has(.metric-strip){padding:0}.card-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:600px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.card-grid{grid-template-columns:repeat(3,1fr)}}.card,.card-grid>*{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:none;padding:1.25rem}.tag-primary{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);padding:.2rem .5rem;border-radius:var(--radius)}.tag{display:inline-block;font-size:.75rem;font-weight:600;color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 12%,var(--surface));padding:.15rem .45rem;border-radius:var(--radius);margin-left:.25rem}.fineprint{font-size:.8rem;color:var(--text-muted);margin:.75rem 0 0}.result-dl{display:grid;grid-template-columns:1fr;gap:.75rem 1.5rem;margin:0}@media(min-width:600px){.result-dl{grid-template-columns:repeat(2,1fr)}}.result-dl>div{display:flex;flex-direction:column;gap:.15rem;padding:.6rem .85rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.result-dl dt{margin:0;font-size:.8rem;color:var(--text-muted)}.result-dl dd{margin:0;font-size:1.1rem;font-weight:600;color:var(--text)}@keyframes signal-fade{0%{opacity:0}to{opacity:1}}.signal-fade{animation:signal-fade .35s ease both}@media(prefers-reduced-motion:reduce){.signal-fade{animation:none}}.metric-strip{display:grid;grid-template-columns:1fr;gap:0;margin:0;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}@media(min-width:600px){.metric-strip{grid-template-columns:repeat(3,1fr)}}@media(min-width:900px){.metric-strip{grid-template-columns:repeat(5,1fr)}}.metric-strip>div{display:flex;flex-direction:column;gap:.2rem;padding:.75rem .85rem;background:var(--surface);border:0;border-right:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);border-radius:0;font-variant-numeric:tabular-nums}.metric-strip>div:last-child{border-right:0}.metric-strip>.metric-cell--signal{background:var(--text);color:#fff}.metric-cell--signal dt{color:#a8adb8}.metric-cell--signal dd{color:var(--accent-soft)}.metric-strip>div:nth-child(n+6){grid-column:1 / -1;border-right:0}.card-primary{background:color-mix(in srgb,var(--accent-light) 10%,var(--surface));border-color:var(--accent-light)}.compare-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:600px){.compare-grid{grid-template-columns:repeat(2,1fr)}}.compare-grid h3{font-family:var(--font-serif);font-weight:600;font-size:1.15rem;color:var(--text);margin:0 0 .75rem}.compare-grid ul{margin:0;padding-left:1.25rem}.compare-grid li{margin-bottom:.5rem}.disclaimer{font-size:.9rem;color:var(--text-muted);margin:0 0 1rem;max-width:42rem}#sources-list{list-style:none;padding:0;margin:0}#sources-list li{padding:.5rem 0;border-bottom:1px solid var(--border)}#sources-list li:last-child{border-bottom:none}#sources-list a{color:var(--accent);text-decoration:none}#sources-list a:hover,#sources-list a:focus-visible{text-decoration:underline;outline:none}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:.5rem .6rem;text-align:left;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}th{font-weight:600;color:var(--text)}.auth-panel{margin-bottom:0;padding:0;border:0;border-radius:0;background:transparent}.auth-status{margin:0 0 .75rem;color:var(--text-muted);font-size:.95rem}.auth-form{display:grid;gap:.75rem}@media(min-width:600px){.auth-form{grid-template-columns:1fr}.auth-credentials{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}}.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600}.auth-form input{font-family:var(--font-sans);font-size:1rem;padding:.5rem .75rem}.auth-actions{display:flex;flex-wrap:wrap;gap:.5rem}.auth-actions button,.snapshot-form button{font-family:var(--font-sans);font-size:.95rem;font-weight:600;padding:.5rem .9rem;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer}.auth-actions button[value=register],.auth-actions .btn-secondary,.profile-logout-row .btn-secondary{background:transparent;color:var(--accent)}.auth-actions button:hover,.snapshot-form button:hover{background:var(--accent-light);border-color:var(--accent-light);color:#fff}.cabinet-bar{max-width:var(--max-width);margin:0 auto;padding:1.25rem 1.5rem .75rem;border-bottom:2px solid var(--border-strong);background:transparent}.cabinet-bar-top{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-bottom:.75rem}.cabinet-bar-brand{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;min-width:0}.cabinet-bar-brand .brand{margin:0;font-size:clamp(1.15rem,4.5vw,1.5rem)}.cabinet-subtitle{margin:0;color:var(--text-muted);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;font-weight:500}.section-tabs{display:flex;flex-wrap:nowrap;gap:0;width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--border);margin-bottom:.5rem}.section-tab{font-family:var(--font-sans);font-size:.875rem;font-weight:500;padding:.55rem .85rem;border:0;border-radius:0;background:transparent;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.section-tab:hover,.section-tab:focus-visible{color:var(--text);outline:none;background:transparent}.section-tab.is-active{color:var(--text);font-weight:700;border-bottom-color:var(--accent);background:transparent}.section-tab-panel>.section{border-top:none;padding-top:.5rem}.toc-user-actions{display:flex;flex-wrap:nowrap;flex-shrink:0;gap:.4rem;align-items:center}.toc-profile,.toc-logout,.toc-back{font-family:var(--font-sans);font-size:.85rem;font-weight:700;padding:.3rem .65rem;cursor:pointer;border-radius:var(--radius);border:1px solid var(--border-strong);color:var(--text);background:transparent;white-space:nowrap}.toc-profile:hover,.toc-profile:focus-visible,.toc-logout:hover,.toc-logout:focus-visible,.toc-back:hover,.toc-back:focus-visible{background:var(--text);border-color:var(--text);color:#fff}.profile-page{min-height:100vh}.profile-card{max-width:28rem;display:grid;gap:1.25rem}.profile-email{margin:0;font-size:1.15rem;font-weight:600}.profile-role{margin:-.75rem 0 0;color:var(--text-muted);font-size:.95rem}.profile-form-title{font-family:var(--font-serif);font-size:1.1rem;color:var(--text);margin:0 0 .25rem}.profile-logout-row{padding-top:.5rem;border-top:1px solid var(--border)}.ok-note{margin:0;color:var(--accent);font-size:.95rem}#approval-list{margin-top:1rem}#approval-list table{width:100%}.finance-overview-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.5rem;margin-bottom:.25rem}.finance-overview-header h2{margin-bottom:.35rem}.finance-overview-header .section-lead{margin-bottom:0}.goal-cta{font-family:var(--font-sans);font-size:.95rem;font-weight:700;padding:.55rem 1.1rem;cursor:pointer;border-radius:var(--radius);border:1px solid var(--text);background:var(--text);color:#fff}.goal-cta:hover,.goal-cta:focus-visible{background:var(--accent);border-color:var(--accent)}.finance-overview .accumulation-chart{margin-top:1.25rem}.plan-page{min-height:100vh}.history-panel{margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid var(--border)}.history-panel h3{font-family:var(--font-display);font-size:1.2rem;color:var(--text);margin:0 0 1rem}.accumulation-chart{margin:0 0 1.25rem;padding:1rem 1rem .75rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius)}.accumulation-chart__legend{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:.75rem;font-size:.85rem;color:var(--text-muted)}.legend-item{display:inline-flex;align-items:center;gap:.4rem}.legend-item:before{content:"";width:1.1rem;height:0;border-top-width:2px;border-top-style:solid}.legend-history:before{border-top-color:var(--text)}.legend-forecast:before{border-top-color:var(--accent);border-top-style:solid}.legend-goal:before{border-top-color:var(--text-muted);border-top-style:dashed;opacity:1}.accumulation-chart__svg{display:block;width:100%;max-height:320px}.chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:2 4}.chart-axis-label{fill:var(--text-muted);font-size:11px;font-family:var(--font-sans)}.chart-history-line{fill:none;stroke:var(--text);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter}.chart-forecast-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:none;stroke-linecap:square;stroke-linejoin:miter}.chart-goal-line{stroke:var(--text-muted);stroke-width:1;stroke-dasharray:4 4}.chart-goal-label{fill:var(--text-muted);font-size:11px;font-family:var(--font-sans);font-weight:600}.chart-history-dot{fill:var(--text);stroke:none}.chart-forecast-dot{fill:var(--accent);stroke:none}.snapshot-form{display:grid;gap:.75rem;margin-bottom:1rem}@media(min-width:700px){.snapshot-form{grid-template-columns:1fr 1fr 1.4fr auto;align-items:end}}.snapshot-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600}.snapshot-form input{font-family:var(--font-sans);font-size:1rem;padding:.5rem .75rem}button.linkish:not(.toc-back){font:inherit;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline}.portal-links{margin:0 0 1rem;font-size:.95rem}.offer-filters{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 1.25rem}.offer-filter{font:inherit;font-size:.9rem;font-weight:600;padding:.35rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:transparent;color:var(--text-muted);cursor:pointer}.offer-filter.is-active{background:var(--text);border-color:var(--text);color:#fff}.card h3 .tag-primary{margin-left:.5rem;vertical-align:middle}
