:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,sans-serif;color:#2c2d39;background:#f7f5fb;--accent:#706bb2;--profit:#4b917f;--loss:#c97885;--card:rgba(255,255,255,.9);--line:rgba(72,69,105,.1)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 0,#e9e5ff,transparent 38%),radial-gradient(circle at 100% 25%,#fae4ee,transparent 34%),#f8f7fc;background-attachment:fixed}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(420px,100%);background:var(--card);padding:30px;border-radius:30px;box-shadow:0 20px 65px #3e396419;text-align:center}.auth-card img{border-radius:18px}.auth-card label,.form label{display:grid;gap:6px;text-align:left;margin:14px 0;color:#747685;font-size:13px}input,select,button{font:inherit;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;color:inherit}button{cursor:pointer;font-weight:650}.primary{background:linear-gradient(135deg,#746eb8,#9188ce);color:#fff;border:0}header{height:96px;padding:calc(15px + env(safe-area-inset-top)) 18px 10px;display:flex;align-items:end;justify-content:space-between;max-width:860px;margin:auto}header h1{margin:2px 0;font-size:32px}.header-actions{display:flex;gap:7px}.header-actions button{width:42px;height:42px;border-radius:50%;padding:0}main{max-width:860px;margin:auto;padding:4px 15px calc(100px + env(safe-area-inset-bottom))}.page{display:none}.page.active{display:block}.hero{border-radius:27px;padding:23px;background:linear-gradient(135deg,#7771b9,#9588cc 55%,#d49bb8);color:#fff;box-shadow:0 16px 40px #6f68a43c}.hero span,.hero small{display:block;opacity:.85}.hero strong{font-size:42px;display:block;margin:8px 0}.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin:13px 0}.metrics article,.card{background:var(--card);border:1px solid #fff;border-radius:21px;padding:16px;box-shadow:0 8px 26px #433f5e10}.metrics span,small,.hint,.empty{color:#747685}.metrics strong{display:block;font-size:21px;margin-top:6px}.card{margin:12px 0}.row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);gap:10px}.row:last-child{border:0}.row small{display:block}.income{color:var(--profit)}.expense{color:var(--loss)}.segments{display:flex;background:#ebe8f6;border-radius:15px;padding:3px}.segments button{flex:1;border:0;background:transparent;padding:9px}.segments .active{background:#fff;color:var(--accent);box-shadow:0 2px 9px #0001}.period{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.period button{padding:8px 11px}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekdays{text-align:center;font-size:12px;color:#747685}.calendar article{min-height:66px;padding:6px;background:#fff9;border-radius:9px}.calendar small{display:block;font-size:9px;overflow:hidden}.bar-row{display:flex;align-items:center;gap:8px;margin:13px 0}.bar-row small{width:34px}.bar-row>i{height:10px;background:var(--profit);border-radius:6px}.bar-row>i.negative{background:var(--loss)}.bar-row>span{margin-left:auto}.twobars{flex:1}.twobars i{display:block;height:8px;border-radius:5px;margin:3px 0}.twobars .in{background:var(--profit)}.twobars .out{background:var(--loss)}details summary{display:flex;justify-content:space-between;cursor:pointer}nav{position:fixed;z-index:10;left:0;right:0;bottom:0;display:flex;justify-content:center;padding:7px 5px calc(7px + env(safe-area-inset-bottom));background:#fcfbffdd;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-top:1px solid var(--line)}nav button{border:0;background:transparent;font-size:11px;min-width:56px;padding:5px 8px;color:#747685}nav b{display:block;font-size:20px}nav .active{color:var(--accent);background:#ebe8fb}.masked .money{filter:blur(9px);-webkit-user-select:none;user-select:none}#status{position:fixed;z-index:30;left:50%;bottom:95px;transform:translate(-50%);background:#30303a;color:#fff;border-radius:18px;padding:9px 14px;max-width:90%;empty-cells:hide}#status:empty{display:none}#status.error{background:#8c4550}@media(min-width:700px){.metrics{grid-template-columns:repeat(4,1fr)}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:0 12px}.form button{grid-column:1/-1}}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.title-row h2{margin:8px 0}.title-row button{padding:8px 11px;background:#eeebfac7;color:var(--accent);border:0}.fixed-summary article{box-shadow:none;background:#ffffffa6;border-color:#ffffffd1}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:13px 0}.home-actions button{min-height:48px}.home-actions button:not(.primary){background:#ffffffb8;color:var(--accent);border-color:#706bb21f}.bookkeeping-switch{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;margin:2px 0 14px;border-radius:17px;background:#e6e5f1b8}.bookkeeping-switch button{border:0;background:transparent;padding:10px;color:#777585;box-shadow:none}.bookkeeping-switch button.active{color:#fff;background:linear-gradient(135deg,#7771c7,#a397df);box-shadow:0 5px 14px #7771c72e}.history-heading h2{margin:8px 2px 12px;font-size:22px}#history .segments{padding:2px;background:#e6e5f1b8;border-radius:13px}#history .segments button{padding:7px}#history .segments .active{color:#fff;background:linear-gradient(135deg,#7771c7,#a397df);box-shadow:none}#history .calendar article{background:transparent;border:0}#history .calendar article:focus,#history .calendar article:hover{outline:0;background:linear-gradient(145deg,#7a73cf29,#d3b9ee24)}#history .row,#fixed-bills .row{border-bottom-color:#4845690f}#history .calendar article{display:grid;grid-template-rows:17px 13px 13px;align-content:start;min-width:0;min-height:64px;padding:5px 2px;text-align:center}#history .calendar article>b{font-variant-numeric:tabular-nums;line-height:17px}#history .calendar article>small{min-width:0;font-size:8px;line-height:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-variant-numeric:tabular-nums}#history .period b{font-variant-numeric:tabular-nums}#history .history-summary strong,#day-summary strong,#fixed-bills .fixed-summary strong{font-family:DIN Alternate,DIN Condensed,ui-rounded,-apple-system,sans-serif;font-variant-numeric:tabular-nums;color:#7b70b8}#history .history-summary article{box-shadow:none;background:#ffffffa8}#history .week-compact-chart{padding:14px}.week-chart-legend{display:flex;justify-content:flex-end;gap:14px;color:#888696;font-size:11px;margin-bottom:7px}.week-chart-row{display:grid;grid-template-columns:20px minmax(0,1fr) 90px;align-items:center;gap:9px;min-height:31px}.week-chart-row>div{display:grid;gap:3px}.week-chart-row>span{text-align:right;font-size:12px}.week-chart-row progress{width:100%;height:6px;border:0;border-radius:999px;overflow:hidden;background:#e2dfee94;appearance:none;-webkit-appearance:none}.week-chart-row progress::-webkit-progress-bar{background:#e2dfee94;border-radius:999px}.week-chart-row progress::-webkit-progress-value{border-radius:999px}.week-chart-row progress.week-income::-webkit-progress-value{background:linear-gradient(90deg,#8fd4e5,#a69ce4)}.week-chart-row progress.week-expense::-webkit-progress-value{background:linear-gradient(90deg,#edb7ca,#c7a4df)}.week-chart-row progress.week-income::-moz-progress-bar{background:linear-gradient(90deg,#8fd4e5,#a69ce4)}.week-chart-row progress.week-expense::-moz-progress-bar{background:linear-gradient(90deg,#edb7ca,#c7a4df)}#fixed-bills .fixed-manager{margin-top:14px}#fixed-bills .fixed-manager>.manager{background:#ffffffb3;box-shadow:none}#fixed-bills .fixed-manager>.manager>summary{color:var(--accent)}#entry-dialog,#transfer-dialog{width:min(94vw,560px);max-height:88vh}#entry.dialog-card,#transfer.dialog-card{max-height:88vh;overflow:auto;background:#fcfbfff7}.dialog-title{display:flex;align-items:center;justify-content:space-between!important;gap:12px}.dialog-title h2{margin:0}.dialog-title button{padding:8px 11px;border:0;background:#eeebfac7;color:var(--accent)}#entry .form,#transfer .form{padding:0;box-shadow:none}#reports .card{box-shadow:none;background:#ffffffb3}#reports .bar-row>i.net{background:linear-gradient(90deg,#8fd4e5,#a69ce4)}#reports .bar-row>i.net.negative{background:linear-gradient(90deg,#edb7ca,#c7a4df)}#reports .twobars .in{background:linear-gradient(90deg,#85cddd,#9ea8e9)}#reports .twobars .out{background:linear-gradient(90deg,#efb6c8,#c7a2dc)}#reports .annual-primary article{background:linear-gradient(145deg,#ffffffc7,#ece8fcb3)}#reports .income-strip{display:flex;gap:10px;overflow:auto;padding:4px 0 8px;scrollbar-width:none}#reports .income-strip span{flex:0 0 auto;padding:9px 12px;border-radius:14px;background:#ffffff9e;color:#747685;font-size:12px}#reports .income-strip b{display:block;margin-top:3px;color:var(--accent);font-size:15px}#reports .chart-row{display:grid;grid-template-columns:34px minmax(0,1fr) 96px;align-items:center;gap:9px;min-height:27px}#reports .chart-row>span:last-child{text-align:right;font-size:12px}#reports .no-data{grid-column:2/4;color:#aaa7b5}#reports .compare-row>div{display:grid;gap:3px}#reports .chart-legend{display:flex;justify-content:flex-end;gap:14px;color:#888696;font-size:11px;margin:-4px 0 10px}#reports .report-progress{width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:#e2dfee94;appearance:none;-webkit-appearance:none}#reports .report-progress::-webkit-progress-bar{background:#e2dfee94;border-radius:999px}#reports .report-progress::-webkit-progress-value{border-radius:999px;background:linear-gradient(90deg,#8fd4e5,#a69ce4)}#reports .report-progress::-moz-progress-bar{border-radius:999px;background:linear-gradient(90deg,#8fd4e5,#a69ce4)}#reports .report-progress.negative::-webkit-progress-value{background:linear-gradient(90deg,#edb7ca,#c7a4df)}#reports .report-progress.negative::-moz-progress-bar{background:linear-gradient(90deg,#edb7ca,#c7a4df)}#reports .report-progress.income-bar::-webkit-progress-value{background:linear-gradient(90deg,#85cddd,#9ea8e9)}#reports .report-progress.income-bar::-moz-progress-bar{background:linear-gradient(90deg,#85cddd,#9ea8e9)}#reports .report-progress.expense-bar::-webkit-progress-value{background:linear-gradient(90deg,#efb6c8,#c7a2dc)}#reports .report-progress.expense-bar::-moz-progress-bar{background:linear-gradient(90deg,#efb6c8,#c7a2dc)}#reports .cumulative-state>strong{display:block;color:var(--accent);font-size:32px;margin:10px 0 4px}#reports .cumulative-chart{display:block;width:100%;height:auto;min-height:120px}#reports .chart-baseline{stroke:#aaa6bb;stroke-width:2;stroke-dasharray:8 8}#reports .cumulative-line{stroke:#7771bc;stroke-width:7;stroke-linecap:round}#reports .cumulative-dot{fill:#a59bdf;stroke:#fff;stroke-width:4}#reports .month-axis{display:grid;grid-template-columns:repeat(12,1fr);color:#8d8a99;font-size:9px;text-align:center;margin-top:-8px}#reports .composition{display:grid;grid-template-columns:128px minmax(0,1fr);align-items:center;gap:16px}#reports .donut{width:128px;height:128px}#reports .donut-track{fill:none;stroke:#eceaf2;stroke-width:18}#reports .donut-segment{fill:none;stroke-width:18;stroke-linecap:butt}#reports .tone-0{stroke:#9b94dc;background:#9b94dc}#reports .tone-1{stroke:#8fcde2;background:#8fcde2}#reports .tone-2{stroke:#edb8cb;background:#edb8cb}#reports .tone-3{stroke:#91d3cc;background:#91d3cc}#reports .tone-4{stroke:#c5ace3;background:#c5ace3}#reports .tone-5{stroke:#b8b5c8;background:#b8b5c8}#reports .legend{display:grid;gap:8px}#reports .legend-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:7px;font-size:12px}#reports .legend-row i{width:9px;height:9px;border-radius:50%}#reports .legacy-row{margin-top:10px;color:#858290}#assets .card,#investments .card{box-shadow:none;background:#ffffffb8}.portfolio-summary strong{font-family:DIN Alternate,DIN Condensed,ui-rounded,-apple-system,sans-serif;font-variant-numeric:tabular-nums;color:#7b70b8}.portfolio-row>div:first-child,.investment-row>div:first-child{min-width:0}.portfolio-row b,.investment-row b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio-row>strong{flex:0 0 auto;font-family:DIN Alternate,DIN Condensed,ui-rounded,-apple-system,sans-serif;font-size:20px;color:#363447}.portfolio-row>strong.expense{color:var(--loss)}.goal-row progress{width:100%;height:7px;border:0;border-radius:999px;overflow:hidden;appearance:none;-webkit-appearance:none}.goal-row progress::-webkit-progress-bar{background:#eceaf4}.goal-row progress::-webkit-progress-value{background:linear-gradient(90deg,#8fd4e5,#a69ce4)}.goal-row progress::-moz-progress-bar{background:linear-gradient(90deg,#8fd4e5,#a69ce4)}.investment-hero{background:linear-gradient(135deg,#7b74bd,#958bd0 58%,#c49fca)}.investment-value{text-align:right;flex:0 0 auto}.investment-value strong,.investment-value small{display:block}.investment-value strong{font-family:DIN Alternate,DIN Condensed,ui-rounded,-apple-system,sans-serif;font-size:20px}.investment-value small{margin-top:3px}@media(max-width:430px){#reports .composition{grid-template-columns:104px minmax(0,1fr);gap:10px}#reports .donut{width:104px;height:104px}#reports .chart-row{grid-template-columns:30px minmax(0,1fr) 82px}.annual-primary strong{font-size:18px}.home-actions{grid-template-columns:1fr 1fr}.bookkeeping-switch button{padding:9px 6px}}dialog{width:min(92vw,420px);border:0;border-radius:24px;padding:0;color:var(--ink);box-shadow:0 24px 80px #39335a55}dialog::backdrop{background:#26223888;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.dialog-card{display:grid;gap:14px;margin:0;padding:24px;background:var(--card)}.dialog-card>div{display:flex;justify-content:flex-end;gap:10px}.row-actions{display:flex;gap:6px}.row-actions button{min-height:34px;padding:6px 10px;font-size:12px}.calendar [data-day]{cursor:pointer}.calendar [data-day]:focus-visible{outline:3px solid #7771bc66;outline-offset:2px}.manager>summary{display:flex;justify-content:space-between;cursor:pointer}.manager .form{margin-top:16px;padding:0;box-shadow:none}.manager .form>div{display:flex;justify-content:flex-end;gap:10px}.manager-list{margin-top:12px;border-top:1px solid #7771bc22}.inline-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.inline-field button{min-height:42px;white-space:nowrap}.access-mode{max-width:830px;margin:0 auto 10px;padding:9px 14px;border:1px solid rgba(112,107,178,.14);border-radius:15px;background:linear-gradient(135deg,#e2deffc7,#f4e2f6b8);color:#625d91;font-size:13px;text-align:center}.write-disabled .home-actions,.write-disabled [data-quick],.write-disabled .row-actions,.write-disabled .manager form,.write-disabled #sync{display:none!important}#real-preview-banner{position:sticky;z-index:40;top:0;padding:calc(7px + env(safe-area-inset-top)) 12px 7px;background:#706bb2f0;color:#fff;font-size:12px;text-align:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
