@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/inter-cyrillic-wght-normal.woff2') format('woff2');
  unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/inter-latin-wght-normal.woff2') format('woff2');
}
/* Dark Pro Admin: presentation only. The layer takes precedence over legacy
   !important declarations without changing their structural/visibility rules. */
@layer dark-pro {
  :root {
    --bg: #121821 !important;
    --bg-deep: #121821 !important;
    --surface: #1b2430 !important;
    --panel: #1b2430 !important;
    --panel-2: #242f3d !important;
    --panel-3: #344052 !important;
    --text: #ebf0f6 !important;
    --text-soft: #ebf0f6 !important;
    --muted: #a0adbf !important;
    --line: #344052 !important;
    --line-strong: #8bb4dd !important;
    --accent: #8bb4dd !important;
    --accent-strong: #a4c6e8 !important;
    --accent-soft: #242f3d !important;
    --accent-faint: #242f3d !important;
    --blue: #8bb4dd !important;
    --blue-soft: #242f3d !important;
    --warn: #d8bd89 !important;
    --success: #91c8b0 !important;
    --danger: #eea2a2 !important;
    --danger-soft: #39272d !important;
    --danger-line: #69454e !important;
    --shadow: none !important;
    --inner-light: none !important;
    --glow: none !important;
  }
  body {
    background: var(--bg) !important;
    font-family: Inter, system-ui, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    color: var(--text) !important;
    font-variant-numeric: tabular-nums !important;
  }
  body::before, h1::after, .home-summary-panel::after { display: none !important; }
  .shell {
    width: min(480px, 100%) !important;
    padding: 18px 18px calc(94px + env(safe-area-inset-bottom)) !important;
  }
  .view, .list, .form-grid, .deal, .people-list { gap: 12px !important; }
  .panel, .item, .deal, .report-card, .modal-card {
    background: var(--surface) !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    padding: 16px !important;
  }
  .panel-head { gap: 12px !important; margin-bottom: 12px !important; }
  h1, h2, h3, .panel-head h2 { font-weight: 600 !important; letter-spacing: 0 !important; }
  h2, .panel-head h2 { font-size: 16px !important; line-height: 1.45 !important; }
  h3 { font-size: 14px !important; }
  .page-title {
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 0 8px !important;
    align-items: flex-start !important;
  }
  .page-title h2 { font-size: 28px !important; font-weight: 600 !important; letter-spacing: -0.02em !important; }
  .page-title p, .panel-head p { font-size: 13px !important; color: var(--muted) !important; }
  .page-kicker, .section-kicker, .eyebrow {
    color: var(--muted) !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    margin-bottom: 8px !important;
  }
  .section-kicker { margin-bottom: 4px !important; }
  button, .tab, .ghost, .primary, .soft, .danger, .chip {
    min-height: 44px !important;
    border: 1px solid transparent !important;
    border-radius: 6px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    box-shadow: none !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    transform: none !important;
  }
  .primary, .action-primary {
    background: var(--panel-2) !important;
    color: var(--text) !important;
    border-color: transparent !important;
    box-shadow: none !important;
  }
  .chip.active, .segmented button.active,
  .report-filter-grid button.active, .finance-tabs button.active {
    background: var(--accent) !important;
    color: #102033 !important;
    border-color: transparent !important;
    box-shadow: none !important;
  }
  .danger, .action-danger {
    color: var(--danger) !important;
    background: var(--danger-soft) !important;
    border-color: transparent !important;
  }
  button:disabled { opacity: 0.45 !important; cursor: not-allowed !important; transform: none !important; }
  button.is-loading, button[aria-busy="true"] { opacity: 0.7 !important; cursor: progress !important; }
  button:not(:disabled):active { filter: brightness(0.9) !important; transform: none !important; }
  button:focus-visible, summary:focus-visible {
    outline: 2px solid var(--accent) !important;
    outline-offset: 3px !important;
  }
  .action-grid, .quick-grid, .home-actions, .metrics { gap: 8px !important; }
  .action-grid.manage-segment, .home-actions { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .segmented, .report-filter-grid, .finance-tabs {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .segmented button, .report-filter-grid button, .finance-tabs button { min-height: 44px !important; border-radius: 6px !important; }
  .metric {
    min-height: 80px !important;
    padding: 10px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: var(--panel-2) !important;
    box-shadow: none !important;
  }
  .home-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .metric-label { color: var(--muted) !important; font-size: 11px !important; font-weight: 400 !important; }
  .metric-label .ui-icon, .home-quick-action .ui-icon { display: none !important; }
  .metric strong { margin-top: 4px !important; font-size: 28px !important; font-weight: 600 !important; letter-spacing: -0.02em !important; }
  .home-metrics .metric:last-child strong { font-size: 17px !important; }
  .metric small { margin-top: 4px !important; color: var(--muted) !important; font-size: 11px !important; }
  .home-quick-action {
    display: flex !important;
    min-height: 44px !important;
    padding: 10px 8px !important;
    gap: 0 !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    box-shadow: none !important;
  }
  .home-quick-action.is-green { background: var(--panel-2) !important; color: var(--text) !important; }
  .home-quick-action span { font-size: 13px !important; font-weight: 500 !important; }
  .home-bank-grid, .quick-grid { grid-template-columns: 1fr !important; gap: 0 !important; }
  .home-bank-card, .bank-button {
    grid-template-columns: minmax(0, 1fr) auto !important;
    min-height: 68px !important;
    padding: 12px 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--text) !important;
    gap: 8px !important;
  }
  .home-bank-card:last-child, .bank-button:last-child { border-bottom: 0 !important; }
  .home-bank-card .bank-logo, .bank-button .bank-logo, .item > .bank-logo { display: none !important; }
  .home-bank-card b, .bank-button-copy b, .bank-item-copy b { font-size: 14px !important; font-weight: 500 !important; }
  .home-bank-card small, .bank-button-copy .small { font-size: 12px !important; color: var(--muted) !important; }
  .bank-arrow { color: var(--accent) !important; }
  .item:has(> .bank-logo) { grid-template-columns: minmax(0, 1fr) auto !important; }
  .home-requisite-row {
    grid-template-columns: minmax(0, 1fr) auto !important;
    padding: 10px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    border-radius: 0 !important;
    background: transparent !important;
  }
  .requisite-symbol { display: none !important; }
  .home-requisite-row small { font-family: inherit !important; font-size: 12px !important; color: var(--muted) !important; }
  .tag, .tag.ok, .tag.off, .card-limit-line {
    min-height: 24px !important;
    padding: 4px 8px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: var(--panel-2) !important;
    color: var(--muted) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
  }
  .tag.ok, .success-text, .deal-calc .success-text, .bank-req-setting-note.is-on { color: var(--success) !important; }
  .danger-text, .deal-calc .danger-text, .bank-req-setting-note { color: var(--danger) !important; }
  .finance-operation-profit { display: grid !important; gap: 2px !important; margin-top: 4px !important; }
  .finance-operation-profit small { margin-top: 0 !important; color: inherit !important; }
  .finance-operation-profit.success-text small { color: var(--success) !important; }
  .finance-operation-profit.danger-text small { color: var(--danger) !important; }
  .finance-operation-profit strong { font-weight: 700 !important; }
  .card-limit-line.is-danger { color: var(--danger) !important; background: var(--danger-soft) !important; }
  .status-dot.ok { background: var(--success) !important; box-shadow: none !important; }
  .status-dot.off { background: var(--muted) !important; }
  .compact-req-body > b, .deal-requisite-row strong, .item code, .deal code { color: var(--text) !important; }
  .copy-button, .req-menu summary, .person-step-button {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    flex-basis: 44px !important;
    padding: 0 !important;
    border-radius: 6px !important;
    background: var(--panel-2) !important;
  }
  .req-menu-list { top: 50px !important; background: var(--surface) !important; border-color: var(--line) !important; }
  .person-req-actions, .person-count-actions { grid-template-columns: repeat(2, 44px) !important; }
  .person-primary-actions { grid-template-columns: 1fr !important; }
  .person-usage-row, .person-req-row {
    padding: 6px 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: var(--muted) !important;
  }
  .person-usage-row b, .person-head b, .person-req-row b { color: var(--text) !important; font-weight: 500 !important; }
  .settings-row small, .person-head small, .person-req-row small, .compact-row small { color: var(--muted) !important; }
  .owner-section-head { grid-template-columns: 1fr !important; }
  .owner-section-head > button { width: 100% !important; }
  .settings-row, .compact-row { flex-direction: column !important; align-items: stretch !important; }
  .settings-row > button, .compact-row > button { width: 100% !important; }
  .people-period-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 16px !important;
    padding-top: 16px !important;
    border-top: 1px solid var(--line) !important;
  }
  .investment-settings-panel .settings-row small { font-size: 64px !important; color: var(--accent) !important; line-height: 1.2 !important; margin: 16px 0 !important; }
  .finance-summary-list { gap: 12px !important; }
  .finance-summary-row {
    min-height: 0 !important;
    padding: 4px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    gap: 8px !important;
    grid-template-columns: minmax(0, 0.44fr) minmax(0, 0.56fr) !important;
  }
  .finance-summary-row span { color: var(--muted) !important; font-size: 13px !important; }
  .finance-summary-row b { color: var(--text) !important; font-size: 14px !important; font-weight: 500 !important; }
  .finance-profit { display: grid !important; gap: 4px !important; order: -1 !important; padding-bottom: 8px !important; }
  .finance-profit > span { color: var(--muted) !important; font-size: 12px !important; }
  .finance-profit > strong { font-size: 30px !important; font-weight: 600 !important; letter-spacing: -0.02em !important; }
  .finance-profit > small { color: var(--success) !important; font-size: 13px !important; }
  .finance-platforms-panel .finance-platform-choice,
  .finance-platforms-panel button.finance-platform-toggle,
  .finance-operations-panel .finance-platform-choice {
    height: auto !important;
    min-height: 44px !important;
    max-height: none !important;
    padding: 10px 12px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
  }
  .finance-operations-panel [data-action="finance-create"] { background: var(--panel-2) !important; color: var(--text) !important; }
  .finance-platforms-panel .finance-platform-choice { justify-content: space-between !important; background: transparent !important; }
  .finance-platforms-panel .finance-platform-choice::after { content: '›' !important; color: var(--accent) !important; }
  .finance-platforms-panel button.finance-platform-period-button,
  .finance-platforms-panel button.finance-platform-period-button.tag,
  .finance-platforms-panel button.finance-platform-period-button.tag.ok,
  .finance-operations-panel button.finance-platform-period-button,
  .finance-operations-panel button.finance-platform-period-button.tag,
  .finance-operations-panel button.finance-platform-period-button.tag.ok,
  .finance-summary-panel button.finance-summary-period-button,
  .finance-summary-panel button.finance-summary-period-button.tag,
  .finance-summary-panel button.finance-summary-period-button.tag.ok {
    width: auto !important;
    height: auto !important;
    min-height: 44px !important;
    max-height: none !important;
    padding: 10px 12px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: var(--panel-2) !important;
    color: var(--accent) !important;
    font-size: 12px !important;
  }
  .finance-platform-period-options, .finance-summary-period-options {
    padding: 8px !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    background: var(--surface) !important;
    box-shadow: 0 8px 24px #0005 !important;
  }
  .finance-platform-period-options button, .finance-summary-period-options button {
    min-height: 44px !important;
    height: auto !important;
    max-height: none !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    font-size: 13px !important;
  }
  .rejection-table { width: 100% !important; border-collapse: collapse !important; table-layout: fixed !important; font-size: 12px !important; }
  .rejection-table th, .rejection-table td { padding: 12px 4px !important; border-bottom: 1px solid var(--line) !important; text-align: right !important; }
  .rejection-table th { font-size: 10px !important; font-weight: 600 !important; color: var(--muted) !important; }
  .rejection-table th:first-child, .rejection-table td:first-child { width: 49% !important; text-align: left !important; }
  .rejection-table td:nth-child(3) { color: var(--danger) !important; }
  .rejection-table td small { display: block !important; color: var(--muted) !important; font-size: 11px !important; }
  .rejection-table td b { font-weight: 500 !important; }
  .deal-field-row, .form-grid { grid-template-columns: 1fr !important; gap: 6px !important; }
  .deal-fields, .modal-fields { gap: 12px !important; }
  .field > span { font-size: 12px !important; font-weight: 500 !important; color: var(--muted) !important; }
  input, select, textarea, .deal-field-row > input, .deal-field-row > select,
  .deal-field-row > textarea, .deal-sold-field .field-row input, .deal-sold-field .field-row select {
    height: 44px !important;
    min-height: 44px !important;
    max-height: none !important;
    border: 1px solid var(--line) !important;
    border-radius: 6px !important;
    background: var(--panel-2) !important;
    color: var(--text) !important;
    box-shadow: none !important;
    font-size: 16px !important;
    padding: 10px 12px !important;
  }
  textarea { height: 72px !important; resize: vertical !important; }
  input::placeholder, textarea::placeholder { color: var(--muted) !important; opacity: 1 !important; }
  input:focus, select:focus, textarea:focus { border-color: var(--accent) !important; outline: 2px solid var(--accent) !important; outline-offset: 1px !important; box-shadow: none !important; }
  [aria-invalid="true"] { border-color: var(--danger) !important; outline-color: var(--danger) !important; }
  input:disabled, select:disabled, textarea:disabled { opacity: 0.45 !important; }
  .smart-calculation-field input[type="checkbox"] {
    width: 20px !important;
    min-width: 20px !important;
    height: 20px !important;
    min-height: 20px !important;
    padding: 0 !important;
    accent-color: var(--accent) !important;
  }
  .deal-calc, .deal-requisite-details, .field-unit, .bank-req-setting {
    background: var(--panel-2) !important;
    border-color: var(--line) !important;
    border-radius: 6px !important;
    padding: 12px !important;
    box-shadow: none !important;
  }
  .deal-calc > b { border-color: var(--line) !important; flex-wrap: wrap !important; }
  .deal-form-panel > .action-grid.two { grid-template-columns: 1fr !important; }
  .queue-number { border-color: var(--line) !important; color: var(--accent) !important; }
  .bank-req-setting.is-disabled { background: var(--surface) !important; border-color: var(--line) !important; }
  .modal { background: #0c1017cc !important; backdrop-filter: none !important; }
  .modal-card { width: min(444px, 100%) !important; }
  .status { border: 1px solid var(--line) !important; border-radius: 8px !important; background: var(--surface) !important; color: var(--text) !important; }
  .status.ok { color: var(--success) !important; border-color: var(--success) !important; }
  .status.err { color: var(--danger) !important; border-color: var(--danger-line) !important; background: var(--danger-soft) !important; }
  .panel .status { position: static !important; max-width: 100% !important; }
  .empty, .loading { border: 1px solid var(--line) !important; background: var(--panel-2) !important; border-radius: 6px !important; color: var(--muted) !important; }
  .tabs.bottom-nav {
    bottom: 0 !important;
    width: min(480px, 100%) !important;
    min-height: 74px !important;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
    border: 0 !important;
    border-top: 1px solid var(--line) !important;
    border-radius: 0 !important;
    background: var(--surface) !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    gap: 4px !important;
  }
  .tabs.bottom-nav .tab, .tabs.bottom-nav .tab.active {
    min-height: 52px !important;
    padding: 4px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--muted) !important;
  }
  .tabs.bottom-nav .tab.active { color: var(--accent) !important; }
  .tabs.bottom-nav .tab .ui-icon { width: 22px !important; height: 22px !important; }
  .tabs.bottom-nav .tab span { font-size: 10px !important; font-weight: 500 !important; }
  @media (max-width: 350px) {
    .shell { padding-left: 14px !important; padding-right: 14px !important; }
    .panel, .item, .deal { padding: 12px !important; }
    .home-metrics .metric:last-child strong { font-size: 15px !important; }
    .page-title h2 { font-size: 26px !important; }
  }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; }
  }
}

