:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#28313c;background:#f5f7f9;font-size:16px}*{box-sizing:border-box}body{margin:0}.topbar{height:57px;background:#fff;border-bottom:1px solid #e3e7eb;display:flex;align-items:center;gap:27px;padding:0 28px;position:sticky;top:0;z-index:5}.brand{font-weight:750;color:#1e72d4;text-decoration:none;font-size:1.1rem;display:flex;align-items:center;gap:7px}.brand-mark{background:#2674d8;color:#fff;width:22px;height:22px;border-radius:5px;display:grid;place-items:center;font-weight:900}.topbar nav{display:flex;gap:22px;height:100%;align-items:center;white-space:nowrap}.topbar nav a{font-size:.9rem;text-decoration:none;color:#5a6673;height:100%;display:flex;align-items:center;border-bottom:2px solid transparent}.topbar nav a.active{color:#2374d8;border-color:#2374d8;font-weight:650}.mode{margin-left:auto;color:#64717c;font-size:.82rem;white-space:nowrap}.mode i{display:inline-block;width:8px;height:8px;background:#2aae66;border-radius:50%}main{max-width:1280px;margin:auto;padding:25px 34px 44px}.balance-strip{background:#fff;border:1px solid #e3e8ed;border-radius:6px;padding:18px 22px;min-height:112px;position:relative;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 2px #2430400a}.minor{margin:0;color:#78838f;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}.balance-strip h1{margin:4px 0 5px;font-size:2rem;letter-spacing:-.04em;color:#27313a}.plain-button{border:0;background:transparent;padding:0;color:#2674d8;font-size:.86rem;cursor:pointer}.attention{display:flex;gap:8px;align-self:flex-start}.attention button{border:1px solid #f0d5bb;background:#fff7ef;color:#a55a1d;border-radius:4px;padding:7px 9px;text-transform:uppercase;font-size:.7rem;font-weight:700}.account-popover{position:absolute;top:92px;left:20px;background:#fff;z-index:3;width:min(520px,90vw);padding:14px;border:1px solid #dce2e8;border-radius:5px;box-shadow:0 8px 22px #25314326}.account-row{display:flex;justify-content:space-between;padding:7px 3px;border-bottom:1px solid #eef1f4;font-size:.9rem}.account-row:last-child{border:0}.positive{color:#198c53}.negative{color:#d0524e}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:22px 0 13px;gap:15px}.period{display:flex;align-items:center;gap:11px;text-transform:uppercase;font-size:.84rem;letter-spacing:.04em}.period button{border:0;background:transparent;font-size:1.6rem;color:#607080;line-height:1;cursor:pointer}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;border-radius:4px;padding:9px 13px;cursor:pointer}.action{color:#fff;border:1px solid}.expense{background:#e3655d;border-color:#dc584f}.income{background:#319a62;border-color:#278552}.transfer{background:#9fa9b4;border-color:#929da8}.light{color:#667482;background:#fff;border:1px solid #d9e0e6}.actions button:disabled,.segmented button:disabled{opacity:.52;cursor:not-allowed}.summary-row{display:flex;align-items:center;gap:25px;background:#eef3f7;border:1px solid #e1e8ed;border-radius:5px;padding:12px 15px;color:#62707d;font-size:.86rem}.summary-row strong{margin-left:6px;color:#26313c}.summary-row span:first-child strong{color:#198c53}.summary-row span:nth-child(2) strong{color:#d0524e}.summary-row small{margin-left:auto;color:#79848e}.filter-panel{background:#fff;border:1px solid #e0e6eb;border-radius:5px;margin-top:18px;padding:13px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.filter-panel input{height:36px;min-width:260px;flex:1;border:1px solid #ccd5de;border-radius:4px;padding:0 11px;font-size:.9rem}.segmented{display:flex;border:1px solid #d3dbe2;border-radius:4px;overflow:hidden}.segmented button{border:0;border-right:1px solid #d3dbe2;background:#fff;padding:9px 11px;text-transform:uppercase;font-size:.68rem;color:#63717e;cursor:pointer}.segmented button:last-child{border-right:0}.segmented button.selected{background:#edf5ff;color:#2374d8;font-weight:800}.flow{margin-top:18px;border:1px solid #dde4ea;background:#fff;border-radius:5px;overflow:hidden}.flow-head{padding:15px 18px 11px;display:flex;justify-content:space-between;align-items:center}.flow-head h2,.side-card h2{font-size:1.05rem;margin:0;color:#27313c}.flow-head span{font-size:.8rem;color:#7b8792}.legend,.transaction{display:grid;grid-template-columns:110px 130px minmax(260px,1.8fr) minmax(150px,1fr) 95px;gap:14px;align-items:center}.legend{padding:9px 18px;background:#f6f8fa;border-top:1px solid #e6ebef;border-bottom:1px solid #e3e8ed;color:#78848e;text-transform:uppercase;font-size:.66rem;font-weight:700}.transaction{padding:12px 18px;border-bottom:1px solid #edf0f2;font-size:.86rem}.transaction:last-child{border:0}.transaction:hover{background:#fafcff}.date-cell{color:#687581;font-variant-numeric:tabular-nums}.value{font-weight:700;font-variant-numeric:tabular-nums}.details strong{display:block;font-weight:650;color:#2e3944}.details small,.transaction small{display:block;color:#7a8793;margin-top:2px}.project-tag{display:inline-block;margin-top:4px;padding:2px 6px;background:#eef3f7;color:#64717d;border-radius:3px;font-size:.72rem}.status{font-size:.66rem;font-weight:750;text-transform:uppercase;color:#697784}.status.planned{color:#b47a19}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.side-card{background:#fff;border:1px solid #dfe6eb;border-radius:5px;padding:17px}.project-row,.order-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px 0;border-bottom:1px solid #edf0f2;font-size:.86rem}.project-row:last-child,.order-row:last-child{border:0}.project-row span,.order-row span{color:#78848f;font-size:.78rem}.order-row{grid-template-columns:48px 1fr auto}.safety-note{color:#7b8792;font-size:.78rem;text-align:center;margin:28px 0 0}@media(max-width:800px){.topbar{padding:0 14px;gap:16px}.topbar nav{overflow:auto;gap:15px}.topbar nav a:nth-child(n+5),.mode{display:none}main{padding:16px}.balance-strip{min-height:120px}.attention{display:none}.toolbar{align-items:flex-start;flex-direction:column}.summary-row{flex-wrap:wrap;gap:12px}.summary-row small{width:100%;margin:0}.legend{display:none}.transaction{grid-template-columns:86px 100px 1fr}.transaction .contractor,.transaction .account-cell{display:none}.bottom-grid{grid-template-columns:1fr}.filter-panel input{min-width:100%}}

