:root {
  --bg: #f4f6fa;
  --card: #ffffff;
  --text: #111827;
  --muted: #6b7280;
  --line: #e5e7eb;
  --accent: #2f6fed;
  --accent-soft: #eaf1ff;
  --green: #15945e;
  --red: #d84a4a;
  --orange: #d4812d;
  --shadow: 0 8px 30px rgba(17,24,39,.06);
  --radius: 20px;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#0d1117; --card:#161b22; --text:#f0f3f6; --muted:#8b949e; --line:#30363d; --accent:#6ea8fe; --accent-soft:#18253d; --green:#4ac48a; --red:#ff7b72; --orange:#e3a45b; --shadow:none; }
}
:root[data-theme="light"] { --bg:#f4f6fa; --card:#ffffff; --text:#111827; --muted:#6b7280; --line:#e5e7eb; --accent:#2f6fed; --accent-soft:#eaf1ff; --green:#15945e; --red:#d84a4a; --orange:#d4812d; --shadow:0 8px 30px rgba(17,24,39,.06); }
:root[data-theme="dark"] { --bg:#0d1117; --card:#161b22; --text:#f0f3f6; --muted:#8b949e; --line:#30363d; --accent:#6ea8fe; --accent-soft:#18253d; --green:#4ac48a; --red:#ff7b72; --orange:#e3a45b; --shadow:none; }
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin:0; min-height:100%; background:var(--bg); color:var(--text); font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif; }
body { overscroll-behavior-y:none; }
button,input,select { font:inherit; color:inherit; }
button { cursor:pointer; }
.app-shell { max-width:720px; margin:0 auto; min-height:100dvh; padding-top:env(safe-area-inset-top); }
.topbar { position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; padding:16px 18px 12px; background:color-mix(in srgb,var(--bg) 88%,transparent); backdrop-filter:blur(18px); }
h1 { margin:2px 0 0; font-size:27px; line-height:1.1; }
h2 { margin:0; font-size:18px; }
.main-content { padding:4px 16px calc(108px + env(safe-area-inset-bottom)); }
.screen { display:none; }
.screen.active { display:block; animation:fade .15s ease; }
@keyframes fade { from{opacity:.55; transform:translateY(2px)} to{opacity:1; transform:none} }
.card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.compact-card { border-radius:16px; }
.icon-btn { width:42px; height:42px; border-radius:14px; border:0; background:var(--card); box-shadow:var(--shadow); font-size:26px; line-height:1; }
.icon-btn.ghost { background:transparent; box-shadow:none; }
.month-switcher { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; margin-bottom:12px; padding:4px; }
.month-label { background:transparent; border:0; font-weight:700; font-size:16px; padding:12px; }
.hero-card { padding:22px; margin-bottom:12px; background:linear-gradient(145deg, color-mix(in srgb,var(--accent) 13%,var(--card)), var(--card)); }
.hero-card.smaller { margin-bottom:18px; }
.hero-amount { font-size:38px; font-weight:800; letter-spacing:-.03em; margin-top:5px; }
.hero-meta { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:14px; font-size:13px; color:var(--muted); }
.small { font-size:13px; }.muted { color:var(--muted); }
.kpi-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.kpi { padding:16px; min-height:90px; display:flex; flex-direction:column; justify-content:space-between; }
.kpi-label { color:var(--muted); font-size:13px; }.kpi strong { font-size:19px; }
.section-block { margin-top:24px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; margin:0 4px 10px; }
.link-btn,.text-btn { border:0; background:transparent; color:var(--accent); font-weight:650; padding:8px; }
.text-btn.primary { font-weight:800; }.header-spacer{width:54px}
.category-bars { padding:12px 14px; }
.bar-row { display:grid; grid-template-columns:minmax(90px,1fr) minmax(90px,1.2fr) auto; gap:10px; align-items:center; padding:9px 0; }
.bar-label { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:14px; }
.bar-track { height:8px; background:var(--line); border-radius:999px; overflow:hidden; }.bar-fill { height:100%; background:var(--accent); border-radius:999px; }
.bar-value { font-size:13px; font-weight:700; min-width:72px; text-align:right; }
.list-card { overflow:hidden; }
.empty { padding:28px 18px; color:var(--muted); text-align:center; }
.operation-row { width:100%; display:grid; grid-template-columns:46px 1fr auto; gap:12px; align-items:center; border:0; border-bottom:1px solid var(--line); background:transparent; padding:13px 14px; text-align:left; }
.operation-row:last-child { border-bottom:0; }
.op-icon { width:42px; height:42px; border-radius:14px; display:grid; place-items:center; background:var(--accent-soft); font-size:20px; }
.op-main { min-width:0; }.op-title { display:block; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.op-sub { display:block; color:var(--muted); font-size:12px; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.op-amount { font-weight:800; text-align:right; }.op-amount.income { color:var(--green); }.op-amount.reserve { color:var(--accent); }
.filters { padding:12px; margin-bottom:16px; }.filters input { width:100%; border:1px solid var(--line); background:var(--bg); border-radius:14px; padding:12px 13px; font-size:16px; outline:none; }
.chip-row { display:flex; gap:8px; overflow:auto; padding-top:10px; scrollbar-width:none; }.chip-row::-webkit-scrollbar{display:none}.chip { border:1px solid var(--line); background:var(--card); color:var(--muted); border-radius:999px; padding:8px 12px; white-space:nowrap; }.chip.active{background:var(--accent);border-color:var(--accent);color:white}
.day-group { margin-bottom:18px; }.day-title { color:var(--muted); font-size:12px; font-weight:700; margin:0 6px 7px; }.day-card { overflow:hidden; }
.envelope-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.envelope-card { padding:16px; min-height:126px; display:flex; flex-direction:column; justify-content:space-between; }.envelope-card button { border:0; background:transparent; text-align:left; padding:0; }.envelope-icon { font-size:24px; }.envelope-name{font-weight:750;margin-top:6px}.envelope-value{font-size:20px;font-weight:800;margin-top:12px}.envelope-sub{font-size:12px;color:var(--muted);margin-top:3px}
.account-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.account-card { padding:16px; min-height:126px; display:flex; flex-direction:column; justify-content:space-between; }.account-icon{font-size:24px}.account-name{font-weight:750;margin-top:6px}.account-value{font-size:20px;font-weight:800;margin-top:12px}.account-sub{font-size:12px;color:var(--muted);margin-top:3px}.wallet-section-heading{margin-top:24px}
.analytics-summary { padding:6px 16px; }.analytics-summary>div { display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); }.analytics-summary>div:last-child{border-bottom:0}.analytics-summary span{color:var(--muted)}
.settings-group { overflow:hidden; margin-bottom:14px; }.settings-title { padding:13px 15px 7px; color:var(--muted); text-transform:uppercase; font-size:11px; font-weight:800; letter-spacing:.05em; }.settings-row { width:100%; border:0; border-top:1px solid var(--line); background:transparent; min-height:50px; padding:0 15px; display:flex; justify-content:space-between; align-items:center; text-align:left; }.settings-row.static{cursor:default}.settings-row b{color:var(--muted);font-size:20px}.settings-row.danger span{color:var(--red)}.settings-hint{padding:10px 15px 14px;color:var(--muted);font-size:12px;line-height:1.45}.file-row{position:relative}.file-row input{position:absolute;inset:0;opacity:0;width:100%;height:100%}.attribution{color:var(--muted);font-size:11px;text-align:center;padding:8px}.attribution a{color:inherit}
.bottom-nav { position:fixed; z-index:30; left:50%; transform:translateX(-50%); bottom:0; width:min(720px,100%); height:calc(74px + env(safe-area-inset-bottom)); padding:6px 10px env(safe-area-inset-bottom); background:color-mix(in srgb,var(--card) 94%,transparent); backdrop-filter:blur(22px); border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr 72px 1fr 1fr; align-items:center; }
.nav-item { border:0; background:transparent; color:var(--muted); display:flex; flex-direction:column; align-items:center; gap:3px; }.nav-item span{font-size:22px}.nav-item small{font-size:10px}.nav-item.active{color:var(--accent)}
.fab { width:58px;height:58px;border:0;border-radius:20px;background:var(--accent);color:white;font-size:32px;box-shadow:0 10px 24px rgba(47,111,237,.28);align-self:start;margin-top:-16px; }
.sheet-backdrop { position:fixed; z-index:50; inset:0; background:rgba(0,0,0,.34); backdrop-filter:blur(2px); }.hidden { display:none !important; }
.bottom-sheet { position:fixed; z-index:60; left:50%; transform:translateX(-50%); bottom:0; width:min(720px,100%); max-height:93dvh; background:var(--card); border-radius:26px 26px 0 0; padding-bottom:env(safe-area-inset-bottom); box-shadow:0 -24px 60px rgba(0,0,0,.18); overflow:hidden; }
.sheet-handle { width:38px;height:5px;border-radius:999px;background:var(--line);margin:8px auto 2px; }.sheet-header { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:4px 10px 8px; border-bottom:1px solid var(--line); }.sheet-header>button:first-child{text-align:left}.sheet-header>button:last-child{text-align:right}.sheet-body { padding:14px 16px calc(26px + env(safe-area-inset-bottom)); overflow:auto; max-height:calc(93dvh - 60px); }
.segmented { background:var(--bg); padding:4px; border-radius:14px; display:grid; gap:3px; overflow:auto; }.segmented.five{grid-template-columns:repeat(5,minmax(84px,1fr));}.segmented button{border:0;background:transparent;border-radius:11px;padding:9px 7px;font-size:12px;white-space:nowrap;color:var(--muted)}.segmented button.active{background:var(--card);box-shadow:0 1px 5px rgba(0,0,0,.08);color:var(--text);font-weight:750}
.amount-block { display:grid; grid-template-columns:1fr 92px; gap:8px; align-items:center; margin:18px 0 12px; }.amount-input { width:100%; min-width:0; border:0; background:transparent; font-size:44px; font-weight:800; letter-spacing:-.03em; outline:none; }.currency-select { border:1px solid var(--line); background:var(--bg); border-radius:14px; padding:10px; font-size:16px; }.conversion-hint{grid-column:1/-1;color:var(--muted);font-size:12px;margin-top:-4px}
.field-row { min-height:54px; display:grid; grid-template-columns:minmax(120px,1fr) minmax(145px,1.35fr); align-items:center; gap:10px; border-top:1px solid var(--line); }.field-row>span{font-size:14px}.field-row em{display:block;color:var(--muted);font-size:10px;font-style:normal;margin-top:2px}.field-row input,.field-row select{width:100%;border:0;background:transparent;text-align:right;outline:none;font-size:16px;min-width:0}.field-row select{direction:rtl}.field-row select option{direction:ltr}.details-block{border-top:1px solid var(--line);padding-top:12px;margin-top:2px}.details-block summary{color:var(--accent);font-size:14px;font-weight:700;cursor:pointer;padding:7px 0 12px}.danger-button{width:100%;border:0;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);padding:13px;border-radius:14px;font-weight:750;margin-top:22px}
.manage-list{border:1px solid var(--line);border-radius:16px;overflow:hidden}.manage-row{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:11px 12px;border-bottom:1px solid var(--line)}.manage-row:last-child{border-bottom:0}.manage-row .mini{color:var(--muted);font-size:12px;margin-top:3px}.manage-row button{border:0;background:transparent;color:var(--accent);padding:8px}.manage-actions{display:flex;gap:6px}.manage-form{display:grid;gap:10px;margin-bottom:14px}.manage-form input,.manage-form select{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:13px;padding:12px;font-size:16px;outline:none}.primary-button{width:100%;border:0;background:var(--accent);color:white;border-radius:14px;padding:13px;font-weight:800}.subcat-wrap{padding:9px 0 0 50px}.subcat-pill{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:7px 9px;margin:0 5px 6px 0;font-size:12px}.subcat-pill button{padding:0;color:var(--red);font-size:15px}.inline-add{display:flex;gap:8px;margin:8px 0 0}.inline-add input{flex:1;border:1px solid var(--line);background:var(--bg);border-radius:11px;padding:10px;font-size:16px}.inline-add button{border:0;background:var(--accent);color:white;border-radius:11px;padding:0 14px;font-weight:700}
.toast { position:fixed; z-index:90; left:50%; transform:translateX(-50%); bottom:calc(94px + env(safe-area-inset-bottom)); background:#111827;color:white;border-radius:999px;padding:10px 15px;font-size:13px;box-shadow:0 12px 30px rgba(0,0,0,.2);max-width:90%;text-align:center; }
@media (max-width:390px){.main-content{padding-left:12px;padding-right:12px}.topbar{padding-left:14px;padding-right:14px}.hero-amount{font-size:34px}.segmented.five{grid-template-columns:repeat(5,86px)}}

/* v1.2 — точечные дополнения: переводы, валюты и статистика */
.kpi-note { color:var(--muted); font-size:11px; margin-top:4px; }
.kpi-note b { color:var(--text); font-weight:750; }
.currency-list { overflow:hidden; }
.currency-row { min-height:58px; padding:10px 14px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:14px; }
.currency-row:last-child { border-bottom:0; }
.currency-row>div:first-child { min-width:0; display:flex; align-items:baseline; gap:10px; }
.currency-row strong { font-size:12px; color:var(--muted); min-width:30px; }
.currency-row span { font-weight:800; font-size:17px; white-space:nowrap; }
.currency-base { color:var(--muted); font-size:12px; text-align:right; white-space:nowrap; }
.op-amount.transfer { color:var(--accent); font-size:12px; max-width:150px; white-space:normal; line-height:1.25; }
.transfer-hint { margin:5px 0 10px; padding:10px 12px; border-radius:12px; background:var(--bg); color:var(--muted); font-size:11px; line-height:1.4; }
.segmented.six { grid-template-columns:repeat(6,minmax(84px,1fr)); }
.chart-card { padding:14px 12px 10px; overflow:hidden; }
.chart-caption { color:var(--muted); font-size:11px; margin:0 4px 12px; }
.chart-caption strong { color:var(--text); }
.daily-chart-scroll { overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
.daily-chart-scroll::-webkit-scrollbar { display:none; }
.daily-chart { height:190px; min-width:max-content; display:flex; align-items:stretch; gap:5px; }
.day-bar-col { width:25px; height:100%; display:grid; grid-template-rows:1fr 18px; align-items:end; text-align:center; }
.day-bar-track { height:158px; width:12px; margin:0 auto; border-radius:999px; background:var(--line); overflow:hidden; display:flex; align-items:flex-end; }
.day-bar-fill { width:100%; min-height:0; border-radius:999px; background:var(--accent); }
.day-bar-col>span { font-size:9px; color:var(--muted); line-height:18px; }
.donut-card { padding:18px 16px; }
.donut-wrap { display:grid; grid-template-columns:150px 1fr; gap:20px; align-items:center; }
.donut { width:150px; height:150px; border-radius:50%; display:grid; place-items:center; }
.donut-hole { width:92px; height:92px; border-radius:50%; background:var(--card); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:8px; }
.donut-hole strong { font-size:14px; line-height:1.2; }
.donut-hole span { margin-top:4px; color:var(--muted); font-size:10px; }
.donut-legend { min-width:0; }
.donut-legend-row { display:grid; grid-template-columns:9px 1fr auto; gap:7px; align-items:center; padding:5px 0; font-size:11px; }
.donut-legend-row i { width:8px; height:8px; border-radius:50%; }
.donut-legend-row span { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.donut-legend-row b { font-size:11px; }
@media (max-width:430px) {
  .donut-wrap { grid-template-columns:126px 1fr; gap:14px; }
  .donut { width:126px; height:126px; }
  .donut-hole { width:78px; height:78px; }
  .donut-hole strong { font-size:12px; }
  .currency-row span { font-size:16px; }
  .segmented.six { grid-template-columns:repeat(6,86px); }
}


/* v1.3 — только точечные изменения интерфейса и истории */
.home-account-breakdown { margin-top:14px; padding-top:10px; border-top:1px solid color-mix(in srgb,var(--line) 75%,transparent); }
.home-account-row { width:100%; min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:12px; border:0; background:transparent; padding:5px 0; text-align:left; }
.home-account-row>span { display:flex; align-items:center; min-width:0; gap:7px; color:var(--muted); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-account-row i { width:20px; font-style:normal; text-align:center; }
.home-account-row>b { font-size:12px; white-space:nowrap; }
.home-account-row small { color:var(--muted); font-weight:500; margin-left:4px; }
.account-card,.envelope-card { cursor:pointer; }
.analytics-account-filter { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 15px; margin-bottom:12px; }
.analytics-account-filter span { color:var(--muted); font-size:13px; }
.analytics-account-filter select { flex:1; min-width:0; border:0; background:transparent; text-align:right; outline:none; font-weight:700; }
.theme-row { gap:12px; }
.theme-toggle { display:grid; grid-template-columns:1fr 1fr; gap:3px; padding:3px; background:var(--bg); border-radius:11px; }
.theme-toggle button { border:0; background:transparent; color:var(--muted); border-radius:9px; padding:7px 10px; font-size:12px; }
.theme-toggle button.active { background:var(--card); color:var(--text); box-shadow:0 1px 5px rgba(0,0,0,.08); font-weight:750; }
.segmented.seven { grid-template-columns:repeat(7,minmax(94px,1fr)); }
.day-bar-col.today>span { color:var(--accent); font-weight:800; }
.day-bar-col.today .day-bar-track { outline:2px solid color-mix(in srgb,var(--accent) 28%,transparent); outline-offset:2px; }
.detail-summary { padding:16px; display:grid; grid-template-columns:auto 1fr; gap:12px 14px; align-items:center; margin-bottom:18px; }
.detail-summary>div:not(.detail-icon) { display:flex; flex-direction:column; gap:3px; min-width:0; }
.detail-summary>div:nth-child(3) { grid-column:1/-1; border-top:1px solid var(--line); padding-top:12px; }
.detail-summary span { color:var(--muted); font-size:11px; }
.detail-summary strong { font-size:20px; }
.detail-summary small { color:var(--muted); font-size:11px; }
.detail-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:14px; background:var(--accent-soft); font-size:23px; }
.detail-heading { color:var(--muted); font-size:12px; font-weight:750; margin:0 5px 8px; }
.top-hint { padding-top:0; }
.kpi-order-row button:disabled { opacity:.25; pointer-events:none; }
.nav-item[data-nav="reserves"] span { font-size:25px; line-height:20px; }
.nav-item[data-nav="settings"] span { font-size:26px; line-height:18px; letter-spacing:1px; }
@media (max-width:430px) { .segmented.seven { grid-template-columns:repeat(7,94px); } }
.home-account-caption { color:var(--muted); font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.04em; margin-bottom:3px; }


/* v1.4 — точечные исправления: свободно по счетам, форма операции, источники и iOS sheet */
body.sheet-open { position:fixed; left:0; right:0; width:100%; overflow:hidden; }
#operationSheet { height:93dvh; max-height:93dvh; display:flex; flex-direction:column; }
#operationSheet.hidden { display:none !important; }
#operationSheet .sheet-handle, #operationSheet .sheet-header { flex:0 0 auto; }
#operationSheet .sheet-body { flex:1 1 auto; min-height:0; max-height:none; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.segmented.seven { grid-template-columns:repeat(5,minmax(94px,1fr)) minmax(132px,1.4fr) minmax(148px,1.55fr); }
.home-account-row>b { display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
.home-account-row>b>span { white-space:nowrap; }
.home-account-row .account-free-line { display:block; margin-left:0; color:var(--accent); font-size:10px; font-weight:650; }
.account-free { margin-top:7px; color:var(--muted); font-size:11px; }
.account-free strong { color:var(--accent); font-weight:750; }
.detail-summary .detail-wide { grid-column:1/-1; border-top:1px solid var(--line); padding-top:12px; }
.detail-summary>div:nth-child(3) { grid-column:auto; border-top:0; padding-top:0; }
.source-row { grid-template-columns:40px 1fr auto; }
@media (max-width:430px) { .segmented.seven { grid-template-columns:repeat(5,94px) 132px 148px; } }

/* v1.5 — корректировка баланса, разделение покупки, цели конвертов */
.subtle-button { background:var(--accent-soft); color:var(--accent); }
.detail-action { margin:0 0 6px; }
.adjustment-hint { margin:0 4px 18px; }
.split-toggle-btn { width:100%; border:0; border-top:1px solid var(--line); background:transparent; color:var(--accent); padding:13px 0; font-size:13px; font-weight:750; text-align:left; }
.split-editor { border-top:1px solid var(--line); padding:12px 0 4px; }
.split-hint { color:var(--muted); font-size:11px; line-height:1.4; margin-bottom:10px; }
.split-row { display:grid; grid-template-columns:80px minmax(110px,1fr) minmax(105px,1fr) 30px; gap:6px; align-items:center; padding:7px 0; border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent); }
.split-row input,.split-row select { min-width:0; width:100%; border:1px solid var(--line); background:var(--bg); color:var(--text); border-radius:10px; padding:9px 8px; font-size:12px; outline:none; }
.split-row .split-amount { text-align:right; }
.split-remove { width:30px; height:30px; border:0; background:transparent; color:var(--red); font-size:20px; }
.split-add { border:0; background:transparent; color:var(--accent); font-weight:750; padding:11px 0 7px; }
.split-total-hint { padding:8px 10px; border-radius:10px; background:var(--bg); color:var(--muted); font-size:11px; }
.split-total-hint.ok { color:var(--green); }
.split-total-hint.bad { color:var(--red); }
.goal-mini { display:flex; justify-content:space-between; gap:8px; margin-top:8px; color:var(--muted); font-size:10px; }
.goal-mini b { color:var(--accent); }
.goal-track { height:5px; background:var(--line); border-radius:999px; overflow:hidden; margin-top:5px; }
.goal-track i { display:block; height:100%; background:var(--accent); border-radius:999px; }
.goal-track.large { height:8px; margin:12px 0 14px; }
.goal-detail-card { padding:16px; margin-bottom:18px; }
.goal-detail-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; }
.goal-detail-head>div { display:flex; flex-direction:column; gap:3px; }
.goal-detail-head span,.goal-detail-grid span { color:var(--muted); font-size:11px; }
.goal-detail-head strong { font-size:20px; }
.goal-detail-head>b { color:var(--accent); font-size:17px; }
.goal-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; border-top:1px solid var(--line); padding-top:12px; }
.goal-detail-grid>div { display:flex; flex-direction:column; gap:3px; }
.goal-detail-grid strong { font-size:13px; }
.manage-date-field { display:grid; gap:5px; color:var(--muted); font-size:11px; }
.manage-date-field input { color:var(--text); }
@media (max-width:430px){
  .split-row { grid-template-columns:72px minmax(105px,1fr) 30px; }
  .split-row .split-subcategory { grid-column:1/3; grid-row:2; }
  .split-row .split-remove { grid-column:3; grid-row:1/3; }
}
.goal-history-heading { margin-top:18px; }

/* Finance 2.0: calendar, imports, roles and authentication */
.sync-status{font-size:11px;color:var(--muted);margin-top:4px;min-height:13px}
.auth-screen{position:relative;z-index:120;display:block;min-height:100vh;min-height:100dvh;width:100%;overflow:visible;padding:max(16px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom));background:var(--bg)}
body.auth-mode{min-height:100vh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.auth-card{width:min(440px,100%);margin:0 auto;padding:24px;display:grid;gap:12px;box-sizing:border-box}
#workspaceSetup,.auth-section{min-width:0}
.auth-card input{box-sizing:border-box;min-width:0}
.auth-card h1{margin:0}.auth-card p{margin:0;line-height:1.5}.auth-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:17px;background:var(--accent);color:white;font-weight:900;font-size:27px}
.auth-label,.form-label{display:grid;gap:7px;font-size:13px;color:var(--muted)}
.auth-card input,.form-label input,.form-label select{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:12px;font-size:16px;color:var(--text)}
.secondary-button{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:14px;padding:13px;font-weight:700;margin-top:9px}
.user-mode #screen-analytics,.user-mode #homeCategoryLink{display:none!important}
.user-mode .bottom-nav{grid-template-columns:1fr 1fr 72px 1fr 1fr}
.user-mode .segmented.eight{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
.user-mode .segmented.eight button:not([data-type="expense"]):not([data-type="income"]){display:none!important}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:8px;gap:3px}
.calendar-weekday{text-align:center;color:var(--muted);font-size:11px;padding:7px 0;font-weight:700}
.calendar-day{min-height:43px;border:0;border-radius:11px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;font-size:13px}
.calendar-day.empty-day{pointer-events:none}.calendar-day.today{background:var(--accent-soft);font-weight:800}.calendar-day.selected{outline:2px solid var(--accent)}.calendar-day.has-items{font-weight:800}.calendar-day i{width:5px;height:5px;border-radius:50%;background:var(--accent);font-size:0}.calendar-list-heading{margin-top:22px}
.calendar-item{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px;border-bottom:1px solid var(--line)}.calendar-item:last-child{border-bottom:0}.calendar-item-date{font-size:12px;color:var(--muted);font-weight:700}.calendar-item-main{min-width:0;display:grid;gap:3px}.calendar-item-main strong{overflow-wrap:anywhere}.calendar-item-main small{color:var(--muted);font-size:11px}.calendar-item-actions{display:flex;align-items:center;gap:4px}.calendar-item-actions button{border:0;background:var(--accent-soft);color:var(--accent);border-radius:9px;padding:7px;font-size:11px;font-weight:700}.calendar-item-actions button:last-child{background:transparent;color:var(--red)}.calendar-plan-tag{font-size:10px;color:var(--muted);border:1px solid var(--line);padding:4px 6px;border-radius:999px}
.import-file-picker{display:grid;gap:8px;border:1px dashed var(--line);border-radius:14px;padding:14px;margin:12px 0;position:relative}.import-file-picker span{color:var(--accent);font-weight:800}.import-file-picker b{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.import-file-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.import-summary{display:grid;gap:4px;margin:12px 0;font-size:12px;color:var(--muted)}.import-summary-line b{color:var(--text)}.import-preview{min-width:0}.import-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.import-table{border-collapse:collapse;width:100%;min-width:650px;font-size:12px}.import-table th,.import-table td{border-bottom:1px solid var(--line);padding:8px;vertical-align:top;text-align:left}.import-table th{background:var(--bg);position:sticky;top:0}.import-table td small{display:block;color:var(--muted);max-width:180px;overflow-wrap:anywhere;margin-top:3px}.import-table td small em{display:block;color:var(--orange);font-style:normal;margin-top:4px}.import-table select{max-width:150px;width:100%;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:6px;font-size:12px}.import-table .duplicate-row{opacity:.65}.import-table .warning-row{background:color-mix(in srgb,var(--orange) 6%,var(--card))}
.source-envelope-list{display:grid;border:1px solid var(--line);border-radius:12px;overflow:hidden}.source-envelope-check{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;padding:10px;border-bottom:1px solid var(--line);font-size:12px}.source-envelope-check:last-child{border-bottom:0}.source-envelope-check b{font-size:11px}.source-envelope-check input{width:17px;height:17px}.checkbox-line{display:flex;align-items:center;gap:9px;padding:10px 0;font-size:13px}.checkbox-line input{width:18px;height:18px}.schedule-form,.loan-form{gap:12px}.schedule-form .form-label,.loan-form .form-label{color:var(--text)}.schedule-form .form-label select,.loan-form .form-label select{background:var(--bg)}.loan-row{grid-template-columns:28px minmax(0,1fr) auto}.loan-row .mini{overflow-wrap:anywhere}.top-hint{padding-left:0;padding-right:0}
@media(max-width:430px){.calendar-day{min-height:39px}.calendar-item{grid-template-columns:47px minmax(0,1fr);}.calendar-item-actions,.calendar-plan-tag{grid-column:2;justify-self:start}.import-table{min-width:600px}.loan-row{grid-template-columns:22px minmax(0,1fr)}.loan-row .manage-actions{grid-column:2}}

.topbar-signout{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:8px 10px;font-size:12px;font-weight:700;color:var(--muted)}
.currency-audit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:13px;border-bottom:1px solid var(--line)}.currency-audit-row:last-child{border-bottom:0}.currency-audit-row .mini{margin:4px 0;color:var(--muted);font-size:12px}.audit-flags{display:grid;gap:4px;margin-top:7px}.audit-flags span{font-size:11px;color:var(--orange)}.special-tx-delete{border:0;background:transparent;color:var(--red);font-size:11px;padding:5px 0;text-align:left}
@media(max-width:430px){.currency-audit-row{grid-template-columns:1fr}.currency-audit-row .manage-actions{justify-content:flex-start}}

.user-mode #addAccountBtn{display:none!important}.user-mode #typeFilters .chip:not([data-filter="all"]):not([data-filter="expense"]):not([data-filter="income"]){display:none!important}
.currency-warning{margin:0 0 12px;padding:11px 13px;border-radius:12px;background:color-mix(in srgb,var(--orange) 10%,var(--card));color:var(--text);font-size:12px;line-height:1.45}

.user-mode #screen-home .hero-meta span:nth-child(2),.user-mode #screen-reserves .hero-meta span:first-child{display:none!important}
.user-mode #screen-home .hero-meta span:nth-child(2){display:inline!important}.user-mode #screen-home .hero-meta span:first-child{display:none!important}

/* Email-free family access */
.auth-section{display:grid;gap:9px;padding-top:12px;border-top:1px solid var(--line)}
.auth-section>strong{font-size:14px}
.auth-section .settings-hint{padding:0}
.auth-card .text-btn{margin-top:4px}


/* Finance 2.1 — prevent horizontal panning inside iOS bottom sheets */
html,body { max-width:100%; overflow-x:hidden; }
body.sheet-open { overflow-x:hidden; }
.bottom-sheet { left:0; right:0; transform:none; width:min(720px,100%); max-width:100vw; margin-inline:auto; overflow-x:hidden; }
.sheet-body { width:100%; min-width:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; overscroll-behavior-x:none; }
.sheet-body > * { min-width:0; max-width:100%; }
#settingsSheetBody,.manage-form,.form-label,.manage-list,.manage-row,.source-envelope-list,.source-envelope-check { min-width:0; max-width:100%; }
.manage-form input,.manage-form select,.form-label input,.form-label select { min-width:0; max-width:100%; }
.manage-row { grid-template-columns:32px minmax(0,1fr) auto; }
.manage-main { min-width:0; overflow-wrap:anywhere; }
.manage-actions { min-width:0; max-width:100%; flex-wrap:wrap; justify-content:flex-end; }
.manage-row button { white-space:normal; }
.source-envelope-check { grid-template-columns:22px minmax(0,1fr) auto; }
.source-envelope-check span { min-width:0; overflow-wrap:anywhere; }
.schedule-form,.loan-form { min-width:0; width:100%; }
.closed-accounts-section { margin-top:20px; }
.closed-account-card { opacity:.72; border-style:dashed; }
.closed-account-row { opacity:.78; }
.archived-heading { margin-top:20px; }
.account-status-note,.home-account-closed-note { margin:8px 4px 14px; color:var(--muted); font-size:12px; line-height:1.45; }
.home-account-closed-note { padding-top:9px; border-top:1px solid var(--line); }

/* Finance 2.2 — authentication scrolling and collapsible closed accounts */
.closed-accounts-toggle{font-size:12px;padding:6px 9px;white-space:nowrap}
.closed-accounts-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.closed-accounts-heading button{flex:0 0 auto}
@media(max-height:720px){.auth-card{padding:18px}.auth-screen{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(22px,env(safe-area-inset-bottom))}}

.device-link-section input{width:100%;box-sizing:border-box;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:12px;font-size:16px;color:var(--text)}
.device-link-section .secondary-button{margin-top:0}


/* Finance 2.3 — envelopes, transfers and readable operation history */
.segmented.eight{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
.segmented.eight button{min-width:0;min-height:42px;white-space:normal;line-height:1.15;padding:8px 4px;font-size:11px}
.wallet-heading-actions{display:flex;align-items:center;gap:6px;min-width:0}
#walletHeadingActions{min-width:0}
#envelopeSort{max-width:150px;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:7px 22px 7px 8px;font-size:11px;color:var(--muted)}
#archivedEnvelopesSection{margin-top:18px}
.envelope-card{min-width:0;overflow:hidden}
.envelope-card .envelope-name{overflow-wrap:anywhere}
.operations-overview{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;margin:0 0 12px}
.operations-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:1;min-width:0}
.operations-summary>div{display:grid;gap:4px;min-width:0}
.operations-summary span{font-size:10px;color:var(--muted)}
.operations-summary strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.operations-overview>.link-btn{flex:0 0 auto;font-size:11px;padding:7px 5px}
.income-text{color:var(--green)!important;font-style:normal}
.expense-text{color:var(--red)!important;font-style:normal}
.day-group{margin:0 0 10px;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden}
.day-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:13px 14px;cursor:pointer;list-style:none;color:var(--text);font-size:12px;font-weight:750}
.day-title::-webkit-details-marker{display:none}
.day-title::after{content:'⌄';color:var(--muted);font-size:16px;transition:transform .15s}
.day-group[open]>.day-title::after{transform:rotate(180deg)}
.day-meta{display:flex;align-items:center;gap:5px;margin-left:auto;color:var(--muted);font-size:10px;font-weight:600;white-space:nowrap}
.day-meta b{color:var(--text)}
.day-card{border:0;border-radius:0;box-shadow:none;border-top:1px solid var(--line)}
.day-card .operation-row{padding:10px 12px;grid-template-columns:38px minmax(0,1fr) auto;gap:9px}
.day-card .op-icon{width:36px;height:36px;border-radius:12px;font-size:17px}
.day-card .op-title{font-size:13px}
.day-card .op-sub{font-size:11px}
.day-card .op-amount{font-size:12px;white-space:nowrap}
.code-dialog{position:fixed;z-index:150;inset:0;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.48);backdrop-filter:blur(4px)}
.code-dialog-card{position:relative;width:min(440px,100%);padding:22px;display:grid;gap:12px}
.code-dialog-card h2{padding-right:24px;font-size:19px}
.code-dialog-card p{margin:0;font-size:12px;line-height:1.45}
.code-dialog-card input{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:13px 10px;font:700 15px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;color:var(--text);text-align:center}
.code-dialog-close{position:absolute;top:10px;right:10px;border:0;background:transparent;color:var(--muted);font-size:25px;padding:4px 8px}
.code-dialog-card .secondary-button{margin:0}
@media(max-width:430px){
  .wallet-heading-actions{gap:3px}
  #envelopeSort{max-width:128px;font-size:10px;padding:7px 4px}
  .operations-overview{align-items:flex-start}
  .operations-summary{gap:5px}
  .operations-summary strong{font-size:11px}
  .operations-overview>.link-btn{font-size:10px}
  .day-meta{font-size:9px;gap:3px}
}

