/* ============================================================
   Довод — components.css   (requires design-tokens.css)
   Границы вместо теней. Тени только для приподнятых элементов.
   ============================================================ */

/* ── Иконки (Lucide, 1.5px, currentColor) ── */
.ic{width:20px;height:20px;stroke-width:1.5;flex:none}
.ic-sm{width:16px;height:16px} .ic-lg{width:24px;height:24px}

/* ── Кнопки ── */
.btn{font-family:var(--font-sans);font-size:var(--text-base);font-weight:500;line-height:1;
     display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap;cursor:pointer;
     padding:10px 18px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;
     transition:background var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}
.btn:active{transform:scale(.98)}
.btn svg,.btn .ic,.btn .ic-sm{width:18px;height:18px;flex:none}
/* Primary использует brand-700 (белый текст 5.97:1 AA), а не brand-600 (4.02:1, не проходит AA) — осознанное отклонение от §11.1 ради доступности */
.btn--primary{background:var(--brand-700);color:#fff}
.btn--primary:hover{background:var(--brand-800)}
.btn--secondary{color:var(--brand-700);border-color:var(--brand-600)}
.btn--secondary:hover{background:var(--brand-50)}
.btn--tertiary{color:var(--brand-700)}
.btn--tertiary:hover{background:var(--brand-50)}
.btn--danger{color:var(--status-red)}
.btn--danger:hover{background:color-mix(in srgb,var(--status-red) 6%,transparent)}
.btn:disabled{background:var(--gray-100);color:var(--gray-400);cursor:not-allowed;border-color:transparent}
.btn--sm{padding:8px 14px;font-size:var(--text-sm)}
.btn--lg{padding:12px 24px}
.btn--block{display:flex;width:100%;justify-content:center}

/* ── Карточка (границы, без тени) ── */
.card{background:var(--gray-0);border:var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6)}
.panel{background:var(--gray-0);border:var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5)}

/* ── Поля ввода ── */
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:var(--text-sm);font-weight:500;color:var(--gray-700)}
.field input{font:inherit;height:44px;background:var(--gray-0);color:var(--gray-800);
     border:var(--border-default);border-radius:var(--radius-sm);padding:12px 16px}
.field input::placeholder{color:var(--gray-300)}
.field input:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-color:transparent}
.field .hint{font-size:var(--text-xs);color:var(--gray-500)}
.field--err input{border:1px solid var(--status-red)}
.field--err .hint{color:var(--status-red);display:flex;align-items:center;gap:6px}

/* ── Статус-бейдж (точка + текст + цвет; фон 10%, граница 25%) ── */
.badge{display:inline-flex;align-items:center;gap:var(--space-1);height:24px;padding:0 10px;
     font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-sm);
     white-space:nowrap;
     color:color-mix(in srgb,var(--c) 72%,#000);background:color-mix(in srgb,var(--c) 10%,var(--gray-0));
     border:1px solid color-mix(in srgb,var(--c) 26%,transparent)}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c);flex:none}
.badge--pulse::before{animation:st-pulse 1.4s ease-in-out infinite}
@keyframes st-pulse{0%,100%{opacity:1}50%{opacity:.25}}
.dot{width:10px;height:10px;border-radius:50%;background:var(--c);display:inline-block;flex:none}
.dots{display:flex;gap:5px}
.src{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--gray-500);
     background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:2px 8px}
.tag{font-size:var(--text-xs);color:var(--gray-600);background:var(--gray-100);border-radius:var(--radius-sm);padding:3px 9px}  /* gray-600, не gray-500: gray-500 на gray-100 = 4.4:1, ниже AA */

/* ── Таблица заявок ── */
.tbl-wrap{border:var(--border-default);border-radius:var(--radius-lg);overflow-x:auto;overflow-y:hidden;background:var(--gray-0)}
.tbl-wrap:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}
table{width:100%;min-width:640px;border-collapse:collapse;font-size:var(--text-sm)}
thead th{background:var(--gray-50);color:var(--gray-500);font-weight:500;text-align:left;
     padding:0 16px;height:44px;position:sticky;top:0}
thead th.ta-r{text-align:right}
tbody td{color:var(--gray-700);padding:0 16px;height:48px;border-top:1px solid var(--gray-100);vertical-align:middle}
tbody tr:hover{background:var(--gray-25)}
.ta-r{text-align:right}
.chev{color:var(--gray-400);vertical-align:middle}

/* ── Карточка выбора банка ── */
.bankcard{background:var(--gray-0);border:var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4)}
.bankcard.is-checked{border:2px solid var(--brand-600);background:var(--brand-50)}
.bankcard.is-disabled{opacity:.55;cursor:not-allowed}
.bankcard__top{display:flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--gray-800);margin-bottom:10px}
.pbar{height:6px;background:var(--gray-100);border-radius:3px;overflow:hidden;margin:8px 0 12px}
.pbar i{display:block;height:100%;background:var(--status-green);border-radius:3px}
.bankcard__grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;font-size:var(--text-sm)}
.bankcard__grid dt{color:var(--gray-500);display:inline}
.bankcard__grid dd{color:var(--gray-700);font-weight:500}
.kv{display:flex;justify-content:space-between;gap:12px}

/* ── Таймер срока ── */
.timer{display:inline-flex;align-items:center;gap:6px;border:var(--border-default);border-radius:var(--radius-sm);
     padding:6px 12px;font-size:var(--text-sm);font-weight:500;color:var(--gray-600)}
