:root {
  --navy: #292b2f;
  --navy-deep: #0e0f11;
  --teal: #f52319;
  --teal-dark: #ce1b14;
  --mint: #fff0ef;
  --ink: #202124;
  --muted: #74767b;
  --line: #e5e5e6;
  --paper: #ffffff;
  --canvas: #f6f6f6;
  --danger: #d93025;
  --danger-soft: #fff1f2;
  --warning: #f3a83a;
  --positive: #168567;
  --shadow: 0 12px 32px rgba(17, 18, 20, .07);
}

.debt-amount strong, .debt-amount small, .debt-partial-note { display: block; }
.debt-amount small, .debt-partial-note { margin-top: 3px; color: #7b8993; font-size: 10px; font-weight: 500; }
.debt-partial-note { color: #a26a29; }
.bank-import-preview { max-height: min(46vh, 440px); margin-top: 16px; overflow: auto; border: 1px solid #e3eaed; border-radius: 7px; }.bank-import-preview table { min-width: 650px; }.bank-import-preview td { vertical-align: top; }.bank-import-preview .operation-name { max-width: 320px; white-space: normal; }

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--canvas); }
body { margin: 0; color: var(--ink); background: var(--canvas); font-family: Aptos, "Segoe UI", Arial, sans-serif; font-size: 14px; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }

.login-screen { display: grid; min-height: 100vh; place-items: center; position: fixed; z-index: 40; inset: 0; overflow: auto; padding: 42px 24px; background: #fff; }
.login-screen[hidden] { display: none; }
.login-card { width: min(430px, 100%); padding: 34px; border: 1px solid #e4e4e6; border-radius: 13px; color: #202124; background: #fff; box-shadow: 0 24px 70px rgba(17,18,20,.1); }
.login-logo-crop, .brand-logo-crop { position: relative; overflow: hidden; background: transparent; }
.login-logo-crop { width: 174px; height: 76px; margin-bottom: 27px; }
.login-logo-crop img, .brand-logo-crop img { position: absolute; display: block; max-width: none; height: auto; }
.login-logo-crop img { width: 224px; left: -27px; top: -74px; }
.login-badge { display: inline-flex; margin-bottom: 11px; padding: 5px 8px; border-radius: 4px; color: #bc251d; background: #fff0ef; font-size: 10px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.login-card h1 { max-width: 330px; color: #1d1e21; font-size: 25px; line-height: 1.18; }
.login-card > p { margin: 9px 0 24px; color: #707278; font-size: 13px; line-height: 1.5; }
.login-card form { display: grid; gap: 15px; }
.login-card label { color: #65676d; font-size: 11px; }
.login-card input { height: 41px; border-color: #dcdde0; color: #202124; background: #fff; }
.login-card input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(245,35,25,.16); }
.password-control { position: relative; display: block; margin-top: 6px; }
.password-control input { width: 100%; padding-right: 42px; }
.password-toggle { position: absolute; top: 50%; right: 7px; display: grid; width: 29px; height: 29px; place-items: center; padding: 0; border: 0; border-radius: 5px; color: #6f8290; background: transparent; transform: translateY(-50%); }
.password-toggle:hover, .password-toggle:focus-visible { color: var(--teal); background: #fff1f0; outline: none; }
.password-toggle svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-toggle .eye-closed { display: none; }
.password-toggle.is-visible .eye-open { display: none; }
.password-toggle.is-visible .eye-closed { display: block; }
.login-button { display: flex; align-items: center; justify-content: space-between; height: 43px; margin-top: 3px; padding: 0 15px; border: 0; border-radius: 6px; color: white; background: var(--teal); font-size: 13px; font-weight: 750; transition: .18s ease; }.login-button:hover { background: var(--teal-dark); transform: translateY(-1px); }.login-button span { font-size: 19px; font-weight: 400; }.login-secondary { height: 40px; border: 1px solid #d7dfe3; border-radius: 6px; color: #3f596b; background: #fff; font-size: 12px; font-weight: 700; }.login-secondary:hover { border-color: #ef958e; color: var(--teal); background: #fff8f7; }
.login-error { margin: -4px 0 0; color: #ff8b85; font-size: 11px; }
.demo-access { display: grid; gap: 3px; margin-top: 23px; padding-top: 17px; border-top: 1px solid #ececef; color: #777a80; font-size: 11px; line-height: 1.55; }.demo-access strong { color: #37393e; font-size: 11px; }.demo-access b { color: #bd261e; font-weight: 700; }.login-footer { position: fixed; bottom: 20px; margin: 0; color: #8a8c91; font-size: 10px; letter-spacing: .04em; }

.app-shell { display: grid; min-height: 100vh; grid-template-columns: 248px minmax(0, 1fr); transition: grid-template-columns .24s ease; }.app-shell.sidebar-collapsed { grid-template-columns: 64px minmax(0, 1fr); }
.sidebar { display: flex; position: sticky; z-index: 5; top: 0; flex-direction: column; height: 100vh; padding: 26px 16px 18px; border-right: 1px solid #dfe4e7; color: #495d68; background: #fff; box-shadow: 8px 0 24px rgba(26,42,53,.06); transition: padding .24s ease; }
.sidebar-toggle { display: grid; position: absolute; z-index: 2; top: 111px; right: -13px; width: 26px; height: 26px; place-items: center; padding: 0; border: 1px solid #d7dfe3; border-radius: 50%; color: #4f626c; background: #fff; box-shadow: 0 3px 9px rgba(27,41,51,.11); transition: .2s ease; }.sidebar-toggle:hover { border-color: #ef958e; color: var(--teal); }.sidebar-toggle svg { display: block; width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transform: rotate(180deg); transition: transform .24s ease; }
.brand { display: flex; align-items: center; gap: 10px; margin: 0 9px 40px; color: #202124; font-size: 19px; font-weight: 800; letter-spacing: .05em; }
.brand small, .admin-card small { display: block; margin-top: 2px; color: #81909a; font-size: 10px; font-weight: 500; letter-spacing: .02em; }
.brand-logo-crop { width: 74px; height: 33px; flex: 0 0 74px; border-radius: 4px; background: transparent; }.brand-logo-crop img { width: 97.4px; left: -11.7px; top: -32.1px; }
.brand-logo-dark { display: none !important; }
.main-nav { display: grid; gap: 4px; }
.nav-link { display: flex; align-items: center; gap: 13px; height: 44px; padding: 0 12px; border-radius: 7px; color: #566975; font-size: 14px; font-weight: 600; transition: .2s ease; }
.nav-link .nav-icon { display: grid; width: 20px; height: 20px; flex: 0 0 20px; place-items: center; color: #6f8795; }.nav-link .nav-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }.nav-link .nav-label { white-space: nowrap; }
.nav-link:hover { color: #263944; background: #f4f6f7; }
.nav-link.active { color: #bd281f; background: #fff0ef; }
.nav-link.active .nav-icon { color: var(--teal); }
.sidebar-foot { margin-top: auto; border-top: 1px solid #e3e8eb; padding-top: 17px; }
.admin-card { display: flex; align-items: center; gap: 9px; padding: 8px; border-radius: 8px; color: #334852; font-size: 12px; }
.avatar { display: grid; width: 31px; height: 31px; flex: 0 0 31px; place-items: center; border-radius: 50%; color: white; background: #c62f27; font-size: 10px; font-weight: 700; }
.admin-card strong { display: block; }
.icon-button { display: grid; width: 30px; height: 30px; place-items: center; margin-left: auto; padding: 0; border: 1px solid transparent; border-radius: 7px; color: #617b8b; background: transparent; }.icon-button:hover { border-color: #ffd0cb; color: #fb2112; background: #fff2f0; }.icon-button svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.settings-gear-icon { display: block; width: 18px; height: 18px; object-fit: contain; opacity: .78; transition: filter .2s ease, opacity .2s ease; }.nav-link .settings-gear-icon { width: 19px; height: 19px; }.nav-link.active .settings-gear-icon, .icon-button:hover .settings-gear-icon { filter: invert(24%) sepia(96%) saturate(3549%) hue-rotate(352deg) brightness(101%) contrast(98%); opacity: 1; }
.logout-button { display: grid; width: 25px; height: 25px; place-items: center; padding: 0; border: 0; border-radius: 4px; color: #71848f; background: transparent; font-size: 17px; }.logout-button:hover { color: var(--teal); background: #fff0ef; }
.sidebar-collapsed .sidebar { padding-right: 8px; padding-left: 8px; }.sidebar-collapsed .brand { justify-content: center; margin-right: 0; margin-left: 0; }.sidebar-collapsed .brand-logo-crop { width: 48px; height: 22px; flex-basis: 48px; }.sidebar-collapsed .brand-logo-crop img { width: 63.2px; left: -7.6px; top: -20.9px; }.sidebar-collapsed .brand-copy, .sidebar-collapsed .nav-label, .sidebar-collapsed .admin-copy, .sidebar-collapsed .icon-button, .sidebar-collapsed .logout-button { display: none; }.sidebar-collapsed .nav-link { justify-content: center; padding-right: 0; padding-left: 0; }.sidebar-collapsed .sidebar-foot { padding-top: 14px; }.sidebar-collapsed .admin-card { justify-content: center; padding-right: 0; padding-left: 0; }.sidebar-collapsed .sidebar-toggle svg { transform: rotate(0); }

.main-content { padding: 0 38px 44px; overflow: hidden; }
.topbar { display: flex; align-items: center; justify-content: space-between; min-height: 99px; border-bottom: 1px solid var(--line); }
.crumb { display: flex; flex-direction: column; gap: 4px; }
.crumb span { color: #82909a; font-size: 12px; }
h1, h2, p { margin: 0; }
h1, h2, .brand { font-family: "Aptos Display", Aptos, "Segoe UI", Arial, sans-serif; }
h1 { color: #162e43; font-size: 24px; line-height: 1.1; letter-spacing: -.03em; }
h2 { color: #1a3144; font-size: 18px; line-height: 1.25; letter-spacing: -.025em; }
.topbar-actions, .modal-actions { display: flex; align-items: center; gap: 10px; }.mobile-nav-button, .mobile-nav-overlay { display: none; }
.primary-button, .secondary-button, .outline-button, .danger-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 0 14px; border: 1px solid transparent; border-radius: 6px; font-size: 13px; font-weight: 650; transition: .18s ease; }
.primary-button { color: #fff; background: var(--teal); box-shadow: 0 5px 12px rgba(245,35,25,.2); }
.primary-button span { font-size: 17px; font-weight: 400; }
.primary-button:hover { background: var(--teal-dark); transform: translateY(-1px); }
.outline-button { border-color: #d7e1e5; color: #536474; background: white; }
.outline-button:hover { border-color: #a7bbc5; background: #fbfcfc; }
.secondary-button { color: #9e2822; background: #fff0ef; }
.secondary-button:hover { color: white; background: var(--teal); }
.danger-button { color: white; background: var(--danger); }

.view { display: none; padding-top: 27px; }
.view.active-view { display: block; }
.filter-panel { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 76px; margin-bottom: 22px; padding: 13px 17px; border: 1px solid #dce8ea; border-radius: 9px; background: linear-gradient(100deg, #fafdfe, #eff8f6); }
.filter-copy { display: grid; gap: 4px; }
.filter-copy strong { color: #334b5c; font-size: 13px; }
.filter-copy span { color: #7c8d97; font-size: 12px; }
.filter-controls { display: grid; grid-template-columns: repeat(5, 140px); align-items: end; gap: 9px; }
label { display: grid; gap: 5px; color: #667784; font-size: 11px; font-weight: 600; }
input, select { width: 100%; height: 36px; padding: 0 10px; border: 1px solid #d7e1e5; border-radius: 5px; outline: none; color: #334856; background: white; font-size: 12px; }
input:focus, select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(245,35,25,.12); }
.filter-controls label, .filter-controls .date-field { width: 140px; min-width: 0; }
.filter-controls #dashboardObjectFilter { min-width: 0; }
.filter-controls .secondary-button { margin-bottom: 0; }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin-bottom: 21px; }
.metric-card { min-height: 121px; padding: 17px 18px; border: 1px solid var(--line); border-radius: 9px; background: var(--paper); box-shadow: 0 3px 12px rgba(19,60,91,.025); }
.metric-card-action { position: relative; width: 100%; border: 1px solid var(--line); color: inherit; text-align: left; cursor: pointer; }.metric-card-action:hover { border-color: #f1b1ad; box-shadow: 0 7px 17px rgba(201,48,41,.1); transform: translateY(-1px); }.metric-card-action:focus-visible { outline: 3px solid rgba(245,35,25,.2); outline-offset: 2px; }
.metric-card .metric-label { color: #798994; font-size: 12px; font-weight: 600; }
.metric-card .metric-value { margin-top: 9px; color: #1c3347; font-size: 23px; font-weight: 750; letter-spacing: -.04em; }
.metric-card .metric-note { display: flex; align-items: center; gap: 5px; margin-top: 9px; color: #8998a1; font-size: 11px; }
.metric-card .trend-up { color: var(--positive); font-weight: 700; }
.metric-card .trend-down { color: var(--danger); font-weight: 700; }
.metric-icon { float: right; display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; color: var(--teal); background: var(--mint); }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.57fr) minmax(310px, .88fr); gap: 17px; margin-bottom: 18px; }.empty-chart { display: grid; min-height: 185px; place-items: center; margin: 0; color: #8a98a1; font-size: 12px; text-align: center; }.debt-alerts-panel { margin-bottom: 18px; }.debt-alert { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 12px 20px; padding: 12px 14px; border: 1px solid #f2cfab; border-radius: 7px; background: #fffaf5; font-size: 12px; }.debt-alert.overdue { border-color: #f0c1c4; background: #fff5f5; }.debt-alert > div { display: grid; gap: 3px; }.debt-alert strong { color: #384e5d; }.debt-alert span { color: #7e8e98; }.debt-alert > div:last-child { text-align: right; }.debt-alert b { color: #a65931; }.debt-alert.overdue b, .debt-alert.overdue > div:last-child span { color: #ba3945; font-weight: 700; }
.panel { border: 1px solid var(--line); border-radius: 9px; background: white; box-shadow: var(--shadow); }
.panel-heading { display: flex; align-items: start; justify-content: space-between; padding: 19px 20px 0; }
.eyebrow { display: block; margin-bottom: 4px; color: #7d8c98; font-size: 10px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.panel-heading a { color: var(--teal-dark); font-size: 12px; font-weight: 650; }
.period-caption { padding-top: 8px; color: #80909b; font-size: 11px; }
.chart-panel { min-height: 318px; }
.chart-legend { display: flex; gap: 16px; margin: 14px 20px 0; color: #74828c; font-size: 11px; }
.chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.legend-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; }
.legend-dot.income { background: var(--positive); }.legend-dot.expense { background: #f0a43a; }
.bar-chart { display: grid; grid-template-columns: repeat(6, 1fr); align-items: end; gap: 17px; height: 205px; margin: 10px 20px 0; padding: 20px 12px 25px; border-bottom: 1px solid #edf1f3; background: repeating-linear-gradient(to bottom, transparent, transparent 47px, #edf2f3 48px); }
.bar-group { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 4px; height: 100%; position: relative; }
.bar { min-height: 3px; border-radius: 3px 3px 0 0; }.bar.income { background: var(--positive); }.bar.expense { background: #f1b15a; }
.bar-label { position: absolute; bottom: -19px; left: 50%; transform: translateX(-50%); color: #87949d; font-size: 10px; white-space: nowrap; }
.object-summary { min-height: 318px; }
.budget-row { padding: 16px 20px; border-bottom: 1px solid #edf0f2; }.budget-row:last-child { border-bottom: 0; }
.budget-title { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 8px; color: #405261; font-size: 12px; font-weight: 650; }.budget-title span:last-child { color: #7e8e99; font-size: 11px; font-weight: 500; white-space: nowrap; }
.budget-track { height: 6px; overflow: hidden; border-radius: 5px; background: #edf2f3; }.budget-fill { height: 100%; border-radius: inherit; background: var(--positive); }.budget-fill.warning { background: var(--warning); }.budget-fill.over { background: var(--danger); }
.budget-caption { display: flex; justify-content: space-between; margin-top: 6px; color: #84939d; font-size: 10px; }.budget-caption .over-text { color: var(--danger); font-weight: 700; }

.recent-panel { margin-top: 0; padding-bottom: 8px; }.table-wrap { overflow-x: auto; padding: 16px 20px; }table { width: 100%; border-collapse: collapse; }th { padding: 0 8px 10px; border-bottom: 1px solid var(--line); color: #80909b; font-size: 10px; font-weight: 750; letter-spacing: .06em; text-align: left; text-transform: uppercase; white-space: nowrap; }td { padding: 12px 8px; border-bottom: 1px solid #eff2f3; color: #536574; font-size: 12px; }tbody tr:last-child td { border-bottom: 0; }.money-head, .money { text-align: right; }.money { color: #263e50; font-weight: 700; white-space: nowrap; }.money.income-text { color: var(--positive); }.money.expense-text { color: #d2555d; }.muted { color: #8997a0; }.operation-name { color: #384e5d; font-weight: 600; }.operation-date-time { display: inline-flex; flex-direction: column; gap: 2px; min-width: 112px; color: #536574; line-height: 1.15; white-space: nowrap; }.operation-date-time small { color: #84939d; font-size: 10px; font-weight: 650; letter-spacing: .03em; }.counterparty-note { display: block; margin-top: 3px; color: #84939d; font-size: 10px; font-weight: 500; }.operation-actions { min-width: 148px; white-space: nowrap; }.row-action { padding: 4px 6px; border: 1px solid #dbe4e8; border-radius: 4px; color: #3e6577; background: #fff; font-size: 10px; font-weight: 700; }.row-action:hover { border-color: #a4bec8; background: #f4f8f9; }.row-action + .row-action { margin-left: 5px; }.row-action.danger-action { border-color: #f0c7ca; color: #bf3c47; }.row-action.danger-action:hover { border-color: #db8790; background: #fff3f4; }.status-tag, .mode-tag, .lock-tag { display: inline-flex; align-items: center; min-height: 20px; padding: 0 7px; border-radius: 4px; font-size: 10px; font-weight: 700; white-space: nowrap; }.status-tag.done { color: #18806f; background: #e9f8f4; }.status-tag.override { color: #b1424d; background: #fff0f1; }.status-tag.debt { color: #a35c24; background: #fff1e4; }.mode-tag { color: #56585e; background: #f0f0f1; }.lock-tag.closed { color: #a8464f; background: #fff0f1; }.lock-tag.open { color: #207867; background: #e8f8f2; }.lock-tag.debt-lock { color: #9b5a26; background: #fff2e5; }

.page-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }.page-intro p { margin-top: 6px; color: #7d8c97; font-size: 13px; }.page-intro.compact { align-items: end; }
.debt-tabs { display: flex; align-items: center; gap: 8px; margin: -5px 0 16px; border-bottom: 1px solid var(--line); }.debt-tab { display: inline-flex; align-items: center; gap: 8px; min-height: 39px; padding: 0 12px; border: 0; border-bottom: 2px solid transparent; color: #6e808c; background: transparent; font-size: 12px; font-weight: 700; transition: .18s ease; }.debt-tab:hover { color: #364f5e; background: #f7f9fa; }.debt-tab.active { border-bottom-color: var(--teal); color: var(--teal-dark); }.debt-tab span { display: grid; min-width: 19px; height: 19px; place-items: center; padding: 0 5px; border-radius: 9px; color: #71818a; background: #edf1f3; font-size: 10px; }.debt-tab.active span { color: #bd281f; background: #fff0ef; }#debtsTable .operation-actions { min-width: 238px; }
.object-workspace-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }.back-button { padding: 0; border: 0; color: #61646b; background: transparent; font-size: 12px; font-weight: 700; }.back-button:hover { color: var(--teal-dark); }.object-workspace-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }.object-more-menu { position: relative; }.more-button { display: grid; width: 40px; min-height: 38px; place-items: center; padding: 0 0 5px; border: 1px solid #d7e1e5; border-radius: 6px; color: #536474; background: #fff; font-size: 16px; font-weight: 800; letter-spacing: 1px; line-height: 1; }.more-button:hover, .more-button[aria-expanded="true"] { border-color: #a7bbc5; background: #fbfcfc; }.object-more-dropdown { position: absolute; z-index: 8; top: calc(100% + 7px); right: 0; min-width: 195px; padding: 6px; border: 1px solid #dce5e8; border-radius: 7px; background: #fff; box-shadow: 0 10px 24px rgba(20, 47, 65, .14); }.object-more-dropdown button { width: 100%; min-height: 34px; padding: 0 10px; border: 0; border-radius: 4px; color: #405665; background: transparent; font-size: 12px; font-weight: 650; text-align: left; }.object-more-dropdown button:hover { color: var(--teal-dark); background: #f4f7f8; }.object-identity { padding: 22px 24px; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: var(--shadow); }.object-identity-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }.object-identity h2 { margin-top: 7px; font-size: 24px; }.object-identity p { margin-top: 8px; color: #778590; font-size: 12px; }.object-identity-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 19px; color: #687982; font-size: 12px; }.object-identity-meta strong { color: #3d4e59; }.object-metric-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 18px; }.object-workspace-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .8fr); gap: 17px; }.object-estimate-panel, .object-info-panel { min-height: 260px; }.object-journal-panel { margin-top: 17px; }.detail-estimate-list { padding: 12px 20px 18px; }.detail-estimate-row { display: grid; grid-template-columns: minmax(145px, 1.15fr) minmax(150px, 1.1fr) 115px 115px; gap: 12px; align-items: center; padding: 13px 0; border-bottom: 1px solid #edf0f2; color: #687883; font-size: 11px; }.detail-estimate-row:last-child { border-bottom: 0; }.detail-estimate-row b { color: #354b5b; font-size: 12px; }.detail-estimate-row .limit-breach { color: var(--danger); font-weight: 750; }.empty-estimate { margin: 18px 20px; padding: 20px; border: 1px dashed #d9dfe2; border-radius: 7px; color: #788893; font-size: 12px; text-align: center; }.passport-list { display: grid; gap: 0; padding: 10px 20px 18px; }.passport-item { display: grid; gap: 4px; padding: 13px 0; border-bottom: 1px solid #edf0f2; }.passport-item:last-child { border-bottom: 0; }.passport-item span { color: #84929c; font-size: 10px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }.passport-item strong { color: #3b5160; font-size: 12px; font-weight: 650; }.passport-item em { color: #168567; font-size: 11px; font-style: normal; }
.objects-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }.empty-objects { grid-column: 1 / -1; margin: 0; padding: 38px 24px; border: 1px dashed #d9dfe2; border-radius: 9px; color: #788893; background: #fff; font-size: 13px; text-align: center; }.object-card { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: white; box-shadow: var(--shadow); }.object-card-head { display: flex; align-items: start; justify-content: space-between; gap: 15px; padding: 19px 20px 14px; }.object-card h3 { margin: 6px 0 0; color: #20384a; font-size: 17px; letter-spacing: -.02em; }.object-meta { display: flex; flex-wrap: wrap; gap: 6px 13px; padding: 0 20px 15px; color: #7f8f99; font-size: 11px; }.object-meta span { overflow: hidden; max-width: 100%; text-overflow: ellipsis; white-space: nowrap; }.object-stats { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #edf1f2; border-bottom: 1px solid #edf1f2; }.object-stats div { padding: 13px 15px; border-right: 1px solid #edf1f2; border-bottom: 0; }.object-stats div:last-child { border-right: 0; }.object-stats small { display: block; color: #87949e; font-size: 10px; }.object-stats strong { display: block; margin-top: 5px; color: #344c5e; font-size: 12px; }.object-card-foot { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 10px 16px 10px 20px; }.object-card-foot .status-line { color: #7c8e98; font-size: 11px; }.text-button { border: 0; color: var(--teal-dark); background: none; font-size: 12px; font-weight: 700; }.object-details { display: none; padding: 0 20px 18px; border-top: 1px solid #edf1f2; }.object-card.expanded .object-details { display: block; }.object-details-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 0 8px; }.estimate-row { display: grid; grid-template-columns: minmax(125px, 1.15fr) minmax(165px, 1.35fr) 120px 120px; gap: 10px; padding: 10px 0; border-bottom: 1px solid #f0f3f4; color: #536674; font-size: 11px; }.estimate-row:last-child { border-bottom: 0; }.estimate-row b { color: #354f60; }.estimate-row .limit-breach { color: var(--danger); font-weight: 750; }.archived-objects { grid-column: 1 / -1; padding: 18px 20px; border: 1px dashed #ccd6dc; border-radius: 9px; background: #f8fafb; }.archived-objects-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }.archived-objects-heading h3 { margin: 4px 0 0; color: #405665; font-size: 15px; }.archived-objects-heading > span { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; color: #5f6f7b; background: #e7ecef; font-size: 11px; font-weight: 750; }.archived-object-list { display: grid; gap: 8px; margin-top: 14px; }.archived-object-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 10px; border-top: 1px solid #e4eaed; }.archived-object-row b, .archived-object-row small { display: block; }.archived-object-row b { color: #405665; font-size: 12px; }.archived-object-row small { margin-top: 3px; color: #7e8b94; font-size: 11px; }.object-more-dropdown .danger-menu-action { color: var(--danger); }.object-more-dropdown .danger-menu-action:hover { color: var(--danger); background: var(--danger-soft); }
.operations-panel { min-height: 240px; }.reserve-card { display: flex; align-items: end; justify-content: space-between; gap: 24px; max-width: 900px; margin-bottom: 18px; padding: 25px 27px; border-radius: 9px; color: white; background: linear-gradient(120deg, #1d1e21, #34363b); box-shadow: var(--shadow); }.reserve-card .eyebrow { color: #c7c9cd; }.reserve-card strong { display: block; margin-top: 5px; color: white; font-size: 30px; letter-spacing: -.04em; }.reserve-card p { margin-top: 8px; color: #c9cbcf; font-size: 12px; }.reserve-card-note { display: grid; gap: 4px; padding: 10px 13px; border: 1px solid rgba(255,255,255,.17); border-radius: 6px; color: #c5c7ca; background: rgba(255,255,255,.06); font-size: 11px; }.reserve-card-note b { color: #ff8b85; font-size: 12px; }.periods-list { display: grid; gap: 13px; max-width: 900px; }.period-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 20px; }.period-card-copy { display: flex; align-items: center; gap: 13px; }.period-marker { width: 9px; height: 42px; border-radius: 8px; background: var(--teal); }.period-marker.closed { background: var(--danger); }.period-card h3 { margin: 0 0 4px; color: #2d4659; font-size: 14px; }.period-card p { color: #84939d; font-size: 11px; }.period-card-actions { display: flex; align-items: center; gap: 10px; }

.modal { width: min(540px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: 11px; background: white; box-shadow: 0 22px 80px rgba(9,30,44,.28); }.modal.wide-modal { width: min(670px, calc(100vw - 32px)); }.modal::backdrop { background: rgba(13, 38, 56, .42); backdrop-filter: blur(2px); }.modal form { padding: 23px; }.modal-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 20px; }.close-button { display: grid; width: 27px; height: 27px; place-items: center; padding: 0; border: 0; border-radius: 5px; color: #7d8b95; background: #f1f4f5; font-size: 22px; line-height: 1; }.close-button:hover { color: #465865; background: #e8edef; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 13px; }.form-grid .full { grid-column: 1 / -1; }.checkbox-field { display: flex; align-items: center; gap: 8px; min-height: 38px; padding: 10px 12px; border: 1px solid #f0d1ba; border-radius: 6px; color: #7b542f; background: #fffaf5; font-size: 12px; cursor: pointer; }.checkbox-field input { width: 16px; height: 16px; margin: 0; accent-color: var(--teal); }.modal-actions { justify-content: flex-end; margin-top: 22px; }.form-hint, .dialog-copy { margin-top: 13px; color: #7e8c96; font-size: 12px; line-height: 1.5; }.locked-notice { display: grid; gap: 2px; margin-top: 16px; padding: 11px 13px; border: 1px solid #ffcfd4; border-radius: 6px; color: #9e3f4b; background: var(--danger-soft); font-size: 11px; }.locked-notice strong { font-size: 12px; }
.object-bank-accounts { display: grid; gap: 8px; }.field-label-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #536b7c; font-size: 11px; font-weight: 700; }.add-bank-account-button, .remove-bank-account-button { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #d7e0e6; border-radius: 7px; color: #d82920; background: white; font-size: 19px; line-height: 1; cursor: pointer; }.add-bank-account-button:hover { border-color: #efaaa6; background: #fff0ef; }.remove-bank-account-button { width: 34px; color: #8a5a55; font-size: 18px; }.remove-bank-account-button:hover { border-color: #f1bbb7; color: #d82920; background: #fff0ef; }.bank-account-editor { display: grid; gap: 8px; }.bank-account-row { display: grid; grid-template-columns: minmax(0, 1fr) 145px 34px; gap: 8px; align-items: end; }.bank-account-row label { display: grid; gap: 5px; color: #718493; font-size: 10px; }.bank-account-row input { min-width: 0; }
.bank-accounts-dialog-content { padding: 23px; }.bank-accounts-dialog-content .modal-actions { margin-top: 18px; }.bank-accounts-total { margin: -5px 0 14px; color: #168567; font-size: 13px; font-weight: 750; }.bank-account-balance-list { display: grid; gap: 8px; }.bank-account-balance-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 68px; padding: 13px 14px; border: 1px solid #e0e8eb; border-radius: 7px; background: #fbfcfc; }.bank-account-balance-row div { display: grid; gap: 4px; min-width: 0; }.bank-account-balance-row span { color: #7d8d97; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }.bank-account-balance-row strong { overflow: hidden; color: #354e5f; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.bank-account-balance-row b { color: #168567; font-size: 15px; white-space: nowrap; }.empty-bank-accounts { padding: 19px; border: 1px dashed #d5e0e4; border-radius: 7px; color: #7d8d97; background: #fbfcfc; font-size: 12px; text-align: center; }
.toast { position: fixed; z-index: 20; right: 25px; bottom: 23px; max-width: 380px; padding: 12px 15px; border-radius: 7px; transform: translateY(75px); opacity: 0; color: white; background: #244d63; box-shadow: 0 12px 30px rgba(22,52,70,.2); font-size: 12px; transition: .25s ease; }.toast.show { transform: translateY(0); opacity: 1; }.toast.success { background: #168b7c; }.toast.warning { background: #c95b42; }

.mobile-settings-link { display: none; }
.settings-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 17px; max-width: 980px; }
.settings-card { min-height: 245px; }
.settings-form { display: grid; gap: 15px; padding: 20px; }
.settings-form .password-control { margin-top: 0; }
.settings-form .form-hint { margin: -2px 0 0; }
.settings-form .primary-button { justify-self: start; }
.settings-body { padding: 20px; }
.theme-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 58px; padding: 12px 14px; border: 1px solid #e1e8eb; border-radius: 8px; color: #3e5361; background: #fbfcfc; cursor: pointer; }
.theme-toggle-row span { display: grid; gap: 4px; }
.theme-toggle-row b { font-size: 13px; }
.theme-toggle-row small { color: #81919c; font-size: 11px; font-weight: 500; }
.theme-toggle-row input { appearance: none; position: relative; width: 43px; height: 24px; flex: 0 0 43px; padding: 0; border: 0; border-radius: 20px; background: #c5d0d5; transition: .2s ease; }
.theme-toggle-row input::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(20,35,43,.25); transition: .2s ease; }
.theme-toggle-row input:checked { background: var(--teal); }
.theme-toggle-row input:checked::after { transform: translateX(19px); }
.structure-empty { min-height: 360px; }

body.dark-theme { --ink: #e7edf1; --muted: #a0aeb8; --line: #2c3a45; --paper: #1a2530; --canvas: #101820; --mint: #332529; --shadow: 0 12px 32px rgba(0,0,0,.22); color: #e7edf1; background: #101820; }
body.dark-theme .login-screen { background: #101820; }
body.dark-theme .login-card { border-color: #30404b; color: #e7edf1; background: #1a2530; box-shadow: 0 24px 70px rgba(0,0,0,.35); }
body.dark-theme .login-card h1 { color: #f3f6f8; }
body.dark-theme .login-card > p, body.dark-theme .login-card label, body.dark-theme .demo-access, body.dark-theme .login-footer { color: #aab7c0; }
body.dark-theme .login-card input { border-color: #3a4a56; color: #eef3f6; background: #111b23; }
body.dark-theme .login-secondary { border-color: #3b4b56; color: #c7d2d9; background: #16212a; }
body.dark-theme .sidebar { border-color: #293844; color: #b8c5cc; background: #15202a; box-shadow: 8px 0 24px rgba(0,0,0,.22); }
body.dark-theme .sidebar-toggle { border-color: #3b4a55; color: #c5d0d7; background: #1a2530; }
body.dark-theme .nav-link { color: #afbdc6; }
body.dark-theme .nav-link:hover { color: #eef3f5; background: #21303b; }
body.dark-theme .nav-link.active { color: #ffb2ac; background: #3b2428; }
body.dark-theme .nav-link .nav-icon { color: #92a8b4; }
body.dark-theme .settings-gear-icon { filter: invert(1); opacity: .86; }body.dark-theme .nav-link.active .settings-gear-icon, body.dark-theme .icon-button:hover .settings-gear-icon { filter: invert(24%) sepia(96%) saturate(3549%) hue-rotate(352deg) brightness(101%) contrast(98%); opacity: 1; }
body.dark-theme .sidebar-foot { border-color: #2c3b46; }
body.dark-theme .admin-card { color: #d3dde3; }
body.dark-theme h1, body.dark-theme h2, body.dark-theme .metric-card .metric-value, body.dark-theme .object-card h3, body.dark-theme .object-identity h2 { color: #f1f5f7; }
body.dark-theme .crumb span, body.dark-theme .page-intro p, body.dark-theme .metric-card .metric-label, body.dark-theme .metric-card .metric-note, body.dark-theme .eyebrow, body.dark-theme label { color: #9eafba; }
body.dark-theme .filter-panel { border-color: #2f4650; background: linear-gradient(100deg, #172630, #172b2e); }
body.dark-theme .filter-copy strong { color: #d6e0e5; }
body.dark-theme .filter-copy span { color: #9db0ba; }
body.dark-theme input, body.dark-theme select { border-color: #3a4b57; color: #e7edf1; background: #111b23; }
body.dark-theme .outline-button, body.dark-theme .more-button, body.dark-theme .row-action { border-color: #3a4b57; color: #c9d5db; background: #17222c; }
body.dark-theme .outline-button:hover, body.dark-theme .more-button:hover, body.dark-theme .more-button[aria-expanded="true"], body.dark-theme .row-action:hover { border-color: #59717e; background: #22323d; }
body.dark-theme .panel, body.dark-theme .object-card, body.dark-theme .object-identity, body.dark-theme .empty-objects, body.dark-theme .archived-objects { border-color: #2d3c47; background: #1a2530; }
body.dark-theme .archived-objects-heading h3, body.dark-theme .archived-object-row b { color: #e7eef2; } body.dark-theme .archived-object-row { border-color: #2d3c47; }
body.dark-theme .metric-card { border-color: #2d3c47; background: #1a2530; box-shadow: none; }
body.dark-theme .metric-card-action:hover { border-color: #8f4c4c; background: #202d38; }
body.dark-theme .bar-chart { border-color: #2c3d48; background: repeating-linear-gradient(to bottom, transparent, transparent 47px, #263640 48px); }
body.dark-theme .budget-row, body.dark-theme td, body.dark-theme .detail-estimate-row, body.dark-theme .passport-item, body.dark-theme .object-stats, body.dark-theme .object-stats div { border-color: #2b3a45; }
body.dark-theme td, body.dark-theme .money, body.dark-theme .operation-name, body.dark-theme .budget-title, body.dark-theme .detail-estimate-row b, body.dark-theme .passport-item strong { color: #d7e1e6; }
body.dark-theme .mode-tag { color: #c9d4da; background: #2a3640; }
body.dark-theme .empty-estimate { border-color: #42545e; color: #aebbc3; }
body.dark-theme .object-meta, body.dark-theme .object-identity p, body.dark-theme .object-identity-meta, body.dark-theme .object-stats small { color: #9eafb9; }
body.dark-theme .modal { color: #e7edf1; background: #1a2530; }
body.dark-theme .close-button { color: #b8c6ce; background: #263640; }
body.dark-theme .field-label-row { color: #b7c6ce; } body.dark-theme .bank-account-row label { color: #9db0ba; } body.dark-theme .add-bank-account-button, body.dark-theme .remove-bank-account-button { border-color: #3b4c58; color: #ffaaa4; background: #16212a; }
body.dark-theme .bank-account-balance-row, body.dark-theme .empty-bank-accounts { border-color: #344551; color: #aebec6; background: #16212a; }.dark-theme .bank-account-balance-row span { color: #9fb1bb; }.dark-theme .bank-account-balance-row strong { color: #e0e8ec; }
body.dark-theme .checkbox-field { border-color: #604333; color: #e6c7a6; background: #2d2522; }
body.dark-theme .theme-toggle-row { border-color: #364754; color: #d9e3e8; background: #16212a; }
body.dark-theme .theme-toggle-row small { color: #a2b2bc; }
body.dark-theme .structure-empty { border-color: #2d3c47; }
body.dark-theme .brand { color: #fff; }
body.dark-theme .brand small { color: #a9b8c1; }
body.dark-theme .brand-logo-light { display: none !important; }
body.dark-theme .brand-logo-dark { display: block !important; }

/* Desktop: a more substantial workspace with concise project cards. */
@media (min-width: 1190px) {
  .main-content { padding: 0 48px 56px; }
  .topbar { min-height: 110px; }
  h1 { font-size: 29px; }
  h2 { font-size: 21px; }
  .view { padding-top: 32px; }
  .page-intro { margin-bottom: 28px; }
  .page-intro p { font-size: 14px; }
}

.objects-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 350px)); align-items: start; gap: 18px; }
.compact-object-card { min-height: 190px; box-shadow: 0 10px 26px rgba(17, 18, 20, .07); }
.compact-object-card .object-card-head { padding: 17px 18px 8px; }
.compact-object-card h3 { margin-top: 7px; font-size: 18px; }
.object-company { overflow: hidden; margin: 0; padding: 0 18px 16px; color: #7b8c96; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.object-result { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding: 13px 18px; border-top: 1px solid #edf1f2; border-bottom: 1px solid #edf1f2; }
.object-result span { color: #84939d; font-size: 11px; }
.object-result strong { color: #304a5b; font-size: 16px; letter-spacing: -.02em; white-space: nowrap; }
.object-result strong.income-text { color: var(--positive); }
.object-result strong.expense-text { color: var(--danger); }
.compact-object-card .object-card-foot { justify-content: flex-end; min-height: 47px; padding: 8px 17px; }
body.dark-theme .object-company { color: #9eafb9; }
body.dark-theme .object-result { border-color: #2b3a45; }
body.dark-theme .object-result span { color: #9eafb9; }
body.dark-theme .object-result strong { color: #e1e9ed; }

@media (max-width: 1180px) { .main-content { padding-right: 25px; padding-left: 25px; }.filter-panel { align-items: flex-start; flex-direction: column; }.filter-controls { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }.filter-controls label { width: auto; }.dashboard-grid { grid-template-columns: 1.2fr .8fr; }.object-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.metric-card .metric-value { font-size: 20px; } }

.login-button .button-arrow { display: grid; width: 19px; height: 19px; place-items: center; }.login-button .button-arrow svg, .back-button svg, .logout-button svg, .close-button svg, .metric-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }.metric-icon svg { width: 19px; height: 19px; stroke-width: 2; }.more-button svg { display: block; width: 17px; height: 17px; fill: currentColor; }.back-button { display: inline-flex; align-items: center; gap: 5px; }.back-button svg { width: 16px; height: 16px; }.logout-button svg { width: 17px; height: 17px; }.close-button svg { width: 17px; height: 17px; }.more-button { padding: 0; }.more-button svg { width: 18px; height: 18px; }

@media (max-width: 767px) {
  html, body { min-width: 0; width: 100%; overflow-x: hidden; }
  body.mobile-nav-open { overflow: hidden; }
  .login-screen { position: fixed; padding: 20px 16px; }
  .login-card { padding: 25px 21px; border-radius: 11px; }.login-logo-crop { width: 144px; height: 63px; margin-bottom: 19px; }.login-logo-crop img { width: 185px; left: -22px; top: -61px; }.login-card h1 { font-size: 22px; }.login-footer { position: static; margin-top: 16px; }
  .app-shell, .app-shell.sidebar-collapsed { display: block; min-height: 100dvh; }
  .sidebar, .app-shell.sidebar-collapsed .sidebar { position: fixed; z-index: 50; top: 0; left: 0; width: 270px; height: 100dvh; padding: 22px 14px 16px; transform: translateX(-105%); transition: transform .24s ease; }
  body.mobile-nav-open .sidebar { transform: translateX(0); }
  .sidebar-toggle { display: none; }
  .app-shell.sidebar-collapsed .brand { justify-content: flex-start; margin: 0 9px 30px; }.app-shell.sidebar-collapsed .brand-logo-crop { width: 74px; height: 33px; flex-basis: 74px; }.app-shell.sidebar-collapsed .brand-logo-crop img { width: 97.4px; left: -11.7px; top: -32.1px; }.app-shell.sidebar-collapsed .brand-copy, .app-shell.sidebar-collapsed .nav-label, .app-shell.sidebar-collapsed .admin-copy, .app-shell.sidebar-collapsed .icon-button, .app-shell.sidebar-collapsed .logout-button { display: block; }.app-shell.sidebar-collapsed .nav-link { justify-content: flex-start; padding-right: 12px; padding-left: 12px; }.app-shell.sidebar-collapsed .sidebar-foot { padding-top: 17px; }.app-shell.sidebar-collapsed .admin-card { justify-content: flex-start; padding-right: 8px; padding-left: 8px; }.app-shell.sidebar-collapsed .logout-button { display: grid; }.app-shell.sidebar-collapsed .icon-button { margin-left: auto; }
  .mobile-nav-overlay { display: block; position: fixed; z-index: 40; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(13, 27, 38, .4); }
  .main-content { min-width: 0; padding: 0 16px 30px; overflow: visible; }.topbar { min-height: 69px; gap: 13px; }.mobile-nav-button { display: grid; width: 38px; height: 38px; flex: 0 0 38px; align-content: center; gap: 4px; padding: 0 10px; border: 1px solid #dce3e6; border-radius: 7px; background: #fff; }.mobile-nav-button span { display: block; height: 2px; border-radius: 2px; background: #3d5667; }.crumb span { font-size: 10px; }h1 { font-size: 21px; }h2 { font-size: 17px; }
  .view { padding-top: 20px; }.filter-panel { align-items: stretch; gap: 16px; min-height: 0; margin-bottom: 16px; padding: 15px; }.filter-controls { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }.filter-controls label, .filter-controls .date-field { width: auto; }.filter-controls input, .filter-controls select { min-width: 0; }
  .metric-grid, .object-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }.metric-grid > :last-child:nth-child(odd) { grid-column: span 2; }.metric-card { min-height: 102px; padding: 14px; }.metric-card .metric-value { margin-top: 7px; font-size: 19px; }.metric-card .metric-note { margin-top: 7px; font-size: 10px; }.metric-icon { width: 28px; height: 28px; font-size: 14px; }
  .dashboard-grid, .object-workspace-grid, .objects-grid, .settings-grid { grid-template-columns: 1fr; gap: 14px; }.dashboard-grid { margin-bottom: 14px; }.chart-panel, .object-summary { min-height: 0; }.bar-chart { gap: 8px; height: 190px; margin-right: 12px; margin-left: 12px; padding-right: 8px; padding-left: 8px; }.panel-heading { padding: 16px 16px 0; }.chart-legend { margin-right: 16px; margin-left: 16px; }.budget-row { padding-right: 16px; padding-left: 16px; }.period-caption { display: none; }
  .debt-alert { align-items: flex-start; flex-direction: column; gap: 8px; margin: 10px 14px; }.debt-alert > div:last-child { text-align: left; }.table-wrap { padding: 13px 14px; }table { min-width: 660px; }
  .page-intro, .object-workspace-head { align-items: flex-start; flex-direction: column; gap: 13px; margin-bottom: 16px; }.page-intro .primary-button { width: 100%; }.object-workspace-actions { width: 100%; justify-content: flex-start; gap: 8px; }.object-workspace-actions .primary-button { flex: 1 1 155px; }.object-workspace-actions .outline-button { flex: 1 1 130px; }.object-identity { padding: 18px; }.object-identity h2 { font-size: 22px; }.object-identity-meta { display: grid; gap: 8px; margin-top: 15px; }.object-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }.object-stats div { padding: 11px 9px; }.object-card-foot { align-items: flex-start; flex-direction: column; gap: 9px; }.detail-estimate-list { overflow-x: auto; padding-right: 16px; padding-left: 16px; }.detail-estimate-row, .estimate-row { min-width: 570px; }
  .reserve-card { align-items: flex-start; flex-direction: column; gap: 16px; padding: 21px; }.reserve-card strong { font-size: 26px; }.object-info-panel { min-height: 0; }
  .modal { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); overflow-y: auto; border-radius: 10px; }.modal form { padding: 19px; }.form-grid { grid-template-columns: 1fr; gap: 13px; }.form-grid .full { grid-column: auto; }.modal-actions { gap: 8px; }.modal-actions button { flex: 1; padding-right: 9px; padding-left: 9px; }.checkbox-field { font-size: 11px; }.toast { right: 14px; bottom: 14px; left: 14px; max-width: none; }
}

@media (max-width: 767px) {
  .sidebar, .app-shell.sidebar-collapsed .sidebar { top: auto; bottom: 0; width: 100%; height: calc(70px + env(safe-area-inset-bottom)); padding: 4px 2px env(safe-area-inset-bottom); border-top: 1px solid #dfe4e7; border-right: 0; transform: none; box-shadow: 0 -7px 22px rgba(26, 42, 53, .08); }
  body.mobile-nav-open .sidebar { transform: none; }.brand, .sidebar-foot, .sidebar-toggle { display: none !important; }.mobile-nav-button, .mobile-nav-overlay { display: none !important; }
  .mobile-settings-link { display: flex; }.main-nav { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); height: 100%; gap: 0; }.nav-link, .app-shell.sidebar-collapsed .nav-link { min-width: 0; height: 62px; flex-direction: column; justify-content: center; gap: 4px; padding: 5px 1px; border-radius: 6px; font-size: 10px; }.nav-link .nav-icon { width: 19px; height: 19px; flex-basis: 19px; }.nav-link .nav-icon svg { width: 19px; height: 19px; }.app-shell.sidebar-collapsed .nav-label, .nav-link .nav-label { display: block !important; overflow: hidden; max-width: 100%; color: transparent; font-size: 0; line-height: 1; text-align: center; white-space: nowrap; }.nav-link .nav-label::after { content: attr(data-mobile-label); color: #60737f; font-size: 9px; font-weight: 650; }.nav-link.active .nav-label::after { color: #bd281f; }
  .main-content { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
}

/* Просмотр и сохранение отдельной операции. */
.operation-actions { min-width: 216px; }
#debtsTable .operation-actions { min-width: 305px; }
.operation-preview { padding: 23px; }
.operation-preview-summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 17px 18px; border: 1px solid #e0e8eb; border-radius: 8px; background: linear-gradient(110deg, #fbfdfd, #f4faf9); }
.operation-preview-summary p { margin: 9px 0 0; color: #405967; font-size: 14px; font-weight: 700; line-height: 1.4; }
.operation-preview-summary > strong { margin-top: 2px; color: #2b4657; font-size: 22px; letter-spacing: -.04em; text-align: right; white-space: nowrap; }
.operation-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 15px; }
.operation-preview-item { display: grid; gap: 5px; min-height: 65px; padding: 12px 13px; border: 1px solid #e5ecee; border-radius: 7px; background: #fff; }
.operation-preview-item.full { grid-column: 1 / -1; }
.operation-preview-item span { color: #81919a; font-size: 10px; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.operation-preview-item strong { overflow-wrap: anywhere; color: #354d5c; font-size: 12px; font-weight: 650; line-height: 1.35; }
.operation-preview-hint { margin-bottom: -4px; }
body.dark-theme .operation-preview-summary { border-color: #354a55; background: linear-gradient(110deg, #192832, #17272b); }
body.dark-theme .operation-preview-summary p, body.dark-theme .operation-preview-summary > strong, body.dark-theme .operation-preview-item strong { color: #dce6eb; }
body.dark-theme .operation-preview-item { border-color: #334551; background: #16212a; }
body.dark-theme .operation-preview-item span { color: #91a4af; }
@media (max-width: 767px) { .operation-preview { padding: 19px; }.operation-preview-summary { gap: 12px; padding: 14px; }.operation-preview-summary p { font-size: 13px; }.operation-preview-summary > strong { font-size: 18px; }.operation-preview-grid { grid-template-columns: 1fr; }.operation-preview-item.full { grid-column: auto; } }
