.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px 16px}.login-box{width:100%;max-width:360px}.login-brand{text-align:center;margin-bottom:22px}.login-brand-name{font-family:Montserrat,Inter,sans-serif;font-weight:700;font-size:30px;color:var(--green-900);letter-spacing:1px}.login-brand .motto{margin-top:12px}.login-card{background:var(--white);border:1px solid var(--sage-100);border-radius:var(--radius);padding:22px 20px}.login-card input{width:100%;border:1px solid var(--sage-100);border-radius:12px;background:var(--white);padding:13px 14px;font-size:16px;color:var(--ink);outline:none}.login-card input:focus{border-color:var(--green-500)}.login-field{margin-bottom:14px}.pass-wrap{position:relative;margin-bottom:4px}.pass-wrap input{padding-right:48px}.eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:none;background:none;cursor:pointer;color:var(--sage-300);font-size:18px;line-height:1}.eye.on{color:var(--green-700)}.login-error{color:var(--expense);font-size:13px;margin:12px 2px 0;text-align:center}.btn-login{width:100%;margin-top:16px;padding:15px;border:none;border-radius:14px;background:var(--green-500);color:var(--white);font-size:16px;font-weight:600;cursor:pointer}.btn-login:disabled{background:var(--sage-300);cursor:default}.overlay{position:fixed;inset:0;background:#22302a73;display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}.modal{background:var(--white);border-radius:var(--radius);padding:20px;width:100%;max-width:400px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto}.modal h2{font-family:Montserrat,Inter,sans-serif;font-weight:600;font-size:17px;color:var(--green-900);margin-bottom:16px}.modal .field-label{margin:14px 2px 6px}.modal input{width:100%;border:1px solid var(--sage-100);border-radius:10px;background:var(--white);padding:11px 12px;font-size:14px;outline:none}.modal input:focus{border-color:var(--green-500)}.modal select{width:100%;border:1px solid var(--sage-100);border-radius:10px;background:var(--white);padding:11px 12px;font:inherit;font-size:14px;outline:none}.modal select:focus{border-color:var(--green-500)}.cur-btn.selected.dir-owe{border-color:var(--expense);color:var(--expense)}.cur-btn.selected.dir-owed{border-color:var(--income);color:var(--income)}.modal input.error{border-color:var(--expense)}.balance-row{display:flex;gap:7px}.balance-row input{flex:1}.sign-btn{width:46px;border:1px solid var(--sage-100);border-radius:10px;background:var(--white);font-size:18px;font-weight:600;color:var(--ink-soft);cursor:pointer}.sign-btn.selected{border:2px solid var(--expense);color:var(--expense)}.cur-btns{display:flex;gap:7px}.cur-btn{flex:1;padding:11px 4px;border:1px solid var(--sage-100);border-radius:10px;background:var(--white);font-size:14px;cursor:pointer}.cur-btn.selected{border:2px solid var(--green-500);padding:10px 3px;font-weight:600;color:var(--green-900)}.checkbox-row{display:flex;align-items:center;gap:8px;margin:14px 2px 0;font-size:14px;color:var(--ink);cursor:pointer}.modal .checkbox-row input{width:16px;height:16px;padding:0;accent-color:var(--green-500);cursor:pointer}.modal .note{font-size:12px;color:var(--ink-soft);margin-top:5px}.modal-error{color:var(--expense);font-size:13px;margin-top:12px;text-align:center}.modal-actions{display:flex;gap:8px;margin-top:20px}.modal-actions .btn{flex:1;padding:12px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer}.btn-cancel{background:var(--white);border:1px solid var(--sage-100);color:var(--ink-soft)}.btn-save{background:var(--green-500);border:none;color:var(--white)}.btn-delete{width:100%;margin-top:14px;padding:12px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;background:var(--white);border:1.5px solid var(--expense);color:var(--expense)}.btn-delete:disabled{border-color:var(--sage-100);color:var(--sage-300);cursor:default}.btn-save:disabled{background:var(--sage-300);cursor:default}.cl .today .owe-sum{color:var(--expense);font-weight:600}.cl .today .owed-sum{color:var(--income);font-weight:600}.cl .today .sum-part{display:block}@media(min-width:600px){.cl .today .sum-part{display:inline}.cl .today .sum-part+.sum-part:before{content:" · "}}.cl-row{padding:8px 0}.cl-row+.cl-row{border-top:1px solid var(--page-bg)}.cl-main{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;background:none;border:none;padding:0;cursor:pointer;text-align:left;font:inherit}.cl-name{font-size:15px;color:var(--ink)}.cl-dir{font-size:11px;font-weight:600;margin-left:8px;padding:2px 7px;border-radius:8px;white-space:nowrap}.cl-dir.owe{color:var(--expense);background:#f6e7e4}.cl-dir.owed{color:var(--income);background:#e4efe4}.cl-sum{font-size:15px;font-weight:600;white-space:nowrap}.cl-sum.owe{color:var(--expense)}.cl-sum.owed{color:var(--income)}.cl-sum.done{color:var(--sage-300);font-weight:500}.cl-sub{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:2px;font-size:12px;color:var(--ink-soft)}.cl-action{background:none;border:none;padding:0;font-size:12px;font-weight:600;color:var(--green-500);cursor:pointer;text-decoration:underline;white-space:nowrap}.cl-empty{padding:12px 0 4px;font-size:13px;color:var(--ink-soft);text-align:center}.cl-closed-toggle{display:block;margin:8px 0 0;background:none;border:none;padding:0;font-size:12px;color:var(--ink-soft);cursor:pointer;text-decoration:underline}.cl-add-row{display:flex;gap:8px;margin-top:12px}.cl-add{flex:1;padding:10px;border-radius:12px;font-size:13px;font-weight:600;cursor:pointer;background:var(--white);border:1.5px solid var(--green-500);color:var(--green-500)}.cl-add.primary{background:var(--green-500);color:var(--white)}.up .up-date{color:var(--ink-soft)}.up .follow-note{color:var(--expense);text-transform:none}.up .paused-mark{color:var(--expense);font-weight:600}.up .day-header.section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left}.up .sec-chevron{color:var(--sage-300);transition:transform .15s;transform:rotate(-90deg)}.up .sec-chevron.open{transform:rotate(0)}.up .up-date.overdue{color:var(--expense);font-weight:600}.up .day-header.overdue{color:var(--expense)}.up .today .overdue-sum{color:var(--expense);font-weight:600}.up .today .sum-part{display:block}@media(min-width:600px){.up .today .sum-part{display:inline}.up .today .sum-part+.sum-part:before{content:" · "}}.dash{max-width:430px;margin:0 auto;padding:16px 16px 96px;overflow-x:hidden}.dash-header{margin-bottom:14px}.totals{background:linear-gradient(150deg,var(--green-700) 0%,var(--green-900) 100%);border-radius:var(--radius);padding:12px 18px;margin-bottom:14px;color:var(--white)}.totals .label{font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:var(--sage-300);margin-bottom:4px}.totals .row{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0}.totals .row+.row{border-top:1px solid rgba(255,255,255,.12)}.totals .cur{font-size:13px;color:var(--sage-100)}.totals .sum{font-size:18px;font-weight:700}.totals .row.debts .sum{color:#f0a08e;font-size:15px}.accounts{display:flex;flex-direction:column;gap:7px}.accounts-block{margin-top:0}.accounts-block .ops-list{padding-top:2px}.acc{display:flex;justify-content:space-between;align-items:center;border-radius:14px;padding:12px 16px}.acc.RUB{background:var(--acc-rub)}.acc.TRY{background:var(--acc-try)}.acc.USD{background:var(--acc-usd)}.acc .name{font-size:14px;color:#4a5548}.acc .balance{font-size:17px;font-weight:700;color:var(--green-900)}.acc .balance.negative{color:var(--expense)}.acc .balance-col{display:flex;flex-direction:column;align-items:flex-end}.acc .debt{font-size:11px;color:var(--expense);margin-top:1px}.ops{margin-top:14px;background:var(--white);border:1px solid var(--sage-100);border-radius:var(--radius);overflow:hidden}.ops-summary{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:none;border:none;cursor:pointer;text-align:left}.ops-summary>span{min-width:0;overflow-wrap:anywhere}.ops-summary .title{font-family:Montserrat,Inter,sans-serif;font-size:15px;font-weight:600;color:var(--green-900)}.ops-summary .today{font-size:13px;color:var(--ink-soft);margin-top:3px}.ops-summary .today b{color:var(--expense);font-weight:600}.ops-summary .today .sum-count{display:block}@media(min-width:600px){.ops-summary .today .sum-count{display:inline;margin-left:5px}}.ops-summary .chevron{color:var(--sage-300);transition:transform .2s;flex-shrink:0;margin-left:10px}.ops.open .chevron{transform:rotate(180deg)}.ops-list{display:none;padding:0 16px 12px}.ops.open .ops-list{display:block}.day-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--sage-300);padding:10px 0 6px;border-top:1px solid var(--page-bg)}.up .day-header.section-toggle{color:var(--sage-300)}.op{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.op .cat{font-size:15px}.op .cat .work-badge{margin-left:5px;font-size:12px}.op .acc-name{font-size:12px;color:var(--ink-soft);margin-top:1px}.op .amount{font-size:13px;font-weight:600;color:var(--expense);white-space:nowrap}.op .amount.income{color:var(--income)}.op .amount.transfer{color:var(--transfer)}.ops-summary .today b.income-sum{color:var(--income)}.fab-wrap{position:fixed;right:20px;bottom:24px;z-index:20}.fab{width:60px;height:60px;border-radius:50%;border:none;background:var(--green-500);color:var(--white);font-size:30px;line-height:1;cursor:pointer;box-shadow:0 6px 16px #3a5a4059;transition:transform .2s}.fab.open{transform:rotate(45deg)}.fab-overlay{position:fixed;inset:0;z-index:-1}.fab-menu{position:absolute;bottom:72px;right:0;display:flex;flex-direction:column;gap:8px}.fab-menu button{white-space:nowrap;padding:12px 22px;border-radius:14px;border:none;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #00000026}.fab-menu button:nth-child(1){background:var(--white);color:var(--expense);border:1.5px solid var(--expense)}.fab-menu button:nth-child(2){background:var(--white);color:var(--income);border:1.5px solid var(--income)}.fab-menu button:nth-child(3){background:var(--white);color:var(--transfer);border:1.5px solid var(--transfer)}.dash-empty{background:var(--white);border:1px solid var(--sage-100);border-radius:var(--radius);padding:28px 20px;text-align:center;color:var(--ink-soft);font-size:14px;line-height:1.5}.btn-dashed{display:block;width:100%;margin-top:14px;padding:14px;border:1.5px dashed var(--sage-300);border-radius:var(--radius);background:none;color:var(--green-700);font-size:14px;font-weight:500;cursor:pointer}.analytics-submenu{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-left:12px}.analytics-submenu button{padding:12px 14px;border:1px solid var(--sage-100);border-radius:12px;background:var(--white);color:var(--green-900);font-size:14px;font-weight:500;text-align:left;cursor:pointer}.dash-error{background:var(--white);border:1px solid var(--sage-100);border-radius:var(--radius);padding:24px 20px;text-align:center;color:var(--ink);font-size:14px}.dash-error button{margin-top:14px;padding:10px 28px;border:none;border-radius:12px;background:var(--green-500);color:var(--white);font-weight:600;cursor:pointer}.skeleton{border-radius:14px;background:linear-gradient(90deg,var(--sage-100) 25%,#e9e7df 50%,var(--sage-100) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-200% 0}}.logout-link{display:block;margin:22px auto 0;border:none;background:none;color:var(--ink-soft);font-size:13px;cursor:pointer;text-decoration:underline}.expense{max-width:430px;margin:0 auto;padding:0 16px 140px}.top-sticky{position:sticky;top:0;z-index:10;background:var(--page-bg);padding-top:12px}.top-sticky .motto{margin-bottom:12px}.expense header{display:flex;align-items:center;gap:10px;margin-bottom:18px}.expense .back{width:36px;height:36px;border:1px solid var(--sage-100);border-radius:50%;background:var(--white);color:var(--green-900);font-size:18px;cursor:pointer;line-height:1}.expense h1{font-family:Montserrat,Inter,sans-serif;font-weight:600;font-size:17px;color:var(--green-900)}.expense h1.expense-title{color:var(--expense)}.amount-sticky{padding-bottom:10px}.amount-wrap{background:var(--white);border:1px solid var(--sage-100);border-radius:var(--radius);padding:8px 14px;display:flex;align-items:baseline;justify-content:center;gap:6px}.amount-wrap.error{border-color:var(--expense)}.amount-input{font-size:28px;font-weight:700;color:var(--green-900);border:none;outline:none;background:none;width:60%;text-align:right}.amount-input::placeholder{color:var(--sage-100)}.amount-currency{font-size:20px;font-weight:600;color:var(--sage-300)}.divider{border:none;border-top:1.5px solid var(--expense);margin:16px 0 14px}.divider.income{border-color:var(--income)}.pick-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}.pick{border:1px solid var(--sage-100);border-radius:12px;padding:10px 4px;font-size:13px;color:var(--ink);cursor:pointer;text-align:center}.pick.RUB{background:var(--acc-rub)}.pick.TRY{background:var(--acc-try)}.pick.USD{background:var(--acc-usd)}.pick.cat{background:var(--white)}.pick .ico{display:block;font-size:17px;margin-bottom:3px}.pick.selected{border:2px solid var(--green-500);padding:9px 3px;font-weight:600;color:var(--green-900)}.expense-mode .pick.cat.selected{border-color:var(--expense)}.credit-label{font-size:12px;color:var(--ink-soft);margin:0 2px 7px}.pick.credit{background:var(--white)}.pick .credit-debt{display:block;font-size:11px;color:var(--expense);margin-top:2px}.row2{display:grid;grid-template-columns:1fr 1.4fr;gap:7px}.row2 input{width:100%;min-width:0;border:1px solid var(--sage-100);border-radius:12px;background:var(--white);padding:12px;font-size:14px;color:var(--ink);outline:none}.row2 input:focus{border-color:var(--sage-300)}.work-check{display:flex;align-items:center;gap:8px;margin-top:14px;padding:11px 14px;background:var(--white);border:1px solid var(--sage-100);border-radius:12px;font-size:14px;color:var(--ink);cursor:pointer}.work-check input{width:20px;height:20px;accent-color:var(--green-500);cursor:pointer;flex-shrink:0}.work-check .work-ico{font-size:16px}.work-check .work-hint{color:var(--ink-soft);font-size:12px}.expense-error{color:var(--expense);font-size:13px;text-align:center;margin-top:12px}.actions{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;padding:12px 16px 20px;background:linear-gradient(transparent,var(--page-bg) 30%);display:flex;flex-direction:column;gap:8px}.actions .btn{width:100%;padding:15px;border-radius:14px;font-size:15px;font-weight:600;cursor:pointer}.btn-secondary{background:var(--white);border:1.5px solid var(--green-500);color:var(--green-700)}.btn-primary{background:var(--green-500);border:none;color:var(--white)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:default}.toast{position:fixed;top:18px;left:50%;transform:translate(-50%) translateY(-80px);background:var(--green-900);color:var(--white);font-size:14px;font-weight:500;padding:11px 22px;border-radius:30px;transition:transform .25s;z-index:30}.toast.show{transform:translate(-50%) translateY(0)}.transfer-page{max-width:430px;margin:0 auto;padding:0 16px 140px}.transfer-page .top-sticky{position:sticky;top:0;z-index:10;background:var(--page-bg);padding-top:12px}.transfer-page .top-sticky .motto{margin-bottom:12px}.transfer-page header{display:flex;align-items:center;gap:10px;margin-bottom:18px}.transfer-page .back{width:36px;height:36px;border:1px solid var(--sage-100);border-radius:50%;background:var(--white);color:var(--green-900);font-size:18px;cursor:pointer;line-height:1}.transfer-page h1{font-family:Montserrat,Inter,sans-serif;font-weight:600;font-size:17px;color:var(--transfer)}.transfer-section-label{font-family:Montserrat,Inter,sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--transfer);margin:0 2px 8px}.transfer-page .pick.selected{border:2px solid var(--green-500);padding:9px 3px;font-weight:600;color:var(--green-900)}.transfer-page .pick.disabled{opacity:.35;cursor:not-allowed}.transfer-page .amount-wrap{background:var(--white);border:1px solid var(--sage-100);border-radius:var(--radius);padding:8px 14px;display:flex;align-items:baseline;justify-content:center;gap:6px;margin-top:10px}.transfer-page .amount-wrap.error{border-color:var(--expense)}.transfer-page .amount-input{font-size:28px;font-weight:700;color:var(--green-900);border:none;outline:none;background:none;width:60%;text-align:right}.transfer-page .amount-input::placeholder{color:var(--sage-100);font-size:18px}.transfer-page .amount-currency{font-size:20px;font-weight:600;color:var(--sage-300)}.transfer-page .divider.transfer-divider{border:none;border-top:1.5px solid var(--transfer);margin:16px 0 14px}.transfer-page .fee-row{display:flex;align-items:center;gap:6px;border:1px solid var(--sage-100);border-radius:12px;background:var(--white);padding:0 12px;margin-bottom:7px}.transfer-page .fee-row.error{border-color:var(--expense)}.transfer-page .fee-row input{flex:1;min-width:0;border:none;outline:none;background:none;padding:12px 0;font-size:14px;color:var(--ink)}.transfer-page .fee-currency{font-size:14px;font-weight:600;color:var(--sage-300)}.transfer-page .row2{display:grid;grid-template-columns:1fr 1.4fr;gap:7px}.transfer-page .row2 input{width:100%;min-width:0;border:1px solid var(--sage-100);border-radius:12px;background:var(--white);padding:12px;font-size:14px;color:var(--ink);outline:none}.transfer-page .row2 input:focus{border-color:var(--sage-300)}.transfer-page .actions{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;padding:12px 16px 20px;background:linear-gradient(transparent,var(--page-bg) 30%);display:flex;flex-direction:column;gap:8px}.transfer-page .actions .btn{width:100%;padding:15px;border-radius:14px;font-size:15px;font-weight:600;cursor:pointer}.transfer-page .expense-error{color:var(--expense);font-size:13px;text-align:center;margin-top:12px}.transfer-page .pick-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}.transfer-page .pick{border:1px solid var(--sage-100);border-radius:12px;padding:10px 4px;font-size:13px;color:var(--ink);cursor:pointer;text-align:center}.transfer-page .pick.RUB{background:var(--acc-rub)}.transfer-page .pick.TRY{background:var(--acc-try)}.transfer-page .pick.USD{background:var(--acc-usd)}.transfer-page .toast{position:fixed;top:18px;left:50%;transform:translate(-50%) translateY(-80px);background:var(--transfer);color:var(--white);font-size:14px;font-weight:500;padding:11px 22px;border-radius:30px;transition:transform .25s;z-index:30}.transfer-page .toast.show{transform:translate(-50%) translateY(0)}.transfer-page .skeleton{border-radius:14px;background:linear-gradient(90deg,var(--sage-100) 25%,#e9e7df 50%,var(--sage-100) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}.admin{max-width:1100px;margin:0 auto;padding:14px 20px 12px;height:100vh;display:flex;flex-direction:column;overflow:hidden}.admin .motto{margin-bottom:14px}.admin header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.admin .back{width:36px;height:36px;border:1px solid var(--sage-100);border-radius:50%;background:var(--white);color:var(--green-900);font-size:18px;cursor:pointer;line-height:1}.admin h1{font-family:Montserrat,Inter,sans-serif;font-weight:600;font-size:18px;color:var(--green-900);flex:1}.add-account-btn{padding:9px 16px;border:1.5px dashed var(--sage-300);border-radius:12px;background:none;color:var(--green-700);font-size:13px;font-weight:500;cursor:pointer}.balances{padding:4px 0 12px}.totals-row{display:flex;gap:8px;margin-bottom:8px;justify-content:flex-end}.accounts-row{display:flex;gap:8px;overflow-x:auto}.accounts-row .acc-chip{flex:0 0 auto}.total-chip{background:linear-gradient(150deg,var(--green-700) 0%,var(--green-900) 100%);color:var(--white);border-radius:12px;padding:8px 14px;min-width:128px}.total-chip .cur{font-size:11px;color:var(--sage-100)}.total-chip .sum{font-size:16px;font-weight:700;white-space:nowrap}.acc-chip{border-radius:12px;padding:8px 12px;min-width:108px;cursor:pointer;border:none;text-align:left}.acc-chip:hover{outline:1.5px solid var(--sage-300)}.acc-chip.RUB{background:var(--acc-rub)}.acc-chip.TRY{background:var(--acc-try)}.acc-chip.USD{background:var(--acc-usd)}.acc-chip .name{font-size:11px;color:#4a5548;white-space:nowrap}.acc-chip .sum{font-size:14px;font-weight:700;color:var(--green-900);white-space:nowrap}.acc-chip .sum.negative{color:var(--expense)}.table-card{background:var(--white);border:1px solid var(--sage-100);border-radius:var(--radius);overflow:auto;flex:1;min-height:0}.table-card table{width:100%;border-collapse:collapse;min-width:860px}.table-card thead th{position:sticky;top:0;background:var(--white);z-index:3}.table-card th{font-family:Montserrat,Inter,sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);text-align:left;padding:12px 14px 8px;border-bottom:1px solid var(--sage-100)}.table-card th.num{text-align:right}.table-card td{padding:10px 14px;font-size:14px;border-bottom:1px solid #f0f1ec}.table-card td.num{text-align:right;font-weight:600;color:var(--expense);white-space:nowrap}.table-card td.num.income{color:var(--income)}.table-card td.type-cell{font-size:13px;font-weight:500;color:var(--expense)}.table-card td.type-cell.income{color:var(--income)}.table-card td.type-cell.transfer,.table-card td.num.transfer{color:var(--transfer)}.table-card td.date{white-space:nowrap;color:var(--ink-soft)}.table-card td.comment{color:var(--ink-soft)}.table-card tr:last-child td{border-bottom:none}tr.flash td{animation:flash 1.2s}@keyframes flash{0%{background:#e4ede0}to{background:transparent}}tr.quick td{position:sticky;z-index:2;background:#edf3ea;padding:8px 10px;border-bottom:2px solid var(--green-500)}tr.quick input,tr.quick select{width:100%;border:1px solid var(--sage-100);border-radius:8px;background:var(--white);padding:8px 10px;font-size:14px;color:var(--ink);outline:none;height:38px;box-sizing:border-box}tr.quick input:focus,tr.quick select:focus{border-color:var(--green-500)}tr.quick input.error{border-color:var(--expense)}tr.quick .num-input{text-align:right}.hint-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.hint{font-size:12px;color:var(--ink-soft);margin:8px 4px 0}.export-links{display:flex;gap:14px;margin:8px 4px 0;flex-shrink:0}.export-links a{font-size:12px;color:var(--green-700);text-decoration:underline;white-space:nowrap}.hint b{color:var(--green-700)}.load-more{display:block;margin:10px auto;padding:8px 24px;border:1.5px dashed var(--sage-300);border-radius:12px;background:none;color:var(--green-700);font-size:13px;cursor:pointer}tr.editing td{background:#edf3ea;padding:6px 10px}tr.editing input,tr.editing select{width:100%;border:1px solid var(--sage-100);border-radius:8px;background:var(--white);padding:7px 10px;font-size:14px;color:var(--ink);outline:none;height:38px;box-sizing:border-box}tr.editing input:focus,tr.editing select:focus{border-color:var(--green-500)}tr.editing .num-input{text-align:right}.quick-actions-cell,.edit-actions-cell{display:flex;align-items:center;gap:6px}.num-stack{display:flex;flex-direction:column;gap:4px}.quick-actions-cell input,.edit-actions-cell input{flex:1;min-width:0}.work-toggle{display:flex;align-items:center;flex-shrink:0;cursor:pointer;line-height:1}.work-toggle input{appearance:none;-webkit-appearance:none;flex:0 0 auto;min-width:0;width:34px;height:34px;border:1px solid var(--sage-100);border-radius:8px;background:var(--white);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:16px}.work-toggle input:before{content:"💻"}.work-toggle input:checked{background:var(--green-500);border-color:var(--green-500)}.work-toggle input:checked:before{content:"✓";color:var(--white);font-weight:700}.work-badge{margin-left:6px;font-size:13px;vertical-align:baseline}.save-btn{width:38px;height:38px;flex-shrink:0;border:1px solid var(--sage-100);border-radius:8px;background:var(--white);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.save-btn{color:var(--green-700)}.save-btn:hover{background:var(--green-500);color:var(--white)}.del-btn{display:none;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;border-radius:6px;background:none;color:var(--expense);cursor:pointer;font-size:13px;align-items:center;justify-content:center}.del-btn:hover{background:#fce8e5}.table-card td.comment{position:relative;padding-right:36px}.table-card tbody tr:not(.quick):not(.editing):hover .del-btn{display:flex}.table-card tbody tr:not(.quick):not(.editing){cursor:pointer}.table-card tbody tr:not(.quick):not(.editing):hover td{background:#f8f9f6}.admin-error{color:var(--expense);font-size:13px;margin-top:8px;text-align:center}.analytics{max-width:430px;margin:0 auto;padding:16px 16px 40px}.analytics .motto{margin-bottom:14px}.analytics header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.analytics .back{width:36px;height:36px;border:1px solid var(--sage-100);border-radius:50%;background:var(--white);color:var(--green-900);font-size:18px;cursor:pointer;line-height:1}.analytics h1{font-family:Montserrat,Inter,sans-serif;font-weight:600;font-size:18px;color:var(--green-900);flex:1}.month-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:20px}.month-nav button{width:32px;height:32px;border:1px solid var(--sage-100);border-radius:9px;background:var(--white);color:var(--green-900);font-size:16px;cursor:pointer;line-height:1}.month-nav button:disabled{color:var(--sage-300);cursor:default}.month-label{min-width:140px;text-align:center;font-weight:600;font-size:15px;color:var(--ink)}.chg-hint{text-align:center;font-size:11px;color:var(--ink-soft);margin:-8px 0 18px}.chg{margin-left:8px;font-size:12px;font-weight:600;white-space:nowrap}.chg.good{color:var(--income)}.chg.bad{color:var(--expense)}.chg.new,.chg.flat{color:var(--ink-soft);font-weight:500}.no-prev{font-size:12px;color:var(--ink-soft);margin:-8px 2px 16px}.cur-block{margin-bottom:8px}.cur-block+.cur-block{border-top:1px solid var(--transfer);padding-top:20px;margin-top:20px}.cur-name{display:flex;align-items:center;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--green-900);margin-bottom:10px}.cur-flag{margin-right:7px;border-radius:2px;box-shadow:0 0 0 .5px #0000002e}.flow{background:var(--white);border:1px solid var(--sage-100);border-radius:14px;padding:11px 14px;margin-bottom:18px}.flow .row{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;padding:3px 0}.flow .val{display:inline-flex;align-items:baseline}.flow .in{color:var(--income);font-weight:600}.flow .out{color:var(--expense);font-weight:600}.flow .total{border-top:1px solid var(--sage-100);margin-top:7px;padding-top:8px;font-size:15px;font-weight:700}.flow .total .pos{color:var(--income)}.flow .total .neg{color:var(--expense)}.sec{font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--ink-soft);margin:0 0 12px;background:var(--white);border:1px solid currentColor;border-radius:10px;padding:8px 12px}.sec.sec-exp{color:var(--expense)}.sec.sec-inc{color:var(--income)}.cur-block .sec+.sec,.cat+.sec{margin-top:18px}.cat{margin-bottom:14px}.cat-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-bottom:6px;font-size:14px}.cat-ico{font-size:15px}.cat-nm{color:var(--ink)}.cat-sum{margin-left:auto;font-weight:600;color:var(--ink)}.cat-pc{min-width:38px;text-align:right;color:var(--ink-soft)}.cat-track{height:8px;background:#e9e9e7;border-radius:5px;overflow:hidden}.cat-fill{height:100%;border-radius:5px;min-width:4px}.cat-fill.exp{background:#b3402e73}.cat-fill.inc{background:#2e7d326b}.sec.sec-brk{color:var(--transfer);margin-top:20px}.brk-split{margin-bottom:14px}.brk-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:#e9e9e7;margin-bottom:10px}.brk-seg{height:100%}.brk-seg.mand{background:#4a7c918c}.brk-seg.vari{background:#4a7c9140}.brk-legend{display:flex;flex-direction:column;gap:6px}.brk-item{display:flex;align-items:baseline;gap:8px;font-size:14px}.brk-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0;align-self:center}.brk-dot.mand{background:#4a7c918c}.brk-dot.vari{background:#4a7c9140}.brk-lbl{color:var(--ink)}.brk-sum{margin-left:auto;font-weight:600;color:var(--ink)}.brk-pc{min-width:38px;text-align:right;color:var(--ink-soft)}.brk-row{display:flex;align-items:baseline;gap:8px;font-size:14px;padding:9px 0;border-top:1px solid var(--sage-100)}.brk-row .brk-lbl{color:var(--ink-soft)}.brk-debt .brk-sum{color:var(--transfer)}.brk-big{margin-top:14px}.brk-big-hd{font-size:12px;font-weight:600;color:var(--ink-soft);margin-bottom:8px}.brk-big-row{display:flex;align-items:baseline;gap:8px;padding:6px 0;font-size:14px}.brk-big-ico{font-size:15px;align-self:center}.brk-big-nm{display:flex;flex-direction:column;color:var(--ink);min-width:0}.brk-big-meta{font-size:11px;color:var(--ink-soft);margin-top:1px}.brk-big-sum{margin-left:auto;font-weight:600;color:var(--expense);white-space:nowrap}.sec.sec-margin{color:var(--income);margin-top:20px}.margin{background:var(--white);border:1px solid var(--sage-100);border-radius:14px;padding:11px 14px}.margin .mg-row{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;padding:3px 0;color:var(--ink)}.margin .val{font-weight:600;color:var(--ink)}.margin .val.in{color:var(--income)}.margin .val.out{color:var(--expense)}.margin .total{border-top:1px solid var(--sage-100);margin-top:7px;padding-top:8px;font-size:15px;font-weight:700}.margin .total .pos{color:var(--income)}.margin .total .neg{color:var(--expense)}.an-skeleton{height:140px;border-radius:14px;background:linear-gradient(90deg,var(--sage-100) 25%,#e9e7df 50%,var(--sage-100) 75%);background-size:200% 100%;animation:an-shimmer 1.3s infinite}@keyframes an-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.an-empty,.an-error{background:var(--white);border:1px solid var(--sage-100);border-radius:14px;padding:28px 20px;text-align:center;color:var(--ink-soft);font-size:14px}.an-error button{margin-top:10px;padding:8px 18px;border:1px solid var(--sage-100);border-radius:10px;background:var(--white);color:var(--green-900);font-size:14px;cursor:pointer}.networth{max-width:430px;margin:0 auto;padding:16px 16px 40px}.networth .motto{margin-bottom:14px}.networth header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.networth .back{width:36px;height:36px;border:1px solid var(--sage-100);border-radius:50%;background:var(--white);color:var(--green-900);font-size:18px;cursor:pointer;line-height:1}.networth h1{font-family:Montserrat,Inter,sans-serif;font-weight:600;font-size:18px;color:var(--green-900);flex:1}.nw-hint{font-size:12px;color:var(--ink-soft);line-height:1.45;margin:0 2px 18px}.nw-block+.nw-block{margin-top:20px}.nw-block .cur-name{display:flex;align-items:center;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--green-900);margin-bottom:10px}.nw-block .cur-flag{margin-right:7px;border-radius:2px;box-shadow:0 0 0 .5px #0000002e}.nw-card{background:var(--white);border:1px solid var(--sage-100);border-radius:14px;padding:14px 16px}.nw-label{font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--ink-soft);margin-bottom:8px}.nw-value{font-size:26px;font-weight:700}.nw-value.neg{color:var(--expense)}.nw-value.pos{color:var(--income)}.nw-sub{font-size:13px;margin-top:6px;line-height:1.4}.nw-sub .good{color:var(--income);font-weight:600}.nw-sub .bad{color:var(--expense);font-weight:600}.nw-sub .muted{color:var(--ink-soft)}.nw-sub b{color:var(--ink)}.nw-chart{position:relative;display:flex;align-items:flex-start;gap:8px;margin-top:18px}.nw-zero{position:absolute;left:0;right:0;border-top:1px dashed var(--sage-300)}.nw-col{position:relative;flex:1;height:100%}.nw-bar{position:absolute;left:18%;right:18%;border-radius:3px}.nw-bar.neg{background:#b3402e66}.nw-bar.pos{background:#2e7d3266}.nw-bar.neg.cur{background:var(--expense)}.nw-bar.pos.cur{background:var(--income)}.nw-labels{display:flex;gap:8px;margin-top:5px}.nw-labels span{flex:1;text-align:center;font-size:11px;color:var(--ink-soft)}.nw-labels span.cur{color:var(--ink);font-weight:600}.nw-skeleton{height:190px;border-radius:14px;background:linear-gradient(90deg,var(--sage-100) 25%,#e9e7df 50%,var(--sage-100) 75%);background-size:200% 100%;animation:nw-shimmer 1.3s infinite}@keyframes nw-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.nw-empty,.nw-error{background:var(--white);border:1px solid var(--sage-100);border-radius:14px;padding:28px 20px;text-align:center;color:var(--ink-soft);font-size:14px}.nw-error button{margin-top:10px;padding:8px 18px;border:1px solid var(--sage-100);border-radius:10px;background:var(--white);color:var(--green-900);font-size:14px;cursor:pointer}@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(/fonts/inter-v20-cyrillic_latin-regular.woff2) format("woff2")}@font-face{font-family:Inter;font-weight:500;font-display:swap;src:url(/fonts/inter-v20-cyrillic_latin-500.woff2) format("woff2")}@font-face{font-family:Inter;font-weight:600;font-display:swap;src:url(/fonts/inter-v20-cyrillic_latin-600.woff2) format("woff2")}@font-face{font-family:Inter;font-weight:700;font-display:swap;src:url(/fonts/inter-v20-cyrillic_latin-700.woff2) format("woff2")}@font-face{font-family:Montserrat;font-weight:600;font-display:swap;src:url(/fonts/montserrat-v31-cyrillic_latin-600.woff2) format("woff2")}@font-face{font-family:"PT Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/ptserif-v19-cyrillic-italic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"PT Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/ptserif-v19-latin-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-weight:700;font-display:swap;src:url(/fonts/montserrat-v31-cyrillic_latin-700.woff2) format("woff2")}*{margin:0;padding:0;box-sizing:border-box}:root{--sage-100: #dad7cd;--sage-300: #a3b18a;--green-500: #588157;--green-700: #3a5a40;--green-900: #344e41;--white: #ffffff;--page-bg: #f4f5f1;--ink: #22302a;--ink-soft: #7c8577;--expense: #b3402e;--income: #2e7d32;--transfer: #4a7c91;--radius: 18px}body{font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif;font-variant-numeric:tabular-nums;background:var(--page-bg);color:var(--ink);min-height:100vh}button,input{font:inherit}.motto{font-family:"PT Serif",Georgia,serif;font-style:italic;font-weight:400;font-size:17px;color:var(--expense);background:var(--white);border:1px solid var(--sage-100);border-radius:14px;min-height:56px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.35;padding:8px 16px;max-width:400px;margin:0 auto}.field-label{font-family:Montserrat,Inter,sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);margin:0 2px 6px}:root{--acc-rub: #e4ede0;--acc-try: #e9e5d2;--acc-usd: #e1e0db}
