:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17213b;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}main{--bg: #f5f7fb;--surface: #fff;--surface-soft: #f9faff;--ink: #17213b;--muted: #71809b;--line: #e4e9f2;--blue: #2554d8;--violet: #7147cc;--green: #13875e;--red: #d95859;min-height:100dvh;background:var(--bg);color:var(--ink);padding:calc(18px + env(safe-area-inset-top)) 16px calc(94px + env(safe-area-inset-bottom));transition:.2s background}.dark{--bg: #111827;--surface: #1b263a;--surface-soft: #1e2b42;--ink: #f5f7ff;--muted: #a8b4cb;--line: #30405c}header,.home,.page{max-width:1160px;margin-left:auto;margin-right:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.eyebrow{margin:0 0 3px;color:var(--muted);letter-spacing:.1em;font-size:10px;font-weight:750}h1{font-size:26px;margin:0;letter-spacing:-.04em}.avatar{width:38px;height:38px;border-radius:50%;border:0;background:var(--violet);color:#fff;font-weight:800}.hero{background:linear-gradient(135deg,#2554d8,#3159c9);border-radius:24px;padding:22px;color:#fff;display:grid;gap:5px}.hero span,.metric span{font-size:14px;font-weight:650;opacity:.85}.hero strong,.metric strong{font-size:35px;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.hero small,.metric small{opacity:.75}.hero button{border:0;background:#ffffff1c;color:#fff;padding:10px 12px;text-align:left;margin-top:10px;border-radius:12px;font-size:13px;font-weight:700}.hero i{float:right;font-style:normal;font-size:20px;line-height:12px}.zone{padding:22px 0 0}.zone-title,.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.zone-title>span{font-weight:800;font-size:17px}.zone-title button,.section-head button{border:0;background:none;color:var(--blue);font-size:13px;font-weight:700;padding:5px}.chips{display:flex;gap:8px;flex-wrap:wrap}.drag-chip,.chips button{border:1px solid var(--line);background:var(--surface);padding:10px 13px;border-radius:13px;font-size:13px;font-weight:650;touch-action:pan-y}.drag-chip:active,.dragging{transform:scale(1.03);box-shadow:0 8px 18px #17213b26}.account-grid{display:grid;grid-template-columns:1fr;gap:8px}.account{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;text-align:left;border:1px solid var(--line);background:var(--surface);padding:11px;border-radius:16px;gap:10px;touch-action:pan-y}.brand{width:34px;height:34px;background:var(--brand, #2554d8);color:#fff;display:grid;place-items:center;border-radius:11px;font-weight:800}.account-text{display:grid;gap:3px;min-width:0}.account b,.account-list b{font-size:14px}.account small,.account-list small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account>strong{font-size:13px;font-variant-numeric:tabular-nums}.expenses{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.expense{border:1px solid var(--line);background:var(--surface);padding:13px;border-radius:15px;text-align:left;font-size:13px;font-weight:700;color:var(--ink)}.expense span{color:var(--red);font-size:18px;vertical-align:middle;margin-right:6px}.gesture{font-size:11px;line-height:1.45;color:var(--muted);margin:12px 4px}.summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.summary-row button{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:11px 4px;font-weight:700;font-size:12px}.empty{background:var(--surface);border:1px dashed var(--line);border-radius:18px;padding:27px 18px;display:grid;gap:7px;text-align:center;color:var(--muted)}.empty b{color:var(--ink)}.tx-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.tx-list li{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;background:var(--surface);padding:12px;border:1px solid var(--line);border-radius:15px}.tx-list li>span{border-radius:10px;width:32px;height:32px;display:grid;place-items:center;background:#eaf1ff;color:var(--blue)}.tx-list div{display:grid;gap:3px}.tx-list small{color:var(--muted);font-size:11px}.tx-list strong{font-size:13px}.income{color:var(--green)!important}.tx-list .expense{color:var(--red)}.transfer{color:var(--blue)}.metric{padding:20px;border:1px solid var(--line);background:var(--surface);border-radius:20px;display:grid;gap:5px}.metric.debt strong{color:var(--red)}.section-head{margin-top:22px}.section-head h2{font-size:18px;margin:0}.account-list{display:grid;gap:8px}.account-list article{display:grid;grid-template-columns:34px minmax(0,1fr) auto 39px;gap:10px;align-items:center;padding:11px;background:var(--surface);border:1px solid var(--line);border-radius:15px}.account-list article>div{display:grid;gap:3px;min-width:0}.account-list article>strong{font-size:13px}.switch input{display:none}.switch i{display:block;width:34px;height:20px;border-radius:99px;background:#c8d1df;padding:2px}.switch i:after{content:"";display:block;width:16px;height:16px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+i{background:var(--green)}.switch input:checked+i:after{transform:translate(14px)}.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.more-grid button{min-height:118px;display:grid;align-content:center;gap:5px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:16px;font-size:23px}.more-grid b{font-size:14px}.more-grid small{font-size:11px;color:var(--muted)}nav{height:68px;position:fixed;z-index:4;left:0;right:0;bottom:0;padding:6px 13px;background:color-mix(in srgb,var(--surface) 94%,transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:grid;grid-template-columns:repeat(5,1fr);align-items:center}nav button{border:0;background:transparent;color:var(--muted);display:grid;gap:2px;justify-items:center;font-size:17px}nav span{font-size:9px;font-weight:650}.active{color:var(--blue)}.center-add{align-self:center;justify-self:center;width:43px;height:43px;border-radius:15px;background:var(--blue);color:#fff;font-size:29px;line-height:20px!important;box-shadow:0 6px 13px #2554d855}.backdrop{position:fixed;z-index:10;inset:0;background:#0d173466;display:flex;align-items:flex-end}.sheet{width:100%;max-width:640px;margin:auto;background:var(--surface);border-radius:25px 25px 0 0;padding:9px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -12px 28px #0002}.handle{width:38px;height:4px;background:var(--line);margin:0 auto 13px;border-radius:4px}.sheet-top{display:flex;justify-content:space-between;align-items:start}.sheet h2{font-size:21px;margin:7px 0 14px}.pill{font-size:11px;font-weight:800;background:#eaf1ff;padding:4px 8px;border-radius:99px}.close{border:0;background:none;font-size:28px;color:var(--muted)}.amount{display:grid;grid-template-columns:1fr auto;background:var(--bg);border:1px solid var(--line);padding:10px 14px;border-radius:15px}.amount span{grid-column:1/3;color:var(--muted);font-size:11px;font-weight:650}.amount input{border:0;background:none;color:var(--ink);outline:none;width:100%;font-size:31px;font-weight:800;letter-spacing:-.04em;padding:2px 0}.amount em{align-self:end;font-style:normal;font-weight:700;color:var(--muted);font-size:18px}.route{margin:15px 0;display:grid;grid-template-columns:1fr 22px 1fr;align-items:center;gap:8px}.route div{background:var(--bg);border-radius:12px;padding:9px;min-width:0}.route small{display:block;color:var(--muted);font-size:10px;margin-bottom:3px}.route b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.route>span{text-align:center;color:var(--blue)}.field-title{color:var(--muted);font-size:11px}.chips.small{margin-top:7px}.chips.small button{padding:8px 10px;font-size:12px}.chips .selected{border-color:var(--blue);color:var(--blue);background:#eaf1ff}.comment-toggle{border:0;background:none;padding:15px 0 8px;color:var(--blue);font-size:13px;font-weight:700}.sheet textarea{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:12px;padding:10px;resize:vertical}.save{width:100%;background:var(--blue);color:#fff;border:0;border-radius:15px;padding:15px;margin-top:14px;font-weight:800}.toast{position:fixed;z-index:20;bottom:82px;left:50%;transform:translate(-50%);background:#17213b;color:#fff;padding:10px 15px;border-radius:12px;font-size:13px;box-shadow:0 6px 18px #0003}@media(min-width:720px){main{padding:34px 32px 96px}.home{display:grid;grid-template-columns:minmax(320px,.82fr) 1.18fr;gap:0 28px}.hero{grid-row:span 2;align-content:start;min-height:225px}.income-zone{grid-column:2}.accounts-zone,.expense-zone{grid-column:1/3}.account-grid{grid-template-columns:repeat(2,1fr)}.expenses{grid-template-columns:repeat(4,1fr)}.page{max-width:900px}.more-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:1050px){main{padding:0 48px 48px 290px}header{height:92px;margin-bottom:8px}.home,.page{max-width:1240px}.home{grid-template-columns:minmax(360px,.8fr) 1.2fr;gap:0 38px}.hero{min-height:228px;padding:28px}.hero strong,.metric strong{font-size:42px}.account-grid{grid-template-columns:repeat(4,1fr)}.account{grid-template-columns:31px minmax(0,1fr)}.account>strong{grid-column:2}.page{max-width:1240px}.page:has(.metric){display:grid;grid-template-columns:minmax(290px,.75fr) minmax(500px,1.25fr);gap:0 26px;align-items:start}.page:has(.metric) .metric{grid-row:span 2;min-height:210px;align-content:center;background:linear-gradient(145deg,var(--surface),var(--surface-soft))}.page:has(.metric) .section-head{margin-top:0}.page:has(.metric) .empty{grid-column:2}.page:has(.metric) .account-list{grid-column:2}nav{top:0;bottom:0;right:auto;width:242px;height:100dvh;padding:28px 16px;background:var(--surface);border-top:0;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:stretch;gap:5px}nav:before{content:"FIN CENTER";letter-spacing:.12em;color:var(--blue);font-size:11px;font-weight:850;padding:10px 14px 28px}nav button{grid-template-columns:24px 1fr;gap:12px;justify-items:start;align-items:center;padding:12px 14px;border-radius:12px;font-size:18px}nav span{font-size:13px}.center-add{order:6;width:auto;height:auto;background:var(--blue);color:#fff;margin-top:14px;padding:13px 15px!important;display:block!important;text-align:center!important}.center-add:after{content:" Новая операция";font-size:13px;font-weight:750}.more-grid{grid-template-columns:repeat(4,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}.login-screen{min-height:100dvh;padding:24px;display:grid;place-items:center;background:radial-gradient(circle at top right,#dfe6ff,transparent 35%),#f5f7fb}.login-card{width:min(100%,420px);padding:30px;background:#fff;border:1px solid #e4e9f2;border-radius:24px;display:grid;gap:14px;box-shadow:0 20px 60px #17213b12}.login-card h1{font-size:30px}.login-card>p{margin:0;color:#71809b}.login-card label,.form-label{display:grid;gap:7px;color:#4a5872;font-size:13px;font-weight:700}.login-card input,.form-label input,.form-label select{width:100%;border:1px solid #dce3ee;background:#fff;border-radius:12px;padding:12px;color:#17213b;outline-color:#2554d8}.login-card small{color:#71809b;font-size:11px;line-height:1.45}.form-error{color:#c5363d!important;font-size:13px}.header-actions{display:flex;align-items:center;gap:10px}.logout{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:700}.form-label{margin:12px 0}.check{font-size:13px;display:flex;gap:8px;align-items:center}.hint{font-size:12px;color:var(--muted)}.empty button{margin:8px auto 0;border:0;background:var(--blue);color:#fff;border-radius:10px;padding:9px 12px;font-weight:700}.login-card .save{display:flex!important;align-items:center;justify-content:center;width:100%;min-height:48px;margin:0;padding:14px 18px;border:1px solid #1d46ba;border-radius:14px;background:#2554d8!important;color:#fff!important;font-weight:800;line-height:20px;box-shadow:0 5px 12px #2554d833}.login-card .save:hover:not(:disabled){background:#1d46ba!important}.login-card .save:disabled{opacity:.65;cursor:wait}.categories-page .section-head{align-items:flex-start}.categories-page .section-head p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.category-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.category-list article,.selected-category{display:flex;align-items:center;gap:10px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;font-size:13px}.category-sheet{max-width:760px}.category-sheet .sheet-top p{margin:0 20px 12px 0;color:var(--muted);font-size:12px;line-height:1.4}.icon-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:min(45dvh,430px);overflow:auto;padding:3px}.icon-catalog button{display:flex;align-items:center;gap:8px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);text-align:left;font-size:12px;color:var(--ink)}.icon-catalog button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-catalog button.selected{border-color:var(--blue);background:#eaf1ff;color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.expense canvas{vertical-align:middle;margin-right:7px}@media(min-width:720px){.icon-catalog{grid-template-columns:repeat(3,minmax(0,1fr))}}.bank-icon{display:inline-grid;place-items:center;position:relative;isolation:isolate;overflow:hidden;flex:0 0 auto;border-radius:11px;background:var(--bank);color:#fff;font-size:9px;font-weight:900;letter-spacing:-.08em;line-height:1}.bank-icon:before,.bank-icon i{content:"";position:absolute;z-index:-1;background:var(--accent);transform:rotate(-35deg)}.bank-icon:before{width:135%;height:22%;top:17%;left:-20%}.bank-icon i{width:70%;height:100%;top:-10%;right:-36%;opacity:.75}.bank-icon b{font:inherit}.bank-picker{margin:12px 0}.bank-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:200px;overflow:auto;margin-top:7px;padding:2px}.bank-catalog button{display:flex;align-items:center;gap:8px;min-width:0;padding:7px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);color:var(--ink);font-size:11px;text-align:left}.bank-catalog button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-catalog button.selected{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);background:#eaf1ff}@media(min-width:720px){.bank-catalog{grid-template-columns:repeat(3,minmax(0,1fr))}}.bank-logo{display:block;flex:0 0 auto;object-fit:contain;border-radius:10px;background:#fff}.bank-logo-empty{display:block;flex:0 0 auto;border-radius:10px;background:var(--line)}
