/* ARS-X Финансы+: плашки с цифрами и подсказкой «?», сводка, отчёты, бюджет, долги */
.fp-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; margin: 10px 0 12px; }
.fp-tile { position: relative; background: var(--surface, #fff); border: 1px solid var(--line, #e4e7ec); border-radius: 12px; padding: 12px 34px 12px 14px; display: grid; gap: 3px; align-content: start; min-width: 0; }
.fp-tile small { color: var(--muted, #667085); font-size: 12px; }
.fp-tile > b { font-size: 20px; line-height: 1.2; overflow-wrap: anywhere; }
.fp-tile .fp-sub { font-size: 12px; color: var(--muted, #667085); }
.fp-tile.clickable { cursor: pointer; }
.fp-tile.clickable:hover { border-color: var(--primary, #2563eb); }
.fp-tile.clickable:focus-visible { outline: 2px solid var(--primary, #2563eb); outline-offset: 2px; }
.fp-tile.fp-pos > b { color: var(--success, #12b76a); }
.fp-tile.fp-neg > b { color: var(--danger, #f04438); }
.fp-tile.fp-warn { border-color: var(--warning, #f79009); }
.fp-tile.fp-danger { border-color: var(--danger, #f04438); background: color-mix(in srgb, var(--danger, #f04438) 5%, var(--surface, #fff)); }
.fp-tile.fp-danger > b { color: var(--danger, #f04438); }

/* подсказка: «?» в правом верхнем углу плашки, по нажатию — маленькое окно */
.fp-hint { position: relative; display: inline-flex; vertical-align: middle; }
.fp-tile > .fp-hint, .fp-chart-card > .fp-hint { position: absolute; top: 8px; right: 8px; z-index: 2; }
.fp-hint-btn { width: 20px; height: 20px; min-height: 20px; padding: 0; border-radius: 50%; border: 1px solid var(--line, #d0d5dd); background: var(--surface-2, #f2f4f7);
  color: var(--muted, #667085); font: 700 12px/18px system-ui, sans-serif; cursor: pointer; text-align: center; }
.fp-hint-btn:hover, .fp-hint-btn[aria-expanded="true"] { background: var(--primary, #2563eb); border-color: var(--primary, #2563eb); color: #fff; }
.fp-hint-btn:focus-visible { outline: 2px solid var(--primary, #2563eb); outline-offset: 2px; }
.fp-pop { position: absolute; top: 26px; right: -6px; width: min(300px, calc(100vw - 32px)); z-index: 40; display: grid; gap: 4px; padding: 10px 12px;
  background: var(--surface, #fff); color: var(--text, #101828); border: 1px solid var(--line, #d0d5dd); border-radius: 10px; box-shadow: 0 10px 30px rgba(16, 24, 40, .18);
  font-size: 13px; font-weight: 400; line-height: 1.45; text-align: left; white-space: normal; }
.fp-pop b { font-size: 13px; }
h3 .fp-hint, label .fp-hint { margin-left: 4px; }
.fp-hint.open, .fp-tile > .fp-hint.open, .fp-chart-card > .fp-hint.open { z-index: 1200; }
label .fp-pop, h3 .fp-pop, .fp-method .fp-pop, .fp-outside .fp-pop, .money-toolbar .fp-pop { right: auto; left: -8px; }

.fp-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.fp-title { margin: 0; font-size: 18px; }
.fp-method { display: inline-flex; gap: 6px; align-items: center; }
.fp-subtabs { margin: 6px 0 2px; }
.fp-count { display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 6px; border-radius: 9px; background: var(--warning, #f79009); color: #fff; font-size: 11px; line-height: 18px; text-align: center; }
.fp-period { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.fp-period select { width: auto; min-width: 150px; }

.fp-wizard { margin: 10px 0; border-color: var(--primary, #2563eb); }
.fp-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fp-steps li { display: grid; grid-template-columns: 30px 1fr auto; gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line, #e4e7ec); }
.fp-steps li:first-child { border-top: 0; }
.fp-steps p { margin: 2px 0 0; }
.fp-step-n { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; background: var(--surface-2, #f2f4f7); }
.fp-steps li.done .fp-step-n { background: var(--success, #12b76a); color: #fff; }
.fp-steps li.done b { color: var(--muted, #667085); }

.fp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; }
.fp-chart-card { position: relative; }
.fp-tips-card { grid-column: 1 / -1; }
.fp-chart-card .card-head { padding-right: 26px; }
.fp-tips { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.fp-tips li { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; padding: 8px 10px; border-radius: 8px; font-size: 14px; border-left: 3px solid var(--line, #e4e7ec); background: var(--surface-2, #f8fafc); }
.fp-tips li.fp-tip-warn { border-left-color: var(--warning, #f79009); }
.fp-tips li.fp-tip-danger { border-left-color: var(--danger, #f04438); background: color-mix(in srgb, var(--danger, #f04438) 6%, transparent); }
.fp-tips li.fp-tip-info { border-left-color: var(--primary, #2563eb); }
.fp-tips .link-btn { white-space: nowrap; }

.fp-bars { display: flex; gap: 8px; align-items: flex-end; height: 170px; padding-top: 6px; }
.fp-bar-col { flex: 1 1 0; display: grid; grid-template-rows: 1fr auto auto; gap: 2px; height: 100%; min-width: 0; text-align: center; }
.fp-bar-col small { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-bar-pair { display: flex; gap: 3px; align-items: flex-end; justify-content: center; height: 100%; }
.fp-bar { display: block; width: 40%; max-width: 22px; border-radius: 4px 4px 0 0; }
.fp-bar.in { background: var(--success, #12b76a); }
.fp-bar.out { background: color-mix(in srgb, var(--danger, #f04438) 75%, transparent); }
.fp-share { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; align-items: center; margin: 6px 0; font-size: 14px; }
.fp-share > .fp-progress, .fp-share > small { grid-column: 1 / -1; }
.fp-progress { height: 6px; border-radius: 3px; background: var(--surface-2, #eef2f6); overflow: hidden; min-width: 60px; }
.fp-progress > i { display: block; height: 100%; background: var(--primary, #2563eb); border-radius: 3px; }
.fp-progress.over > i { background: var(--danger, #f04438); }
.fp-progress.time { height: 3px; margin-top: 3px; }
.fp-progress.time > i { background: var(--muted, #98a2b3); }

.fp-pnl-table td:first-child { min-width: 220px; }
.fp-pnl-table tr.fp-child td:first-child, .fp-budget-table tr.fp-child td:first-child { padding-left: 34px; color: var(--muted, #475467); }
.fp-indent { padding-left: 14px; display: inline-block; }
.fp-expand { font-weight: 500; }
.fp-outside { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 10px; }

.fp-month { display: inline-flex; gap: 6px; align-items: center; }
.fp-month b { min-width: 130px; text-align: center; }
.fp-plan-input { width: 130px; text-align: right; min-height: 34px; }
.fp-status { display: block; font-size: 12px; margin-top: 2px; }
.fp-status.danger { color: var(--danger, #f04438); }
.fp-status.warning { color: var(--warning, #dc6803); }
.fp-status.success { color: var(--success, #12b76a); }
.fp-budget-table td[data-label="Исполнение"] { min-width: 150px; }
.fp-savebar { position: sticky; bottom: 10px; z-index: 5; display: flex; gap: 10px; align-items: center; justify-content: flex-end; padding: 10px 12px; margin-top: 10px;
  border-radius: 12px; background: var(--surface, #fff); border: 1px solid var(--primary, #2563eb); box-shadow: 0 6px 20px rgba(16, 24, 40, .15); }

.fp-cats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0 24px; }
.money-cat.fp-cat-child { padding-left: 18px; }
.money-cat .link-plain:disabled { cursor: default; color: inherit; }
.fp-field-hint label { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }

@media (max-width: 700px) {
  .fp-tiles { grid-template-columns: 1fr 1fr; gap: 8px; }
  .fp-tile { padding: 10px 30px 10px 10px; }
  .fp-tile > b { font-size: 16px; }
  .fp-grid { grid-template-columns: 1fr; }
  .fp-steps li { grid-template-columns: 30px 1fr; }
  .fp-steps li .btn { grid-column: 2; justify-self: start; }
  .fp-pop { position: fixed; left: 16px !important; right: 16px !important; top: auto; bottom: calc(96px + env(safe-area-inset-bottom, 0px)); width: auto; max-height: 50vh; overflow: auto; }
  .fp-plan-input { width: 100%; }
  .fp-bars { height: 140px; gap: 4px; }
  .money-tabs button { padding: 6px 8px; }
}

/* вспомогательные блоки (выбор касс, сводки, начисления, закрытая функция) */
.fp-locked { margin: 10px 0; border-color: var(--warning, #f79009); }
.fp-selection, .fp-summaries, .fp-accruals { margin: 10px 0; }
.fp-checks { display: grid; gap: 6px; margin-top: 10px; max-height: 50vh; overflow: auto; }
.fp-list { display: grid; gap: 6px; }
.fp-list-row { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; padding: 6px 0; border-top: 1px solid var(--line, #e4e7ec); }
.fp-list-row:first-child { border-top: 0; }
