
:root{color-scheme:dark;font-family:system-ui,-apple-system,sans-serif;background:#10151d;color:#e8eef6}*{box-sizing:border-box}body{margin:0;padding:18px 16px 80px;max-width:1100px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;gap:12px}h1{font-size:1.6rem;margin:0}h2{font-size:1.05rem;margin:0 0 14px}.muted,small{color:#9aaabc}.chip{font-size:.75rem;background:#263448;border-radius:12px;padding:6px 10px}.panel,.tile{background:#1b2532;border:1px solid #2e3b4d;border-radius:16px;padding:17px}.panel{margin-top:14px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.tile span{display:block;color:#9aaabc;font-size:.8rem}.tile strong{display:block;font-size:clamp(1.15rem,3.5vw,1.8rem);margin-top:8px;overflow-wrap:anywhere}select,button,input::file-selector-button{background:#28394d;color:#edf4fb;border:1px solid #455c77;padding:11px;border-radius:10px;font:inherit}button{cursor:pointer}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}input[type=file]{max-width:100%;font-size:.85rem}#chart{width:100%;height:230px}svg text{font-size:11px;fill:#b6c4d5}.bars{display:flex;align-items:end;height:180px;gap:7px;border-bottom:1px solid #4b5c70}.barcol{flex:1;min-width:0;text-align:center;font-size:11px;color:#aab8ca}.bar{background:#628fd0;border-radius:5px 5px 0 0;min-height:2px}.barcol label{display:block;margin-top:6px}.line{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #334253}.line:last-child{border:0}.line b{font-variant-numeric:tabular-nums;text-align:right}.notice{background:#242e3d;border-left:3px solid #7198cf;padding:12px;border-radius:7px;margin-top:14px}.hidden{display:none}.tabs{display:flex;gap:8px;overflow:auto;padding:12px 0}.tabs button.active{background:#466c9d}.right{text-align:right}@media(min-width:720px){.grid{grid-template-columns:repeat(4,1fr)}.columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.columns .panel{margin-top:14px}}
/* Mobile-first 0.2 refinements */
body{padding:18px 15px 100px}header{padding:4px 0 10px}header .muted{font-size:.7rem;letter-spacing:.08em}h1{font-size:1.55rem}.notice{font-size:.85rem;line-height:1.45;padding:11px 13px;margin:12px 0 16px}.tabs{position:fixed;z-index:20;bottom:0;left:0;right:0;margin:0;padding:8px max(8px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;background:#141d28;border-top:1px solid #354355;box-shadow:0 -10px 30px #0006;overflow:visible}.tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 2px;border:0;border-radius:10px;background:transparent;color:#aab9c9;font-size:1.25rem;min-width:0}.tabs button span{font-size:.63rem;white-space:nowrap}.tabs button.active{background:#35557d;color:#fff}#filters{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:10px 0 16px}#month{max-width:65%;font-size:.92rem;padding:10px}.grid{gap:9px;margin-top:12px}.tile{padding:14px 12px;min-height:100px}.tile strong{font-size:clamp(1.08rem,4.2vw,1.55rem);white-space:normal}.panel{padding:15px;margin-top:12px}.panel h2{font-size:1rem}.line{font-size:.92rem;align-items:flex-start}.line span{min-width:0;overflow-wrap:anywhere}.line b{flex-shrink:0;max-width:48%;font-size:.92rem}.catrow{margin:14px 0}.cathead{display:flex;justify-content:space-between;gap:8px;font-size:.83rem}.cathead span{min-width:0}.cathead b{white-space:nowrap}.track{height:7px;background:#2b3b4f;border-radius:8px;overflow:hidden;margin-top:7px}.track div{height:100%;background:#668fca;border-radius:8px}.assetgroups{margin-bottom:22px}.txitem{border-bottom:1px solid #334253;padding:11px 0}.txitem summary{list-style:none;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;cursor:pointer}.txitem summary::-webkit-details-marker{display:none}.txitem summary>div{min-width:0}.txitem small{display:block;font-size:.72rem}.merchant{font-size:.89rem;line-height:1.3;overflow-wrap:anywhere;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.txitem[open] .merchant{display:block}.txitem b{white-space:nowrap;font-size:.9rem}.txdetail{color:#aab8ca;font-size:.78rem;padding:8px 0}#search{font-size:1rem!important}#settings .actions{margin:14px 0}#settings button{font-size:.9rem}body>p.muted{font-size:.72rem!important;padding-bottom:12px}.bars{height:195px;align-items:stretch}.barcol{display:flex;flex-direction:column;justify-content:flex-end;height:100%}.barcol .bar{flex-shrink:0}.barcol label{flex-shrink:0}.txfilters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.txfilters select{min-width:0;width:100%;font-size:.79rem;padding:9px 5px}#budgetcats>details{margin-top:20px}#budgetcats summary{cursor:pointer;font-weight:600}#costsplit .tile{min-height:80px}@media(min-width:720px){body{padding-bottom:110px}.tabs{left:50%;transform:translateX(-50%);max-width:760px;border-radius:15px 15px 0 0}.tabs button span{font-size:.78rem}}

/* v0.4: interaction and compact views */
.bar{width:100%;border:0;padding:0;display:block;cursor:pointer;background:#628fd0;min-height:3px}.bar:focus-visible{outline:3px solid #dceaff;outline-offset:2px}.bar.selected{background:#a5c5f6}.barcol{min-width:0}.barcol label{font-size:.68rem}.chartinfo{font-size:.8rem;color:#b9cbe0;padding-top:10px}.ruleline{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #334253}.ruleline span{font-size:.85rem;overflow-wrap:anywhere}.ruleline select{width:100%;min-width:0;padding:7px;font-size:.8rem}.compact-list{max-height:370px;overflow-y:auto}.subtle{font-size:.76rem;color:#aab8ca}#status{font-size:.77rem;padding:9px 11px}#filters{margin-top:3px}.tile{min-height:85px}#assetrows details>summary,#budgetcats details>summary{cursor:pointer;padding:8px 0;font-weight:650}#assetrows details{margin-top:10px}#assetrows details .line{font-size:.85rem}.mini-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.mini-actions button{font-size:.8rem;padding:8px 10px}

/* 1.9: Gemini-inspired, source-data-only overview */
.dual-chart{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;min-height:200px;align-items:end;padding:12px 0 2px;overflow-x:auto}
.dual-month{min-width:21px;display:flex;flex-direction:column;gap:5px;align-items:center}
.dual-pair{height:155px;width:100%;display:flex;align-items:end;justify-content:center;gap:3px;border-bottom:1px solid #43546a}
.dual-stick{width:min(17px,42%);min-height:0;border-radius:4px 4px 0 0}
.dual-stick.inc{background:#628fd0}.dual-stick.exp{background:#d66c75}
.dual-month small{font-size:.68rem;color:#a8b8ca}
.overview-tx{display:flex;justify-content:space-between;align-items:start;gap:12px;padding:11px 0;border-bottom:1px solid #2e3a4b}
.overview-tx:last-child{border-bottom:0}.overview-tx .left{min-width:0}.overview-tx .left strong{display:block;overflow-wrap:anywhere;font-size:.89rem}.overview-tx .left small{display:block;margin-top:3px}.overview-tx b{white-space:nowrap;font-size:.9rem}
@media(max-width:500px){.dual-chart{gap:3px}.dual-month{min-width:18px}.dual-month small{font-size:.61rem}}
button,select,input{font-size:16px}button,select,input::file-selector-button{min-height:44px}input:not([type=file]),textarea{max-width:100%;border-radius:8px;padding:10px}#monthlyReview label{display:block;margin:8px 0}#monthlyReview input:not([type=checkbox]){width:100%}#monthlyReview input[type=checkbox]{width:24px;height:24px;vertical-align:middle}input[type=file]{width:100%;max-width:100%}.actions>*{max-width:100%}.tabs button{min-height:52px}.line span{overflow-wrap:anywhere}@media(max-width:380px){h1{font-size:1.3rem}.chip{white-space:nowrap}}

body{padding-bottom:110px}input,textarea{background:#111b27;color:#edf4fb;border:1px solid #455c77;border-radius:9px;padding:10px;font-size:16px;max-width:100%}label{display:block;margin:12px 0}input[type=checkbox]{width:24px;height:24px;vertical-align:middle}button:disabled{opacity:.45;cursor:default}.scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.85rem}td,th{padding:9px;text-align:left;border-bottom:1px solid #354355;vertical-align:top}h3{font-size:1rem}.metricNote{font-size:.75rem;color:#afbdcf;margin:5px 0}.checkItem{border-left:3px solid #7198cf;padding:12px;margin:14px 0;background:#17212e}.chartbar{min-height:44px;width:100%;text-align:left;margin:4px 0;position:relative;overflow:hidden;background:#1b2532}.chartbar span{position:relative}.chartbar i{position:absolute;left:0;top:0;bottom:0;opacity:.3;background:#789fd6}.rangeRow{display:flex;gap:8px;flex-wrap:wrap}.rangeRow select{flex:1;min-width:120px}.tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.wrap{overflow-wrap:anywhere}.danger{border-left-color:#d99880}

/* Cockpit 2.3: visual-only layer; no financial calculation changes */
:root{--cobalt:#7c9fda;--soft:#aebbd0}body{background:radial-gradient(ellipse 110% 24% at 50% -5%,#202c3e 0%,#10151d 80%);padding:20px 16px 105px}header{padding:3px 0 8px}header .muted{letter-spacing:.19em;font-size:.65rem}header h1{font-size:1.55rem;letter-spacing:-.035em}.chip{background:#263953;border:1px solid #3b5271;padding:7px 12px}.notice{font-size:.87rem;line-height:1.35;margin-top:10px}.rangeRow{align-items:center;margin-top:14px}.rangeCaption{font-size:.8rem;color:#a9b9ce;flex:0 0 100%}.rangeRow select{padding:12px 10px;background:#222f40}.homeHero{display:flex;align-items:center;justify-content:space-between;padding:17px 1px 7px}.homeHero small{color:#91a7c8;font-size:.65rem;letter-spacing:.16em}.homeHero h2{font-size:1.6rem;letter-spacing:-.04em;margin:4px 0}.heroMark{font-size:1.8rem;color:#7194c7}.homeLinks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:9px 0 22px}.homeLink{background:linear-gradient(145deg,#26364a,#1b2635);border:1px solid #344963;border-radius:15px;display:flex;align-items:center;flex-direction:column;gap:8px;min-width:0;min-height:103px;padding:12px 5px 9px;text-align:center}.homeLink b{display:block;font-size:.82rem}.homeLink small{display:block;color:#9bafc9;font-size:.67rem;line-height:1.3;margin-top:3px}.homeIcon{color:#a9c6f0;font-size:1.45rem}.homeArrow{display:none}.sectionHeader{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:18px 0 8px}.sectionHeader h2{font-size:1.08rem;margin:0}.sectionHeader button{background:transparent;border:0;color:#a7c7f3;font-size:.78rem;min-height:40px;padding:4px}.grid{margin-top:5px;gap:9px}.tile{padding:14px;border-radius:14px;min-height:106px;background:linear-gradient(145deg,#1e2b3b,#192330)}.tile span{font-size:.77rem;line-height:1.3}.tile strong{font-size:clamp(1.17rem,4.3vw,1.75rem);letter-spacing:-.035em;margin-top:9px}.metricNote{font-size:.68rem;line-height:1.25}#kpis:not(.expanded)>.tile:nth-child(n+4){display:none}#kpis:not(.expanded)>.tile:nth-child(7){display:block}#kpis>.tile:nth-child(3){border-color:#4c6588}#charts:not(.expanded)>.panel:nth-child(n+3){display:none}#charts>.panel{padding:14px;margin-top:10px}#charts>.panel h2{font-size:.97rem;margin-bottom:6px}#charts .subtle{font-size:.75rem;line-height:1.4;margin:4px 0 11px}.chartbar{border-radius:9px;min-height:40px;padding:8px}.chartbar span{font-size:.86rem}.infoPanel{margin-top:12px;padding:11px 14px}.infoPanel h2{font-size:.87rem;margin:0 0 5px}.infoPanel #coverage{font-size:.75rem;line-height:1.4;color:#aebdd0;margin:0}.infoPanel details{font-size:.77rem}.tabs{position:fixed;bottom:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#172232;border-top:1px solid #34445a;padding:8px 9px max(9px,env(safe-area-inset-bottom));gap:4px;box-shadow:0 -10px 28px #0004}.tabs button{border:0;background:transparent;color:#9eb0c7;font-size:1.2rem;border-radius:12px;padding:8px 3px;min-width:0}.tabs button span{font-size:.66rem}.tabs button.active{background:#344f76;color:#fff}.panel p{line-height:1.5}.checkItem p{font-size:.89rem;line-height:1.5}.microCopy{font-size:.8rem;color:#b3c2d3}#transactions220{display:none!important}#search220{display:none!important}
@media(min-width:750px){.homeLinks{grid-template-columns:repeat(3,1fr)}.homeLink{min-height:92px}.grid{grid-template-columns:repeat(4,minmax(0,1fr))}body{padding-bottom:100px}}

/* 2.4 Contracts: compact, read-only plan cards */
.homeLinks{grid-template-columns:repeat(2,minmax(0,1fr))}.homeLink{min-height:91px}.tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}.tabs button span{font-size:.59rem}.tabs button{font-size:1.1rem;padding:6px 1px}.contractSummary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.contractStat{background:#1b2532;border:1px solid #34465c;border-radius:14px;padding:15px 12px}.contractStat small,.contractStat strong{display:block}.contractStat strong{font-size:1.3rem;margin-top:8px}.contractItem{background:#1b2532;border:1px solid #34465c;border-radius:13px;margin:9px 0;padding:13px}.contractItem summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;list-style:none}.contractItem summary::-webkit-details-marker{display:none}.contractItem summary span{min-width:0}.contractItem summary b{font-size:.9rem}.contractItem summary small{display:block;color:#9dafc7;font-size:.7rem;margin-top:5px}.contractItem summary strong{text-align:right;white-space:nowrap;font-size:.95rem}.contractItem summary strong small{font-weight:400}.contractBody{border-top:1px solid #34465c;margin-top:12px;padding-top:7px}@media(min-width:750px){.homeLinks{grid-template-columns:repeat(4,1fr)}}

/* Cockpit 2.5: data visualization first, details only on demand */
#charts .panel{padding:15px 15px 13px;margin-top:10px}
#charts .panel h2{font-size:1rem;letter-spacing:-.02em}
#charts .panel .subtle{margin:0 0 12px;font-size:.72rem;color:#92a9c7}
#charts .chartbar{background:#111b29;border:1px solid #34465e;min-height:47px;margin:6px 0;border-radius:11px;transition:border-color .15s}
#charts .chartbar:focus-visible{outline:2px solid #a2c4f1;outline-offset:2px}
#charts .chartbar:active{border-color:#9fbce5}
#charts .chartbar i{opacity:.45;border-radius:9px;max-width:100%}
#charts .chartbar span{font-size:.83rem;font-weight:600;color:#f0f4fc}
#charts .chartDetail{margin-top:10px;font-size:.76rem}
#charts .panel>div>small{display:block;font-size:.72rem;margin-top:12px}
#charts .panel>div:first-of-type>small{margin-top:3px}
.infoPanel>summary{font-weight:650;cursor:pointer;font-size:.84rem}
.infoPanel:not([open]){padding:12px 14px}
.infoPanel[open] #coverage{margin-top:9px}
#kpis:not(.expanded)>.tile:nth-child(n+5){display:none}
#kpis:not(.expanded)>.tile:nth-child(7){display:none}
@media(max-width:420px){.homeLink{min-height:94px}.homeLink small{font-size:.66rem}}