@layer dark-pro {
  .rf-bank-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }
  .rf-bank-grid .rf-bank-button {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 38px minmax(0, 1fr) !important;
    align-items: center !important;
    align-content: center !important;
    justify-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 118px !important;
    min-height: 118px !important;
    padding: 9px 4px !important;
    gap: 6px !important;
    overflow: hidden !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    background: var(--panel-2) !important;
    text-align: center !important;
  }
  .rf-bank-grid .rf-bank-button:disabled {
    opacity: 0.58 !important;
  }
  .rf-bank-grid .rf-bank-button .bank-logo {
    display: grid !important;
    width: 68px !important;
    max-width: 100% !important;
    height: 32px !important;
    flex-basis: 32px !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }
  .rf-bank-grid .bank-button-copy {
    display: grid !important;
    align-self: stretch !important;
    align-content: center !important;
    justify-items: center !important;
    gap: 3px !important;
    min-width: 0 !important;
    text-align: center !important;
  }
  .rf-bank-grid .bank-button-copy b {
    display: -webkit-box !important;
    overflow: hidden !important;
    color: var(--text) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.18 !important;
    overflow-wrap: anywhere !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
  }
  .rf-bank-grid .bank-button-copy .small {
    color: var(--muted) !important;
    font-size: 9px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }
  .bank-logo {
    display: grid !important;
    width: 40px !important;
    height: 40px !important;
    flex: 0 0 40px !important;
    padding: 0 !important;
    place-items: center !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .bank-logo img,
  .bank-alfa img,
  .bank-psb img,
  .bank-vtb img,
  .bank-yoomoney img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }
  .rf-bank-grid .rf-bank-button .bank-logo img {
    width: auto !important;
    height: auto !important;
    max-width: 64px !important;
    max-height: 26px !important;
  }
  .rf-bank-grid .rf-bank-button .bank-bank-rossiya img,
  .rf-bank-grid .rf-bank-button .bank-gazprombank img,
  .rf-bank-grid .rf-bank-button .bank-kredit-ural img,
  .rf-bank-grid .rf-bank-button .bank-mts img,
  .rf-bank-grid .rf-bank-button .bank-sber img,
  .rf-bank-grid .rf-bank-button .bank-sovcombank img,
  .rf-bank-grid .rf-bank-button .bank-tbank img,
  .rf-bank-grid .rf-bank-button .bank-uralsib img {
    max-width: 28px !important;
    max-height: 28px !important;
  }
  .home-bank-card {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
  }
  .home-bank-card .bank-logo,
  .item > .bank-logo {
    display: grid !important;
  }
  .item:has(> .bank-logo) {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
  }
  .requisite-bank-line {
    display: inline-flex !important;
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 8px !important;
    color: var(--muted) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
  }
  .requisite-bank-line > span:last-child {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .requisite-bank-logo {
    display: grid !important;
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px !important;
    padding: 2px !important;
  }
  .requisite-bank-logo img {
    width: auto !important;
    height: auto !important;
    max-width: 28px !important;
    max-height: 28px !important;
  }
  .compact-req-body,
  .bank-req-setting-copy,
  .person-usage-requisite-row > span {
    gap: 6px !important;
  }
  .home-requisite-row {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
  }
  .home-requisite-row > .requisite-bank-logo {
    display: grid !important;
    width: 34px !important;
    height: 34px !important;
    flex-basis: 34px !important;
  }
  .home-requisite-row .requisite-owner {
    color: var(--muted) !important;
    font-family: inherit !important;
    font-size: 10px !important;
  }
}