.timer--warn{border-color:var(--status-orange);color:var(--status-orange)}
.timer--crit{border-color:var(--status-red);color:var(--status-red)}

/* ═══ AI-слой ═══ */
.ai-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--gray-500)}
.ai-label .ic-sm{width:14px;height:14px;color:var(--ai-accent)}

/* Довод (factor chip) */
.factor{position:relative;background:var(--gray-0);border:var(--border-default);
     border-left:3px solid var(--ev);border-radius:var(--radius-sm);padding:12px 14px}
.factor--pos{--ev:var(--evidence-positive)} .factor--neg{--ev:var(--evidence-negative)} .factor--warn{--ev:var(--evidence-warning)}
.factor__row{display:flex;align-items:center;gap:10px}
.factor__sign{font-weight:700;color:var(--ev);width:16px;text-align:center;flex:none}
.factor__txt{font-size:var(--text-sm);font-weight:500;color:var(--gray-700)}
.factor__src{margin-left:auto}
.factor__bar{height:4px;background:var(--gray-100);border-radius:2px;overflow:hidden;margin:10px 0 0 26px}
.factor__bar i{display:block;height:100%;background:var(--ev);border-radius:2px}

/* Карточка предскоринга */
.pcard{background:var(--ai-bg);border:1px solid var(--ai-border);border-radius:var(--radius-lg);padding:var(--space-6)}
.pcard--hero{box-shadow:var(--shadow-md)}
.pcard__co{font-size:var(--text-base);font-weight:600;color:var(--gray-800)}
.pcard__result{display:flex;align-items:baseline;gap:8px;margin:6px 0 4px}
.pcard__result b{font-size:var(--text-4xl);font-weight:700;color:var(--brand-600);line-height:1;font-variant-numeric:tabular-nums}
.pcard__result span{font-size:var(--text-lg);color:var(--gray-500)}
.pcard__factors{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-4) 0}
.pcard__actions{display:flex;align-items:center;gap:var(--space-3)}

/* Панель ассистента */
.assist{width:360px;max-width:100%;background:var(--ai-bg);border:1px solid var(--ai-border);
     border-left:3px solid var(--ai-accent);border-radius:var(--radius-lg);padding:var(--space-5)}
.assist__head{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--gray-800);margin-bottom:var(--space-3)}
.assist__head .ic{color:var(--ai-accent)}
.assist__body{font-size:var(--text-sm);color:var(--gray-700);line-height:var(--leading-normal)}
.assist__srcs{display:flex;gap:6px;flex-wrap:wrap;margin:var(--space-3) 0}

/* Roadmap */
.roadmap{background:var(--ai-bg);border:1px solid var(--ai-border);border-radius:var(--radius-lg);padding:var(--space-5)}
.roadmap__act{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:var(--border-divider);font-size:var(--text-sm);color:var(--gray-700)}
.roadmap__eff{margin-left:auto;font-size:var(--text-xs);font-weight:500;color:var(--evidence-positive);
     background:color-mix(in srgb,var(--evidence-positive) 10%,var(--gray-0));border:1px solid color-mix(in srgb,var(--evidence-positive) 26%,transparent);
     border-radius:var(--radius-sm);padding:2px 8px}
.chk{position:relative;width:16px;height:16px;border:1px solid var(--gray-300);border-radius:4px;flex:none}
.chk.is-done{background:var(--brand-600);border-color:var(--brand-600)}
.chk.is-done::after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;
     border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}

/* ── Навигация кабинета (тёмная) ── */
.cabnav{width:240px;background:var(--gray-900);border-radius:var(--radius-lg);padding:var(--space-4);color:var(--gray-300)}
.cabnav__logo{display:flex;align-items:center;gap:8px;color:#fff;font-weight:600;padding:6px 10px 14px}
.cabnav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);
     color:var(--gray-300);font-size:var(--text-sm);font-weight:500;text-decoration:none}
.cabnav a .ic{color:var(--gray-400)}
.cabnav a:hover{background:rgba(255,255,255,.05);color:#fff}
.cabnav a.is-active{background:rgba(255,255,255,.08);color:#fff}
.cabnav a.is-active .ic{color:#fff}
.cabnav__div{height:1px;background:rgba(255,255,255,.08);margin:var(--space-3) 6px}

/* ── Пустое состояние ── */
.empty{text-align:center;padding:var(--space-16) var(--space-6);border:1px dashed var(--gray-200);border-radius:var(--radius-lg);background:var(--gray-0)}
.empty .ic-lg{color:var(--gray-300);margin-bottom:var(--space-3)}

/* ── Стат-число ── */
.stat b{display:block;font-size:var(--text-4xl);font-weight:700;color:var(--gray-900);line-height:1;font-variant-numeric:tabular-nums}
.stat span{font-size:var(--text-sm);color:var(--gray-500)}

/* ── Декор витрины ── */
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit}
.hero-bg::before{content:"";position:absolute;inset:0;
     background-image:linear-gradient(var(--gray-200) 1px,transparent 1px),linear-gradient(90deg,var(--gray-200) 1px,transparent 1px);
     background-size:64px 64px;opacity:.04}
.hero-glow{position:absolute;width:600px;height:600px;border-radius:50%;
     background:radial-gradient(circle,color-mix(in srgb,var(--brand-600) 7%,transparent),transparent 70%);
     filter:blur(140px);pointer-events:none}