/* Диалог прихода/расхода */
article.transaction { cursor: pointer; }
article.transaction:hover { background: #f4f7fd; }
dialog#opDialog { border: none; border-radius: 16px; padding: 24px; width: min(460px, 92vw); box-shadow: 0 24px 64px rgba(23, 32, 56, .25); }
dialog#opDialog::backdrop { background: rgba(23, 32, 56, .45); }
#opDialog h2 { margin: 0 0 12px; font-size: 18px; }
#opForm { display: grid; gap: 12px; }
#opForm label { display: grid; gap: 4px; font-size: 12px; font-weight: 600; color: #55607a; }
#opForm input, #opForm select { font: inherit; font-weight: 400; color: #172038; border: 1px solid #d5dcea; border-radius: 8px; padding: 8px 10px; background: #fff; width: 100%; box-sizing: border-box; }
#opForm input:focus, #opForm select:focus { outline: 2px solid #2773df33; border-color: #2773df; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-actions { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
.form-spacer { flex: 1; }
.form-error { margin: 0; color: #c02626; font-size: 13px; }
#opDialog button.danger { background: #fceaea; color: #c02626; border: none; border-radius: 8px; padding: 8px 14px; font: inherit; font-weight: 600; cursor: pointer; }
#opDialog button.danger:hover { background: #f8d7d7; }

/* Вкладки */
.view-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 8px 0 12px; }
.view-head h2 { margin: 0; }
.view-note { color: #7a839c; font-size: 13px; }
.settings-hub { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin: 16px 0; }
.setting-card { position: relative; min-height: 116px; text-align: left; background: #fff; border: 1px solid #e3e8ed; border-radius: 10px; padding: 19px 56px 18px 18px; cursor: pointer; font: inherit; box-shadow: 0 1px 2px #2430400a; }
.setting-card:hover { border-color: #b8d5f4; box-shadow: 0 6px 18px #24304016; }
.setting-name { display: block; color: #27313c; font-size: 16px; font-weight: 750; }
.setting-note { display: block; margin-top: 9px; color: #7a839c; font-size: 13px; line-height: 1.35; }
.setting-card .arrow { position: absolute; top: 17px; right: 16px; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #eef3f7; color: #27313c; }
.setting-card:hover .arrow { background: #2773df; color: #fff; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.section-heading .card-section { margin-top: 0; }
.settings-category-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.settings-category-grid h4 { margin: 5px 0 7px; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: #55607a; }
.compact-list { border: 1px solid #e6eaf4; border-radius: 8px; overflow: auto; max-height: 300px; }
.compact-row { width: 100%; display: flex; justify-content: space-between; gap: 12px; padding: 9px 11px; border: 0; border-bottom: 1px solid #f0f3fa; background: #fff; color: #28313c; text-align: left; font: inherit; cursor: pointer; }
.compact-row:last-child { border-bottom: 0; }
.compact-row:hover { background: #f4f7fd; }.compact-row small { color: #7a839c; }
.minor-line { color: #7a839c; font-size: 13px; margin: 0 0 14px; }
.table-wrap { background: #fff; border: 1px solid #e6eaf4; border-radius: 14px; overflow: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.data-table th { text-align: left; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: #7a839c; padding: 12px 16px; border-bottom: 1px solid #e6eaf4; white-space: nowrap; }
.data-table td { padding: 11px 16px; border-bottom: 1px solid #f0f3fa; vertical-align: middle; }
.data-table tr:last-child td { border-bottom: none; }
.data-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.row-list { background: #fff; border: 1px solid #e6eaf4; border-radius: 14px; padding: 4px 0; max-height: 70vh; overflow: auto; }
.row-line { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 16px; border-bottom: 1px solid #f0f3fa; }
.row-line:last-child { border-bottom: none; }
.chip { display: inline-block; padding: 3px 10px; border-radius: 999px; background: #eef1f8; color: #55607a; font-size: 12px; font-weight: 600; white-space: nowrap; }
.chip.positive { background: #e7f5ea; color: #1e7c3a; }
.chip.negative { background: #fceaea; color: #c02626; }
#view-contractors input[type="search"] { border: 1px solid #d5dcea; border-radius: 8px; padding: 7px 10px; font: inherit; width: min(280px, 60vw); }

/* ОПиУ */
.period-fields { display: flex; gap: 10px; align-items: center; }
.period-fields label { display: flex; gap: 6px; align-items: center; font-size: 13px; color: #55607a; }
.period-fields input[type="month"] { border: 1px solid #d5dcea; border-radius: 8px; padding: 6px 8px; font: inherit; }
.pnl-table td:first-child, .pnl-table th:first-child { position: sticky; left: 0; background: #fff; min-width: 220px; }
.pnl-table tr.section-row td { background: #f4f7fd; font-weight: 700; font-size: 13px; letter-spacing: .03em; text-transform: uppercase; color: #55607a; padding: 8px 16px; }
.pnl-table tr.totals-row td { background: #fafbfe; border-top: 2px solid #e6eaf4; }
.pnl-table .muted { color: #c3cadb; }

/* Справочники */
.view-tools { display: flex; gap: 10px; align-items: center; }
.select-line { display: flex; gap: 6px; align-items: center; }
.select-line select { flex: 1; }
.mini-add { width: 34px; height: 38px; border: 1px solid #d5dcea; border-radius: 8px; background: #fff; color: #2773df; font-size: 18px; font-weight: 700; cursor: pointer; }
.mini-add:hover { background: #eef4ff; }
.row-line[data-id] { cursor: pointer; }
.row-line[data-id]:hover { background: #f4f7fd; }
.data-table tbody tr[data-id] { cursor: pointer; }
.data-table tbody tr[data-id]:hover { background: #f4f7fd; }

/* Диалог справочника — те же правила, что для формы операций */
dialog#dictDialog { border: none; border-radius: 16px; padding: 24px; width: min(460px, 92vw); box-shadow: 0 24px 64px rgba(23, 32, 56, .25); }
dialog#dictDialog::backdrop { background: rgba(23, 32, 56, .45); }
#dictDialog h2 { margin: 0 0 12px; font-size: 18px; }
#dictForm { display: grid; gap: 12px; }
#dictForm label { display: grid; gap: 4px; font-size: 12px; font-weight: 600; color: #55607a; }
#dictForm input, #dictForm select { font: inherit; font-weight: 400; color: #172038; border: 1px solid #d5dcea; border-radius: 8px; padding: 8px 10px; background: #fff; width: 100%; box-sizing: border-box; }
#dictForm input:focus, #dictForm select:focus { outline: 2px solid #2773df33; border-color: #2773df; }
#dictDialog button.danger { background: #fceaea; color: #c02626; border: none; border-radius: 8px; padding: 8px 14px; font: inherit; font-weight: 600; cursor: pointer; }
#dictDialog button.danger:hover { background: #f8d7d7; }

/* Переводы */
.value.neutral { color: #55607a; }

/* Принять плановую */
#opDialog button.accept { background: #e7f5ea; color: #1e7c3a; border: none; border-radius: 8px; padding: 8px 14px; font: inherit; font-weight: 600; cursor: pointer; }
#opDialog button.accept:hover { background: #d9eedd; }

/* Переключатель периода */
.period-label { background: none; border: none; cursor: pointer; padding: 0 6px; }
.period-label:hover strong { color: #2773df; }

.flow-tools { display: flex; gap: 12px; align-items: center; }

/* Заказы и реквизиты */
#dictForm textarea { font: inherit; font-weight: 400; color: #172038; border: 1px solid #d5dcea; border-radius: 8px; padding: 8px 10px; background: #fff; width: 100%; box-sizing: border-box; resize: vertical; }
#dictForm textarea:focus { outline: 2px solid #2773df33; border-color: #2773df; }
.data-table tbody tr[data-id] td .chip { pointer-events: none; }

/* Карточка контрагента */
.card-grid { display: grid; grid-template-columns: minmax(280px, 420px) 1fr; gap: 16px; align-items: start; }
.card-line { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid #f0f3fa; }
.card-line:last-child { border-bottom: none; }
.card-line span:first-child { color: #55607a; }
.card-section { margin: 18px 0 8px; }
.row-actions { display: flex; gap: 8px; align-items: center; }
.row-actions button.accept { background: #e7f5ea; color: #1e7c3a; border: none; border-radius: 8px; padding: 5px 10px; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.row-actions button.accept:hover { background: #d9eedd; }
.check-line { flex-direction: row !important; align-items: center; gap: 6px !important; font-weight: 400 !important; }
@media (max-width: 900px) { .card-grid { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .settings-category-grid { grid-template-columns: 1fr; } .section-heading { flex-direction: column; } }
[hidden] { display: none !important; }
.status.overdue { color: #c02626; }
.transaction-overdue { background: #fffafa; box-shadow: inset 3px 0 0 #dc5a54; }
.transaction-overdue:hover { background: #fff3f2; }
.transaction-overdue .status.overdue { display: inline-block; margin-top: 4px; color: #bb332d; font-weight: 800; }
.account-cell { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.transaction-accept { border: 0; border-radius: 6px; padding: 6px 9px; background: #e7f5ea; color: #1e7c3a; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.transaction-accept:hover { background: #d9eedd; }
.transaction-accept:disabled { opacity: .55; cursor: wait; }
.details .transaction-accept { margin-top: 8px; }
.plan-hint { margin: -4px 18px 10px; color: #6f7d89; font-size: .8rem; }
.plan-day { padding: 12px 18px 8px; background: #f7f9fb; border-top: 1px solid #e4e9ee; color: #657482; font-size: .78rem; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }

/* Диалог заказа */
dialog#orderDialog { border: none; border-radius: 16px; padding: 24px; width: min(460px, 92vw); box-shadow: 0 24px 64px rgba(23, 32, 56, .25); }
dialog#orderDialog::backdrop { background: rgba(23, 32, 56, .45); }
#orderDialog h2 { margin: 0 0 12px; font-size: 18px; }
#orderForm { display: grid; gap: 12px; }
#orderForm label { display: grid; gap: 4px; font-size: 12px; font-weight: 600; color: #55607a; }
#orderForm input, #orderForm select { font: inherit; font-weight: 400; color: #172038; border: 1px solid #d5dcea; border-radius: 8px; padding: 8px 10px; background: #fff; width: 100%; box-sizing: border-box; }
#orderForm input:focus, #orderForm select:focus { outline: 2px solid #2773df33; border-color: #2773df; }
#orderPositions { color: #55607a; }

/* Чат контрагента и вкладки карточки */
.chat-card { display: flex; flex-direction: column; min-height: 420px; }
.chat-list { flex: 1; max-height: 560px; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding-right: 4px; }
.chat-msg { background: #f4f7fd; border-radius: 12px; padding: 10px 12px; }
.chat-author { font-weight: 700; font-size: 13px; }
.chat-author small { font-weight: 400; color: #7a839c; margin-left: 6px; }
.chat-text { margin-top: 4px; white-space: pre-line; }
.chat-files { margin-top: 6px; color: #2773df; font-size: 13px; }
.chat-form { display: flex; gap: 8px; margin-top: 12px; }
.chat-form input { flex: 1; font: inherit; border: 1px solid #d5dcea; border-radius: 8px; padding: 8px 10px; }
.chat-send { background: #2773df; color: #fff; border: none; border-radius: 8px; width: 40px; cursor: pointer; font-size: 16px; }
.card-tabs { margin: 16px 0 12px; }
#ctab-money h3.card-section:first-child { margin-top: 0; }

/* Фильтр */
#filterPanel[hidden] { display: none; }
.filter-title { width: 100%; display: flex; gap: 12px; align-items: baseline; }
.filter-title strong { font-size: 1rem; color: #27313c; }
.filter-title span { font-size: .8rem; color: #7b8792; }
.filter-row { display: flex; gap: 8px; flex-wrap: wrap; width: 100%; }
.filter-row label { display: grid; gap: 4px; color: #63717e; font-size: .73rem; font-weight: 700; text-transform: uppercase; }
.filter-row input, .filter-row select { height: 36px; box-sizing: border-box; border: 1px solid #ccd5de; border-radius: 4px; padding: 0 8px; font: inherit; font-size: .9rem; background: #fff; color: #2e3944; flex: 1; min-width: 170px; }
.filter-row label input { min-width: 145px; }
#filterToggle.selected { background: #edf5ff; color: #2374d8; border-color: #9ec5f0; font-weight: 700; }

/* Хаб отчётов как в Финологе */
.hub-title { margin: 4px 0 16px; }
.reports-hub { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.report-card { position: relative; text-align: left; background: #fff; border: 1px solid #e3e8ed; border-radius: 8px; padding: 22px 20px 26px; min-height: 110px; cursor: pointer; font: inherit; box-shadow: 0 1px 2px #2430400a; transition: box-shadow .15s; }
.report-card:hover { box-shadow: 0 6px 18px #2430401f; }
.report-card .rc-name { display: block; font-weight: 750; font-size: 1.02rem; color: #27313c; padding-right: 40px; }
.report-card .sub { display: block; margin-top: 3px; color: #98a3ad; font-size: .95rem; }
.report-card .arrow { position: absolute; top: 20px; right: 18px; width: 34px; height: 34px; border-radius: 50%; background: #eef3f7; color: #27313c; display: grid; place-items: center; font-size: 1rem; }
.report-card:hover .arrow { background: #2773df; color: #fff; }


/* Вход и настройки */
.login-box { max-width: 420px; margin: 60px auto; background: #fff; border: 1px solid #e3e8ed; border-radius: 8px; padding: 28px; }
.login-box h2 { margin: 0 0 16px; }
.login-box form { display: grid; gap: 12px; }
.login-box label { display: grid; gap: 4px; font-size: 13px; color: #55607a; }
.login-box input { border: 1px solid #ccd5de; border-radius: 4px; height: 38px; padding: 0 10px; font-size: .95rem; }
#userBadge { color: #2674d8; font-weight: 600; white-space: nowrap; }
#logoutBtn { white-space: nowrap; }

/* Лента операций: компактная визуальная система, согласованная с Финологом */
.flow { border-color: #edf0f2; border-radius: 0; box-shadow: none; }
.flow-head { display: none; }
.legend,.transaction { grid-template-columns: 30px 132px 120px minmax(300px,1.85fr) 126px minmax(190px,1fr) 108px; gap: 10px; align-items: center; }
.legend { min-height: 48px; padding: 9px 25px; background: #fff; border-top: 1px solid #edf0f2; border-bottom: 1px solid #edf0f2; color: #7f92aa; text-transform: none; font-size: .74rem; font-weight: 500; }
.legend i { display: inline-grid; place-items: center; width: 16px; height: 16px; border: 1px solid #afbac7; border-radius: 50%; font-style: normal; font-size: .68rem; color: #93a1b0; }
.legend input,.row-select input { appearance: none; width: 22px; height: 22px; border: 1px solid #d9dfe5; border-radius: 6px; background: #fff; margin: 0; vertical-align: middle; }
.transaction { min-height: 72px; padding: 10px 25px; border-bottom: 1px solid #eff1f3; font-size: .86rem; }
.transaction:last-child { border: 0; }.transaction:hover { background: #fbfcfe; }.row-select { display: flex; align-items: center; }
.date-cell { color: #242b31; font-size: .94rem; font-variant-numeric: tabular-nums; white-space: nowrap; }.repeat-mark { margin-left: 5px; color: #92a4a4; font-size: 1.05rem; vertical-align: -1px; }
.value { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }.details strong { display: block; font-weight: 500; color: #20262c; font-size: .93rem; line-height: 1.25; }.details small,.transaction small { display: block; color: #8094aa; margin-top: 3px; font-size: .76rem; }
.project-tag { display: inline-block; margin: 3px 0 0 7px; padding: 0; background: none; color: #8094aa; border-radius: 0; font-size: .76rem; }.contractor { color: #252a2f; font-size: .88rem; line-height: 1.25; }.account-cell { display: block; color: #252a2f; font-size: .87rem; line-height: 1.2; }.account-cell small { font-size: .72rem; }
.transaction-state { display: flex; justify-content: flex-start; }.state-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 104px; border-radius: 6px; padding: 9px 10px; text-transform: uppercase; font-size: .67rem; font-weight: 650; line-height: 1; color: #a7aeb5; background: #fafafa; border: 1px solid #e3e3e3; }.state-badge.fact { display: none; }
.transaction-accept { border: 1px solid #38bd68; border-radius: 6px; padding: 8px 11px; background: #f5fff8; color: #0b9e3d; font: inherit; font-size: .73rem; text-transform: uppercase; font-weight: 750; cursor: pointer; }.transaction-accept:hover { background: #e8faed; }
.transaction-overdue { background: #fffafa; box-shadow: inset 3px 0 0 #dc5a54; }.transaction-overdue:hover { background: #fff3f2; }.transaction-overdue .status.overdue { display: block; margin-top: 3px; color: #bb332d; font-weight: 800; }
.plan-day { position: relative; display: flex; align-items: center; justify-content: center; padding: 12px 25px 8px; background: #fff; border: 0; color: #7f92aa; font-size: .77rem; font-weight: 600; text-transform: none; letter-spacing: 0; }.plan-day::before,.plan-day::after { content: ""; height: 1px; background: #edf0f2; flex: 1; }.plan-day::before { margin-right: 13px; }.plan-day::after { margin-left: 13px; }.plan-day:has(+ .transaction .date-cell .repeat-mark) { color: #6f8298; }.plan-day:has(+ .transaction .date-cell .repeat-mark)::before,.plan-day:has(+ .transaction .date-cell .repeat-mark)::after { background: #f2b278; }
.plan-reveal { display: flex; justify-content: center; align-items: center; min-height: 108px; background: #fff; border-bottom: 1px solid #edf0f2; }.plan-reveal:has(button[hidden]) { display: none; }.plan-reveal button { border: 0; background: transparent; color: #386bea; font: inherit; font-size: .82rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; cursor: pointer; padding: 15px 24px; }.plan-reveal button:hover { color: #204fca; text-decoration: underline; }
@media(max-width:800px) { .legend { display: none; }.transaction { grid-template-columns: 28px 105px 1fr 98px; gap: 9px; padding: 10px 14px; }.transaction .contractor,.transaction .account-cell { display: none; }.details { min-width: 0; }.details strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.value { grid-column: 3; grid-row: 1; }.details { grid-column: 3; grid-row: 2; }.transaction-state { grid-column: 4; grid-row: 1 / span 2; }.transaction .date-cell { grid-column: 2; grid-row: 1 / span 2; }.row-select { grid-column: 1; grid-row: 1 / span 2; }.state-badge,.transaction-accept { min-width: 86px; padding: 8px 6px; } }

/* Верхняя рабочая зона: стиль панели Финолога */
.topbar { background: #26313c; border-bottom-color: #3a4652; box-shadow: none; }
.brand,.topbar nav a,.mode { color: #eef4ff; }.brand-mark { background: #5d88ef; }.topbar nav a.active { color: #fff; border-color: #fff; }.topbar nav a:hover { color: #fff; }.mode i { background: #9fe1bb; }#userBadge { color: #fff; }.topbar #logoutBtn { color: #fff; background: transparent; border-color: #9ab6e6; }
.money-hero { width: 100vw; margin: -25px calc(50% - 50vw) 0; padding: 42px 50px 30px; background: linear-gradient(135deg,#577ff4 0%,#5d8cf5 100%); color: #fff; }
.money-hero .balance-strip { min-height: 76px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #fff; align-items: flex-start; }.money-hero .minor { color: #d9e5ff; }.balance-line { display: flex; align-items: center; gap: 22px; }.money-hero .balance-strip h1 { margin: 3px 0 0; color: #fff; font-size: 2.45rem; font-weight: 400; letter-spacing: -.045em; }
.money-hero .accounts-toggle { display: grid; place-items: center; width: 60px; height: 60px; padding: 0 0 9px; border-radius: 50%; background: #4e78e4; color: #fff; font-size: 2.35rem; line-height: 1; }.money-hero .accounts-toggle:hover { background: #426bd4; }.money-hero .account-popover { top: 78px; left: 0; color: #28313c; }
.money-hero .attention { gap: 16px; align-self: flex-start; }.money-hero .attention button { min-height: 60px; padding: 0 22px; border: 0; border-radius: 32px; background: #31538a; color: #fff; font-size: .78rem; letter-spacing: .04em; }.money-hero .attention #chipOverdue { color: #ff7086; }
.money-hero .toolbar { display: block; padding: 18px 0 20px; }.money-hero .period { width: max-content; margin: 0 0 24px; color: #fff; font-weight: 750; }.money-hero .period button { color: #fff; }.money-hero .period-label:hover strong { color: #fff; }.money-hero .actions { gap: 14px; }.money-hero .actions button { border: 0; border-radius: 7px; min-height: 56px; padding: 0 17px; background: #304252; color: #fff; font-size: .78rem; }.money-hero .actions .expense::before { content: "−"; font-size: 2rem; font-weight: 300; vertical-align: -4px; margin-right: 12px; }.money-hero .actions .income::before { content: "+"; font-size: 2rem; font-weight: 300; vertical-align: -4px; margin-right: 12px; }.money-hero .actions .transfer::before { content: "→"; font-size: 2rem; font-weight: 300; vertical-align: -4px; margin-right: 12px; }.money-hero .actions #filterToggle { background: #4d78d9; color: #dce9ff; }.money-hero .actions #exportBtn,.money-hero .actions button:disabled { min-height: auto; padding: 12px 8px; background: transparent; color: #fff; opacity: 1; }.money-hero .actions #exportBtn::before,.money-hero .actions button:disabled::before { display: none; }
.money-hero .summary-row { margin-top: 0; padding: 11px 15px; border: 0; border-radius: 6px; background: rgba(35,65,135,.34); color: #dce7ff; }.money-hero .summary-row strong,.money-hero .summary-row span:first-child strong,.money-hero .summary-row span:nth-child(2) strong,.money-hero .summary-row small { color: #fff; }
.money-hero .filter-panel { margin-top: 28px; padding: 36px 42px 30px; border: 0; border-radius: 7px; background: #fff; color: #20252b; box-shadow: 0 4px 10px rgba(32,65,140,.18); }.money-hero .filter-title strong { font-size: 2rem; color: #050505; }.money-hero .filter-title span { display: none; }.money-hero .segmented { border-color: #c6d6ff; }.money-hero .segmented button { min-width: 104px; border-color: #c6d6ff; color: #2d3036; font-size: .72rem; }.money-hero .segmented button.selected { background: #f5f8ff; color: #3468e9; }.money-hero .filter-row label { color: #252a2f; text-transform: none; font-size: .84rem; font-weight: 500; }.money-hero .filter-row input,.money-hero .filter-row select { border-color: #d9dce2; border-radius: 0; color: #333; }.money-hero #filterApply { min-height: 46px; background: #557df3; }.money-hero #filterApply::before { display: none; }.money-hero #filterReset { min-height: 46px; border: 0; color: #3869e7; background: transparent; }
@media(max-width:800px) { .topbar { background: #26313c; }.money-hero { width: auto; margin: -16px -16px 0; padding: 22px 16px; }.money-hero .balance-strip { min-height: auto; }.money-hero .attention { display: none; }.money-hero .toolbar { gap: 13px; }.money-hero .period { margin-bottom: 14px; }.money-hero .actions { gap: 7px; }.money-hero .actions button { min-height: 44px; padding: 0 10px; }.money-hero .actions button::before { display: none; }.money-hero .filter-panel { padding: 22px 16px; }.money-hero .filter-title strong { font-size: 1.5rem; } }

/* Вертикальная форма фильтра: одно условие — одна понятная строка */
.money-hero .filter-panel { display: grid; grid-template-columns: minmax(0, 940px); justify-content: start; gap: 18px; }.money-hero .filter-title { margin-bottom: 2px; }.money-hero .segmented { width: max-content; }.money-hero .filter-row { width: min(940px, 100%); gap: 10px; }
.money-hero .filter-amount-fields { display: grid; grid-template-columns: 220px 220px; align-items: end; }.money-hero .filter-amount-fields label { display: grid; gap: 6px; }.money-hero .filter-amount-fields input { width: 100%; min-width: 0; height: 46px; }
.money-hero .filter-select-fields { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid #e0e3e7; }.money-hero .filter-select-fields label { display: grid; grid-template-columns: 170px minmax(0, 1fr); align-items: center; min-height: 54px; gap: 14px; padding: 0 0 0 2px; border-bottom: 1px solid #e0e3e7; font-size: .94rem; }.money-hero .filter-select-fields select { width: 100%; min-width: 0; height: 53px; border: 0; border-left: 1px solid #e0e3e7; padding: 0 14px; }
.money-hero .filter-search-fields { display: grid; grid-template-columns: 1fr; gap: 0; }.money-hero .filter-search-fields label { display: grid; grid-template-columns: 170px minmax(0, 1fr); align-items: center; min-height: 54px; gap: 14px; padding-left: 2px; font-size: .94rem; }.money-hero .filter-search-fields input { width: 100%; min-width: 0; height: 46px; }.money-hero .filter-search-fields label:nth-of-type(2),.money-hero .filter-search-fields label:nth-of-type(3) { width: min(510px,100%); }.money-hero .filter-search-fields .action,.money-hero .filter-search-fields .light { justify-self: start; margin: 12px 0 0 172px; }.money-hero .filter-search-fields .light { margin-left: 12px; transform: translateX(184px); margin-top: -46px; }
@media(max-width:800px) { .money-hero .filter-panel { grid-template-columns: 1fr; gap: 14px; }.money-hero .segmented { width: 100%; overflow-x: auto; }.money-hero .filter-amount-fields { grid-template-columns: 1fr 1fr; }.money-hero .filter-select-fields label,.money-hero .filter-search-fields label { grid-template-columns: 1fr; gap: 4px; padding: 8px 0; }.money-hero .filter-select-fields select { border: 1px solid #d9dce2; height: 44px; }.money-hero .filter-search-fields .action,.money-hero .filter-search-fields .light { margin: 9px 0 0; transform: none; }.money-hero .filter-search-fields .light { margin-top: -44px; margin-left: 140px; } }

/* Карточка контрагента в структуре, привычной по Финологу */
.contractor-breadcrumb { display:flex; align-items:center; gap:8px; margin:2px 0 12px; color:#8b96a2; font-size:.8rem; }.contractor-breadcrumb a { color:#3372da; text-decoration:none; }.contractor-breadcrumb a:hover { text-decoration:underline; }
#view-contractor > .view-head { align-items:center; margin-bottom:18px; }#view-contractor > .view-head h2 { font-size:1.65rem; font-weight:500; }.view-tools { display:flex; gap:8px; }.view-tools .light { border-radius:5px; padding:9px 13px; cursor:pointer; }
#view-contractor .card-grid { grid-template-columns:minmax(340px,430px) minmax(400px,1fr); }.card-line { min-height:43px; align-items:center; }.card-line > span:first-child { color:#7c8792; font-size:.8rem; }.card-line strong { text-align:right; font-weight:550; }.card-line-stacked strong { display:flex; flex-direction:column; max-width:68%; }.card-line-stacked small { margin-top:3px; color:#8a96a1; font-weight:400; }.contractor-requisite { margin-top:15px; padding:14px; border:1px solid #e2e7eb; border-radius:5px; display:grid; gap:5px; }.contractor-requisite span { color:#7c8792; font-size:.76rem; text-transform:uppercase; }.contractor-requisite strong { white-space:pre-line; font-size:.84rem; }.empty-requisite { width:100%; margin-top:15px; padding:17px; border:1px dashed #bfcbd6; background:#fafcff; color:#3272d9; cursor:pointer; font-weight:650; }.empty-requisite:hover { background:#f2f7ff; }
#view-contractor .card-tabs { margin-top:22px; margin-bottom:0; border-bottom:0; border-radius:5px 5px 0 0; width:max-content; }.contractor-money-head { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:0 22px; background:#fff; border:1px solid #e1e6ea; border-bottom:0; color:#7e8a96; font-size:.82rem; }.contractor-plan-toggle { text-transform:uppercase; font-weight:750; letter-spacing:.035em; }.contractor-legend { border:1px solid #e1e6ea; }.contractor-operations { background:#fff; border:1px solid #e1e6ea; border-top:0; border-radius:0 0 5px 5px; max-height:900px; overflow:auto; }.contractor-operations .transaction { grid-template-columns:30px 132px 120px minmax(280px,1.8fr) 126px minmax(150px,1fr) 0; }.contractor-operations .contractor { display:none; }.contractor-operations .transaction:last-child { border-bottom:0; }.contractor-legend { grid-template-columns:30px 132px 120px minmax(280px,1.8fr) 126px minmax(150px,1fr) 0; }.chat-files a { color:#2773df; text-decoration:none; }.chat-files a:hover { text-decoration:underline; }
@media(max-width:900px) { #view-contractor .card-grid { grid-template-columns:1fr; }.contractor-money-head { align-items:flex-start; flex-direction:column; padding:14px; }.contractor-operations { max-height:none; }.contractor-operations .transaction { grid-template-columns:28px 105px 1fr 98px; }.contractor-operations .account-cell { display:none; } }
.contractor-files-section { margin:18px 0 6px; }
.file-upload-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:12px; }.file-upload-row label { display:inline-flex; align-items:center; min-height:38px; margin:0; cursor:pointer; }.file-upload-row label.disabled { opacity:.55; cursor:not-allowed; }.file-upload-row label.uploading { opacity:.65; pointer-events:none; }.file-upload-row .minor-line { margin:0; }.drive-connected { border-color:#9bd6b2!important; color:#187746!important; background:#f2fff7!important; }.success { color:#187746!important; background:#f2fff7!important; border-color:#b6e4c8!important; }

/* Выбор компании и создание отдельного бизнеса */
.businesses-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin:12px 0 24px; }
.businesses-head h1 { margin:0 0 6px; font-size:1.7rem; }
.businesses-head p { margin:0; color:#718094; }
.business-add { border:0; border-radius:6px; padding:12px 17px; background:#346ee7; color:#fff; font:inherit; font-weight:700; cursor:pointer; white-space:nowrap; }
.business-add:hover { background:#285ccd; }
.businesses-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.business-card { width:100%; min-height:125px; display:flex; align-items:center; gap:16px; text-align:left; border:1px solid #dce5ef; border-radius:8px; padding:20px; background:#fff; box-shadow:0 2px 7px #2430400a; cursor:pointer; font:inherit; }
.business-card:hover { border-color:#78a5ef; box-shadow:0 7px 20px #24304020; }
.business-card-icon { width:54px; height:54px; flex:none; display:grid; place-items:center; border-radius:11px; background:#edf3ff; color:#386feb; font-size:1.5rem; font-weight:750; }
.business-card-main { display:grid; gap:6px; min-width:0; }
.business-card-main strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#253342; font-size:1.1rem; }
.business-card-main small { color:#8593a4; }
.business-card-balance { margin-left:auto; white-space:nowrap; font-size:.85rem; color:#4c5c6e; }
.business-card-arrow { color:#527bea; font-size:1.4rem; }
#businessDialog { width:min(480px,calc(100vw - 28px)); border:0; border-radius:12px; padding:26px; box-shadow:0 20px 55px #1720384d; }
#businessDialog::backdrop { background:#17203880; }
#businessDialog h2 { margin:0 0 10px; }
#businessForm { display:grid; gap:15px; }
#businessForm label { display:grid; gap:6px; font-size:.88rem; color:#4d5d70; }
#businessForm input,#businessForm select { width:100%; height:43px; border:1px solid #cbd6e1; border-radius:5px; padding:0 11px; font:inherit; color:#273443; background:#fff; }
#businessForm .form-actions button { min-height:40px; padding:0 15px; border-radius:5px; cursor:pointer; }
.topbar #switchBusiness { color:#fff; background:transparent; border-color:#9ab6e6; padding:6px 10px; border-radius:4px; cursor:pointer; white-space:nowrap; }
.topbar .user-info { margin-left:auto; color:#eef4ff; font-size:.82rem; font-weight:600; white-space:nowrap; }
@media(max-width:800px) { .businesses-head { flex-direction:column; } .businesses-list { grid-template-columns:1fr; } .business-card { flex-wrap:wrap; } .business-card-balance { margin-left:0; } }
@media(max-width:800px) { .topbar .user-info { display:none; } }

/* Единый фирменный знак в шапке и favicon. */
/* Общая лента: одинаковое чтение плана и факта, без лишних цветных полос. */
.transaction .value.negative { color:#9146ff; }
.transaction:has(.state-badge.planned,.transaction-accept) .value.positive { color:#80ca98; }
.transaction:has(.state-badge.planned,.transaction-accept) .value.negative { color:#b698dd; }
.transaction-overdue,.transaction-overdue:hover { background:#fff; box-shadow:none; }
.transaction-overdue:hover { background:#f8fafc; }
.transaction-overdue .status.overdue { font-size:.68rem; font-weight:500; color:#b77831; text-transform:none; }
.plan-day:has(+ .transaction .date-cell .repeat-mark)::before,.plan-day:has(+ .transaction .date-cell .repeat-mark)::after { background:#edf0f2; }
.plan-day.is-today,.plan-day.is-today:has(+ .transaction .date-cell .repeat-mark) { color:#ff8500; }
.plan-day.is-today::before,.plan-day.is-today::after,.plan-day.is-today:has(+ .transaction .date-cell .repeat-mark)::before,.plan-day.is-today:has(+ .transaction .date-cell .repeat-mark)::after { background:#ff8500; }
.transaction-feedback { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:14px; padding:20px; border-top:1px solid #edf0f2; }
.transaction-feedback button { padding:12px 20px; border:1px solid #d6e0f5; border-radius:5px; background:#fff; color:#416fea; font:inherit; cursor:pointer; }
.transaction-feedback button:disabled { opacity:.5; cursor:wait; }
#periodDialog { width:min(480px,calc(100vw - 32px)); border:1px solid #dce4ef; border-radius:10px; padding:24px; }
#periodDialog::backdrop { background:#16233380; }
#periodForm label { display:grid; gap:8px; }
#periodForm input { padding:12px; font:inherit; border:1px solid #d0dbea; border-radius:5px; }
#periodForm button { padding:10px 14px; font:inherit; cursor:pointer; border:1px solid #d0dbea; border-radius:5px; background:#f7f9ff; color:#3466dc; }
#transactionError { flex-basis:100%; color:#b33232; text-align:center; }
@media(max-width:800px) {
  .topbar { height:auto; flex-wrap:wrap; padding:12px 16px 0; gap:8px 16px; }
  .topbar nav { order:3; flex:1 0 100%; display:flex; overflow-x:auto; gap:22px; }
  .topbar nav a:nth-child(n+5) { display:block; }
  .topbar nav a { flex-shrink:0; padding:14px 0; }
  .money-hero .balance-strip { flex-wrap:wrap; gap:16px; }
  .money-hero .attention { display:flex; flex-wrap:wrap; gap:8px; }
  .money-hero .attention button { min-height:36px; padding:0 15px; }
  .transaction { grid-template-columns:100px minmax(0,1fr) 100px; gap:7px 12px; padding:16px; }
  .transaction .row-select { display:none; }
  .transaction .date-cell { grid-column:1; grid-row:1; }
  .transaction .value { grid-column:2; grid-row:1; }
  .transaction .details { grid-column:1 / 3; grid-row:2; }
  .transaction .details strong { white-space:normal; overflow-wrap:anywhere; }
  .transaction .transaction-state { grid-column:3; grid-row:1 / 3; justify-content:flex-end; }
  .transaction .contractor { display:block; grid-column:1 / 3; grid-row:3; font-size:.8rem; color:#60778e; }
  .transaction .account-cell { display:block; grid-column:3; grid-row:3; text-align:right; font-size:.8rem; }
}
@media(max-width:420px) {
  .transaction { grid-template-columns:90px minmax(0,1fr) 88px; padding:12px; gap:7px; }
  .money-hero .balance-strip h1 { font-size:2rem; }
  .money-hero .accounts-toggle { width:44px; height:44px; }
}
.brand-mark { width:30px; height:30px; flex:0 0 30px; display:block; }

.money-hero .accounts-toggle { padding:0; }
.accounts-toggle svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; transition:transform .18s ease; }
.accounts-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.accounts-toggle:focus-visible { outline:3px solid #fff; outline-offset:3px; }

.audit-section { margin-top:24px; padding:20px; background:#fff; border:1px solid #e1e7ed; border-radius:8px; }
.audit-section .section-heading { margin-bottom:14px; }
.audit-filters { display:flex; align-items:end; gap:10px; flex-wrap:wrap; padding:14px; margin-bottom:16px; background:#f5f8fc; border:1px solid #e7edf4; border-radius:7px; }
.audit-filters label { display:grid; gap:5px; min-width:170px; color:#6e7e90; font-size:.78rem; }
.audit-filters input,.audit-filters select { height:38px; padding:0 10px; border:1px solid #d5dfe9; border-radius:5px; background:#fff; color:#293847; font:inherit; }
.audit-filters button { min-height:38px; padding:0 13px; border-radius:5px; cursor:pointer; }
.audit-timeline { max-height:650px; overflow:auto; }
.audit-day { margin:0 0 16px; }
.audit-day h4 { display:flex; align-items:center; gap:12px; margin:0; padding:9px 2px; color:#71849a; font-size:.88rem; font-weight:650; }
.audit-day h4::before,.audit-day h4::after { content:""; flex:1; height:1px; background:#e8edf2; }
.audit-day-entries { border:1px solid #e5ebf1; border-radius:7px; overflow:hidden; }
.audit-entry { padding:13px 16px 11px; border-bottom:1px solid #edf1f5; }
.audit-entry:last-child { border-bottom:0; }
.audit-event-line { display:flex; align-items:baseline; gap:12px; }
.audit-event-line strong { color:#283848; font-size:.92rem; font-weight:600; }
.audit-event-line time { margin-left:auto; color:#8996a4; font-size:.78rem; font-variant-numeric:tabular-nums; }
.audit-author { display:block; margin-top:4px; color:#8996a4; font-size:.76rem; }
.audit-details { margin-top:6px; color:#566a7f; font-size:.82rem; }
.audit-details summary { width:max-content; color:#3975dd; cursor:pointer; }
.audit-details p { margin:7px 0 0; padding-left:10px; border-left:2px solid #d9e5f7; white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:700px) { .audit-section { padding:14px; }.audit-filters { align-items:stretch; }.audit-filters label { flex:1 1 145px; min-width:0; }.audit-event-line { align-items:flex-start; }.audit-event-line strong { flex:1; }.audit-event-line time { margin-left:0; } }

/* Focused settings and at-a-glance report/list summaries. */
.settings-prompt { margin:18px 0 0; padding:22px; color:#657991; background:#fff; border:1px solid #dde6f0; border-radius:8px; }
.setting-card.selected { border-color:#4d7df1; background:#f2f6ff; box-shadow:0 0 0 2px #dce7ff inset; }
#view-settings > .side-card, #view-settings > #usersAdmin, #view-settings > .audit-section { margin-top:20px; }
.report-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; margin:12px 0 24px; }
.report-metric { min-width:0; padding:18px 20px; background:#fff; border:1px solid #dfe7f0; border-radius:8px; box-shadow:0 2px 8px #20365308; }
.report-metric span { display:block; color:#71839a; font-size:.82rem; }
.report-metric strong { display:block; margin-top:6px; color:#26384b; font-size:1.55rem; line-height:1.25; font-variant-numeric:tabular-nums; }
.report-metric strong.positive { color:#158750; }.report-metric strong.negative { color:#bf4b50; }
.report-metric small { display:block; margin-top:5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#71839a; }
.list-tools { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:14px 0; }
.list-tools input[type="search"] { flex:1 1 300px; max-width:470px; min-height:42px; padding:8px 12px; border:1px solid #d6e1ec; border-radius:6px; background:#fff; font:inherit; }
.list-tools .segmented { margin:0; }.list-tools .segmented button { min-height:38px; }
.list-summary { margin:12px 0; color:#63778d; font-size:.9rem; }
.list-tools .list-summary { margin:0 0 0 auto; }
.check-filter { display:inline-flex; gap:8px; align-items:center; min-height:42px; color:#34495f; white-space:nowrap; cursor:pointer; }
.check-filter input { width:17px; height:17px; accent-color:#4d7df1; }
.empty { color:#75869a; }
.dialog-hint { margin:0 0 15px; color:#708197; font-size:.84rem; line-height:1.45; }
#opRepeatHint { margin:0 0 12px; padding:9px 11px; background:#f1f6ff; border-left:3px solid #5b84eb; }
dialog#opDialog { width:min(580px,94vw); max-height:88vh; overflow:auto; }
#opDialog .form-actions { position:sticky; bottom:-24px; z-index:1; margin:16px -24px -24px; padding:12px 24px 20px; background:#fff; box-shadow:0 -8px 20px #26384b0d; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline:3px solid #85a9ff; outline-offset:2px; }
@media(max-width:700px) { .report-summary { grid-template-columns:1fr 1fr; }.list-tools .list-summary { margin-left:0; width:100%; }.list-tools .segmented { width:100%; overflow-x:auto; }.list-tools .segmented button { white-space:nowrap; } }
@media(max-width:420px) { .report-summary { grid-template-columns:1fr; } }

/* Transfer form: one readable column, with the money flow made explicit. */
dialog#trDialog { width:min(520px,calc(100vw - 28px)); max-height:90dvh; overflow-y:auto; padding:22px; border:0; border-radius:14px; box-shadow:0 24px 64px #17203840; color:#273649; }
dialog#trDialog::backdrop { background:#17203880; }
#trForm { display:grid; gap:10px; }
#trForm h2 { margin:0; font-size:1.35rem; line-height:1.25; }
#trForm .dialog-hint { margin:-5px 0 1px; }
#trForm .field-row { grid-template-columns:1fr; gap:10px; }
#trForm label { display:grid; gap:6px; color:#526781; font-size:.84rem; font-weight:650; }
#trForm input,#trForm select { display:block; width:100%; min-height:44px; padding:9px 12px; border:1px solid #ced9e5; border-radius:7px; background:#fff; color:#26384b; font:inherit; font-weight:400; }
#trForm input:focus,#trForm select:focus { border-color:#4e7fe8; outline:3px solid #83a6fa4d; }
.transfer-account-fields { display:grid; gap:0; padding:12px; background:#f5f8fd; border:1px solid #e0e9f4; border-radius:9px; }
.transfer-flow-arrow { justify-self:center; display:grid; place-items:center; width:28px; height:28px; margin:4px 0; border-radius:50%; background:#e4edfc; color:#4377d7; font-size:1.18rem; font-weight:800; }
#trForm .form-actions { position:sticky; bottom:-22px; z-index:1; gap:12px; flex-wrap:wrap; margin:0 -22px -22px; padding:10px 22px 14px; border-top:1px solid #e8edf4; background:#fff; box-shadow:0 -8px 20px #26384b0d; }
#trForm .form-actions button { min-height:40px; padding:8px 14px; border-radius:6px; cursor:pointer; }
@media(max-width:480px) { dialog#trDialog { padding:20px; }.transfer-account-fields { padding:12px; }#trForm .form-actions { bottom:-20px; margin:0 -20px -20px; padding:12px 20px 16px; } }
