:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;--bg:#f6f8f7;--surface:#fff;--text:#1e312c;--muted:#6c7d76;--border:#e4eae6;--accent:#184b40;--accent-soft:#edf5ee;--positive:#257254;--negative:#a84e3d;--shadow:0 8px 32px #1d40320a;--card-top:#d6edcf;--card-bottom:#e7f1dc;--card-text:#1c4134;--nav-bg:#ffffffed}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,input,select,textarea,a{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #59aa83}a{color:inherit;text-decoration:none}button{color:inherit}button svg,svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin:0}h1{font-size:27px;line-height:1.22;letter-spacing:-.8px;font-weight:650}h2{font-size:16px;font-weight:650;letter-spacing:-.2px}h3{font-size:17px;font-weight:600}[hidden]{display:none!important}.app-shell{max-width:540px;min-height:100dvh;margin:auto;padding:calc(26px + var(--tg-content-safe-area-inset-top,0px)) max(22px,var(--tg-content-safe-area-inset-right,0px)) 110px max(22px,var(--tg-content-safe-area-inset-left,0px))}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;background:var(--accent);color:#d5f0ce}.brand-mark svg{width:24px;height:24px}.brand strong{display:block;font-size:22px;letter-spacing:-.8px;line-height:1.05;font-weight:750}.brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:.2px;margin-top:4px}.brand-dot{color:#549d73}.currency-pill{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:9px 10px}.currency-pill svg{width:15px;height:15px}.demo-banner{display:flex;align-items:center;gap:10px;background:var(--accent-soft);border:1px dashed var(--border);border-radius:12px;padding:10px 12px;margin-bottom:25px;color:var(--accent)}.demo-banner strong{display:block;font-size:12px;font-weight:600}.demo-banner small{font-size:11px;color:var(--muted)}.demo-banner svg{width:19px;height:19px}.eyebrow{font-size:10px;letter-spacing:1.35px;font-weight:700;color:var(--muted);margin-bottom:8px}.view-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:10px}.heading-icon{color:var(--muted)}.heading-icon svg{width:28px;height:28px}.balance-card{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--card-top),var(--card-bottom));border:1px solid #c9dec1;border-radius:24px;color:var(--card-text);padding:23px 22px 20px}.balance-card:before{content:"";position:absolute;right:-30px;top:-75px;width:240px;height:240px;border:1px solid #3e71531a;border-radius:50%;pointer-events:none}.balance-card:after{content:"";position:absolute;right:-62px;top:-45px;width:240px;height:240px;border:1px solid #3e71531a;border-radius:50%;pointer-events:none}.balance-top,.balance-value,.balance-note,.balance-actions{position:relative;z-index:1}.balance-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500}.balance-currency{font-size:10px;letter-spacing:1px;border:1px solid #53835c40;padding:4px 8px;border-radius:7px}.balance-value{font-size:clamp(27px,8.8vw,42px);line-height:1.3;font-weight:700;letter-spacing:-1.5px;margin:16px 0 8px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.balance-value .money-symbol{font-size:.7em;font-weight:500;letter-spacing:0}.balance-note{font-size:10px;display:flex;align-items:center;gap:5px;color:#456347}.balance-note svg{width:13px;height:13px}.balance-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.button{display:flex;justify-content:center;align-items:center;gap:8px;border:0;border-radius:12px;min-height:46px;padding:11px 17px;font-weight:600;font-size:14px}.button svg{width:18px;height:18px}.primary,.expense-button{background:var(--accent);color:#fff}.income-button{background:#ffffffae;border:1px solid #bfd4b6;color:#274c39}.subtle{background:var(--accent-soft);border:1px solid var(--border);color:var(--accent)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:27px 0 13px}.muted{font-size:11px;color:var(--muted)}.month-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card{display:flex;align-items:center;gap:10px;padding:15px 13px;background:var(--surface);border:1px solid var(--border);border-radius:16px;min-width:0}.stat-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:11px;flex-shrink:0}.positive{color:var(--positive);background:#e8f3ea}.negative{color:var(--negative);background:#faf0ea}.stat-icon svg{width:18px;height:18px}.stat-card p{font-size:11px;color:var(--muted);margin-bottom:3px}.stat-card strong{font-size:16px;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat-card div{min-width:0}.category-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;margin-top:17px;padding:17px}.category-card .section-heading{margin:0 0 16px}.category-card h2{font-size:14px}.category-row+.category-row{margin-top:12px}.category-info{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:6px}.category-info span:last-child{color:var(--muted);white-space:nowrap}.bar-track{height:5px;background:var(--accent-soft);border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:#79a989;border-radius:4px}.recent-heading{margin-top:26px}.text-button{background:transparent;border:0;display:flex;align-items:center;justify-content:center;gap:4px;font-weight:600;font-size:12px;color:var(--accent);padding:8px;min-height:36px}.text-button svg{width:15px;height:15px}.operation-list{background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden}.operation-list:empty{display:none}.operation-row{display:flex;align-items:center;gap:12px;padding:14px 16px;width:100%;text-align:left;border:0;background:transparent;min-height:76px}.operation-row:hover{background:var(--accent-soft)}.operation-row+.operation-row{border-top:1px solid var(--border)}.operation-icon{width:40px;height:40px;display:grid;place-items:center;flex-shrink:0;border-radius:13px;background:var(--accent-soft);color:#6b8872}.operation-icon.income{background:#e9f4eb;color:var(--positive)}.operation-body{flex:1;min-width:0}.operation-name{font-size:13px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.operation-comment{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);margin-top:2px}.operation-right{text-align:right;max-width:48%}.operation-amount{display:block;overflow-wrap:anywhere;font-weight:600;font-size:13px;font-variant-numeric:tabular-nums}.operation-amount.income{color:var(--positive)}.operation-date{font-size:10px;color:var(--muted);display:block;margin-top:3px}.empty-card{background:var(--surface);border:1px dashed var(--border);border-radius:18px;text-align:center;padding:27px 15px}.empty-icon{margin:0 auto 12px;display:grid;place-items:center;width:48px;height:48px;background:var(--accent-soft);color:#749280;border-radius:15px}.empty-icon svg{width:24px;height:24px}.empty-card p{font-size:12px;color:var(--muted);margin:8px 0 20px}.empty-card .button{max-width:230px;margin:auto;font-size:12px;min-height:42px}.sample-button{margin:8px auto 0}.overview-footnote{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:10px;letter-spacing:.2px;margin:26px 0 0}.overview-footnote svg{width:12px;height:12px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,540px);background:var(--nav-bg);backdrop-filter:blur(16px);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(3,1fr);padding:10px 18px calc(10px + max(env(safe-area-inset-bottom,0px),var(--tg-content-safe-area-inset-bottom,0px)));z-index:5}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:10px;color:var(--muted);font-weight:500;background:transparent;border:0;border-radius:12px;padding:7px 8px;min-height:50px}.bottom-nav button[aria-current]{background:var(--accent-soft);color:var(--accent);font-weight:650}.bottom-nav svg{width:21px;height:21px}.history-controls{display:flex;gap:12px;margin-bottom:16px}.month-label{font-size:11px;color:var(--muted);flex:1;min-width:0}.month-label input,.month-label select{margin-top:6px;height:44px;background:var(--surface);font-size:13px;color:var(--text)}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:11px;padding:12px;background:var(--surface);color:var(--text);min-width:0}textarea{resize:vertical}select{cursor:pointer}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;background:var(--accent-soft);padding:4px;border-radius:13px}.segmented button{border:0;background:transparent;border-radius:9px;padding:10px 8px;min-height:40px;color:var(--muted);font-size:12px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 2px 5px #17332708}.search-field{display:flex;align-items:center;margin-top:16px;background:var(--surface);border:1px solid var(--border);padding-left:12px;border-radius:12px;gap:0;color:var(--muted)}.search-field svg{width:18px;height:18px}.search-field input{border:0;background:transparent;font-size:12px;padding:13px 10px}.history-meta{font-size:11px;color:var(--muted);margin:17px 0 11px}.more-button{width:100%;margin-top:12px}.settings-card{border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:20px;margin-bottom:16px}.settings-title{font-size:16px;font-weight:650}.settings-card p{color:var(--muted);font-size:12px;margin:8px 0 16px}.settings-card .footnote{font-size:11px;line-height:1.6;margin:12px 0 0}.settings-card .button{width:100%;font-size:12px}.settings-card select{font-size:13px}.storage-card{display:flex;gap:12px}.storage-card p{margin-bottom:0}.storage-icon{display:grid;place-items:center;color:var(--positive);background:var(--accent-soft);border-radius:12px;width:37px;height:37px;flex-shrink:0}.storage-card h2{font-size:14px}.version{text-align:center;color:var(--muted);font-size:11px;line-height:1.9;margin-top:26px}.export-text{font-family:monospace;font-size:11px;min-height:160px;margin-top:12px}.icon-button{width:42px;height:42px;border:1px solid var(--border);border-radius:13px;background:var(--surface);display:grid;place-items:center;flex-shrink:0}.filled{background:var(--accent);color:#fff;border:0}dialog{width:min(calc(100% - 24px),480px);max-height:calc(100dvh - 28px);overflow-y:auto;margin:auto;border:1px solid var(--border);border-radius:24px;background:var(--surface);color:var(--text);padding:22px;box-shadow:0 24px 80px #0d302a30}dialog::backdrop{background:#102a2366;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-heading h2{font-size:20px}.dialog-heading .icon-button{width:34px;height:34px;background:var(--bg);border:0}.type-tabs{margin-bottom:24px}.type-tabs button{font-size:13px}form label{font-size:12px;font-weight:600;display:block;margin:16px 0 7px}.amount-label{display:flex;justify-content:space-between;color:var(--muted)}.amount-label span{font-size:11px;font-weight:500}.amount-input{font-size:34px;font-weight:650;letter-spacing:-.5px;background:var(--bg);padding:10px 14px;line-height:1.3}.optional{color:var(--muted);font-size:11px;font-weight:400;margin-left:6px}form input,form select,form textarea{font-size:16px}form textarea{font-size:14px}.save-button{width:100%;margin-top:24px}.delete-button{margin:10px auto 0}.danger{color:var(--negative)}.form-error{font-size:12px;color:var(--negative);background:#f9eae4;border-radius:9px;padding:10px;margin-top:14px}.delete-confirm{padding:14px;background:var(--bg);border-radius:12px;margin-top:12px}.delete-confirm p{font-size:12px;margin-bottom:12px}.delete-confirm div{display:flex;gap:8px}.delete-confirm .button{flex:1;font-size:12px}.danger-button{background:#a64737;color:white}.toast{position:fixed;bottom:calc(98px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;background:var(--text);color:var(--surface);border-radius:12px;padding:12px 18px;font-size:13px;box-shadow:var(--shadow);z-index:20}.welcome{text-align:center;padding-top:18px}.welcome-icon{display:grid;place-items:center;width:100px;height:100px;background:var(--card-top);color:var(--accent);border-radius:30px;margin:0 auto 28px;transform:rotate(-7deg)}.welcome-icon svg{width:48px;height:48px;transform:rotate(7deg)}.welcome h1{font-size:36px;line-height:1.16;margin-bottom:20px}.welcome>p:not(.eyebrow){color:var(--muted);max-width:330px;margin:0 auto 20px}.info-box{background:var(--surface);border:1px solid var(--border);padding:16px;border-radius:14px;color:var(--muted);font-size:12px;margin:24px 0}.welcome .button{margin:24px 0 12px}.footnote{font-size:11px;color:var(--muted)}.loading{display:flex;justify-content:center;align-items:center;gap:10px;color:var(--muted);padding:80px 0}.spinner{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin 1s linear infinite}.error-panel{padding:35px 0}.error-panel p{margin:15px 0 25px;color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:700px){.app-shell{margin:28px auto;min-height:calc(100dvh - 56px);border:1px solid var(--border);border-radius:30px;padding-top:26px;box-shadow:var(--shadow)}.bottom-nav{bottom:14px;width:510px;border:1px solid var(--border);border-radius:20px;padding-bottom:10px}.toast{bottom:108px}}
@media(max-width:370px){.app-shell{padding-left:16px;padding-right:16px}.balance-card{padding:20px 16px}.stat-card{padding:13px 9px;gap:7px}.stat-icon{width:27px;height:27px}.stat-card strong{font-size:14px}.operation-row{padding:13px 11px;gap:9px}.operation-icon{width:34px;height:34px}.operation-amount{font-size:12px}.category-card .muted{font-size:10px}.category-card h2{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}
html[data-theme=dark]{color-scheme:dark;--bg:#13201c;--surface:#1c2c26;--text:#e4ece5;--muted:#a0b2a6;--border:#30433a;--accent:#bce2be;--accent-soft:#253e31;--positive:#a3d9b3;--negative:#e8ac99;--card-top:#294b37;--card-bottom:#344931;--card-text:#e3f0db;--nav-bg:#1c2c26ed}
html[data-theme=dark] .primary,html[data-theme=dark] .expense-button,html[data-theme=dark] .filled{color:#173422}html[data-theme=dark] .brand-mark{background:#365d43}html[data-theme=dark] .balance-card{border-color:#4c6947}html[data-theme=dark] .balance-note{color:#bfd6b4}html[data-theme=dark] .income-button{background:#ffffff14;color:#e3f0db;border-color:#6a8560}html[data-theme=dark] .positive,html[data-theme=dark] .operation-icon.income{background:#2b4935}html[data-theme=dark] .negative{background:#49372e}html[data-theme=dark] .form-error{background:#4a322a}html[data-theme=dark] .operation-icon{color:#a4c2ab}

html[data-theme=dark]{--bg:#080808;--surface:#1d1d1d;--text:#f5f5f5;--muted:#9a9a9a;--border:#303030;--accent:#00e894;--accent-soft:#0a3023;--positive:#00e894;--negative:#ff4b45;--card-top:#111713;--card-bottom:#0b1712;--card-text:#fff;--nav-bg:#080808ed}
html[data-theme=dark] .brand-mark{background:#083c2b;color:#00e894}html[data-theme=dark] .balance-card{border-color:#0c6846}html[data-theme=dark] .balance-note{color:#a2b5ab}html[data-theme=dark] .income-button{background:#093d2a;color:#00e894;border-color:#0c6846}
.accounts-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.accounts-grid .settings-card{margin:0;padding:15px;min-width:0}.accounts-grid p{margin:0 0 5px}.accounts-grid strong{font-size:18px;overflow-wrap:anywhere}
.account-actions{display:flex;gap:10px;margin:12px 0}.account-actions .button{flex:1;font-size:12px;padding:10px}.bottom-nav{grid-template-columns:repeat(5,1fr)}.bottom-nav button{font-size:9px;padding-left:2px;padding-right:2px}
.operation-amount.transfer,.operation-icon.transfer{color:#4eacff}.operation-amount.opening{color:#b8b8b8}.debt-row{display:flex;align-items:center;gap:12px}.debt-row div{flex:1;min-width:0;overflow-wrap:anywhere}.debt-row p{margin:5px 0}.filter-tabs{margin-top:16px}.accounts-grid+.account-actions+.footnote{margin:8px 0}
@media(max-width:370px){.accounts-grid strong{font-size:14px}.accounts-grid .settings-card{padding:12px}.account-actions .button{font-size:11px}}
