/* ====================================================================
   deck · средният етаж на пулта (plan T529 — нов, по стария вид на плеъра)
   Една карта без рамка: редът на плеъра (рамка по състоянието — зелена при
   пускане, червена при запис), полето — плътно хапче, шест копчета с блед
   тон; плътно е само включеното (запис, докато записва).
   ==================================================================== */
.nx-deck{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.nx-deck__row{grid-column:1/-1;display:flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:20px;
  background:var(--nx-fill-solid,color-mix(in srgb,var(--nx-text) 8%,var(--nx-surface-1)));color:var(--nx-text);font-size:13px;cursor:pointer;touch-action:none;overflow:hidden}
.nx-deck__row[data-tone="play"]{background:var(--nx-ok-bg);box-shadow:inset 0 0 0 1.5px var(--nx-ok)}
.nx-deck__row[data-tone="rec"]{background:var(--nx-err-bg);box-shadow:inset 0 0 0 1.5px var(--nx-err)}
.nx-deck__row[data-tone="ok"]{background:var(--nx-ok-bg);box-shadow:inset 0 0 0 1.5px var(--nx-ok);color:var(--nx-ok)}
.nx-deck__row[data-tone="err"]{background:var(--nx-err-bg);box-shadow:inset 0 0 0 1.5px var(--nx-err);color:var(--nx-err)}
/* Точката е само при запис — мига; другаде знакът (SVG) казва състоянието. */
.nx-deck__dot{display:none;flex:0 0 10px;width:10px;height:10px;border-radius:5px;background:var(--nx-err)}
.nx-deck__row[data-tone="rec"] .nx-deck__dot{display:block;animation:nx-deck-blink 1s steps(2,jump-none) infinite}
@keyframes nx-deck-blink{50%{opacity:.2}}
.nx-deck__sign{display:flex;flex:0 0 auto}
.nx-deck__sign:empty{display:none}
.nx-deck__sign svg{width:18px;height:18px}
.nx-deck__row[data-tone="play"] .nx-deck__sign{color:var(--nx-ok)}
.nx-deck__row[data-tone="pause"] .nx-deck__sign{color:var(--nx-text-2)}
.nx-deck__text{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nx-deck__bar{flex:1 1 auto;min-width:24px;height:2px;margin:0 10px;border-radius:1px;background:var(--nx-track,color-mix(in srgb,var(--nx-text) 12%,transparent))}
.nx-deck__bar[hidden]{display:block;visibility:hidden}
.nx-deck__bar b{display:block;height:2px;border-radius:1px;background:var(--nx-text-3)}
.nx-deck__row[data-tone="play"] .nx-deck__bar b{background:var(--nx-ok)}
.nx-deck__clock{flex:0 0 auto;margin-left:auto;color:var(--nx-text-3);font-variant-numeric:tabular-nums}
.nx-deck__clock::after{content:"";display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:3px;vertical-align:middle}
.nx-deck__row.is-busy .nx-deck__clock::after{background:var(--nx-text-3)}
.nx-deck__open{flex:0 0 auto;min-height:28px;padding:0 12px;border:1px solid currentColor;border-radius:14px;background:var(--nx-surface-1);color:inherit;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.nx-deck__open[hidden]{display:none}

.nx-deck__write{grid-column:1/-1;display:flex;align-items:center;gap:6px;min-height:48px;padding:0 6px 0 14px;border-radius:24px;
  background:var(--nx-fill-solid,color-mix(in srgb,var(--nx-text) 8%,var(--nx-surface-1)))}
.nx-deck__write:focus-within{box-shadow:0 0 0 2px var(--nx-accent)}
/* Полето — на няколко реда (T539 3а): расте до шест, после се превърта. */
.nx-deck__field{flex:1;min-width:0;height:44px;max-height:154px;padding:11px 0;box-sizing:border-box;resize:none;overflow-y:auto;scrollbar-width:thin;border:0;background:none;color:var(--nx-text);font:inherit;font-size:15px;line-height:22px;outline:none}
.nx-deck__field::placeholder{color:var(--nx-text-3)}
.nx-deck__clear{flex:0 0 32px;width:32px;height:32px;padding:0;border:0;border-radius:16px;display:flex;align-items:center;justify-content:center;
  color:var(--nx-text-2);background:var(--nx-fill-solid,color-mix(in srgb,var(--nx-text) 8%,var(--nx-surface-1)))}
.nx-deck__clear[hidden]{display:none}
.nx-deck__clear svg{width:16px;height:16px}

/* Горе трите на плеъра, долу четирите на рекордера — запис · снимка · изпрати · Share (N102 · T654). */
.nx-deck__keys{grid-column:1/-1;display:grid;grid-template-columns:repeat(12,1fr);gap:6px}
.nx-deck__key{grid-column:span 4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;padding:6px;border:0;border-radius:12px;
  background:var(--nx-fill-solid,color-mix(in srgb,var(--nx-text) 8%,var(--nx-surface-1)));color:var(--nx-text);font-size:11.5px}
.nx-deck__key svg{width:20px;height:20px}
.nx-deck__key:active{transform:scale(.97)}
.nx-deck__key[data-kind="own"]{grid-column:span 4} /* запис · снимка · изпрати — целият ред; Share падна и мястото му остава на „изпрати“ (N116 · owner 30.09 21:19) */
.nx-deck__key span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* под името — кои сесии въртят („изпрати“) */
.nx-deck__key small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;line-height:1.1;opacity:.75}
.nx-deck__key small:empty{display:none}
.nx-deck__key[data-id="play"]{background:var(--nx-ok-bg);color:var(--nx-ok)}
.nx-deck__key[data-id="rec"]{background:var(--nx-err-bg);color:var(--nx-err)}
.nx-deck__key[data-id="rec"] svg{fill:var(--nx-err);stroke:none}
/* „изпрати“ свети, докато има бележка, която nx-lead не е прочел; угаснало — тихо */
.nx-deck__key[data-id="wake"]{color:var(--nx-text-3)}
.nx-deck__key[data-id="wake"].is-lit{background:var(--nx-ok-bg);color:var(--nx-ok);font-weight:600}
.nx-deck[data-state="записва"] .nx-deck__key[data-id="rec"]{background:var(--nx-err);color:var(--nx-bg);font-variant-numeric:tabular-nums;animation:nx-deck-ring 1.4s ease-out infinite}
.nx-deck[data-state="записва"] .nx-deck__key[data-id="rec"] svg{fill:var(--nx-bg)}
@keyframes nx-deck-ring{0%{box-shadow:0 0 0 0 rgba(220,38,38,.45)}100%{box-shadow:0 0 0 10px transparent}}
.nx-deck__key:disabled{opacity:.45}
/* Натиснатото — прието и заключено до отговора (owner 26.09 11:59). */
.nx-deck__key.is-busy{cursor:progress;animation:nx-busy .7s ease-in-out infinite alternate}

/* Нивото на гласа при запис (T549 · N54) — пет ленти в знака на реда. */
.nx-deck__lvl{display:inline-flex;align-items:center;gap:2px;height:16px}
.nx-deck__lvl b{display:block;width:3px;height:16px;border-radius:2px;background:currentColor;transform:scaleY(.12);transition:transform 80ms linear}
@media (prefers-reduced-motion:reduce){.nx-deck__lvl b{transition:none}}

/* Копчетата на рекордера — 64 px, колкото контекстните действия над тях (owner 29.09 21:34: „da izravnim visochinata
   zashtoto sa mi malki za natiskane“ · 52 → 64). */

/* ==== Б7 — меки плочки по роля, от гамата на темата (owner 01.10 · T759) ====
   Свирене — темата; запис — червено; изпрати и обади се — зелено; контекстните (is-info) — темата; назад · напред и
   другите — неутрални. Плочката е блед тон на самия цвят на ролята, текстът — същият тон, по-тъмен; в тъмната — тъмен
   тон и светъл текст. Активното (свири · записва) — по-наситено. */
.nx-deck__key[data-id="play"],.nx-deck__key.is-info{--role:var(--nx-accent)}
.nx-deck__key[data-id="rec"],.nx-deck__key.is-stop{--role:var(--nx-err)}
.nx-deck__key[data-id="wake"],.nx-deck__key.is-go:not([data-id="play"]){--role:var(--nx-ok)}
:root .nx-deck .nx-deck__key:is([data-id="play"],[data-id="rec"],[data-id="wake"],.is-info,.is-stop,.is-go){background:oklch(from var(--role) .93 calc(c * .28) h);color:oklch(from var(--role) .4 c h)}
:root .nx-deck .nx-deck__key:is([data-id="play"],[data-id="rec"],[data-id="wake"],.is-info,.is-stop,.is-go) svg{color:var(--role)}
:root .nx-deck .nx-deck__key[data-id="rec"] svg{fill:var(--role)}
:root .nx-deck .nx-deck__key[data-id="wake"]:not(.is-lit){background:oklch(from var(--role) .96 calc(c * .12) h);color:oklch(from var(--role) .45 calc(c * .6) h)}
:root[data-theme="dark"] .nx-deck .nx-deck__key:is([data-id="play"],[data-id="rec"],[data-id="wake"],.is-info,.is-stop,.is-go){background:oklch(from var(--role) .3 calc(c * .42) h);color:oklch(from var(--role) .84 calc(c * .85) h)}
:root[data-theme="dark"] .nx-deck .nx-deck__key[data-id="wake"]:not(.is-lit){background:oklch(from var(--role) .25 calc(c * .2) h);color:oklch(from var(--role) .72 calc(c * .5) h)}
.nx-deck[data-state="свири"] .nx-deck__key[data-id="play"],.nx-deck[data-state="записва"] .nx-deck__key[data-id="rec"]{background:oklch(from var(--role) .86 calc(c * .5) h)}
:root[data-theme="dark"] .nx-deck[data-state="свири"] .nx-deck__key[data-id="play"],:root[data-theme="dark"] .nx-deck[data-state="записва"] .nx-deck__key[data-id="rec"]{background:oklch(from var(--role) .38 calc(c * .6) h)}

/* Уредът на автопаузата в реда на плеъра (N152): нивото и чертата, над която спира */
.nx-deck__ap{position:relative;flex:0 0 40px;height:6px;border-radius:3px;background:color-mix(in srgb,var(--nx-text) 14%,transparent)}
.nx-deck__ap[hidden]{display:none}
.nx-deck__ap b{position:absolute;inset:0 auto 0 0;border-radius:3px;background:var(--nx-ok);transition:width .1s linear}
.nx-deck__ap s{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;border-radius:1px;background:var(--nx-err)}
.nx-deck__ap.is-over b{background:var(--nx-err)}
.nx-deck__ap.is-measuring{opacity:.45}

/* „записва сам“ — автозаписът (T781): лек знак в реда на плеъра, без режима на запис */
.nx-deck__auto{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;padding:0 8px;min-height:20px;border-radius:10px;font-size:11.5px;font-weight:600;color:var(--nx-err);background:color-mix(in srgb,var(--nx-err) 12%,transparent)}
.nx-deck__auto[hidden]{display:none}
.nx-deck__auto::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--nx-err);animation:nx-deck-blink 1s steps(2,jump-none) infinite}

/* N160 — качването: точка, винаги на мястото си (8 px), видима само докато качва */
.nx-deck__up{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--nx-accent);opacity:0;transition:opacity .2s}
.nx-deck__up.is-on{opacity:1;animation:nx-deck-blink 1.2s steps(2,jump-none) infinite}