.record-author{display:inline-flex;align-items:center;gap:6px;margin-top:5px;font-size:11px;color:var(--muted)}
.record-author i{width:7px;height:7px;border-radius:50%;display:inline-block;background:#8b929e}
.record-author.admin i{background:#3478df}
.record-author.user i{background:#20a36b}

.operation-type-hint{margin:8px 2px 12px;color:var(--muted);font-size:12px;line-height:1.45;min-height:18px}
.user-mode #addEnvelopeBtn{display:none!important}

/* Finance 2.4 — consistent archive hierarchy, dark popovers and horizontal trackpad scrolling */
.settings-title{font-size:13px;font-weight:850;letter-spacing:.025em;text-transform:none;color:var(--text);padding:16px 15px 9px}
.closed-accounts-section .section-heading h2,.archived-heading{font-size:15px;font-weight:800}
.closed-account-card,.closed-account-row{background:color-mix(in srgb,var(--muted) 5%,var(--card));border:1px dashed var(--line)}
#settingsSheetBody select,#settingsSheetBody input,#settingsSheetBody textarea,
.bottom-sheet select,.bottom-sheet input,.bottom-sheet textarea{color:var(--text);color-scheme:inherit}
[data-theme="dark"] select,[data-theme="dark"] option,
[data-theme="dark"] input,[data-theme="dark"] textarea{background-color:var(--bg);color:var(--text)}
[data-theme="dark"] .theme-toggle{background:var(--bg)}
[data-theme="dark"] .theme-toggle button.active{background:var(--card);color:var(--text)}
.segmented,.chip-row,.daily-chart-scroll,.import-table-wrap{overscroll-behavior-x:contain}
.segmented,.chip-row,.daily-chart-scroll,.import-table-wrap{touch-action:pan-x pan-y}
.operation-type-hint{color:var(--muted)}

.archived-envelope-card{opacity:.76;border-style:dashed;background:color-mix(in srgb,var(--muted) 5%,var(--card))}
.envelope-schedule-section{margin:20px 0;padding-top:4px;border-top:1px solid var(--line)}
.envelope-schedule-section .detail-heading{margin-top:16px}
.envelope-schedule-section .manage-form{margin:10px 0 16px}

.goal-editor{padding:14px;margin:10px 0 16px;display:grid;gap:10px;background:var(--card);color:var(--text)}
.goal-editor .form-label{display:grid;gap:6px;color:var(--muted);font-size:12px}
.goal-editor .form-label input{width:100%;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text)}
.goal-editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}

.user-mode #screen-settings .settings-group:not(.user-visible-group){display:none!important}
.user-mode #screen-settings [data-settings-view="scheduled"],
.user-mode #screen-settings [data-settings-view="loans"]{display:none!important}

:root[data-theme="light"]{color-scheme:light}
:root[data-theme="dark"]{color-scheme:dark}
