/* styles/pages/kpi-user.css — «KPI сотрудника» (#/kpi/:userId). Префикс .ku-; общие куски (.tv2-top, кнопки, полоски .kv2-bar, период .kv2-nav) из tasks-v2.css и kpi-v2.css.
   Только токены скина (classic | noir), ни одного hex. Движение только функциональное; prefers-reduced-motion - без переходов. */

.ku { --ku-T: var(--accent-primary); --ku-D: var(--status-success); --ku-P: var(--status-warning); --ku-E: var(--status-violet); --ku-S: var(--status-office); }
.ku .tv2-top h1 { display: flex; align-items: center; gap: 12px; }
.ku .tv2-eyebrow a { color: var(--text-muted); text-decoration: none; } .ku .tv2-eyebrow a:hover { color: var(--text-primary); }
.ku-acts { display: inline-flex; gap: 8px; }

.ku-hero { display: grid; grid-template-columns: minmax(200px, 280px) minmax(0, 1fr); gap: 16px; }
.ku-score, .ku-trend, .ku-card { border: 1px solid var(--tv2-line); border-radius: 14px; background: var(--tv2-card); padding: 18px 20px; }
.ku-score { display: grid; align-content: center; gap: 6px; }
.ku-score b { font: 700 52px/1 var(--font-mono); font-variant-numeric: tabular-nums; }
.ku-score span { font-size: 12px; color: var(--text-secondary); }
.ku-score em { font: 600 12px var(--font-mono); font-style: normal; }
.ku h2 { margin: 0 0 12px; font: 700 12px var(--font-sans); letter-spacing: .4px; text-transform: uppercase; color: var(--text-muted); }
.ku-chart { display: block; width: 100%; height: auto; max-height: 190px; }
.ku-gl { stroke: var(--tv2-line); stroke-width: 1; } .ku-gl--norm { stroke: var(--tv2-good); stroke-dasharray: 3 4; opacity: .55; }
.ku-yl, .ku-xl { font: 500 10px var(--font-mono); fill: var(--text-muted); }
.ku-line { fill: none; stroke: var(--tv2-accent); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.ku-area { fill: color-mix(in srgb, var(--tv2-accent) 12%, transparent); stroke: none; }
.ku-pt { fill: var(--tv2-card); stroke: var(--tv2-accent); stroke-width: 1.5; } .ku-pt.is-last { fill: var(--tv2-accent); }

.ku-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.ku-side { display: grid; gap: 16px; }
.ku-note { margin: 0 0 12px; font-size: 12px; line-height: 1.45; color: var(--text-muted); }
.ku-stack { display: flex; height: 12px; margin-bottom: 18px; border-radius: 6px; overflow: hidden; background: var(--tv2-line); gap: 2px; }
.ku-seg { display: block; height: 100%; } .ku-seg--T, .ku-key--T { background: var(--ku-T); } .ku-seg--D, .ku-key--D { background: var(--ku-D); } .ku-seg--P, .ku-key--P { background: var(--ku-P); } .ku-seg--E, .ku-key--E { background: var(--ku-E); } .ku-seg--S, .ku-key--S { background: var(--ku-S); }
.ku-comps { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.ku-comp { display: grid; gap: 6px; padding-bottom: 14px; border-bottom: 1px solid var(--tv2-line); } .ku-comp:last-child { border-bottom: 0; padding-bottom: 0; }
.ku-comp__h { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ku-comp__h b { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }
.ku-comp__h span { font-size: 11.5px; color: var(--text-muted); } .ku-comp__h em { font: 700 12px var(--font-mono); font-style: normal; color: var(--text-primary); }
.ku-key { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 5px; font: 700 11px var(--font-mono); font-style: normal; color: var(--text-inverse, var(--bg-base)); }
.ku-comp__b { display: grid; grid-template-columns: minmax(0, 1fr) 56px; gap: 12px; align-items: center; } .ku-comp__b b { font: 700 14px var(--font-mono); text-align: right; }
.ku-comp p { margin: 0; font-size: 11.5px; line-height: 1.4; color: var(--text-muted); } .ku-comp p a { color: var(--tv2-accent); }
.ku-comp--none { opacity: .6; } .ku-comp--none .ku-comp__h b { font-weight: 500; color: var(--text-secondary); }
.ku-pf { margin: 0 0 12px; display: grid; gap: 12px; }
.ku-pf > div { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: baseline; }
.ku-pf dt { font-size: 12px; color: var(--text-secondary); } .ku-pf dd { margin: 0; text-align: right; font: 700 20px var(--font-mono); font-variant-numeric: tabular-nums; }
.ku-pf dd small { display: block; font: 400 10.5px var(--font-sans); color: var(--text-muted); }
.ku-pf .ku-money { grid-column: 1 / -1; font-size: 12.5px; color: var(--text-secondary); }

@media (max-width: 900px) { .ku-hero, .ku-grid { grid-template-columns: 1fr; } .ku-score b { font-size: 44px; } }
@media (max-width: 560px) { .ku-score, .ku-trend, .ku-card { padding: 14px; } .ku-acts { width: 100%; flex-wrap: wrap; } }
@media (prefers-reduced-motion: reduce) { .ku * { transition: none !important; } }
