:root{--fp-navy: #092d70;--fp-navy-deep: #052052;--fp-blue: #1678bc;--fp-blue-bright: #2497cf;--fp-cyan: #eafbff;--fp-cyan-soft: #f5fcfe;--fp-gold: #d8b16c;--fp-gold-soft: #ecd8ae;--fp-line: #bad4e3;--fp-line-soft: #dcecf3;--fp-red: #ef5749;--fp-green: #009d92;--fp-text: #18365e;--fp-muted: #71839a;--fp-white: #ffffff;--fp-sidebar: 224px;--fp-topbar: 84px;--fp-gap: 12px;--fp-radius: 10px;--fp-control-radius: 6px;--fp-shadow: 0 8px 22px rgba(22, 120, 188, .09), inset 0 0 0 1px rgba(255, 255, 255, .82);--fp-font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--fp-display: "Noto Serif SC", "Songti SC", "STSong", Georgia, serif;--fp-title-size: 28px;--fp-panel-title-size: 18px;--fp-money-size: 30px}*{box-sizing:border-box}html,body,#app{margin:0;min-width:1180px;min-height:100%;font-family:var(--fp-font);color:var(--fp-text);background:#eefbff}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--fp-blue-bright);outline-offset:2px}.desktop-shell{min-height:100vh;background:linear-gradient(#f5fdffe6,#edfafef2),repeating-radial-gradient(ellipse at 65% 100%,rgba(91,198,218,.11) 0 1px,transparent 2px 38px),radial-gradient(circle at 80% 20%,#fff 0,#dff7fb 45%,#cdeef5)}.desktop-shell:after{content:"";position:fixed;inset:var(--fp-topbar) 0 0 var(--fp-sidebar);pointer-events:none;opacity:.26;background-image:radial-gradient(circle at 12px 12px,rgba(71,180,196,.2) 1px,transparent 2px);background-size:42px 42px}.sidebar{position:fixed;z-index:20;inset:0 auto 0 0;width:var(--fp-sidebar);display:flex;flex-direction:column;background:linear-gradient(90deg,#fff 0,#fff 91%,#eefaff);border:2px solid rgba(216,177,108,.72);border-left-width:3px;box-shadow:8px 0 26px #0a395c12,inset 0 0 0 4px #ffffffe6}.sidebar:before,.sidebar:after{content:"";position:absolute;left:14px;right:14px;height:20px;border:2px solid var(--fp-gold);opacity:.7;pointer-events:none}.sidebar:before{top:8px;border-bottom:0;border-radius:18px 18px 0 0}.sidebar:after{bottom:8px;border-top:0;border-radius:0 0 18px 18px}.brand{height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font:700 27px var(--fp-display);color:var(--fp-navy)}.brand-emblem{position:relative;width:88px;height:88px;border:2px solid var(--fp-gold);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff 31%,#dff7fd 32%,#aee8f4 60%,#fff 61%);box-shadow:inset 0 0 0 7px #fff,0 5px 18px #094d7429,0 0 0 5px #d8b16c29}.brand-emblem:before,.brand-emblem:after{content:"";position:absolute;width:23px;height:2px;background:var(--fp-gold);top:50%}.brand-emblem:before{left:-17px}.brand-emblem:after{right:-17px}.brand-emblem span{font:700 50px var(--fp-display);line-height:1;color:var(--fp-blue);text-shadow:0 2px #fff}.brand-emblem.small{width:78px;height:78px}.brand-emblem.small span{font-size:43px}.sidebar nav{padding:8px 16px;display:flex;flex-direction:column;gap:5px}.sidebar nav button{position:relative;height:58px;padding:0 24px;border:1px solid transparent;border-radius:5px;background:transparent;display:flex;align-items:center;gap:16px;font-size:17px;font-weight:750;text-align:left;color:var(--fp-navy);transition:background .18s,border-color .18s,transform .18s}.sidebar nav button:hover{background:#edfaff;border-color:#bad4e3b3}.sidebar nav button:active{transform:translateY(1px)}.sidebar nav button.active{color:#fff;border-color:#d9bd83;background:linear-gradient(180deg,#2996d0,#0868ac);clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,9px 100%,0 50%);box-shadow:0 7px 18px #0969a938,inset 0 0 0 2px #ffffff4d,inset 0 0 20px #37d3eb2e}.sidebar nav button.active:after{content:"✦";position:absolute;right:13px;color:#fff3ca;font-size:10px}.nav-icon{width:28px;font-size:25px;text-align:center}.sidebar-ornament{margin-top:auto;height:174px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#7091a5;font-size:10px;letter-spacing:2px;background:linear-gradient(transparent,#dff7fc)}.dial{width:94px;height:94px;border:5px double var(--fp-gold);border-radius:50%;display:grid;place-items:center;background:repeating-conic-gradient(from 0deg,#bceef5 0,#bceef5 3deg,#fff 3deg,#fff 15deg);box-shadow:0 0 0 8px #ffffffbf,0 0 0 9px #d8b16c80}.dial i{width:52px;height:52px;border:2px solid var(--fp-blue);border-radius:50%;background:#fff;position:relative}.dial i:after{content:"";position:absolute;width:2px;height:20px;background:var(--fp-navy);left:24px;top:5px;transform:rotate(25deg);transform-origin:bottom}.topbar{position:fixed;z-index:18;left:var(--fp-sidebar);right:0;top:0;height:var(--fp-topbar);padding:0 30px;display:flex;align-items:center;gap:20px;background:#fffffff2;border-top:3px solid var(--fp-navy);border-bottom:3px double var(--fp-line);box-shadow:0 4px 14px #0d4b6b0d}.ledger-switch{border:0;background:transparent;font:700 27px var(--fp-display);color:var(--fp-navy)}.month-control{height:46px;display:flex;gap:8px;background:transparent}.month-control button{width:42px;border:1px solid var(--fp-line);border-radius:50%;background:#fff;font-size:22px}.month-control strong{min-width:160px;padding:0 16px;display:flex;gap:14px;align-items:center;justify-content:center;border:1px solid var(--fp-line);border-radius:9px;background:#fff}.month-control strong span{font-size:14px;color:var(--fp-blue)}.global-search{margin-left:auto;width:min(320px,28vw);height:44px;border:1px solid var(--fp-line);border-radius:24px;padding:0 16px;display:flex;align-items:center;background:#fff;box-shadow:inset 0 2px 5px #11456809}.global-search:focus-within{border-color:var(--fp-blue);box-shadow:0 0 0 3px #1678bc1a}.global-search input{width:100%;border:0;outline:0;background:transparent}.global-search span{font-size:22px}.notice{position:relative;width:42px;height:42px;border:0;background:transparent;font-size:29px;color:var(--fp-navy)}.notice b{position:absolute;right:0;top:0;width:19px;height:19px;border-radius:50%;background:var(--fp-red);color:#fff;font-size:11px;display:grid;place-items:center}.user-menu{height:46px;border:0;background:transparent;font-weight:700;display:flex;align-items:center;gap:9px}.user-menu span,.avatar{width:42px;height:42px;border:1px solid #78b7d6;border-radius:50%;display:inline-grid;place-items:center;background:linear-gradient(145deg,#fff,#dff5fb);color:var(--fp-blue);font-weight:800;box-shadow:inset 0 0 0 4px #fff}.content{position:relative;z-index:1;margin-left:var(--fp-sidebar);padding:calc(var(--fp-topbar) + 22px) 24px 24px;min-height:100vh}.page{max-width:1600px;margin:0 auto}.panel,.summary-strip,.metric{background:linear-gradient(145deg,#fffffffa,#f8fdfff0);border:1px solid rgba(216,177,108,.88);border-radius:var(--fp-radius);box-shadow:var(--fp-shadow)}.ornate{position:relative;outline:1px solid rgba(186,212,227,.42);outline-offset:-5px}.ornate:before,.ornate:after{content:"✧";position:absolute;width:24px;height:24px;display:grid;place-items:center;color:var(--fp-gold);font-size:16px;pointer-events:none}.ornate:before{left:2px;top:0}.ornate:after{right:2px;bottom:0;transform:rotate(180deg)}.panel{padding:16px;min-width:0;overflow:hidden}.panel-title{height:38px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--fp-line-soft);margin-bottom:12px}.panel-title h2{margin:0;font:700 var(--fp-panel-title-size) var(--fp-display);color:var(--fp-navy)}.panel-title button{border:0;background:transparent;color:var(--fp-blue);font-weight:700}.panel-title button:hover{text-decoration:underline}.primary,.secondary{height:40px;padding:0 20px;border-radius:var(--fp-control-radius);font-weight:750;transition:filter .15s,transform .15s,box-shadow .15s}.primary{border:1px solid #075b9d;background:linear-gradient(#268fcf,#0d69ac);color:#fff;box-shadow:inset 0 0 0 1px #ffffff4d}.primary:hover{filter:brightness(1.08);box-shadow:0 5px 13px #0a68a92e,inset 0 0 0 1px #ffffff59}.secondary{border:1px solid var(--fp-line);background:linear-gradient(#fff,#f8fcfe);color:var(--fp-navy)}.secondary:hover{border-color:var(--fp-blue);color:var(--fp-blue)}.primary:active,.secondary:active{transform:translateY(1px)}.wide{width:100%}.income{color:var(--fp-green)!important}.expense,.error-text{color:var(--fp-red)!important}.page-loading{height:500px;display:grid;place-items:center;font-weight:700;color:var(--fp-navy)}.home-grid{display:grid;gap:var(--fp-gap)}.top-grid{grid-template-columns:6fr 3.6fr 7fr;margin-bottom:var(--fp-gap)}.top-grid>.panel{height:300px}.lower-grid{grid-template-columns:4.2fr 6.8fr 5fr}.lower-grid>.panel,.stack-grid{height:420px}.stack-grid{display:grid;grid-template-rows:1fr 1fr;gap:var(--fp-gap)}.balance-layout{display:grid;grid-template-columns:1.35fr .8fr;height:235px;align-items:center}.hero-money{font:700 42px var(--fp-display);color:var(--fp-navy);font-variant-numeric:tabular-nums}.water-divider{height:30px;margin-top:24px;background:linear-gradient(90deg,transparent,var(--fp-gold),transparent);clip-path:polygon(0 45%,43% 45%,50% 0,57% 45%,100% 45%,100% 55%,57% 55%,50% 100%,43% 55%,0 55%)}.balance-side{height:150px;border-left:1px solid var(--fp-line);display:grid;align-content:center;gap:28px;padding-left:28px}.balance-side span{display:grid;gap:6px}.balance-side b{font:700 22px var(--fp-display)}.gauge-panel{text-align:center}.gauge{--value:0deg;width:176px;aspect-ratio:1;margin:4px auto 6px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--fp-blue) var(--value),#d8f3f7 0);box-shadow:inset 0 0 0 9px #fff,0 0 0 1px var(--fp-gold),0 0 0 8px #eaf9fc}.gauge:before{content:"";position:absolute;width:122px;aspect-ratio:1;border-radius:50%;background:#fff;border:1px solid var(--fp-line)}.gauge>div{position:relative;z-index:1;display:grid}.gauge strong{font:700 38px var(--fp-display)}.gauge span{font-size:12px}.gauge.small{width:110px}.gauge.small:before{width:74px}.gauge.small strong{font-size:24px}.line-chart,.area-chart{height:215px}.line-chart svg,.area-chart svg{width:100%;height:180px;overflow:visible}.line-chart path,.area-chart path{fill:none;stroke-width:3}.line-chart .grid,.area-chart .grid{stroke:#d9e8ef;stroke-width:1;stroke-dasharray:4 4}.income-line{stroke:#149eaa}.expense-line{stroke:var(--fp-red)}.chart-labels{display:flex;justify-content:space-between;color:var(--fp-muted);font-size:11px}.categories-panel{display:grid;grid-template-columns:1fr 1.05fr;grid-template-rows:35px 1fr}.categories-panel .panel-title{grid-column:1/-1}.donut{width:165px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;align-self:center;justify-self:center;background:conic-gradient(#258acb 0,#258acb 30%,#45bfd0 30%,#45bfd0 55%,#55aa9c 55%,#55aa9c 70%,#e3a454 70%,#e3a454 86%,#7f8fd4 86%);box-shadow:0 0 0 1px var(--fp-line)}.donut>div{width:92px;aspect-ratio:1;border-radius:50%;display:grid;place-content:center;text-align:center;background:#fff}.donut span{font-size:11px}.donut strong{font:700 17px var(--fp-display)}.legend-list{list-style:none;padding:5px 0;margin:0;display:grid;align-content:center;gap:9px}.legend-list li{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:7px;font-size:12px}.legend-list i{width:9px;height:9px;border-radius:50%}.legend-list b{font-weight:650}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{height:36px;text-align:left;background:#f4f9fb;color:#5d7189}.data-table td{height:43px;border-top:1px solid #e2edf2}.transaction-table td:last-child,.transaction-table th:last-child{text-align:right}.transaction-table.compact th{height:34px}.transaction-table.compact td{height:43px}.member-cards{display:grid;grid-template-columns:1fr 1fr;height:130px}.member-cards>div{display:grid;grid-template-columns:45px 1fr;grid-template-rows:1fr 1fr;align-items:center;padding:15px;border-right:1px solid var(--fp-line)}.member-cards .avatar{grid-row:1/3}.member-cards span:last-child{font-size:11px;color:var(--fp-muted)}.asset-overview{display:grid;grid-template-columns:130px 1fr;align-items:center}.asset-overview ul{list-style:none;padding:0}.asset-overview li{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--fp-line-soft);font-size:12px}.summary-strip{min-height:105px;margin-bottom:var(--fp-gap);display:grid;grid-template-columns:repeat(3,1fr);align-items:center}.metric{padding:16px 20px;display:grid;gap:6px;border-color:transparent;box-shadow:none}.metric+.metric{border-left:1px solid var(--fp-line-soft)}.metric span{font-size:13px}.metric strong{font:700 27px var(--fp-display);color:var(--fp-navy);font-variant-numeric:tabular-nums}.metric small{color:var(--fp-green)}.transactions-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:var(--fp-gap)}.tx-main{padding:10px 14px}.page-title-row,.page-heading{display:flex;align-items:center;gap:12px}.page-title-row h1,.page-heading h1{font:700 28px var(--fp-display);color:var(--fp-navy);margin:0 auto 0 4px}.page-search{height:42px;width:44%;display:flex;align-items:center;gap:8px;border:1px solid var(--fp-line);border-radius:7px;padding:0 12px}.page-search input{width:100%;border:0;outline:0}.quick-filters{height:54px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--fp-line-soft)}.quick-filters button,.segmented button{height:34px;padding:0 18px;border:0;background:transparent;border-radius:6px}.quick-filters button.active,.segmented button.active{background:linear-gradient(#258fce,#0e6cae);color:#fff}.select-filters{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:10px 0}.select-filters select,.filter-panel select{height:40px;border:1px solid var(--fp-line);border-radius:6px;background:#fff;padding:0 9px}.pagination{height:55px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.pagination span{margin-right:auto}.pagination button{width:36px;height:34px;border:1px solid var(--fp-line);background:#fff;border-radius:5px}.pagination button.active{background:var(--fp-blue);color:#fff}.filter-panel{padding:16px}.filter-panel.collapsed{height:68px}.filter-panel h3{font:700 16px var(--fp-display);margin:18px 0 10px}.filter-panel>label{height:36px;display:flex;align-items:center;gap:8px}.segmented{height:38px;padding:2px;display:flex;border:1px solid var(--fp-line);border-radius:7px;background:#f7fbfd}.segmented button{flex:1}.date-range{margin-top:10px;height:40px;display:grid;place-items:center;border:1px solid var(--fp-line);border-radius:6px;background:#fff;font-size:12px}.filter-actions{position:absolute;bottom:16px;left:16px;right:16px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.page-heading{height:62px}.page-heading .segmented{width:220px}.member-tabs{width:420px!important}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--fp-gap);margin-bottom:var(--fp-gap)}.metric-grid .metric{border-color:var(--fp-gold);box-shadow:var(--fp-shadow);height:130px}.stats-grid{display:grid;grid-template-columns:1.6fr 1.05fr 1.05fr;gap:var(--fp-gap)}.stats-grid .panel{height:260px}.stats-grid .stats-trend{height:305px}.stats-grid .stats-category{height:305px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:35px 1fr}.stats-category .panel-title{grid-column:1/-1}.bar-chart{height:215px;display:flex;align-items:flex-end;gap:13px;padding:20px 30px;position:relative;border-bottom:1px solid var(--fp-line)}.bar-chart>i{width:17px;background:linear-gradient(#4ba7d9,#177bc0);opacity:.8}.bar-chart svg{position:absolute;top:20px;right:20px;bottom:15px;left:20px;width:calc(100% - 40px);height:calc(100% - 35px)}.bar-chart svg path{fill:none;stroke:var(--fp-green);stroke-width:3}.bar-chart.compact{height:185px}.rank-list{list-style:none;padding:0;margin:0}.rank-list li{height:32px;display:grid;grid-template-columns:25px 80px 1fr auto;align-items:center;gap:6px;font-size:11px}.rank-list em{font-style:normal;color:var(--fp-blue)}.rank-list i{height:7px;border-radius:4px;background:linear-gradient(90deg,var(--fp-blue),#58c5cd)}.member-contrib>div{height:80px;display:grid;grid-template-columns:45px 80px 1fr;align-items:center;gap:8px;border-bottom:1px solid var(--fp-line-soft)}.member-contrib .progress{grid-column:3}.progress{height:8px;border-radius:5px;background:#e4edf1;overflow:hidden}.progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--fp-blue),#43bec6)}.assets-metrics .metric{height:125px}.assets-grid{display:grid;grid-template-columns:1.35fr 1fr .85fr;gap:var(--fp-gap);margin-bottom:var(--fp-gap)}.assets-grid>.panel{height:290px}.allocation{display:grid;grid-template-columns:.9fr 1.1fr;grid-template-rows:35px 1fr}.allocation .panel-title{grid-column:1/-1}.investment{position:relative}.investment>strong{font:700 28px var(--fp-display);display:block;margin-top:34px}.investment p{color:var(--fp-muted)}.mechanical-orb{position:absolute;right:28px;bottom:28px;width:110px;height:110px;border:9px double var(--fp-gold);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#dff9ff,#4cb2db);font-size:46px;color:#fff}.asset-tables{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--fp-gap)}.asset-tables .panel{height:390px}.ledger-hero{height:170px;display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--fp-gap);padding:25px 35px}.ledger-hero h2{display:inline-block;margin:5px 12px 5px 0;font:700 34px var(--fp-display)}.tag{display:inline-block;padding:5px 9px;border:1px solid var(--fp-line);border-radius:5px;background:#edf8fc;color:var(--fp-blue);font-size:12px}.ledgers-grid{display:grid;grid-template-columns:1fr 1fr 1.45fr;gap:var(--fp-gap)}.ledgers-grid>.panel,.ledger-side{height:535px}.ledger-card{width:100%;height:120px;border:1px solid var(--fp-line-soft);background:#fff;display:grid;grid-template-columns:85px 1fr auto;align-items:center;text-align:left;padding:12px;margin-bottom:10px;border-radius:7px}.ledger-card.active{border:2px solid var(--fp-blue);background:#f4fbff}.ledger-card span:nth-child(2){display:grid;gap:8px}.ledger-card small{color:var(--fp-muted)}.ledger-card em{font-style:normal;color:var(--fp-green)}.ledger-art{font-size:50px;color:var(--fp-blue)}.permission-card{height:82px;display:grid;grid-template-columns:50px 1fr auto;align-items:center}.permission-card span:nth-child(2){display:grid}.permission-card small{color:var(--fp-muted)}.ledger-side{display:grid;grid-template-rows:1fr 1fr;gap:var(--fp-gap)}.invite-panel{text-align:left}.invite-code{display:block;width:80%;height:74px;margin:16px auto;border:2px solid var(--fp-gold);background:#fff;font:700 28px var(--fp-display);letter-spacing:4px;color:var(--fp-navy)}.activity-row{height:57px;display:grid;grid-template-columns:44px 1fr auto;align-items:center;border-bottom:1px solid var(--fp-line-soft);font-size:11px}.activity-row span:nth-child(2){display:grid}.activity-row small{color:var(--fp-muted)}.activity-row em{font-style:normal;color:var(--fp-red)}.budget-grid{display:grid;grid-template-columns:2.2fr 1fr;gap:var(--fp-gap);margin-bottom:var(--fp-gap)}.budget-grid>.panel{height:270px}.budget-main{display:grid;grid-template-columns:1fr 220px 1fr;align-items:center}.budget-main>div{display:grid;gap:8px}.budget-main strong{font:700 31px var(--fp-display)}.budget-main button{width:150px}.reminder-row{height:63px;display:grid;grid-template-columns:35px 1fr auto;align-items:center;border:1px solid var(--fp-line-soft);border-radius:7px;padding:7px;margin-bottom:8px}.reminder-row>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#fff0ec;color:var(--fp-red);font-weight:800}.reminder-row p{display:grid;margin:0}.reminder-row small{color:var(--fp-muted)}.reminder-row button{border:0;background:transparent;color:var(--fp-blue)}.budget-lower{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,1fr);gap:var(--fp-gap)}.budget-lower>.panel,.budget-side{height:490px;min-width:0}.budget-side{display:grid;grid-template-rows:1fr 1fr;gap:var(--fp-gap)}.forecast,.comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--fp-line-soft);border-radius:7px;overflow:hidden}.forecast .metric,.comparison .metric{min-width:0;padding-inline:10px}.forecast .metric strong,.comparison .metric strong{font-size:18px;white-space:nowrap}.suggestion{height:62px;display:grid;grid-template-columns:35px 1fr auto;align-items:center;border-bottom:1px solid var(--fp-line-soft)}.suggestion span{display:grid}.suggestion small{color:var(--fp-muted)}.suggestion button{height:30px;border:1px solid var(--fp-line);border-radius:5px;background:#fff;color:var(--fp-blue)}.modal-mask{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#041d418c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:590px;border:1px solid var(--fp-gold);border-radius:12px;background:linear-gradient(145deg,#fff,#eefaff);padding:24px;box-shadow:0 25px 80px #00193f61}.modal.small{width:470px}.modal header,.modal footer{display:flex;align-items:center;justify-content:space-between}.modal header{border-bottom:1px solid var(--fp-line);margin-bottom:18px}.modal header h2{font:700 26px var(--fp-display)}.modal header button{width:36px;height:36px;border:1px solid var(--fp-line);border-radius:50%;background:#fff;font-size:22px}.modal footer{justify-content:flex-end;gap:10px;margin-top:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label,.modal>label,.login-panel label{display:grid;gap:7px;font-weight:700}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid select,.modal>label input,.login-panel input{height:44px;border:1px solid var(--fp-line);border-radius:6px;background:#fff;padding:0 12px;outline:0}.toast{position:fixed;z-index:60;left:50%;bottom:28px;transform:translate(-50%);padding:12px 22px;border:1px solid var(--fp-gold);border-radius:7px;background:#fff;box-shadow:var(--fp-shadow);font-weight:700}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 20%,#fff,#d9f5fb 45%,#8fb9d0)}.login-panel{width:450px;padding:34px 42px;border:1px solid var(--fp-gold);border-radius:12px;background:#fffffff0;box-shadow:0 28px 80px #05284d3d;display:grid;gap:16px;text-align:center}.login-panel .brand-emblem{margin:auto}.login-panel h1{font:700 34px var(--fp-display);margin:0}.login-panel p{margin:0;color:var(--fp-muted)}.login-panel label{text-align:left}.brand{height:180px;background:url(/pc/assets/fontaine/sidebar-brand.png) center top/224px 180px no-repeat}.brand>*{visibility:hidden}.sidebar-ornament{height:251px;background:url(/pc/assets/fontaine/sidebar-machine.png) center bottom/224px 251px no-repeat}.sidebar-ornament>*{visibility:hidden}.line-chart,.area-chart{position:relative}.income-area{fill:url(#incomeFill)!important;stroke:none!important}.expense-area{fill:url(#expenseFill)!important;stroke:none!important}.income-point{fill:#fff;stroke:#149eaa;stroke-width:3}.expense-point{fill:#fff;stroke:var(--fp-red);stroke-width:2}.area-chart .area{fill:url(#assetFill)!important;stroke:none!important}.area-chart .area-line{stroke:var(--fp-blue);stroke-width:3}.area-point{fill:#fff;stroke:var(--fp-blue);stroke-width:3}.chart-legend{position:absolute;z-index:2;right:6px;top:-43px;display:flex;gap:18px;font-size:12px}.chart-legend span:before{content:"";display:inline-block;width:18px;height:3px;margin-right:6px;vertical-align:middle;border-radius:2px}.chart-legend .income-key:before{background:#149eaa}.chart-legend .expense-key:before{background:var(--fp-red)}.chart-labels{white-space:nowrap}.categories-panel{grid-template-columns:minmax(150px,1fr) minmax(120px,1.05fr)}.legend-list{min-width:0}.legend-list li{grid-template-columns:10px minmax(0,1fr) auto;white-space:nowrap}.donut{box-shadow:0 0 0 1px var(--fp-line),inset 0 0 18px #ffffff40}.status-cell{color:#16885f!important;white-space:nowrap}.transaction-table:not(.compact){font-size:11px}.transaction-table:not(.compact) th,.transaction-table:not(.compact) td{padding-inline:7px;white-space:nowrap}@media (max-height:800px){.brand{height:145px;background-size:181px 145px}.sidebar nav{gap:2px}.sidebar nav button{height:52px}.sidebar-ornament{height:150px;background-size:134px 150px}}@media (max-width:1439px){.content{padding-inline:16px}.topbar{padding-inline:18px}.home-grid.top-grid{grid-template-columns:5fr 3fr 6fr}.lower-grid{grid-template-columns:4fr 6fr 4.5fr}.transactions-layout{grid-template-columns:minmax(0,1fr) 280px}.panel{padding:13px}.metric strong{font-size:23px}.hero-money{font-size:36px}.data-table{font-size:11px}}@media (max-width:1179px){body{overflow-x:auto}.desktop-shell{width:1180px}}
