:root{--canvas:#f3f3f1;--surface:#ffffff;--dark:#1a1a1e;--ink:#16161a;--text-secondary:#6b6b70;--muted:#8a8a8e;--text-quiet:#a1a1a6;--text-disabled:#c4c4c8;--line:rgba(0,0,0,.05);--line-strong:rgba(0,0,0,.07);--field-bg:rgba(0,0,0,.028);--pill-bg:rgba(0,0,0,.05);--pill-bg-strong:rgba(0,0,0,.09);--chip-bg:rgba(0,0,0,.04);--income:#2e9e74;--income-on-dark:#4fc48c;--income-dim:rgba(46,158,116,.1);--income-chip-text:#227e5c;--expense:#c2564a;--expense-on-dark:#e07a68;--expense-dim:rgba(194,86,74,.09);--expense-chip-text:#a8483d;--gold:#c9883c;--violet:#7d86cf;--brand:#2e9e74;--r-card:26px;--r-modal:28px;--r-menu:18px;--r-field:13px;--r-pill:11px;--r-btn:12px;--r-btn-lg:14px;--shadow-card:0 1px 2px rgba(20,20,19,.05), 0 14px 30px -22px rgba(20,20,19,.18);--shadow-hero:0 18px 40px -24px rgba(10,10,12,.55);--shadow-modal:0 40px 80px -30px rgba(10,10,12,.5);--shadow-menu:0 24px 48px -20px rgba(10,10,12,.35), 0 0 0 1px rgba(0,0,0,.05)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}html,body{overflow-x:hidden;width:100%}body{background:var(--canvas);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,Helvetica Neue,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}.mono{font-variant-numeric:tabular-nums}@keyframes dcRise{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.wrap{max-width:640px;margin:0 auto;padding:28px 16px 80px}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--muted);font-size:13px}header{margin-bottom:24px}.title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}h1{font-size:clamp(22px,6vw,27px);font-weight:600;letter-spacing:-.028em;margin:0;border:none;background:transparent;color:var(--ink);padding:0;min-width:40px;outline:none;cursor:default}.header-controls,.month-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.month-arrow{width:28px;height:28px;border:none;border-radius:14px;background:var(--pill-bg);color:var(--text-secondary);font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.month-arrow:hover{background:var(--pill-bg-strong)}.month-state-tag{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:7px}.month-state-tag.open{background:var(--income-dim);color:var(--income-chip-text)}.month-state-tag.frozen{background:var(--expense-dim);color:var(--expense-chip-text)}.month-state-tag.small{font-size:9px;padding:3px 7px}.lang-switch-wrap,.auth-lang-wrap{position:relative}.lang-switch-btn,.auth-lang-btn{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;padding:8px 12px;border:none;border-radius:var(--r-pill);background:var(--pill-bg);color:var(--ink);cursor:pointer;transition:background .15s}.lang-switch-btn:hover,.auth-lang-btn:hover{background:var(--pill-bg-strong)}.lang-switch-menu,.auth-lang-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:41;min-width:184px;max-width:calc(100vw - 32px);background:var(--surface);border-radius:var(--r-menu);padding:6px;box-shadow:var(--shadow-menu);display:flex;flex-direction:column;gap:2px;animation:dcRise .16s cubic-bezier(.32,.72,0,1)}.auth-lang-menu{left:auto;right:0}.lang-switch-menu button,.auth-lang-menu button{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;padding:9px 11px;font-size:13.5px;background:none;border:none;cursor:pointer;border-radius:11px;color:var(--ink);font-weight:400}.lang-switch-menu button:hover,.auth-lang-menu button:hover{background:var(--chip-bg)}.lang-switch-menu button.active,.auth-lang-menu button.active{background:var(--chip-bg);color:var(--ink);font-weight:600}.lang-switch-menu button.active:after,.auth-lang-menu button.active:after{content:"✓";color:var(--income);font-size:11px}.currency-menu-wrap{position:relative}.currency-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:41;min-width:240px;max-width:calc(100vw - 32px);background:var(--surface);border-radius:var(--r-menu);padding:8px;box-shadow:var(--shadow-menu);display:flex;flex-direction:column;gap:2px;animation:dcRise .16s cubic-bezier(.32,.72,0,1)}.currency-menu-section-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-quiet);font-weight:600;padding:8px 9px 4px;display:block}.currency-menu-tabs{display:flex;padding:3px;margin:4px 2px 2px;background:var(--pill-bg);border-radius:11px;gap:2px}.currency-menu-tabs button{flex:1;border:none;border-radius:9px;padding:7px 8px;font-size:11.5px;font-weight:600;cursor:pointer;background:transparent;color:var(--muted);transition:all .15s}.currency-menu-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.currency-menu-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:none;background:none;padding:9px;border-radius:11px;cursor:pointer;font-size:13px;color:var(--ink);text-align:left;width:100%}.currency-menu-toggle-row:hover{background:var(--chip-bg)}.switch{width:30px;height:18px;border-radius:9px;background:var(--pill-bg-strong);position:relative;flex:none;transition:background .18s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:7px;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .18s}.switch.on{background:var(--brand)}.switch.on:after{transform:translate(12px)}.currency-menu-list{display:flex;flex-direction:column;gap:1px;max-height:180px;overflow-y:auto}.currency-menu-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;border:none;background:transparent;border-radius:11px;padding:8px 9px;font-size:13.5px;cursor:pointer;color:var(--ink);text-align:left;width:100%}.currency-menu-list button:hover{background:var(--chip-bg)}.currency-menu-list button.active{background:var(--chip-bg);font-weight:600}.currency-menu-list button .check{font-size:11px;color:var(--brand);opacity:0}.currency-menu-list button.active .check{opacity:1}.currency-menu-rate{border-top:1px solid var(--line);margin-top:4px;padding-bottom:2px}.currency-menu-rate-row{display:flex;align-items:center;gap:8px;padding:0 9px}.currency-menu-rate-row input{flex:1;min-width:0;border:1px solid var(--line-strong);background:var(--field-bg);border-radius:11px;padding:9px 11px;font-size:13.5px;color:var(--ink);outline:none;text-align:right;font-variant-numeric:tabular-nums;transition:border-color .15s,background .15s}.currency-menu-rate-row input:focus{border-color:var(--brand);background:var(--surface)}.currency-menu-rate-suffix{font-size:12px;color:var(--muted);flex:none}.currency-menu-hint{font-size:10.5px;color:var(--text-quiet);padding:5px 9px 2px;display:block}.avatar-menu-wrap{position:relative}.avatar-btn{width:34px;height:34px;border-radius:17px;border:none;background:var(--dark);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;padding:0;flex:none;transition:transform .15s,box-shadow .15s}.avatar-btn img{width:100%;height:100%;object-fit:cover}.avatar-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px -10px #0a0a0c99}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:transparent}.avatar-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:41;min-width:170px;max-width:calc(100vw - 32px);background:var(--surface);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-menu);display:flex;flex-direction:column;padding:6px;animation:dcRise .16s cubic-bezier(.32,.72,0,1)}.avatar-menu button{text-align:left;padding:10px 11px;font-size:13px;background:none;border:none;cursor:pointer;color:var(--ink);border-radius:11px}.avatar-menu button:hover{background:var(--chip-bg)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1212146b;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal-card{background:var(--surface);border-radius:var(--r-modal);padding:26px 28px 22px;width:100%;max-width:428px;max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:var(--shadow-modal);animation:dcRise .2s cubic-bezier(.32,.72,0,1)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px;gap:12px}.modal-head h2{font-size:19px;font-weight:600;letter-spacing:-.02em;margin:0}.modal-close{width:30px;height:30px;border:none;border-radius:15px;background:var(--pill-bg);color:var(--text-secondary);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s}.modal-close:hover{background:var(--pill-bg-strong)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.confirm-card{max-width:380px}.confirm-title{font-size:18px;font-weight:600;letter-spacing:-.02em;margin:0}.confirm-message{font-size:13.5px;line-height:1.5;color:var(--text-secondary);margin:10px 0 0}.btn-danger{background:var(--expense)}.avatar-picker{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding:14px;background:var(--field-bg);border-radius:20px}.avatar-circle{width:58px;height:58px;border-radius:29px;background:var(--dark);flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:600;color:#fff;cursor:pointer;overflow:hidden;padding:0;border:none}.avatar-circle img{width:100%;height:100%;object-fit:cover}.avatar-link{background:none;border:none;color:var(--brand);font-size:12.5px;font-weight:600;text-decoration:none;cursor:pointer;padding:0}.avatar-link.muted{color:var(--text-quiet);font-weight:400}.avatar-picker-links{display:flex;flex-direction:column;gap:5px;align-items:flex-start}.hidden-file-input{display:none}.profile-form{display:flex;flex-direction:column;gap:12px}.profile-form label{display:flex;flex-direction:column;gap:7px;font-size:10.5px;color:var(--muted);letter-spacing:.11em;text-transform:uppercase;font-weight:600}.profile-form input{border:1px solid var(--line-strong);background:var(--field-bg);border-radius:var(--r-field);padding:11px 13px;font-size:14px;color:var(--ink);outline:none;width:100%;min-width:0;transition:border-color .15s,background .15s}.profile-form input:focus{border-color:var(--brand);background:var(--surface)}.profile-form input:disabled{color:var(--muted);background:var(--field-bg)}.profile-form-row-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.profile-email-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.profile-email-row input{flex:1}.verified-badge{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:4px 8px;border-radius:7px;white-space:nowrap}.verified-badge.yes{background:var(--income-dim);color:var(--income-chip-text)}.verified-badge.no{background:var(--expense-dim);color:var(--expense-chip-text)}.modal-footer-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.modal-footer-row .modal-actions{margin-top:0}.danger-link{border:none;background:none;color:var(--expense);font-size:13px;font-weight:500;cursor:pointer;padding:8px 0}.frozen-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--expense-dim);border-radius:16px;padding:12px 16px;margin-top:14px;font-size:13px;color:var(--expense-chip-text)}.freeze-row{display:flex;justify-content:flex-end;margin-top:14px}.summary-grid{display:flex;flex-direction:column;gap:14px;margin-top:16px}.hero-card{background:var(--dark);border-radius:var(--r-card);padding:24px 26px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:16px;min-height:172px;box-shadow:var(--shadow-hero)}.hero-top{display:flex;flex-direction:column;gap:10px}.hero-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff80;font-weight:600}.hero-amount-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.hero-amount{font-size:clamp(26px,8vw,40px);font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;word-break:break-word}.hero-amount.neg{color:#f0897a}.hero-ratio-chip{font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:9px;letter-spacing:.01em;white-space:nowrap;background:#4fc48c29;color:#7fdcaf}.hero-ratio-chip.neg{background:#e07a6829;color:#f0897a}.hero-usd{font-size:12px;color:#ffffff6b;font-variant-numeric:tabular-nums}.hero-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:#ffffff1a;gap:2px}.hero-bar-income{background:var(--income-on-dark);border-radius:3px}.hero-bar-expense{background:var(--expense-on-dark);border-radius:3px}.hero-legend{display:flex;gap:16px;font-size:11px;color:#ffffff80}.hero-legend span{display:flex;align-items:center;gap:6px}.stat-card{background:var(--surface);border-radius:var(--r-card);padding:22px 24px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-card)}.stat-card-top{display:flex;align-items:center;gap:7px}.stat-card-label{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600}.stat-card-figs{display:flex;flex-direction:column;gap:3px;margin-top:14px}.stat-card-amount{font-size:clamp(19px,6vw,27px);font-weight:600;letter-spacing:-.025em;font-variant-numeric:tabular-nums;word-break:break-word}.stat-card-usd{font-size:12px;color:var(--text-quiet);font-variant-numeric:tabular-nums}.stat-card-bottom{display:flex;flex-direction:column;gap:7px;margin-top:16px}.dot{width:7px;height:7px;border-radius:4px;display:inline-block;flex:none}.dot.income{background:var(--income)}.dot.expense{background:var(--expense)}.dot.savings{background:var(--gold)}.stat-progress{height:5px;border-radius:3px;background:#0000000e;overflow:hidden}.stat-progress-bar{height:100%;border-radius:3px;transition:width .35s cubic-bezier(.4,0,.2,1)}.stat-progress-bar.income{background:var(--income)}.stat-progress-bar.expense{background:var(--expense)}.stat-pending{font-size:11px;color:var(--text-quiet)}#categories{display:flex;flex-direction:column;gap:16px;margin-top:24px}.cat{background:var(--surface);border-radius:var(--r-card);padding:20px 22px 14px;box-shadow:var(--shadow-card)}.cat-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.cat-name{font-size:12px;font-weight:650;letter-spacing:.09em;text-transform:uppercase;display:flex;align-items:center;gap:8px;cursor:pointer;min-width:0}.cat-name span:not(.kind-chip):not(.dot){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kind-chip{font-size:10px;font-weight:600;letter-spacing:.04em;padding:3px 7px;border-radius:7px;white-space:nowrap;text-transform:none}.kind-chip.income{background:var(--income-dim);color:var(--income-chip-text)}.kind-chip.expense{background:var(--expense-dim);color:var(--expense-chip-text)}.cat-name .edit-hint{opacity:0;font-size:10px;color:var(--muted);transition:opacity .12s;text-transform:none}.cat-name:hover .edit-hint{opacity:1}.cat-edit-form{display:flex;flex-direction:column;gap:10px;width:100%;padding:4px 0}.cat-edit-form input[type=text]{width:100%}.form-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.form-row .go{display:flex;gap:6px;flex:none}.cat-totals-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.cat-totals{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}.cat-totals-fx{font-size:11px;color:var(--text-quiet);font-variant-numeric:tabular-nums;white-space:nowrap}.cat-actions{display:flex;align-items:center;gap:10px}.icon-btn{background:none;border:none;cursor:pointer;color:var(--text-disabled);font-size:14px;padding:2px;line-height:1;transition:color .15s}.icon-btn:hover{color:var(--text-secondary)}.cat-progress-row{display:flex;align-items:center;gap:10px;margin:14px 0 6px}.cat-progress-track{flex:1;height:4px;border-radius:2px;background:#0000000d;overflow:hidden}.cat-progress-bar{height:100%;border-radius:2px;transition:width .35s cubic-bezier(.4,0,.2,1)}.cat-progress-label{font-size:11px;color:var(--text-quiet);white-space:nowrap;font-variant-numeric:tabular-nums}.row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.row.done .desc,.row.done .amt{color:var(--text-quiet)}.row-left{display:flex;align-items:center;gap:11px;min-width:0}.check-circle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:10px;flex:none;cursor:pointer;margin:0;padding:0;border:1.5px solid rgba(0,0,0,.16);background:transparent;color:#fff;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .18s}.check-circle:disabled{cursor:default}.desc{flex:1;min-width:0;font-size:13.5px;letter-spacing:-.005em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;color:var(--ink)}.row-right{display:flex;align-items:center;gap:10px;flex:none}.amt{font-size:13.5px;font-weight:500;cursor:pointer;color:var(--ink)}.amt-fx{font-size:11px;color:var(--text-disabled);min-width:56px;text-align:right}.del-row{opacity:0;transition:opacity .12s,color .15s;background:none;border:none;color:var(--text-disabled);cursor:pointer;font-size:13px;padding:0 2px;line-height:1}.row:hover .del-row{opacity:1}.del-row:hover{color:var(--muted)}.add-row{display:flex;gap:8px;align-items:center;padding:12px 0 4px;border-top:1px solid var(--line);flex-wrap:wrap}.add-row input[type=text]{flex:1;min-width:120px}.add-row input[type=number]{width:120px}input[type=text],input[type=number],input[type=email],input[type=password],input[type=tel]{border:none;background:var(--chip-bg);border-radius:10px;font-size:13.5px;color:var(--ink);padding:9px 12px;outline:none}.add-row input[type=number]{text-align:right;font-variant-numeric:tabular-nums}input::placeholder{color:var(--text-quiet)}.add-row .go{display:flex;gap:6px;flex:none}.btn{font-size:12.5px;font-weight:600;letter-spacing:0;padding:9px 14px;border-radius:var(--r-btn);border:none;background:var(--dark);color:#fff;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}.btn:hover{transform:translateY(-1px)}.btn.ghost{background:transparent;color:var(--muted);padding:9px 6px}.btn.ghost:hover{transform:none;color:var(--ink)}.btn.btn-full{width:100%;padding:14px 18px;font-size:14.5px;border-radius:var(--r-btn-lg);margin-top:0;box-shadow:0 10px 24px -14px #0a0a0cb3}.btn.btn-full:hover{box-shadow:0 16px 30px -16px #0a0a0cbf}.add-trigger{padding:8px 0;font-size:12.5px;font-weight:500;color:var(--muted);background:none;border:none;cursor:pointer;text-align:left;width:100%;letter-spacing:0;margin-top:6px;transition:color .15s}.add-trigger:hover{color:var(--ink)}.new-cat{border:1.5px dashed var(--line-strong);border-radius:var(--r-card);padding:22px;display:flex;align-items:center;justify-content:center;transition:border-color .15s}.new-cat:hover{border-color:#0000003d}.new-cat>.add-trigger{margin:0;text-align:center;color:var(--muted);font-weight:500}.new-cat>.add-trigger:hover{color:var(--ink)}.new-cat-form{display:flex;flex-direction:column;gap:12px;padding:2px 0;width:100%}.new-cat-form input[type=text]{width:100%}.type-toggle{display:flex;padding:3px;background:var(--pill-bg);border-radius:11px;gap:2px;flex:none}.type-toggle button{font-size:11.5px;font-weight:600;letter-spacing:.03em;padding:6px 11px;border:none;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer;transition:all .15s}.type-toggle button.active.expense{background:var(--surface);color:var(--expense-chip-text);box-shadow:0 1px 3px #0000001f}.type-toggle button.active.income{background:var(--surface);color:var(--income-chip-text);box-shadow:0 1px 3px #0000001f}.history{margin-top:24px;background:var(--surface);border-radius:var(--r-card);padding:24px 26px;box-shadow:var(--shadow-card)}.history-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:8px}.history-head h2{font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0}.hist-wrap{display:flex;flex-direction:column;gap:20px}.hist-chart{display:flex;align-items:flex-end;gap:24px;height:130px;padding:0 2px;overflow-x:auto}.hist-chart-col{display:flex;flex-direction:column;align-items:center;gap:10px;flex:0 0 auto}.hist-chart-bars{display:flex;align-items:flex-end;gap:5px;height:96px}.hist-chart-bar{width:11px;border-radius:6px 6px 3px 3px}.hist-chart-bar.income{background:var(--income);opacity:.9}.hist-chart-bar.expense{background:var(--expense);opacity:.85}.hist-chart-label{font-size:11px;color:var(--text-quiet);letter-spacing:.02em}.hist-row-clickable{cursor:pointer;border-radius:12px}.hist-row-clickable:hover{background:var(--field-bg)}.hist-grid{font-size:13.5px}.hist-grid-scroll{max-height:456px;overflow-y:auto;overflow-x:auto}.hist-row{display:grid;grid-template-columns:minmax(110px,1.2fr) minmax(128px,1fr) minmax(128px,1fr) minmax(128px,1fr) minmax(68px,auto);column-gap:12px;min-width:660px;align-items:center}.hist-cell{padding:11px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.hist-cell:first-child,.hist-cell-month{text-align:left;font-weight:500}.hist-row.hist-head{background:transparent}.hist-row.hist-head .hist-cell{font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--text-quiet);font-weight:600;padding-bottom:10px;padding-top:0}.hist-cell.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.hist-cell.sortable:hover{color:var(--ink)}.sort-arrow{font-size:9px;margin-left:2px}.sort-arrow.idle{opacity:.35}.sort-arrow.active{opacity:1;color:var(--ink)}.hist-grid-scroll>.hist-row:not(.hist-head){border-top:1px solid var(--line)}.savings-pos{color:var(--income);font-weight:600}.savings-neg{color:var(--expense);font-weight:600}.hist-empty{font-size:13px;color:var(--muted);padding:8px 0}.hist-cell-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;overflow:visible;text-overflow:clip}.hist-row.hist-foot{font-weight:650;border-top:1.5px solid rgba(0,0,0,.12);padding:2px 0;position:sticky;bottom:0;background:var(--surface)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--canvas)}.auth-wrap .auth-card{width:100%;max-width:360px;background:var(--surface);border-radius:var(--r-card);padding:28px;box-shadow:var(--shadow-card)}.auth-title{font-size:19px;font-weight:600;letter-spacing:-.02em;margin:0 0 4px}.auth-sub{font-size:13px;color:var(--muted);margin:0 0 20px;line-height:1.5}.auth-card form{display:flex;flex-direction:column;gap:16px}.auth-card label{display:flex;flex-direction:column;gap:7px;font-size:10.5px;color:var(--muted);letter-spacing:.11em;text-transform:uppercase;font-weight:600}.auth-card input{border:1px solid var(--line-strong);background:var(--field-bg);border-radius:var(--r-field);padding:12px 14px;font-size:14px;color:var(--ink);outline:none;width:100%;min-width:0;transition:border-color .15s,background .15s}.auth-card input:focus{border-color:var(--brand);background:var(--surface)}.auth-error{font-size:12.5px;color:var(--expense-chip-text);background:var(--expense-dim);padding:9px 12px;border-radius:12px}.auth-notice{font-size:13px;color:var(--income-chip-text);background:var(--income-dim);padding:11px 13px;border-radius:12px}.auth-notice.small{font-size:11.5px;margin-top:6px;padding:7px 11px}.auth-switch{margin-top:18px;font-size:12.5px;color:var(--muted);text-align:center}.auth-switch button{background:none;border:none;color:var(--ink);font-weight:600;cursor:pointer;text-decoration:none;padding:0}.auth-switch button:hover{color:var(--brand)}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1fr;font-family:inherit;background:var(--canvas)}.auth-side{display:none;background:var(--dark);color:#fff;padding:44px 46px;flex-direction:column;justify-content:space-between}.auth-brand{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.auth-brand-mark{width:30px;height:30px;border-radius:10px;background:var(--brand);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff}.auth-pitch{display:flex;flex-direction:column;gap:26px;max-width:420px}.auth-pitch h2{margin:0;font-size:clamp(26px,3vw + 18px,34px);line-height:1.14;font-weight:600;letter-spacing:-.028em}.auth-pitch p{margin:0;font-size:14.5px;line-height:1.55;color:#ffffff8c}.auth-preview-card{background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:20px 22px;display:flex;flex-direction:column;gap:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.auth-preview-row{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff73;font-weight:600}.auth-preview-amount{font-size:29px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.auth-preview-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;gap:2px;background:#ffffff1a}.auth-preview-bar-income{background:var(--income-on-dark);border-radius:3px}.auth-preview-bar-expense{background:var(--expense-on-dark);border-radius:3px}.auth-preview-legend{display:flex;gap:16px;font-size:11px;color:#ffffff80}.auth-preview-legend span{display:flex;align-items:center;gap:6px}.auth-footer{font-size:11.5px;color:#ffffff52}.auth-main{padding:36px 20px 60px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.auth-lang-wrap{position:absolute;top:32px;right:24px}.auth-main .auth-card{width:100%;max-width:376px;display:flex;flex-direction:column;gap:22px;background:transparent;padding:0;box-shadow:none}.auth-tabs{display:flex;padding:3px;background:var(--pill-bg);border-radius:13px;gap:2px}.auth-tabs button{flex:1;border:none;border-radius:11px;padding:10px 12px;font-size:13.5px;font-weight:600;cursor:pointer;background:transparent;color:var(--muted);transition:all .18s}.auth-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0000001a}.auth-row-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.auth-phone-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px}.auth-phone-row select{border:1px solid var(--line-strong);background:var(--field-bg);border-radius:var(--r-field);padding:12px 10px;font-size:13px;color:var(--ink);outline:none;cursor:pointer;transition:border-color .15s,background .15s}.auth-phone-row select:focus{border-color:var(--brand);background:var(--surface)}.auth-pw-label-row{display:flex;align-items:center;justify-content:space-between}.auth-reveal-btn{border:none;background:none;color:var(--muted);font-size:11.5px;font-weight:500;cursor:pointer;padding:0;text-transform:none;letter-spacing:0;transition:color .15s}.auth-reveal-btn:hover{color:var(--ink)}.auth-strength{display:flex;align-items:center;gap:10px;padding-top:6px}.auth-strength-bars{flex:1;display:flex;gap:4px}.auth-strength-bars span{flex:1;height:4px;border-radius:2px;background:#00000014;transition:background .25s}.auth-strength-bars span.on.s1{background:var(--expense)}.auth-strength-bars span.on.s2{background:var(--gold)}.auth-strength-bars span.on.s3{background:var(--income)}.auth-strength-label{font-size:11px;font-weight:600;min-width:44px;text-align:right;text-transform:none;letter-spacing:0}.auth-strength-label.s1{color:var(--expense)}.auth-strength-label.s2{color:var(--gold)}.auth-strength-label.s3{color:var(--income)}.auth-extras-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:-4px}.auth-remember{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);cursor:pointer;text-transform:none;letter-spacing:0;flex-direction:row!important;font-weight:400}.auth-remember input{width:14px;height:14px;margin:0;accent-color:var(--brand)}.auth-link-btn{border:none;background:none;color:var(--muted);font-size:13px;cursor:pointer;padding:0}.auth-link-btn:hover{color:var(--ink)}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--text-disabled);font-size:11.5px}.auth-divider span{flex:1;height:1px;background:var(--line)}.google-btn-wrap{display:flex;justify-content:center;min-height:44px}.ghost-outline{background:var(--surface);color:var(--ink);border:1px solid rgba(0,0,0,.1);box-shadow:none}.ghost-outline:hover{border-color:#00000038;transform:translateY(-1px);box-shadow:none}@media (min-width: 860px){.auth-shell{grid-template-columns:1.02fr 1fr}.auth-side{display:flex}}@media (min-width: 720px){.wrap{max-width:760px}}@media (min-width: 860px){.summary-grid{flex-direction:row}.summary-grid>.hero-card{flex:1.3}.summary-grid>.stat-card{flex:1}}@media (min-width: 1080px){.wrap{max-width:1080px;padding-left:24px;padding-right:24px}header{margin-bottom:24px}#categories{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}}@media (max-width: 380px){.wrap{padding-left:12px;padding-right:12px}.header-controls{gap:8px}}@media (max-width: 640px){.title-row{flex-direction:column;align-items:flex-start;gap:14px}.header-controls{width:100%}.header-controls .avatar-menu-wrap{margin-left:auto}}
