:root { --bg:#fff; --surface:#fff; --surface2:#edf2f7; --border:#a8afb9; --text:#1d1d1f; --text2:#535c69; --accent:#0f6cbd; --accent2:#0f6cbd; --shadow:none; }
html[data-theme="dark"] { --bg:#202020; --surface:#202020; --surface2:#303030; --border:#697381; --text:#f0f3f7; --text2:#bdc6d2; --accent:#80bfff; --accent2:#80bfff; --shadow:none; }
body { font-size:16px; line-height:1.5; }
.header { border-bottom:2px solid var(--text); }
.header h1 { color:var(--text); font-size:30px; letter-spacing:-.04em; }
.header h1 span { font-size:14px; letter-spacing:0; }
.container { max-width:1320px; }
.tabs { border-bottom:1px solid var(--border); padding:0; background:none; gap:0; }
.tabs,.tab,.card,.btn,.icon-btn,input,select,.tools-popover,.upload-zone { border-radius:0!important; box-shadow:none; }
.tab { border-bottom:3px solid transparent; font-size:15px; }
.tab.active { background:var(--surface2); color:var(--text); border-bottom-color:var(--accent); }
.btn-primary { background:var(--accent); color:#fff; }
html[data-theme="dark"] .btn-primary { color:#101010; }
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--accent2); outline-offset:3px; }
.fin-heading { display:flex; justify-content:space-between; align-items:end; flex-wrap:wrap; gap:20px; margin:28px 0; }
.fin-heading h2 { font-size:32px; line-height:1.15; letter-spacing:-.035em; margin:6px 0; }
.fin-kicker { font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--text2); }
.fin-month { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.fin-month input { background:var(--surface); color:var(--text); padding:8px; border:1px solid var(--border); font:inherit; }
.fin-workspace { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr); border-top:2px solid var(--text); gap:32px; }
.fin-input-row { display:grid; grid-template-columns:minmax(0,1fr) 145px; gap:18px; padding:16px 0; border-bottom:1px solid var(--border); }
.fin-input-row label { font-weight:650; }
.fin-input-row p { font-size:14px; color:var(--text2); max-width:42ch; margin:4px 0 0; }
.fin-amount { align-self:center; display:flex; align-items:center; gap:5px; }
.fin-amount input { width:100%; min-width:0; border:1px solid var(--border); color:var(--text); background:var(--surface); font:inherit; text-align:right; padding:10px 7px; font-variant-numeric:tabular-nums; }
.fin-result { align-self:start; margin-top:24px; padding:28px; background:#101010; color:#fff; border:1px solid #737a86; }
.fin-result .fin-kicker,.fin-result p { color:#bec3cc; }
.fin-result output { display:block; font-size:clamp(28px,4vw,48px); letter-spacing:-.04em; font-weight:650; font-variant-numeric:tabular-nums; margin:16px 0; overflow-wrap:anywhere; }
.fin-result p { font-size:15px; line-height:1.65; }
.fin-result hr { border:0; border-top:1px solid #737a86; margin:24px 0; }
.fin-result strong { color:#fff; }
.fin-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:18px 0; }
#finStatus { font-size:14px; color:var(--text2); }
.fin-section { padding:28px 0; border-top:2px solid var(--text); margin-top:26px; }
.fin-section h3 { font-size:22px; letter-spacing:-.02em; margin:0 0 8px; }
.fin-section p { color:var(--text2); font-size:15px; margin-bottom:16px; max-width:85ch; }
.fin-table-wrap { overflow:auto; }
.fin-table { width:100%; border-collapse:collapse; min-width:560px; }
.fin-table th,.fin-table td { padding:12px 10px; text-align:left; border-bottom:1px solid var(--border); vertical-align:top; font-size:15px; }
.fin-table thead th { font-size:13px; color:var(--text2); font-weight:600; }
.fin-table th[scope="row"] { font-weight:500; }
.fin-table td { font-variant-numeric:tabular-nums; }
.fin-table small { display:block; color:var(--text2); font-size:13px; margin-top:4px; }
.fin-table tbody tr:hover { background:var(--surface2); }
#loginForm { border-radius:0!important; border:1px solid var(--border); }
#loginForm input,#loginForm button { border-radius:0!important; }
#loginForm button { background:var(--accent)!important; color:var(--bg)!important; }
@media(max-width:760px) { .fin-workspace{grid-template-columns:1fr;gap:0}.fin-result{grid-row:1;margin-bottom:12px}.fin-heading h2{font-size:28px}.fin-input-row{grid-template-columns:minmax(0,1fr) 125px}.container{padding:16px}.fin-result{padding:20px}.tabs{overflow-x:auto}.tab{flex:0 0 auto} }
@media(forced-colors:active) { .fin-result{background:Canvas;color:CanvasText}.fin-result p,.fin-result strong,.fin-result .fin-kicker{color:CanvasText}.tab.active{border-bottom:3px solid Highlight} }
