/* ============================================================
   WoodSpace — Luxury Cyberpunk Design System v30
   ============================================================ */

/* ── ПЕРЕМЕННЫЕ ─────────────────────────────────────────── */
:root {
  --bg:           #0b1326;
  --bg-dim:       #060e20;
  --bg-low:       #131b2e;
  --bg-card:      #171f33;
  --bg-high:      #222a3d;
  --bg-highest:   #2d3449;
  --bg-soft:      #171f33;
  --text:         #dae2fd;
  --text-dim:     #bac9cc;
  --text-faint:   #849396;
  --accent:       #00daf3;
  --accent-glow:  rgba(0,218,243,0.35);
  --accent-dim:   rgba(0,218,243,0.12);
  --accent-2:     #c0c1ff;
  --accent-2-bg:  rgba(192,193,255,0.10);
  --red:          #ffb4ab;
  --red-bg:       rgba(255,180,171,0.10);
  --yellow:       #ffd966;
  --yellow-bg:    rgba(255,217,102,0.10);
  --green:        #2fd97a;
  --green-bg:     rgba(47,217,122,0.10);
  --line:         #3b494c;
  --line-faint:   rgba(59,73,76,0.35);
  --glass-bg:     rgba(23,31,51,0.72);
  --glass-border: rgba(255,255,255,0.08);
  --glass-t:      rgba(255,255,255,0.14);
  --font-head:    'Plus Jakarta Sans', sans-serif;
  --font-body:    'Inter', sans-serif;
  --font-mono:    'JetBrains Mono', monospace;
  --r-sm: 6px; --r-md: 10px; --r-lg: 16px; --r-xl: 20px;
  --sidebar-w: 248px; --sidebar-w-c: 68px;
}

/* ── БАЗА ─────────────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html, body { height:100%; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px; line-height: 1.5;
  overflow: hidden;
}
body::before {
  content:''; position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(0,98,110,0.16), transparent),
    radial-gradient(ellipse 50% 35% at 88% 85%, rgba(49,49,192,0.07), transparent),
    linear-gradient(rgba(59,73,76,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59,73,76,0.05) 1px, transparent 1px);
  background-size: auto, auto, 48px 48px, 48px 48px;
}
::-webkit-scrollbar { width:4px; height:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(59,73,76,0.45); border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:rgba(0,218,243,0.4); }
h1,h2,h3 { font-family:var(--font-head); font-weight:700; letter-spacing:-0.01em; }
.mono { font-family:var(--font-mono); }

/* ── СПЛЭШ ────────────────────────────────────────────────── */
.splash {
  position:fixed; inset:0; z-index:100;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--bg-dim);
  transition:opacity .8s ease, transform .8s ease;
}
.splash::after {
  content:''; position:absolute; top:-25%; left:50%; transform:translateX(-50%);
  width:800px; height:800px;
  background:radial-gradient(circle, rgba(0,218,243,0.1) 0%, transparent 60%);
  filter:blur(40px); pointer-events:none;
}
.splash.hidden { opacity:0; transform:scale(1.04); pointer-events:none; }
.logo {
  font-family:var(--font-head); font-size:clamp(3rem,12vw,7rem);
  font-weight:800; letter-spacing:-0.03em; line-height:1; z-index:1;
  opacity:0; animation:logoIn 1.4s cubic-bezier(0.16,1,0.3,1) forwards;
}
.logo .wood { color:var(--text); }
.logo .space { color:var(--accent); text-shadow:0 0 30px var(--accent-glow),0 0 80px rgba(0,218,243,0.15); }
@keyframes logoIn {
  0%   { opacity:0; filter:blur(20px); transform:translateY(24px) scale(0.96); }
  100% { opacity:1; filter:blur(0); transform:translateY(0) scale(1); }
}
.phrase {
  margin-top:2rem; height:1.4em; z-index:1;
  font-family:var(--font-mono); font-size:clamp(.65rem,2.2vw,.88rem);
  color:var(--text-dim); letter-spacing:.04em;
  opacity:0; animation:fadeUp 1s ease .7s forwards;
}
.caret { color:var(--accent); animation:blink 1s steps(1) infinite; }
@keyframes blink { 0%,50%{opacity:1} 50.01%,100%{opacity:0} }
.enter-btn {
  margin-top:3.5rem; z-index:1;
  font-family:var(--font-mono); font-size:.9rem; font-weight:600;
  letter-spacing:.1em; color:var(--bg-dim); background:var(--accent);
  border:none; padding:.9rem 2.8rem; border-radius:var(--r-md);
  cursor:pointer; opacity:0; animation:fadeUp 1s ease 1s forwards;
  transition:box-shadow .3s, transform .15s;
}
.enter-btn:hover { box-shadow:0 0 32px var(--accent-glow); }
.enter-btn:active { transform:translateY(1px); }
.enter-btn .arrow { display:inline-block; transition:transform .3s; }
.enter-btn:hover .arrow { transform:translateX(6px); }
@keyframes fadeUp { 0%{opacity:0;transform:translateY(16px)} 100%{opacity:1;transform:translateY(0)} }

/* ── ВХОД ─────────────────────────────────────────────────── */
.login {
  position:fixed; inset:0; z-index:90;
  display:flex; align-items:center; justify-content:center; padding:1.5rem;
  opacity:0; transform:translateY(20px); pointer-events:none;
  transition:opacity .7s ease .3s, transform .7s ease .3s;
}
.login.show { opacity:1; transform:translateY(0); pointer-events:auto; }
.login-card {
  width:100%; max-width:400px;
  background:var(--glass-bg); backdrop-filter:blur(20px);
  border:1px solid var(--glass-border); border-top-color:var(--glass-t); border-left-color:var(--glass-t);
  border-radius:var(--r-xl); padding:2.4rem 2rem;
  box-shadow:0 40px 80px rgba(0,0,0,.5), 0 0 0 1px rgba(0,218,243,.04);
  position:relative;
}
.login-card::before {
  content:''; position:absolute; top:0; left:24px; right:24px; height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent); opacity:.45;
}
.login-card h2 { font-size:1.5rem; font-weight:700; letter-spacing:-0.02em; margin-bottom:.3rem; }
.login-card .sub {
  font-family:var(--font-mono); font-size:.7rem; color:var(--text-dim);
  margin-bottom:2rem; letter-spacing:.04em;
}

/* ── ПОЛЯ ─────────────────────────────────────────────────── */
.field { margin-bottom:1.1rem; }
.field label {
  display:block; font-family:var(--font-mono); font-size:.67rem; font-weight:600;
  color:var(--text-dim); margin-bottom:.45rem; letter-spacing:.07em;
}
.field input,.field select,.field textarea {
  width:100%; background:rgba(6,14,32,.6);
  border:1px solid var(--line-faint); border-radius:var(--r-sm);
  padding:.72rem .9rem; color:var(--text);
  font-family:var(--font-mono); font-size:.88rem; outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.field input:focus,.field select:focus,.field textarea:focus {
  border-color:var(--accent); box-shadow:0 0 0 3px rgba(0,218,243,.1);
}
.field input::placeholder,.field textarea::placeholder { color:rgba(186,201,204,.25); }
.field select { appearance:none; cursor:pointer; }
input[type="date"]::-webkit-calendar-picker-indicator { filter:invert(.6); }

/* ── КНОПКИ ──────────────────────────────────────────────── */
.submit {
  width:100%; margin-top:.5rem;
  font-family:var(--font-mono); font-size:.88rem; font-weight:600;
  letter-spacing:.08em; color:var(--bg-dim); background:var(--accent);
  border:none; padding:.9rem; border-radius:var(--r-md);
  cursor:pointer; transition:box-shadow .3s, transform .15s;
}
.submit:hover { box-shadow:0 0 28px var(--accent-glow); }
.submit:active { transform:translateY(1px); }

.btn-primary {
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--font-mono); font-size:.78rem; font-weight:600;
  letter-spacing:.06em; color:var(--bg-dim); background:var(--accent);
  border:none; padding:.58rem 1.2rem; border-radius:var(--r-md);
  cursor:pointer; transition:box-shadow .2s, transform .15s; white-space:nowrap;
}
.btn-primary:hover { box-shadow:0 0 20px rgba(0,218,243,.4); }
.btn-primary:active { transform:translateY(1px); }

.act-btn {
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--font-mono); font-size:.76rem; font-weight:500;
  letter-spacing:.03em; color:var(--text-dim);
  background:rgba(34,42,61,.55); backdrop-filter:blur(8px);
  border:1px solid var(--line-faint); padding:.52rem .95rem; border-radius:var(--r-md);
  cursor:pointer; transition:all .18s; white-space:nowrap;
}
.act-btn:hover { border-color:var(--accent); color:var(--accent); background:var(--accent-dim); }
.act-btn.danger { color:var(--red); border-color:rgba(255,180,171,.2); }
.act-btn.danger:hover { background:var(--red-bg); border-color:var(--red); }

.tg-btn {
  width:100%; padding:.8rem;
  font-family:var(--font-mono); font-size:.82rem; color:var(--text-dim);
  background:rgba(34,42,61,.45); border:1px solid var(--line-faint);
  border-radius:var(--r-md); cursor:pointer; transition:border-color .2s, color .2s;
}
.tg-btn:hover { border-color:var(--accent-2); color:var(--accent-2); }

.back {
  display:block; text-align:center; margin-top:1.2rem;
  font-family:var(--font-mono); font-size:.72rem; color:var(--text-dim);
  cursor:pointer; background:none; border:none; width:100%; transition:color .2s;
}
.back:hover { color:var(--text); }

.divider {
  display:flex; align-items:center; gap:.8rem; margin:1.4rem 0;
  color:var(--text-dim); font-family:var(--font-mono); font-size:.7rem;
}
.divider::before,.divider::after { content:''; flex:1; height:1px; background:var(--line-faint); }

.hint {
  margin-top:1rem; padding:.65rem .85rem;
  background:rgba(0,218,243,.05); border:1px solid rgba(0,218,243,.14);
  border-radius:var(--r-md);
  font-family:var(--font-mono); font-size:.7rem; color:var(--text-dim); line-height:1.5;
}
.hint b { color:var(--accent); }
.err { font-family:var(--font-mono); font-size:.72rem; color:var(--red); margin-top:.5rem; min-height:1em; text-align:center; }
.err.ok { color:var(--green); }

/* ── APP SHELL ────────────────────────────────────────────── */
.app { display:none; height:100%; position:relative; z-index:1; }
.app.show { display:flex; }

/* ── САЙДБАР ──────────────────────────────────────────────── */
.sidebar {
  width:var(--sidebar-w); flex-shrink:0; height:100vh;
  background:rgba(11,19,38,.88); backdrop-filter:blur(24px);
  border-right:1px solid var(--line-faint);
  display:flex; flex-direction:column;
  padding:1.5rem 0 1rem; z-index:20;
  transition:width .25s ease; overflow:hidden;
}
.sidebar.collapsed { width:var(--sidebar-w-c); }
.sidebar.collapsed .brand-sub,
.sidebar.collapsed .nav-label,
.sidebar.collapsed .user-info,
.sidebar.collapsed .logout span.txt { display:none; }
.sidebar.collapsed .collapse-btn { transform:rotate(180deg); }
.sidebar.collapsed .nav-item { justify-content:center; padding:.72rem 0; }

.brand-row {
  display:flex; align-items:center; justify-content:space-between;
  padding:0 1.2rem 0 1.5rem; margin-bottom:.15rem;
}
.brand {
  font-family:var(--font-head); font-size:1.1rem; font-weight:800;
  letter-spacing:.1em; color:var(--text);
}
.brand .ac { color:var(--accent); }
.brand-sub {
  font-family:var(--font-mono); font-size:.6rem; color:var(--text-faint);
  letter-spacing:.06em; padding:0 1.5rem; margin-bottom:1.4rem;
}
.collapse-btn {
  background:none; border:none; color:var(--text-dim); cursor:pointer;
  padding:.3rem; border-radius:var(--r-sm); font-size:1.1rem; line-height:1;
  transition:color .2s, transform .25s;
}
.collapse-btn:hover { color:var(--accent); }

.nav { flex:1; overflow-y:auto; overflow-x:hidden; padding:0 .5rem; }
.nav-item {
  display:flex; align-items:center; gap:.85rem;
  padding:.65rem 1rem; margin-bottom:2px; border-radius:var(--r-md);
  color:var(--text-dim); cursor:pointer;
  font-family:var(--font-mono); font-size:.73rem; font-weight:500;
  letter-spacing:.04em; transition:all .18s;
  border-left:2px solid transparent; white-space:nowrap; overflow:hidden;
}
.nav-item:hover {
  background:rgba(0,218,243,.06); color:var(--text);
  border-left-color:rgba(0,218,243,.3); transform:translateX(2px);
}
.nav-item.active {
  background:rgba(0,218,243,.1); color:var(--accent);
  border-left-color:var(--accent);
  box-shadow:inset 8px 0 16px -8px rgba(0,218,243,.2);
}
.nav-ic { font-size:1rem; flex-shrink:0; }

.user-box {
  display:flex; align-items:center; gap:.75rem;
  padding:.8rem 1.2rem 0 1.5rem;
  border-top:1px solid var(--line-faint); margin-top:.5rem;
}
.user-avatar {
  width:34px; height:34px; flex-shrink:0; border-radius:50%;
  background:var(--bg-highest); border:1px solid rgba(0,218,243,.2);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:.82rem; font-weight:700; color:var(--accent);
  transition:border-color .2s, box-shadow .2s;
}
.user-avatar:hover { border-color:var(--accent); box-shadow:0 0 0 2px rgba(0,229,212,.25); }
.user-info { flex:1; overflow:hidden; cursor:pointer; }
.user-info:hover .name { color:var(--accent); }
.user-box .name { font-size:.8rem; font-weight:600; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-box .role { font-family:var(--font-mono); font-size:.62rem; color:var(--text-dim); margin-top:1px; }
.logout {
  background:none; border:none; color:var(--text-faint); cursor:pointer; padding:.3rem;
  border-radius:var(--r-sm); flex-shrink:0; transition:color .2s;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.04em;
}
.logout:hover { color:var(--red); }
.logout .material-symbols-outlined { font-size:1.1rem; }

/* ── MAIN ─────────────────────────────────────────────────── */
.main { flex:1; display:flex; flex-direction:column; overflow:hidden; min-width:0; }

.topbar {
  display:flex; align-items:center; justify-content:space-between;
  padding:0 1.4rem; height:56px; flex-shrink:0;
  background:rgba(11,19,38,.72); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line-faint); gap:1rem;
}
.topbar-left { display:flex; align-items:center; gap:.8rem; min-width:0; }
.topbar h1 {
  font-family:var(--font-head); font-size:1rem; font-weight:700;
  letter-spacing:-0.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.burger {
  background:none; border:none; color:var(--text-dim); cursor:pointer;
  padding:.3rem; display:none; align-items:center; border-radius:var(--r-sm);
  transition:color .2s;
}
.burger .material-symbols-outlined { font-size:1.3rem; }
.burger:hover { color:var(--accent); }
.actions { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; flex-shrink:0; }
.content { flex:1; overflow-y:auto; padding:1.4rem; position:relative; }

/* ── КАРТОЧКИ (GLASS) ─────────────────────────────────────── */
.card {
  background:var(--glass-bg); backdrop-filter:blur(12px);
  border:1px solid var(--glass-border); border-top-color:var(--glass-t); border-left-color:var(--glass-t);
  border-radius:var(--r-lg); padding:1.4rem; margin-bottom:1rem;
}

/* ── DETAIL ROWS ──────────────────────────────────────────── */
.detail-row { display:flex; align-items:baseline; gap:1rem; padding:.48rem 0; border-bottom:1px solid var(--line-faint); }
.detail-row:last-of-type { border-bottom:none; }
.k { font-family:var(--font-mono); font-size:.64rem; font-weight:600; color:var(--text-faint); letter-spacing:.07em; min-width:90px; flex-shrink:0; }
.v { color:var(--text); font-size:.88rem; }

.history { margin-top:1.2rem; }
.history h3 { font-family:var(--font-mono); font-size:.68rem; color:var(--accent); letter-spacing:.08em; margin-bottom:.6rem; }
.hist-item { font-family:var(--font-mono); font-size:.78rem; color:var(--text-dim); padding:.32rem 0; border-bottom:1px solid var(--line-faint); }
.hist-item:last-child { border-bottom:none; }

/* ── СТАТУСЫ ──────────────────────────────────────────────── */
.status,.tag { max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex-shrink:0; }
.status,.tag {
  display:inline-flex; align-items:center; gap:.3rem;
  padding:.18rem .7rem; border-radius:999px;
  font-family:var(--font-mono); font-size:.64rem; font-weight:600;
  letter-spacing:.05em; white-space:nowrap;
}
.s-accepted   { background:rgba(192,193,255,.1);  color:var(--accent-2); border:1px solid rgba(192,193,255,.2); }
.s-sewing     { background:rgba(0,218,243,.1);    color:var(--accent);   border:1px solid rgba(0,218,243,.25); }
.s-upholstery { background:rgba(0,218,243,.1);    color:var(--accent);   border:1px solid rgba(0,218,243,.25); }
.s-assembly   { background:rgba(255,217,102,.1);  color:var(--yellow);   border:1px solid rgba(255,217,102,.2); }
.s-warehouse  { background:rgba(47,217,122,.1);   color:var(--green);    border:1px solid rgba(47,217,122,.2); }
.s-shipped    { background:rgba(59,73,76,.25);    color:var(--text-dim); border:1px solid var(--line-faint); }
.s-rework     { background:var(--red-bg);          color:var(--red);      border:1px solid rgba(255,180,171,.2); }
.s-cancelled  { background:rgba(59,73,76,.15);    color:var(--text-faint); border:1px solid var(--line-faint); }

.prio-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.p-red    { background:var(--red);    box-shadow:0 0 7px rgba(255,180,171,.6); }
.p-yellow { background:var(--yellow); box-shadow:0 0 7px rgba(255,217,102,.5); }
.p-green  { background:var(--green);  box-shadow:0 0 5px rgba(47,217,122,.4); }
.prio-group { display:flex; align-items:center; gap:.4rem; }
.prio-btn { width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; border:2px solid transparent; transition:transform .15s; }
.prio-btn:hover { transform:scale(1.2); }

/* ── СПИСОК ЗАКАЗОВ ───────────────────────────────────────── */
.order-row {
  display:flex; align-items:center; gap:.6rem; padding:.75rem .9rem; margin-bottom:3px;
  background:rgba(23,31,51,.45); border:1px solid var(--line-faint); border-radius:var(--r-md);
  cursor:pointer; transition:all .18s; min-width:0; overflow:hidden;
}
.order-row:hover { background:rgba(0,218,243,.05); border-color:rgba(0,218,243,.22); }
.order-selected { background:rgba(0,229,212,.12) !important; border-color:var(--accent) !important; outline:2px solid var(--accent); }
/* Двухстрочный body строки заказа */
.orow-body { flex:1; min-width:0; }
.orow-top { display:flex; align-items:center; gap:.5rem; min-width:0; margin-bottom:3px; }
.onum { font-family:var(--font-mono); font-size:.85rem; font-weight:600; color:var(--accent); flex-shrink:0; }
.orow-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.87rem; }
.orow-sub { display:flex; justify-content:space-between; align-items:center; gap:.4rem; min-width:0; }
.orow-loc { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:right; flex-shrink:0; max-width:45%; }
/* Статус в строке заказа — компактный */
.orow-top .status { font-size:.65rem; padding:.18rem .5rem; flex-shrink:0; white-space:nowrap; }
.oinfo { flex:1; min-width:0; }
.oinfo > div:first-child { color:var(--text); font-size:.87rem; margin-bottom:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lname { font-size:.87rem; color:var(--text); }
.lsub  { font-family:var(--font-mono); font-size:.7rem; color:var(--text-dim); margin-top:2px; }

/* ── ФИЛЬТРЫ / ЧИПЫ ──────────────────────────────────────── */
.filters { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:1rem; }
.chip {
  padding:.38rem .9rem; border-radius:999px; cursor:pointer;
  font-family:var(--font-mono); font-size:.7rem; font-weight:500;
  color:var(--text-dim); border:1px solid var(--line-faint);
  background:rgba(23,31,51,.4); transition:all .18s;
}
.chip:hover { border-color:rgba(0,218,243,.28); color:var(--accent); }
.chip.on { background:rgba(0,218,243,.1); color:var(--accent); border-color:rgba(0,218,243,.38); }

/* ── МОДАЛКИ ──────────────────────────────────────────────── */
.modal-bg {
  position:fixed; inset:0; z-index:200;
  background:rgba(6,14,32,.82); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center; padding:1rem;
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.modal-bg.show { opacity:1; pointer-events:auto; }
.modal {
  position:relative;
  background:var(--glass-bg); backdrop-filter:blur(20px);
  border:1px solid var(--glass-border); border-top-color:var(--glass-t); border-left-color:var(--glass-t);
  border-radius:var(--r-xl); padding:1.6rem;
  max-width:480px; width:100%; max-height:90vh; overflow-y:auto;
  box-shadow:0 40px 80px rgba(0,0,0,.5);
  animation:modalIn .25s cubic-bezier(.34,1.56,.64,1);
}
.modal-x {
  position:absolute; top:.7rem; right:.7rem;
  background:none; border:none; cursor:pointer;
  color:var(--text-dim); font-size:1.1rem; line-height:1;
  padding:.25rem .45rem; border-radius:var(--r-sm);
  transition:all .15s;
}
.modal-x:hover { color:var(--text); background:rgba(255,255,255,.08); }
@keyframes modalIn { from { transform:scale(.94) translateY(10px); opacity:0; } }
.modal h3 { font-family:var(--font-head); font-size:1.08rem; font-weight:700; margin-bottom:.8rem; }
.modal p { font-size:.87rem; color:var(--text-dim); line-height:1.6; margin-bottom:.8rem; }
.modal-actions { display:flex; gap:.6rem; margin-top:1.2rem; flex-wrap:wrap; }

/* ── ДАШБОРД ──────────────────────────────────────────────── */
.dash-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:1.5rem; }
.stat-card {
  background:var(--glass-bg); backdrop-filter:blur(12px);
  border:1px solid var(--glass-border); border-top-color:var(--glass-t);
  border-radius:var(--r-lg); padding:1.4rem; overflow:hidden; position:relative;
}
.stat-card::after { content:''; position:absolute; top:0; right:0; width:110px; height:110px; background:radial-gradient(circle at 80% 20%, rgba(0,218,243,.07), transparent 70%); }
.stat-card.green::after { background:radial-gradient(circle at 80% 20%, rgba(47,217,122,.07), transparent 70%); }
.stat-card.yellow::after { background:radial-gradient(circle at 80% 20%, rgba(255,217,102,.07), transparent 70%); }
.stat-num { font-family:var(--font-head); font-size:2.4rem; font-weight:800; color:var(--accent); line-height:1; margin-bottom:.35rem; }
.stat-card.green .stat-num { color:var(--green); }
.stat-card.yellow .stat-num { color:var(--yellow); }
.stat-label { font-family:var(--font-mono); font-size:.67rem; color:var(--text-dim); letter-spacing:.06em; }
.dash-section-title { font-family:var(--font-mono); font-size:.68rem; font-weight:600; color:var(--accent); letter-spacing:.1em; margin:1.5rem 0 .8rem; }

.pipeline { display:flex; margin-bottom:1.5rem; }
.pipe-stage { flex:1; text-align:center; padding:1rem .5rem; background:rgba(23,31,51,.45); border:1px solid var(--line-faint); border-right:none; position:relative; }
.pipe-stage:first-child { border-radius:var(--r-md) 0 0 var(--r-md); }
.pipe-stage:last-child  { border-radius:0 var(--r-md) var(--r-md) 0; border-right:1px solid var(--line-faint); }
.pipe-stage::after { content:'›'; position:absolute; right:-10px; top:50%; transform:translateY(-50%); font-size:1.1rem; color:var(--text-faint); z-index:1; }
.pipe-stage:last-child::after { display:none; }
.pc { font-family:var(--font-head); font-size:1.8rem; font-weight:800; color:var(--accent); line-height:1; }
.pl { font-family:var(--font-mono); font-size:.6rem; color:var(--text-dim); letter-spacing:.05em; margin-top:.3rem; }

/* ── ПРОИЗВОДСТВО ─────────────────────────────────────────── */
.shift-bar { display:flex; align-items:center; justify-content:space-between; padding:.8rem 1rem; margin-bottom:1rem; background:rgba(23,31,51,.5); border:1px solid var(--line-faint); border-radius:var(--r-md); }
.shift-on { color:var(--green); font-family:var(--font-mono); font-size:.85rem; font-weight:600; }
.shift-off { color:var(--red); font-family:var(--font-mono); font-size:.85rem; font-weight:600; }
.pulse { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--green); margin-right:.5rem; animation:pulseGlow 1.5s ease-in-out infinite; }
@keyframes pulseGlow { 0%,100%{box-shadow:0 0 4px rgba(47,217,122,.5); opacity:.8} 50%{box-shadow:0 0 12px rgba(47,217,122,.8); opacity:1} }
.work-card {
  background:var(--glass-bg); backdrop-filter:blur(12px);
  border:1px solid rgba(0,218,243,.18); border-radius:var(--r-xl);
  padding:2rem; max-width:460px; margin:0 auto; text-align:center;
  box-shadow:0 0 40px rgba(0,218,243,.07);
}
.wnum { font-family:var(--font-head); font-size:3rem; font-weight:800; color:var(--accent); line-height:1; margin:.5rem 0; text-shadow:0 0 30px rgba(0,218,243,.35); }
.big-btn { display:block; width:100%; margin-top:1rem; padding:1rem; border-radius:var(--r-md); font-family:var(--font-mono); font-size:.9rem; font-weight:700; letter-spacing:.08em; cursor:pointer; transition:all .2s; border:none; }
.big-btn.done { background:var(--accent); color:var(--bg-dim); }
.big-btn.done:hover { box-shadow:0 0 24px var(--accent-glow); }
.big-btn.cancel { background:transparent; color:var(--text-dim); border:1px solid var(--line-faint); }
.big-btn.cancel:hover { border-color:var(--red); color:var(--red); }
.prev-worker { margin:.5rem 0; padding:.5rem .8rem; background:rgba(0,218,243,.05); border:1px solid rgba(0,218,243,.12); border-radius:var(--r-sm); font-family:var(--font-mono); font-size:.78rem; }

/* ── КАРТА ЦЕХА ───────────────────────────────────────────── */
.ws-stats-bar { display:flex; gap:1rem; margin-bottom:1.2rem; flex-wrap:wrap; }
.ws-stat { background:var(--glass-bg); backdrop-filter:blur(12px); border:1px solid var(--glass-border); border-radius:var(--r-lg); padding:.8rem 1.4rem; text-align:center; min-width:80px; }
.ws-stat-val { font-family:var(--font-head); font-size:1.8rem; font-weight:800; color:var(--accent); line-height:1; }
.ws-stat-lbl { font-family:var(--font-mono); font-size:.62rem; color:var(--text-dim); margin-top:3px; letter-spacing:.04em; }
.ws-group { margin-bottom:1.5rem; }
.ws-group-h { font-family:var(--font-mono); font-size:.7rem; color:var(--accent); margin-bottom:.7rem; padding-bottom:.4rem; border-bottom:1px solid var(--line-faint); letter-spacing:.06em; }
.ws-cards-row { display:flex; flex-wrap:wrap; gap:.8rem; }
.ws-card { background:var(--glass-bg); backdrop-filter:blur(8px); border:1px solid var(--glass-border); border-radius:var(--r-lg); padding:1rem; width:210px; cursor:pointer; transition:all .18s; }
.ws-card:hover { border-color:rgba(0,218,243,.28); transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.3); }
.ws-card.on-shift { border-color:rgba(0,218,243,.18); }
.ws-card.off-shift { opacity:.6; }
.ws-head { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:.7rem; }
.ws-name { font-weight:600; font-size:.87rem; }
.ws-comment { font-family:var(--font-mono); font-size:.67rem; color:var(--text-dim); margin-top:2px; }
.ws-active { font-size:.77rem; padding:.35rem .6rem; background:rgba(0,218,243,.06); border-radius:var(--r-sm); margin-bottom:.5rem; line-height:1.4; }
.ws-idle { font-size:.75rem; color:var(--text-dim); padding:.3rem 0; margin-bottom:.5rem; }
.ws-queue { border-top:1px solid var(--line-faint); padding-top:.5rem; }
.ws-queue-h { font-family:var(--font-mono); font-size:.68rem; color:var(--text-dim); margin-bottom:.3rem; }
.ws-queue-item { font-family:var(--font-mono); font-size:.7rem; padding:1px 0; display:flex; align-items:center; gap:4px; }
.ws-status-dot { font-size:.9rem; }
.ws-done-today { font-family:var(--font-mono); font-size:.67rem; color:var(--green); margin-top:.4rem; border-top:1px solid var(--line-faint); padding-top:.3rem; }

/* ── ЗАРПЛАТЫ ─────────────────────────────────────────────── */
.list-row { display:flex; align-items:center; justify-content:space-between; padding:.85rem 1rem; margin-bottom:3px; background:rgba(23,31,51,.45); border:1px solid var(--line-faint); border-radius:var(--r-md); cursor:pointer; transition:all .18s; }
.list-row:hover { background:rgba(0,218,243,.05); border-color:rgba(0,218,243,.2); transform:translateX(2px); }

/* ── ОТЧЁТЫ ───────────────────────────────────────────────── */
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1rem; margin-bottom:1.4rem; }
.kpi-card { background:var(--glass-bg); backdrop-filter:blur(12px); border:1px solid var(--glass-border); border-top-color:var(--glass-t); border-radius:var(--r-lg); padding:1.2rem; position:relative; overflow:hidden; transition:all .2s; }
.kpi-card.clickable { cursor:pointer; }
.kpi-card.clickable:hover { border-color:rgba(0,218,243,.28); transform:translateY(-2px); }
.kpi-num { font-family:var(--font-head); font-size:2rem; font-weight:800; line-height:1; margin-bottom:.3rem; }
.kpi-label { font-family:var(--font-mono); font-size:.67rem; color:var(--text-dim); letter-spacing:.04em; }
.report-tabs { display:flex; gap:.4rem; margin-bottom:1.2rem; }
.report-cols { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem; }
.report-block { background:var(--glass-bg); backdrop-filter:blur(8px); border:1px solid var(--glass-border); border-radius:var(--r-lg); padding:1.2rem; }
.rep-h { font-family:var(--font-mono); font-size:.67rem; color:var(--accent); letter-spacing:.08em; margin-bottom:.8rem; }
.bar-row { display:flex; align-items:center; gap:.8rem; margin-bottom:.5rem; }
.bar-label { font-family:var(--font-mono); font-size:.72rem; color:var(--text-dim); width:130px; flex-shrink:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bar-track { flex:1; height:5px; background:rgba(59,73,76,.25); border-radius:3px; overflow:hidden; }
.bar-fill { height:100%; border-radius:3px; background:var(--accent); transition:width .6s cubic-bezier(.4,0,.2,1); }
.bar-val { font-family:var(--font-mono); font-size:.72rem; color:var(--text-dim); min-width:50px; text-align:right; }

/* ── СПРАВОЧНИК ───────────────────────────────────────────── */
.cat-hint { font-family:var(--font-mono); font-size:.72rem; color:var(--text-dim); margin-bottom:.8rem; padding:.55rem .85rem; background:rgba(59,73,76,.12); border-radius:var(--r-sm); border-left:2px solid var(--line); }

/* ── НАКЛАДНАЯ ────────────────────────────────────────────── */
.invoice-card { padding:1.4rem; }
.inv-head { display:grid; grid-template-columns:1fr 1fr; gap:1rem; padding-bottom:.8rem; border-bottom:1px solid var(--line-faint); }
.invoice-tbl { width:100%; border-collapse:collapse; margin-top:1rem; font-size:.83rem; }
.invoice-tbl th,.invoice-tbl td { border:1px solid var(--line-faint); padding:.48rem .7rem; text-align:left; font-family:var(--font-mono); font-size:.78rem; }
.invoice-tbl thead { background:rgba(0,218,243,.06); color:var(--accent); }
.invoice-tbl tfoot td { background:rgba(23,31,51,.7); }
.inv-price { background:var(--bg-dim); border:1px solid var(--line-faint); color:var(--text); border-radius:var(--r-sm); padding:3px 6px; font-family:var(--font-mono); }
.inv-words { margin-top:.8rem; font-family:var(--font-mono); font-style:italic; color:var(--text-dim); font-size:.78rem; }
.inv-planned { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; padding:.6rem .8rem; background:rgba(23,31,51,.45); border-radius:var(--r-md); margin-bottom:.8rem; }
.inv-planned input[type="date"],.inv-planned select { background:var(--bg-dim); border:1px solid var(--line-faint); color:var(--text); border-radius:var(--r-sm); padding:4px 8px; font-size:.85rem; }
.inv-sign { margin-top:2rem; display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.sign-line { border-bottom:1px solid var(--line-faint); padding-bottom:2rem; font-family:var(--font-mono); font-size:.75rem; color:var(--text-dim); }

/* ── ОТГРУЗКИ ─────────────────────────────────────────────── */
.ship-list { display:flex; flex-direction:column; gap:3px; }
.ship-row { display:flex; align-items:center; gap:1rem; padding:.82rem 1rem; background:rgba(23,31,51,.45); border:1px solid var(--line-faint); border-radius:var(--r-md); cursor:pointer; transition:all .18s; }
.ship-row:hover { background:rgba(0,218,243,.05); border-color:rgba(0,218,243,.2); }
.ship-num { font-family:var(--font-mono); font-size:.87rem; font-weight:600; color:var(--accent); min-width:90px; }
.ship-mid { flex:1; }
.ship-sum { font-family:var(--font-mono); font-size:.87rem; color:var(--green); min-width:70px; text-align:right; }
.ship-plan { font-family:var(--font-mono); font-size:.7rem; color:var(--accent); margin-left:.5rem; }
.ship-filter-row { display:flex; align-items:center; gap:.6rem; margin-bottom:.8rem; flex-wrap:wrap; }
.ship-filter-row input[type=date] { background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r-sm); color:var(--text); padding:.32rem .6rem; font-family:var(--font-mono); font-size:.78rem; }
.ship-customer-group { margin-bottom:.8rem; }
.ship-customer-header { font-family:var(--font-mono); font-size:.75rem; color:var(--accent); letter-spacing:.05em; padding:.4rem .6rem; background:rgba(0,218,243,.05); border:1px solid rgba(0,218,243,.12); border-radius:var(--r-sm); margin-bottom:3px; }
.addon-offer { background:rgba(192,193,255,.06); border:1px solid rgba(192,193,255,.18); border-radius:var(--r-lg); padding:1.2rem; text-align:center; }
.addon-offer-btns { display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; margin-top:.8rem; }
.ship-city { background:rgba(23,31,51,.45); border:1px solid var(--line-faint); border-radius:var(--r-lg); padding:.8rem; margin-bottom:.7rem; }
.ship-city-h { font-family:var(--font-mono); font-size:.78rem; color:var(--accent); margin-bottom:.6rem; padding-bottom:.4rem; border-bottom:1px solid var(--line-faint); letter-spacing:.04em; }
.ship-salon { padding:.4rem .6rem; margin-top:.3rem; border-left:2px solid var(--line-faint); }
.ship-salon-h { display:flex; align-items:center; gap:.5rem; padding:.3rem 0; font-size:.87rem; }
.ship-pick { display:flex; align-items:center; gap:.7rem; padding:.4rem 0; font-size:.84rem; cursor:pointer; }
.ship-pick input { accent-color:var(--accent); }

/* ── WMS ──────────────────────────────────────────────────── */
.wms-tab-banner { background:linear-gradient(135deg,rgba(0,218,243,.08),rgba(123,92,255,.08)); border:1px solid rgba(0,218,243,.18); border-radius:var(--r-lg); padding:.6rem 1rem; margin-bottom:.8rem; font-family:var(--font-mono); font-size:.74rem; color:var(--accent); display:flex; align-items:center; gap:.5rem; }
/* Расходники */
.cons-list { display:flex; flex-direction:column; gap:3px; }
.cons-row { display:flex; align-items:center; gap:.8rem; padding:.7rem .9rem; background:rgba(23,31,51,.45); border:1px solid var(--line-faint); border-radius:var(--r-md); }
.cons-name { flex:1; min-width:0; font-size:.87rem; }
.cons-stock { font-family:var(--font-mono); font-size:.85rem; font-weight:600; white-space:nowrap; }
.cons-actions { display:flex; gap:.3rem; flex-shrink:0; }
.cons-low-banner { background:rgba(255,180,171,.08); border:1px solid rgba(255,180,171,.25); border-radius:var(--r-md); padding:.6rem 1rem; margin-bottom:.8rem; font-size:.84rem; color:var(--red); }
.low-stock-banner { background:rgba(255,179,64,.07); border:1px solid rgba(255,179,64,.25); border-radius:var(--r-md); padding:.65rem 1rem; margin-bottom:.9rem; font-size:.83rem; color:var(--yellow); display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; }
.low-item { opacity:.9; }
@media(max-width:600px){
  .cons-row { flex-wrap:wrap; gap:.4rem; }
  .cons-actions { width:100%; justify-content:flex-end; }
}
.wms-top-bar { display:flex; gap:.5rem; margin-bottom:.8rem; padding-bottom:.3rem; }
.wms-legend { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:.8rem; }
.wms-legend-item { font-family:var(--font-mono); font-size:.66rem; padding:3px 10px; border-radius:999px; border:1px solid; }
.wms-grid-wrap { overflow-x:auto; }
.wms-grid { display:grid; gap:3px; min-width:360px; }
.wms-cell { border-radius:var(--r-sm); aspect-ratio:1; min-width:46px; min-height:46px; display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer; transition:all .15s; position:relative; padding:3px; border:1px solid; }
.wms-cell:hover { transform:scale(1.09); z-index:2; box-shadow:0 4px 16px rgba(0,0,0,.4); }
.wms-cell-lbl { font-family:var(--font-mono); font-size:.63rem; font-weight:600; color:var(--text); }
.wms-zone-lbl { font-size:.53rem; color:var(--accent); text-align:center; line-height:1.1; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wms-fill-bar { width:80%; height:3px; background:rgba(255,255,255,.08); border-radius:2px; margin-top:2px; }
.wms-fill-inner { height:100%; border-radius:2px; transition:width .3s; }
.wms-fill-lbl { font-family:var(--font-mono); font-size:.53rem; color:var(--text-dim); margin-top:1px; }
.wms-edit-banner { padding:.5rem 1rem; margin-bottom:.7rem; background:rgba(0,218,243,.07); border:1px solid rgba(0,218,243,.22); border-radius:var(--r-md); font-family:var(--font-mono); font-size:.77rem; color:var(--accent); }
.wms-quick-intake { display:flex; gap:.5rem; margin-bottom:1rem; }
.wms-quick-intake input { background:var(--bg-dim); border:1px solid var(--line-faint); color:var(--text); border-radius:var(--r-md); padding:6px 10px; font-size:.87rem; flex:1; }
.wms-tier { margin-bottom:1rem; }
.wms-tier-h { font-family:var(--font-mono); font-size:.72rem; color:var(--accent); margin-bottom:.5rem; padding-bottom:.3rem; border-bottom:1px solid var(--line-faint); letter-spacing:.04em; }
.wms-slots { display:flex; flex-wrap:wrap; gap:5px; }
.wms-slot { width:86px; min-height:68px; border:1px solid var(--line-faint); border-radius:var(--r-md); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:4px; text-align:center; font-size:.7rem; position:relative; transition:all .15s; }
.wms-slot.occupied { background:rgba(0,218,243,.06); border-color:rgba(0,218,243,.28); }
.wms-slot.empty { background:rgba(255,255,255,.02); border-style:dashed; cursor:pointer; }
.wms-slot.empty:hover { background:rgba(0,218,243,.05); border-color:var(--accent); }
.wms-slot-num { font-weight:700; font-size:.8rem; color:var(--accent); }
.wms-slot-info,.wms-slot-city { font-size:.63rem; color:var(--text-dim); }
.wms-slot-pos { font-size:1.1rem; color:var(--line); }
.wms-slot-rm { position:absolute; top:2px; right:3px; background:none; border:none; color:var(--red); cursor:pointer; font-size:.7rem; padding:0; opacity:.45; }
.wms-slot-rm:hover { opacity:1; }
.wms-slot-add { margin-top:4px; background:none; border:1px solid var(--line-faint); color:var(--text-dim); border-radius:var(--r-sm); padding:2px 8px; cursor:pointer; font-size:1rem; }
.wms-slot-add:hover { border-color:var(--accent); color:var(--accent); }
.wms-zone-tag { display:inline-block; padding:2px 10px; border-radius:999px; font-size:.73rem; margin-left:.5rem; }
.wms-unplaced-row { display:flex; justify-content:space-between; align-items:center; padding:.5rem 0; border-bottom:1px solid var(--line-faint); }
.wms-unplaced-row:last-child { border-bottom:none; }

/* ── РАБОТНИК ДЕТАЛЬНЫЙ ───────────────────────────────────── */
.ws-detail-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:.8rem; padding-bottom:.8rem; border-bottom:1px solid var(--line-faint); }
.ws-detail-name { font-family:var(--font-head); font-size:1.18rem; font-weight:700; }
.ws-detail-role { font-family:var(--font-mono); font-size:.72rem; color:var(--text-dim); margin-top:2px; }
.ws-detail-shift { font-size:.8rem; padding:4px 12px; border-radius:999px; }
.ws-detail-shift.on  { background:rgba(47,217,122,.1); color:var(--green); border:1px solid rgba(47,217,122,.22); }
.ws-detail-shift.off { background:var(--red-bg); color:var(--red); border:1px solid rgba(255,180,171,.22); }
.ws-detail-today { font-family:var(--font-mono); font-size:.76rem; color:var(--text-dim); margin-bottom:.8rem; }
.ws-detail-active { background:rgba(0,218,243,.05); border:1px solid rgba(0,218,243,.18); border-radius:var(--r-md); padding:.8rem; margin-bottom:1rem; }
.ws-detail-idle { color:var(--text-dim); font-size:.84rem; margin-bottom:1rem; padding:.6rem; border:1px dashed var(--line-faint); border-radius:var(--r-md); text-align:center; }
.ws-detail-section { margin-bottom:1rem; }
.ws-detail-section-h { font-family:var(--font-mono); font-size:.66rem; color:var(--text-dim); margin-bottom:.5rem; letter-spacing:.04em; }
.ws-detail-qitem { display:flex; align-items:center; padding:.32rem 0; border-bottom:1px solid var(--line-faint); font-size:.82rem; flex-wrap:wrap; gap:4px; }
.ws-detail-qitem:last-child { border-bottom:none; }
.ws-detail-qitem.ready { background:rgba(0,218,243,.04); border-radius:var(--r-sm); padding:.32rem .4rem; }
.ws-detail-badge { margin-left:auto; font-family:var(--font-mono); font-size:.62rem; padding:2px 8px; border-radius:999px; }
.badge-ready { background:rgba(0,218,243,.1); color:var(--accent); }
.badge-wait  { background:rgba(59,73,76,.2); color:var(--text-dim); }
.ws-detail-done { font-family:var(--font-mono); font-size:.76rem; padding:.24rem 0; border-bottom:1px solid var(--line-faint); }
.ws-detail-done:last-child { border-bottom:none; }

/* ── АУДИТ ────────────────────────────────────────────────── */
.audit-list { display:flex; flex-direction:column; }
.audit-row { padding:.5rem 0; border-bottom:1px solid var(--line-faint); }
.audit-meta { display:flex; align-items:center; margin-bottom:2px; }

/* ── НАСТРОЙКИ ────────────────────────────────────────────── */
.notif-toggle { display:flex; align-items:center; gap:.7rem; margin-bottom:.7rem; cursor:pointer; font-size:.87rem; user-select:none; }
.notif-toggle input[type="checkbox"] {
  width:18px; height:18px; flex-shrink:0; cursor:pointer;
  accent-color:var(--accent);
  border:1px solid var(--line); background:var(--bg-card);
  border-radius:3px;
}
/* Общий стиль для всех input/select/textarea не в .field (внутри .card напрямую) */
.card input:not([type=checkbox]):not([type=radio]),
.card select,
.card textarea {
  background:rgba(6,14,32,.6); border:1px solid var(--line-faint);
  border-radius:var(--r-sm); padding:.6rem .8rem; color:var(--text);
  font-family:var(--font-mono); font-size:.85rem; outline:none;
  transition:border-color .2s;
}
.card input:not([type=checkbox]):not([type=radio]):focus,
.card select:focus, .card textarea:focus { border-color:var(--accent); }
.card input::placeholder, .card textarea::placeholder { color:rgba(186,201,204,.35); }

/* ── PICKING ROUTE ────────────────────────────────────────── */
.pick-step { display:flex; gap:10px; padding:.6rem 0; border-bottom:1px solid var(--line-faint); }
.pick-step:last-child { border-bottom:none; }
.pick-step-num { width:26px; height:26px; border-radius:50%; background:var(--accent); color:var(--bg-dim); font-family:var(--font-mono); font-weight:700; font-size:.78rem; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pick-step-body { flex:1; font-size:.84rem; }
.pick-location { font-weight:600; margin-bottom:2px; color:var(--accent); font-family:var(--font-mono); font-size:.8rem; }

/* ── СОЗДАНИЕ ЗАКАЗА ──────────────────────────────────────── */
.form-step { max-width:560px; }
.step-label { font-family:var(--font-mono); font-size:.67rem; color:var(--accent); letter-spacing:.08em; margin-bottom:1rem; }
.options { display:flex; flex-direction:column; gap:3px; max-height:50vh; overflow-y:auto; }
.opt { padding:.72rem 1rem; border-radius:var(--r-md); border:1px solid var(--line-faint); background:rgba(23,31,51,.38); cursor:pointer; font-size:.87rem; transition:all .18s; }
.opt:hover,.opt.add:hover { background:rgba(0,218,243,.07); border-color:rgba(0,218,243,.28); color:var(--accent); }
.opt.add { color:var(--text-dim); border-style:dashed; text-align:center; }
.search-box { margin-bottom:.7rem; }
.search-box input { width:100%; background:rgba(6,14,32,.55); border:1px solid var(--line-faint); border-radius:var(--r-md); padding:.7rem .9rem; color:var(--text); font-family:var(--font-mono); font-size:.87rem; outline:none; }
.search-box input:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(0,218,243,.09); }

/* ── ПУСТЫЕ СОСТОЯНИЯ ─────────────────────────────────────── */
.empty { text-align:center; padding:3rem 1rem; font-family:var(--font-mono); font-size:.84rem; color:var(--text-dim); line-height:1.7; }

/* ── ДЕЙСТВИЯ КАРТОЧКИ ────────────────────────────────────── */
.card-actions { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line-faint); }

/* ── НАЗНАЧЕНИЯ ───────────────────────────────────────────── */
.assign-grid { display:flex; flex-direction:column; gap:.5rem; margin-top:.5rem; }
.assign-row { display:flex; align-items:center; gap:.7rem; }
.assign-stage { font-family:var(--font-mono); font-size:.76rem; color:var(--text-dim); min-width:80px; }
.assign-select { flex:1; }
.row-btn { background:none; border:none; cursor:pointer; padding:.2rem .5rem; color:var(--text-dim); border-radius:var(--r-sm); transition:color .2s; }
.row-btn:hover { color:var(--red); }

/* ── ТОСТЫ ────────────────────────────────────────────────── */
.toast {
  position:fixed; bottom:1.5rem; right:1.5rem; z-index:1000;
  background:var(--glass-bg); backdrop-filter:blur(16px);
  border:1px solid var(--glass-border); border-left:3px solid var(--accent);
  border-radius:var(--r-md); padding:.8rem 1.2rem;
  font-family:var(--font-mono); font-size:.8rem; color:var(--text);
  box-shadow:0 20px 40px rgba(0,0,0,.4);
  max-width:320px;
  opacity:0; transform:translateY(16px) scale(.97);
  transition:opacity .28s ease, transform .28s ease;
  pointer-events:none;
}
.toast.show {
  opacity:1; transform:translateY(0) scale(1);
  pointer-events:auto;
}
.toast.error { border-left-color:var(--red); }
@keyframes toastIn { from{transform:translateY(20px) scale(.95);opacity:0} }
@keyframes modalShake {
  0%,100% { outline: 2px solid transparent; }
  20%,60% { outline: 2px solid var(--red); box-shadow: 0 0 0 4px rgba(255,180,171,.25); }
  40%,80% { outline: 2px solid transparent; }
}
.modal-shake { animation: modalShake .55s ease; }

/* ── МОБИЛЬНАЯ АДАПТАЦИЯ ──────────────────────────────────── */
@media(max-width:768px){
  body { overflow-x:hidden; }
  .app { overflow-x:hidden; }
  .sidebar { position:fixed; left:0; top:0; height:100vh; z-index:30; transform:translateX(-100%); transition:transform .3s ease,width .25s; width:var(--sidebar-w) !important; }
  .sidebar.mobile-open { transform:translateX(0); }
  .burger { display:flex !important; }
  .overlay { position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:25; display:none; }
  .overlay.show { display:block; }
  .main { width:100%; }
  .dash-grid { grid-template-columns:1fr 1fr; }
  .report-cols { grid-template-columns:1fr; }
  .pipeline { overflow-x:auto; }
  .ws-cards-row { flex-direction:column; }
  .ws-card { width:100%; }
  .content { padding:.8rem; overflow-x:hidden; }
  .topbar { padding:0 .8rem; }
  .modal { margin:.5rem; padding:1.2rem; max-height:95vh; width:calc(100vw - 1rem); max-width:calc(100vw - 1rem); box-sizing:border-box; }
  .modal-inner { max-height:80vh; overflow-y:auto; }
  /* Таблицы — горизонтальный скролл */
  .invoice-card { overflow-x:auto; }
  .invoice-tbl { min-width:480px; }
  /* Строки отгрузок — компактнее */
  .ship-num { min-width:70px; font-size:.78rem; }
  .ship-sum { min-width:56px; font-size:.78rem; }
  /* Карточки — без горизонтального overflow */
  .card { min-width:0; overflow:hidden; }
  .order-row { min-width:0; }
  .kpi-grid { grid-template-columns:1fr 1fr; }
  /* Топ-бар — заголовок не обрезать */
  .topbar h1 { font-size:.95rem; }
  /* Фильтры-чипы переносятся */
  .filters { flex-wrap:wrap; }
  .ship-filter-row { flex-wrap:wrap; gap:.4rem; }
  /* Действия в карточке заказа */
  .order-detail-actions { flex-wrap:wrap; gap:.5rem; }
  /* Таблица цен — скроллится */
  .list-row { min-width:0; }
  .lval { font-size:.8rem; white-space:nowrap; }
  /* Карта цеха на мобильном */
  .ws-grid { min-width:0; overflow-x:auto; }
  /* Кнопки действий — переносятся */
  .card-actions { flex-wrap:wrap; }
  .act-btn, .btn-primary { white-space:nowrap; }
  /* Атрибуты в деталях заказа */
  .detail-row { flex-wrap:wrap; gap:.3rem; }
  .k { min-width:0; }
}
@media(max-width:480px){
  .dash-grid { grid-template-columns:1fr; }
  .kpi-grid { grid-template-columns:1fr 1fr; }
  .wnum { font-size:2.2rem; }
}

/* ── ПЕЧАТЬ ───────────────────────────────────────────────── */

/* ── ПОМОЩЬ ──────────────────────────────────────────────── */
.help-details summary { user-select:none; }
.help-details summary::-webkit-details-marker { display:none; }
.help-content {
  padding:.7rem .3rem .3rem .3rem; font-size:.86rem; line-height:1.7;
  color:var(--text-dim); margin-top:.3rem;
}
.help-content b { color:var(--text); }
.help-content em { color:var(--accent); font-style:normal; }

/* ── ЛОГ ОШИБОК ──────────────────────────────────────────── */
.err-log-list { display:flex; flex-direction:column; gap:3px; }
.err-log-item { background:rgba(23,31,51,.5); border:1px solid var(--line-faint); border-radius:var(--r-md); overflow:hidden; }
.err-log-item.err-new { border-color:rgba(255,180,171,.3); }
.err-log-item summary { display:flex; align-items:center; gap:.6rem; padding:.55rem .8rem; cursor:pointer; list-style:none; flex-wrap:wrap; }
.err-log-item summary::-webkit-details-marker { display:none; }
.err-log-ts { font-family:var(--font-mono); font-size:.7rem; color:var(--text-faint); flex-shrink:0; }
.err-log-method { font-family:var(--font-mono); font-size:.68rem; background:rgba(255,180,171,.12); color:var(--red); padding:.1rem .4rem; border-radius:3px; flex-shrink:0; }
.err-log-path { font-family:var(--font-mono); font-size:.72rem; color:var(--accent); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.err-log-type { font-family:var(--font-mono); font-size:.68rem; color:var(--red); flex-shrink:0; }
.err-log-body { padding:.6rem .8rem .8rem; border-top:1px solid var(--line-faint); }
.err-log-msg { font-size:.83rem; color:var(--red); margin-bottom:.5rem; word-break:break-all; }
.err-log-tb { font-family:var(--font-mono); font-size:.65rem; color:var(--text-dim); background:rgba(0,0,0,.3); padding:.6rem; border-radius:var(--r-sm); overflow-x:auto; max-height:200px; overflow-y:auto; white-space:pre; }

/* ══════════════════════════════════════════════════════════════
   WOW UPGRADE v41 — Immersive Cyberpunk Redesign
   ══════════════════════════════════════════════════════════════ */

/* ── KEYFRAMES ──────────────────────────────────────────────── */
@keyframes shimmerSweep {
  0%   { transform: translateX(-100%) skewX(-20deg); opacity: 0; }
  15%  { opacity: 1; }
  85%  { opacity: 0.7; }
  100% { transform: translateX(300%) skewX(-20deg); opacity: 0; }
}
@keyframes floatUpDown {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-5px); }
}
@keyframes cornerBlink {
  0%, 100% { opacity: 0.3; }
  50%       { opacity: 1; }
}
@keyframes pipeFlowLine {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
@keyframes scanLineMove {
  0%   { top: -1px; opacity: 0; }
  5%   { opacity: 1; }
  95%  { opacity: 0.5; }
  100% { top: 100%; opacity: 0; }
}
@keyframes glowBreath {
  0%, 100% { box-shadow: 0 0 20px rgba(0,218,243,0.12), 0 0 0 1px rgba(0,218,243,0.06); }
  50%       { box-shadow: 0 0 40px rgba(0,218,243,0.28), 0 0 0 1px rgba(0,218,243,0.18); }
}
@keyframes glowBreathGreen {
  0%, 100% { box-shadow: 0 0 20px rgba(47,217,122,0.12), 0 0 0 1px rgba(47,217,122,0.06); }
  50%       { box-shadow: 0 0 40px rgba(47,217,122,0.28), 0 0 0 1px rgba(47,217,122,0.18); }
}
@keyframes glowBreathYellow {
  0%, 100% { box-shadow: 0 0 20px rgba(255,217,102,0.12), 0 0 0 1px rgba(255,217,102,0.06); }
  50%       { box-shadow: 0 0 40px rgba(255,217,102,0.28), 0 0 0 1px rgba(255,217,102,0.18); }
}
@keyframes navActiveSlide {
  from { opacity: 0; transform: scaleY(0); }
  to   { opacity: 1; transform: scaleY(1); }
}

/* ── BODY — ДОПОЛНИТЕЛЬНЫЙ ФОНОВЫЙ СЛОЙ ────────────────────── */
body::after {
  content: '';
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background: radial-gradient(ellipse 40% 30% at 10% 60%, rgba(123,92,255,0.05), transparent);
  animation: floatUpDown 14s ease-in-out infinite;
}

/* ── KPI CARDS — FULL REDESIGN ──────────────────────────────── */
.dash-kpi-card {
  animation: floatUpDown 6s ease-in-out infinite, glowBreath 3s ease-in-out infinite;
  transition: transform .3s cubic-bezier(0.34,1.56,0.64,1), border-color .3s !important;
}
.dash-kpi-card:nth-child(2) { animation-delay: -2s, -1s; }
.dash-kpi-card:nth-child(3) { animation-delay: -4s, -2s; }
.dash-kpi-card.green { animation: floatUpDown 6s ease-in-out -2s infinite, glowBreathGreen 3s ease-in-out -1s infinite; }
.dash-kpi-card.yellow { animation: floatUpDown 6s ease-in-out -4s infinite, glowBreathYellow 3s ease-in-out -2s infinite; }
.dash-kpi-card:hover {
  transform: translateY(-8px) scale(1.03) !important;
  animation-play-state: paused;
}

/* Shimmer sweep (hover) */
.kpi-shimmer {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,0.07) 50%, transparent 62%);
  transform: translateX(-100%) skewX(-20deg);
  pointer-events: none;
}
.dash-kpi-card:hover .kpi-shimmer {
  animation: shimmerSweep 0.7s ease forwards;
}

/* HUD corner accents */
.kpi-corner {
  position: absolute; width: 14px; height: 14px; pointer-events: none;
}
.kpi-corner-tl {
  top: 0; left: 0;
  border-top: 2px solid var(--accent); border-left: 2px solid var(--accent);
  animation: cornerBlink 2s ease-in-out infinite;
}
.kpi-corner-br {
  bottom: 0; right: 0;
  border-bottom: 2px solid var(--accent); border-right: 2px solid var(--accent);
  animation: cornerBlink 2s ease-in-out infinite 1s;
}
.dash-kpi-card.green .kpi-corner-tl,
.dash-kpi-card.green .kpi-corner-br { border-color: var(--green); }
.dash-kpi-card.yellow .kpi-corner-tl,
.dash-kpi-card.yellow .kpi-corner-br { border-color: var(--yellow); }

/* Top accent line */
.kpi-topline {
  position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: 0.7; pointer-events: none;
}
.dash-kpi-card.green .kpi-topline { background: linear-gradient(90deg, transparent, var(--green), transparent); }
.dash-kpi-card.yellow .kpi-topline { background: linear-gradient(90deg, transparent, var(--yellow), transparent); }

/* Gradient number text */
.dash-kpi-num {
  font-size: 3rem !important;
  background: linear-gradient(145deg, var(--accent) 0%, rgba(0,218,243,0.55) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  filter: drop-shadow(0 0 10px rgba(0,218,243,0.5));
}
.dash-kpi-card.green .dash-kpi-num {
  background: linear-gradient(145deg, var(--green) 0%, rgba(47,217,122,0.55) 100%);
  -webkit-background-clip: text; background-clip: text;
  filter: drop-shadow(0 0 10px rgba(47,217,122,0.5));
}
.dash-kpi-card.yellow .dash-kpi-num {
  background: linear-gradient(145deg, var(--yellow) 0%, rgba(255,217,102,0.55) 100%);
  -webkit-background-clip: text; background-clip: text;
  filter: drop-shadow(0 0 10px rgba(255,217,102,0.5));
}

/* Icon glow */
.dash-kpi-icon .material-symbols-outlined {
  font-size: 1.5rem !important;
  filter: drop-shadow(0 0 8px rgba(0,218,243,0.6));
}
.dash-kpi-card.green .dash-kpi-icon .material-symbols-outlined { filter: drop-shadow(0 0 8px rgba(47,217,122,0.6)); }
.dash-kpi-card.yellow .dash-kpi-icon .material-symbols-outlined { filter: drop-shadow(0 0 8px rgba(255,217,102,0.6)); }

/* ── PIPELINE — ANIMATED FLOW ──────────────────────────────── */
.dash-pipeline {
  position: relative; gap: .5rem !important;
}
.dash-pipeline::before {
  content: '';
  position: absolute; top: 50%; left: 7%; right: 7%; height: 1px; z-index: 0;
  background: linear-gradient(90deg,
    rgba(0,218,243,0) 0%,
    rgba(0,218,243,0.6) 25%, rgba(0,218,243,0.6) 75%,
    rgba(0,218,243,0) 100%);
  background-size: 200% 100%;
  animation: pipeFlowLine 2.5s linear infinite;
  transform: translateY(-50%);
  pointer-events: none;
}
.dash-pipe-card {
  position: relative; z-index: 1;
  transition: transform .25s cubic-bezier(0.34,1.56,0.64,1), border-color .2s, box-shadow .2s !important;
}
.dash-pipe-card:hover {
  transform: translateY(-5px) !important;
  border-color: rgba(0,218,243,0.5) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,0.4), 0 0 20px rgba(0,218,243,0.1) !important;
}
.dash-pipe-card.active {
  animation: glowBreath 2s ease-in-out infinite !important;
}
.dash-pipe-num { font-size: 2.2rem !important; filter: drop-shadow(0 0 6px rgba(0,218,243,0.3)); }
.dash-pipe-icon .material-symbols-outlined { font-size: 1.25rem !important; filter: drop-shadow(0 0 4px rgba(0,218,243,0.3)); }
.dash-pipe-card.active .dash-pipe-icon .material-symbols-outlined { filter: drop-shadow(0 0 10px rgba(0,218,243,0.8)); }

/* ── SIDEBAR UPGRADED ──────────────────────────────────────── */
.sidebar {
  background: linear-gradient(180deg, rgba(11,19,38,0.97) 0%, rgba(6,14,32,0.99) 100%) !important;
  border-right-color: rgba(0,218,243,0.07) !important;
}
.sidebar::before {
  content: '';
  position: absolute; top: 0; right: 0; bottom: 0; width: 1px;
  background: linear-gradient(180deg, transparent 0%, rgba(0,218,243,0.25) 30%, rgba(0,218,243,0.25) 70%, transparent 100%);
  pointer-events: none; z-index: 1;
}
.brand .ac { text-shadow: 0 0 24px rgba(0,218,243,0.7), 0 0 50px rgba(0,218,243,0.3) !important; }

.nav-item { position: relative; transition: all .18s ease !important; }
.nav-item.active {
  background: linear-gradient(90deg, rgba(0,218,243,0.13), rgba(0,218,243,0.02)) !important;
}
.nav-item.active::after {
  content: '';
  position: absolute; right: 0; top: 15%; bottom: 15%; width: 2px;
  background: var(--accent);
  border-radius: 2px 0 0 2px;
  box-shadow: 0 0 10px rgba(0,218,243,0.9), 0 0 20px rgba(0,218,243,0.4);
  transform-origin: center right;
  animation: navActiveSlide .25s ease forwards;
}
.nav-ic { transition: transform .2s, filter .2s !important; }
.nav-item.active .nav-ic { transform: scale(1.15) !important; filter: drop-shadow(0 0 5px rgba(0,218,243,0.6)); }
.nav-item:hover .nav-ic { filter: drop-shadow(0 0 3px rgba(0,218,243,0.4)); }
.user-avatar { box-shadow: 0 0 0 1px rgba(0,218,243,0.25), 0 0 14px rgba(0,218,243,0.12) !important; }

/* ── ORDER ROWS — LEFT ACCENT ──────────────────────────────── */
.order-row {
  border-left: 3px solid transparent !important;
  transition: all .2s ease !important;
}
.order-row:hover {
  border-left-color: var(--accent) !important;
  transform: translateX(3px) !important;
  box-shadow: -2px 0 10px rgba(0,218,243,0.15), 0 4px 20px rgba(0,0,0,0.3) !important;
}

/* ── TOPBAR GRADIENT TITLE ─────────────────────────────────── */
.topbar {
  box-shadow: 0 1px 30px rgba(0,0,0,0.35) !important;
  border-bottom-color: rgba(0,218,243,0.06) !important;
}
.topbar h1 {
  background: linear-gradient(90deg, var(--text) 0%, rgba(218,226,253,0.65) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* ── LOGIN CARD — SCAN LINE ────────────────────────────────── */
.login-card { overflow: hidden; }
.login-scan {
  position: absolute; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,218,243,0.55), transparent);
  animation: scanLineMove 5s ease-in-out infinite;
  pointer-events: none;
}

/* ── SECTION TITLE — HUD VERTICAL BAR ─────────────────────── */
.dash-section-title { padding-left: 1rem; position: relative; }
.dash-section-title::before {
  content: '';
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 3px; height: 14px;
  background: var(--accent);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,218,243,0.8);
}

/* ── KPI CARDS (отчёты) ────────────────────────────────────── */
.kpi-card { transition: all .25s ease !important; position: relative; overflow: hidden; }
.kpi-card.clickable:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,0.4), 0 0 20px rgba(0,218,243,0.08) !important;
}

/* ── PROD MAIN CARD GLOW ──────────────────────────────────── */
.prod-main-card { animation: glowBreath 3s ease-in-out infinite !important; }

/* ── TOAST GLOW ───────────────────────────────────────────── */
.toast.show { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 24px rgba(0,218,243,0.08) !important; }

/* ── SCROLLBAR GLOW ─────────────────────────────────────────── */
::-webkit-scrollbar-thumb { background: rgba(0,218,243,0.18) !important; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,218,243,0.4) !important; }

/* ── EMP / WS CARDS ─────────────────────────────────────────── */
.emp-card:hover { box-shadow: 0 8px 30px rgba(0,0,0,0.4), 0 0 20px rgba(0,218,243,0.07) !important; }
.ws-card:hover  { box-shadow: 0 8px 30px rgba(0,0,0,0.4) !important; }

/* ── CHIP GLOW ──────────────────────────────────────────────── */
.chip.on { box-shadow: 0 0 12px rgba(0,218,243,0.2) !important; }

/* ── MOBILE — отключаем тяжёлые эффекты ─────────────────────── */
@media(max-width: 768px) {
  .dash-kpi-card { animation: glowBreath 4s ease-in-out infinite; }
  .dash-kpi-card:hover { transform: none !important; }
  .dash-pipeline::before { display: none; }
  .order-row:hover { transform: none !important; }
  .topbar h1 { -webkit-text-fill-color: var(--text); }
}

/* ── РАЗНОЕ ───────────────────────────────────────────────── */
.phrase-edit{display:flex;gap:.5rem;margin-bottom:.4rem}
.phrase-edit input{flex:1;background:rgba(6,14,32,.6);border:1px solid var(--line-faint);border-radius:var(--r-sm);padding:.5rem .8rem;color:var(--text);font-family:var(--font-mono);font-size:.85rem;outline:none;}
.phrase-edit input::placeholder{color:rgba(186,201,204,.35);}
.phrase-edit input:focus{border-color:var(--accent);}
.phrase-edit button{background:none;border:none;cursor:pointer;color:var(--text-dim);font-size:.9rem}
.phrase-edit button:hover{color:var(--red)}
.admin-tools{margin-top:1.5rem;padding:1rem;background:rgba(255,179,64,.04);border:1px solid rgba(255,179,64,.14);border-radius:var(--r-lg)}
.glow-num{animation:countUp .5s ease}
@keyframes countUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.step-hint{font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);line-height:1.5;margin-bottom:.5rem}
.help-intro{font-size:.87rem;color:var(--text-dim);line-height:1.6;margin-bottom:1.2rem}
.inline-form{background:rgba(23,31,51,.45);border:1px solid var(--line-faint);border-radius:var(--r-md);padding:1rem;margin-top:.5rem}

/* ── АНИМАЦИЯ ЧАСТИЦ ─────────────────────────────────────── */
@keyframes particleRise {
  0%   { transform: translateY(0) translateX(0); opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 0.6; }
  100% { transform: translateY(-100vh) translateX(calc(var(--drift,20px))); opacity: 0; }
}

/* ── ДАШБОРД v2 ───────────────────────────────────────────── */
.dash-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1.5rem; }
.dash-title { font-family:var(--font-head); font-size:1.5rem; font-weight:800; letter-spacing:-0.02em; }
.dash-subtitle { font-family:var(--font-mono); font-size:.72rem; color:var(--text-dim); margin-top:.3rem; }
.dash-header-actions { display:flex; gap:.5rem; }

.dash-kpi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:1.8rem; }
.dash-kpi-card {
  background:var(--glass-bg); backdrop-filter:blur(12px);
  border:1px solid var(--glass-border); border-top-color:var(--glass-t);
  border-radius:var(--r-lg); padding:1.3rem; position:relative; overflow:hidden;
  cursor:default; transition:border-color .2s, transform .2s;
}
.dash-kpi-card:hover { border-color:rgba(0,218,243,.3); transform:translateY(-2px); }
.dash-kpi-card::after { content:''; position:absolute; top:-20px; right:-20px; width:100px; height:100px; background:radial-gradient(circle, rgba(0,218,243,.07) 0%, transparent 70%); }
.dash-kpi-card.green::after { background:radial-gradient(circle, rgba(47,217,122,.07) 0%, transparent 70%); }
.dash-kpi-card.yellow::after { background:radial-gradient(circle, rgba(255,217,102,.07) 0%, transparent 70%); }
.dash-kpi-icon { margin-bottom:.6rem; }
.dash-kpi-icon .material-symbols-outlined { font-size:1.4rem; color:var(--accent); opacity:.7; }
.dash-kpi-card.green .dash-kpi-icon .material-symbols-outlined { color:var(--green); }
.dash-kpi-card.yellow .dash-kpi-icon .material-symbols-outlined { color:var(--yellow); }
.dash-kpi-label { font-family:var(--font-mono); font-size:.64rem; font-weight:600; color:var(--text-dim); letter-spacing:.07em; margin-bottom:.4rem; }
.dash-kpi-num { font-family:var(--font-head); font-size:2.6rem; font-weight:800; color:var(--accent); line-height:1; }
.dash-kpi-card.green .dash-kpi-num { color:var(--green); }
.dash-kpi-card.yellow .dash-kpi-num { color:var(--yellow); }
.dash-kpi-sub { font-family:var(--font-mono); font-size:.68rem; color:var(--text-dim); margin-top:.3rem; }

.dash-live-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 8px rgba(47,217,122,.6); animation:pulseGlow 1.5s ease-in-out infinite; margin-right:.5rem; vertical-align:middle; }
.dash-section-title { font-family:var(--font-mono); font-size:.7rem; font-weight:600; color:var(--accent); letter-spacing:.1em; margin:0 0 .8rem; display:flex; align-items:center; }

.dash-pipeline { display:grid; grid-template-columns:repeat(5,1fr); gap:.6rem; }
.dash-pipe-card {
  background:rgba(23,31,51,.5); backdrop-filter:blur(8px);
  border:1px solid var(--line-faint); border-radius:var(--r-lg);
  padding:1rem .8rem; text-align:center; transition:all .2s; position:relative;
}
.dash-pipe-card.active {
  background:rgba(0,218,243,.06); border-color:rgba(0,218,243,.4);
  box-shadow:0 0 20px rgba(0,218,243,.1);
}
.dash-pipe-card.active::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--accent); border-radius:var(--r-lg) var(--r-lg) 0 0; }
.dash-pipe-icon { margin-bottom:.5rem; }
.dash-pipe-icon .material-symbols-outlined { font-size:1.1rem; color:var(--text-dim); }
.dash-pipe-card.active .dash-pipe-icon .material-symbols-outlined { color:var(--accent); }
.dash-pipe-label { font-family:var(--font-mono); font-size:.62rem; color:var(--text-dim); letter-spacing:.05em; margin-bottom:.4rem; }
.dash-pipe-card.active .dash-pipe-label { color:var(--accent); }
.dash-pipe-num { font-family:var(--font-head); font-size:1.6rem; font-weight:800; color:var(--text); line-height:1; margin-bottom:.5rem; }
.dash-pipe-card.active .dash-pipe-num { color:var(--accent); }
.dash-pipe-bar { height:3px; background:rgba(59,73,76,.3); border-radius:2px; overflow:hidden; }
.dash-pipe-fill { height:100%; background:var(--accent); border-radius:2px; transition:width 1s ease; }

/* ── ПРОИЗВОДСТВО v2 ──────────────────────────────────────── */
.prod-manager-msg { display:flex; flex-direction:column; align-items:center; justify-content:center; height:60vh; text-align:center; }
.prod-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem; }
.prod-breadcrumb { display:flex; align-items:center; gap:.5rem; font-family:var(--font-mono); font-size:.75rem; color:var(--text-dim); }
.prod-shift-info { color:var(--green); }
.prod-endshift-btn { display:flex; align-items:center; gap:.4rem; font-family:var(--font-mono); font-size:.75rem; color:var(--text-dim); background:rgba(34,42,61,.5); border:1px solid var(--line-faint); padding:.5rem .9rem; border-radius:var(--r-md); cursor:pointer; transition:all .2s; }
.prod-endshift-btn:hover { border-color:var(--red); color:var(--red); }

/* Экран "не на смене" */
.prod-offshift { display:flex; flex-direction:column; align-items:center; justify-content:center; height:65vh; text-align:center; position:relative; }
.prod-offshift-glow { position:absolute; width:300px; height:300px; background:radial-gradient(circle, rgba(0,218,243,.06) 0%, transparent 70%); border-radius:50%; pointer-events:none; }
.prod-offshift-icon .material-symbols-outlined { font-size:4rem; color:rgba(0,218,243,.25); }
.prod-offshift-title { font-family:var(--font-head); font-size:1.6rem; font-weight:700; margin:.8rem 0 .4rem; }
.prod-offshift-sub { font-family:var(--font-mono); font-size:.8rem; color:var(--text-dim); margin-bottom:2rem; }
.prod-shift-btn { display:inline-flex; align-items:center; gap:.6rem; font-family:var(--font-mono); font-size:.9rem; font-weight:600; letter-spacing:.08em; color:var(--bg-dim); background:var(--accent); border:none; padding:1rem 2.5rem; border-radius:var(--r-lg); cursor:pointer; transition:box-shadow .2s, transform .15s; }
.prod-shift-btn:hover { box-shadow:0 0 30px var(--accent-glow); }
.prod-shift-btn:active { transform:translateY(1px); }

/* Сплит-лейаут активного заказа */
.prod-split { display:grid; grid-template-columns:1fr 320px; gap:1rem; align-items:start; }
.prod-main-card { background:var(--glass-bg); backdrop-filter:blur(16px); border:1px solid rgba(0,218,243,.15); border-top-color:rgba(0,218,243,.25); border-radius:var(--r-xl); padding:1.8rem; position:relative; overflow:hidden; }
.prod-main-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--accent),transparent); opacity:.4; }

/* Шапка карточки */
.prod-card-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1.2rem; }
.prod-order-badge { display:flex; align-items:center; gap:.6rem; }
.prod-order-num { font-family:var(--font-mono); font-size:1.1rem; font-weight:700; color:var(--accent); }
.prod-prio-tag { font-family:var(--font-mono); font-size:.62rem; font-weight:600; padding:.18rem .6rem; border-radius:999px; background:rgba(255,180,171,.12); color:var(--red); border:1px solid rgba(255,180,171,.25); }

/* Таймер */
.prod-timer-block { text-align:right; }
.prod-timer-label { font-family:var(--font-mono); font-size:.6rem; color:var(--text-faint); letter-spacing:.06em; margin-bottom:.2rem; }
.prod-timer { font-family:var(--font-mono); font-size:2rem; font-weight:700; color:var(--accent); letter-spacing:.05em; text-shadow:0 0 20px rgba(0,218,243,.4); font-variant-numeric:tabular-nums; }

/* Название изделия */
.prod-product-name { font-family:var(--font-head); font-size:2rem; font-weight:800; letter-spacing:-0.02em; line-height:1.1; margin-bottom:1.2rem; }
.prod-internal-num { font-family:var(--font-mono); font-size:.8rem; color:var(--text-dim); margin-left:.8rem; font-weight:400; }

/* Атрибуты-чипы */
.prod-attrs-row { display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.2rem; }
.prod-attr-chip { background:rgba(34,42,61,.7); border:1px solid var(--line-faint); border-radius:var(--r-md); padding:.4rem .8rem; }
.prod-attr-label { font-family:var(--font-mono); font-size:.58rem; font-weight:600; color:var(--text-faint); letter-spacing:.07em; margin-bottom:.1rem; }
.prod-attr-val { font-family:var(--font-mono); font-size:.8rem; color:var(--text); font-weight:600; }

/* Комментарий */
.prod-comment-block { display:flex; align-items:center; gap:.5rem; padding:.7rem 1rem; background:rgba(255,180,171,.08); border:1px solid rgba(255,180,171,.2); border-radius:var(--r-md); font-family:var(--font-mono); font-size:.82rem; color:var(--red); margin-bottom:1rem; }
.prod-prev-worker { display:flex; align-items:center; gap:.5rem; padding:.5rem .8rem; background:rgba(0,218,243,.06); border:1px solid rgba(0,218,243,.15); border-radius:var(--r-md); font-family:var(--font-mono); font-size:.8rem; margin-bottom:1rem; }

/* Кнопки действий */
.prod-actions { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-top:1.5rem; }
.prod-done-btn { display:flex; align-items:center; justify-content:center; gap:.6rem; padding:1rem; background:var(--accent); color:var(--bg-dim); font-family:var(--font-mono); font-size:.9rem; font-weight:700; letter-spacing:.06em; border:none; border-radius:var(--r-lg); cursor:pointer; transition:box-shadow .2s, transform .15s; }
.prod-done-btn:hover { box-shadow:0 0 28px rgba(0,218,243,.5); }
.prod-done-btn:active { transform:scale(.98); }
.prod-route-btn { display:flex; align-items:center; justify-content:center; gap:.5rem; padding:1rem; background:transparent; color:var(--text-dim); font-family:var(--font-mono); font-size:.85rem; font-weight:600; letter-spacing:.04em; border:1px solid var(--line-faint); border-radius:var(--r-lg); cursor:pointer; transition:all .2s; }
.prod-route-btn:hover { border-color:var(--accent); color:var(--accent); background:var(--accent-dim); }
.prod-cancel-link { display:block; width:100%; margin-top:.8rem; background:none; border:none; font-family:var(--font-mono); font-size:.72rem; color:var(--text-faint); cursor:pointer; text-align:center; transition:color .2s; }
.prod-cancel-link:hover { color:var(--red); }

/* Чеклист этапов (правая панель) */
.prod-stages-panel { background:var(--glass-bg); backdrop-filter:blur(12px); border:1px solid var(--glass-border); border-top-color:var(--glass-t); border-radius:var(--r-xl); padding:1.3rem; }
.prod-stages-title { font-family:var(--font-mono); font-size:.65rem; font-weight:600; color:var(--accent); letter-spacing:.1em; margin-bottom:1rem; }
.prod-stages-list { display:flex; flex-direction:column; gap:.2rem; }
.prod-stage-item { display:flex; align-items:flex-start; gap:.8rem; padding:.65rem .5rem; border-radius:var(--r-md); transition:background .2s; }
.prod-stage-item.done { opacity:.6; }
.prod-stage-item.active { background:rgba(0,218,243,.07); }
.prod-stage-check { flex-shrink:0; margin-top:1px; display:flex; align-items:center; }
.prod-stage-pulse { width:10px; height:10px; border-radius:50%; background:var(--accent); box-shadow:0 0 8px rgba(0,218,243,.7); animation:pulseGlow 1.2s ease-in-out infinite; }
.prod-stage-body { flex:1; }
.prod-stage-name { font-size:.87rem; font-weight:600; color:var(--text); }
.prod-stage-sub { font-family:var(--font-mono); font-size:.68rem; color:var(--text-dim); margin-top:1px; }
.prod-stage-item.active .prod-stage-name { color:var(--accent); }

/* Список заказов в свободном состоянии */
.prod-order-row { display:flex; align-items:center; justify-content:space-between; padding:.9rem 1rem; margin-bottom:4px; background:rgba(23,31,51,.45); border:1px solid var(--line-faint); border-radius:var(--r-md); cursor:pointer; transition:all .18s; }
.prod-order-row:hover { background:rgba(0,218,243,.05); border-color:rgba(0,218,243,.25); transform:translateX(3px); }
.prod-order-row.assigned { border-color:rgba(0,218,243,.3); background:rgba(0,218,243,.05); }
.prod-order-row-left { flex:1; }
.prod-order-row-num { font-family:var(--font-mono); font-size:.88rem; font-weight:700; color:var(--accent); margin-bottom:.2rem; }
.prod-order-row-name { font-size:.88rem; font-weight:500; }
.prod-order-row-sub { font-family:var(--font-mono); font-size:.7rem; color:var(--text-dim); margin-top:.2rem; }
.prod-assigned-tag { font-family:var(--font-mono); font-size:.62rem; font-weight:700; color:var(--accent); background:rgba(0,218,243,.12); border:1px solid rgba(0,218,243,.25); padding:.18rem .6rem; border-radius:999px; margin-right:.5rem; }
.prod-empty-state { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:3rem; text-align:center; color:var(--text-dim); }
.prod-empty-state .material-symbols-outlined { font-size:3rem; opacity:.3; margin-bottom:.8rem; }
.prod-order-row.upcoming .prod-order-row-num { color:var(--text-dim); }

/* ── МОБИЛЬНАЯ АДАПТАЦИЯ: производство ────────────────────── */
@media(max-width:900px){
  .prod-split { grid-template-columns:1fr; }
  .dash-kpi-grid { grid-template-columns:1fr 1fr; }
  .dash-pipeline { grid-template-columns:repeat(5,1fr); overflow-x:auto; }
}
@media(max-width:600px){
  .dash-kpi-grid { grid-template-columns:1fr; }
  .prod-timer { font-size:1.5rem; }
  .prod-product-name { font-size:1.4rem; }
  .prod-actions { grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════
   НЕДОСТАЮЩИЕ КОМПОНЕНТЫ v31
   ═══════════════════════════════════════════════════════════ */

/* ── СОЗДАТЬ ЗАКАЗ: ВЫБОР КАТЕГОРИИ ──────────────────────── */
.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 1rem;
  margin-top: .5rem;
}
.cat-pick {
  background: var(--glass-bg); backdrop-filter: blur(8px);
  border: 1px solid var(--glass-border); border-top-color: var(--glass-t);
  border-radius: var(--r-lg); padding: 1.4rem 1rem;
  text-align: center; cursor: pointer;
  transition: all .2s;
  display: flex; flex-direction: column; align-items: center; gap: .6rem;
}
.cat-pick:hover {
  border-color: rgba(0,218,243,.4); background: rgba(0,218,243,.08);
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,.3);
}
.cat-pick-icon {
  font-size: 2.2rem; line-height: 1;
  filter: drop-shadow(0 0 8px rgba(0,218,243,.3));
}
.cat-pick-name {
  font-family: var(--font-mono); font-size: .75rem; font-weight: 600;
  color: var(--text); letter-spacing: .03em;
}

/* ── СПРАВОЧНИК: ВКЛАДКИ И ТАБЛИЦЫ ───────────────────────── */
.dict-tabs {
  display: flex; gap: .35rem; flex-wrap: wrap; margin-bottom: 1rem; align-items: center;
}
.dict-new-btn {
  flex-shrink: 0;
  padding: .38rem 1rem; border-radius: 999px; cursor: pointer;
  font-family: var(--font-mono); font-size: .7rem; font-weight: 600;
  letter-spacing: .04em;
  background: linear-gradient(135deg, #7b5cff 0%, #00e5d4 100%);
  border: none; color: #fff;
  box-shadow: 0 0 12px rgba(123,92,255,.45), 0 0 24px rgba(0,229,212,.2);
  transition: all .2s;
}
.dict-new-btn:hover {
  box-shadow: 0 0 18px rgba(123,92,255,.7), 0 0 32px rgba(0,229,212,.35);
  transform: translateY(-1px);
}
.dict-tab {
  padding: .38rem .9rem; border-radius: 999px; cursor: pointer;
  font-family: var(--font-mono); font-size: .7rem; font-weight: 500;
  color: var(--text-dim); border: 1px solid var(--line-faint);
  background: rgba(23,31,51,.4); transition: all .18s;
}
.dict-tab:hover { border-color: rgba(0,218,243,.28); color: var(--accent); }
.dict-tab.on { background: rgba(0,218,243,.1); color: var(--accent); border-color: rgba(0,218,243,.38); }
.dict-tab.accent { border-color: rgba(192,193,255,.25); color: var(--accent-2); }
.dict-tab.accent.on { background: rgba(192,193,255,.1); border-color: rgba(192,193,255,.4); }

.dict-row { position: relative; }
.dict-select { padding: .4rem .7rem; border-radius: var(--r-sm); cursor: pointer; background: var(--bg-dim); border: 1px solid var(--line-faint); color: var(--text); font-family: var(--font-mono); font-size: .8rem; }
.row-actions { display: flex; gap: .4rem; align-items: center; }

/* ── КАТЕГОРИИ ТОВАРОВ (конструктор) ──────────────────────── */
.cat-header {
  display: flex; align-items: center; gap: 1rem;
  padding-bottom: 1rem; margin-bottom: 1rem;
  border-bottom: 1px solid var(--line-faint);
}
.cat-icon {
  font-size: 1.8rem; width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,218,243,.1); border-radius: var(--r-md);
}
.cat-icon.big { font-size: 2.4rem; width: 56px; height: 56px; }
.cat-info { flex: 1; }
.cat-title { font-family: var(--font-head); font-size: 1.1rem; font-weight: 700; }
.cat-edit { cursor: pointer; }

.cat-block { margin-top: 1.2rem; }
.cat-block-h {
  font-family: var(--font-mono); font-size: .68rem; font-weight: 600;
  color: var(--accent); letter-spacing: .08em; margin-bottom: .6rem;
  padding-bottom: .4rem; border-bottom: 1px solid var(--line-faint);
  display: flex; align-items: center; justify-content: space-between;
}
.cat-row { display: flex; align-items: center; gap: .6rem; padding: .5rem 0; border-bottom: 1px solid var(--line-faint); }
.cat-row:last-child { border-bottom: none; }
.dict-grid { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .2rem; }
.dict-card { display: flex; flex-direction: column; gap: .3rem;
  min-width: 110px; max-width: 200px; flex: 1 1 110px;
  padding: .75rem .7rem .6rem;
  background: var(--glass-bg); border: 1px solid var(--glass-border);
  border-radius: var(--r-lg); transition: border-color .18s; }
.dict-card:hover { border-color: var(--line); }
.dict-card-name { font-size: .84rem; font-weight: 600; color: var(--text); line-height: 1.3; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.dict-card-sub { font-size: .72rem; color: var(--text-dim); font-family: var(--font-mono); }
.dict-card-actions { display: flex; gap: .2rem; margin-top: .35rem; flex-wrap: wrap; }
.dict-badge { display:inline-block; font-size:.68rem; font-family:var(--font-mono); padding:.1rem .35rem; border-radius:999px; background:rgba(255,255,255,.06); }
.dict-badge.accent { color:var(--accent); background:rgba(0,229,212,.1); }
.dict-badge.green  { color:var(--green);  background:rgba(0,229,100,.1); }
.dict-badge.red    { color:var(--red);    background:rgba(255,80,80,.1); }
.dict-badge.dim    { color:var(--text-dim); }
.price-section { margin-bottom: 1.4rem; }
.price-section-title { font-family: var(--font-mono); font-size: .72rem; font-weight: 700; letter-spacing: .1em; color: var(--accent); text-transform: uppercase; margin-bottom: .6rem; padding-bottom: .35rem; border-bottom: 1px solid rgba(0,229,212,.2); }
.price-card { cursor: pointer; }
.price-card:hover { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), 0 4px 14px rgba(0,229,212,.1); }
.price-card-val { font-family: var(--font-mono); font-size: 1rem; font-weight: 700; color: var(--accent); margin-top: .2rem; }
.cat-grid { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: .2rem; }
.cat-card { display: flex; flex-direction: column; align-items: center; gap: .45rem;
  width: 120px; padding: .9rem .6rem .75rem;
  background: var(--glass-bg); border: 1px solid var(--glass-border);
  border-radius: var(--r-lg); cursor: pointer; transition: all .18s;
  text-align: center; }
.cat-card:hover { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), 0 4px 18px rgba(0,229,212,.12); transform: translateY(-2px); }
.cat-card-img .cat-icon { border-radius: 10px; font-size: 1.6rem; width: 64px; height: 64px; }
.cat-card-name { font-size: .82rem; font-weight: 700; color: var(--text); line-height: 1.2; word-break: break-word; }
.cat-card-code { font-family: var(--font-mono); font-size: .68rem; color: var(--text-faint); }

/* Строки полей/этапов конструктора */
.field-row { display: flex; align-items: center; gap: .6rem; padding: .5rem 0; border-bottom: 1px solid var(--line-faint); }
.field-row:last-child { border-bottom: none; }
.field-row-inline { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.field-pos { font-family: var(--font-mono); font-size: .7rem; color: var(--text-faint); min-width: 20px; }
.field-info { flex: 1; }
.field-del { background: none; border: none; color: var(--text-faint); cursor: pointer; padding: .2rem; transition: color .2s; }
.field-del:hover { color: var(--red); }

.stage-row { display: flex; align-items: center; gap: .6rem; padding: .5rem 0; border-bottom: 1px solid var(--line-faint); }
.stage-row:last-child { border-bottom: none; }
.stage-del { background: none; border: none; color: var(--text-faint); cursor: pointer; padding: .2rem; transition: color .2s; }
.stage-del:hover { color: var(--red); }

/* ── РАСЦЕНКИ ─────────────────────────────────────────────── */
.prices-table { width: 100%; border-collapse: collapse; }
.prices-table th { font-family: var(--font-mono); font-size: .65rem; color: var(--text-faint); letter-spacing: .06em; text-align: left; padding: .5rem .7rem; border-bottom: 1px solid var(--line-faint); }
.prices-table td { padding: .55rem .7rem; border-bottom: 1px solid var(--line-faint); font-size: .85rem; }
.prices-table tr:hover td { background: rgba(0,218,243,.03); }
.prices-table .num { font-family: var(--font-mono); font-size: .88rem; color: var(--accent); }

/* ── СКЛАД ────────────────────────────────────────────────── */
.warehouse-tabs { display: flex; gap: .4rem; margin-bottom: 1rem; }
.wh-search { width: 100%; max-width: 340px; margin-bottom: 1rem; }
.wh-search input { width: 100%; background: rgba(6,14,32,.55); border: 1px solid var(--line-faint); border-radius: var(--r-md); padding: .65rem .9rem; color: var(--text); font-family: var(--font-mono); font-size: .85rem; outline: none; }
.wh-search input:focus { border-color: var(--accent); }

/* ── ЗАРПЛАТЫ: ДЕТАЛЬНЫЙ ──────────────────────────────────── */
.salary-detail-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line-faint); }
.salary-big { font-family: var(--font-head); font-size: 2.2rem; font-weight: 800; color: var(--green); }
.salary-label { font-family: var(--font-mono); font-size: .68rem; color: var(--text-dim); margin-top: .2rem; letter-spacing: .05em; }
.salary-row { display: flex; justify-content: space-between; align-items: center; padding: .4rem 0; border-bottom: 1px solid var(--line-faint); font-size: .85rem; }
.salary-row:last-child { border-bottom: none; }
.salary-pos { color: var(--green); font-family: var(--font-mono); }
.salary-neg { color: var(--red); font-family: var(--font-mono); }

/* ── СОТРУДНИКИ ───────────────────────────────────────────── */
.emp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .8rem; }
.emp-card {
  background: var(--glass-bg); backdrop-filter: blur(8px);
  border: 1px solid var(--glass-border); border-radius: var(--r-lg);
  padding: 1.1rem; cursor: pointer; transition: all .18s;
}
.emp-card:hover { border-color: rgba(0,218,243,.28); transform: translateY(-2px); }
.emp-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--bg-highest); border: 1px solid rgba(0,218,243,.2); display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: .9rem; font-weight: 700; color: var(--accent); margin-bottom: .7rem; }
.emp-name { font-weight: 600; font-size: .9rem; margin-bottom: .2rem; }
.emp-phone { font-family: var(--font-mono); font-size: .72rem; color: var(--text-dim); }
.emp-shift { display: inline-flex; align-items: center; gap: .3rem; font-family: var(--font-mono); font-size: .65rem; margin-top: .5rem; padding: .18rem .55rem; border-radius: 999px; }
.emp-shift.on { background: rgba(47,217,122,.1); color: var(--green); }
.emp-shift.off { background: rgba(59,73,76,.15); color: var(--text-faint); }

/* ── ОТЧЁТЫ: KPI КЛИКАБЕЛЬНЫЕ ─────────────────────────────── */
.kpi-card.orders:hover { border-color: rgba(0,218,243,.3); }
.kpi-card.salary:hover { border-color: rgba(255,217,102,.3); }
.kpi-card.warehouse:hover { border-color: rgba(47,217,122,.3); }

/* ── HELP / РУКОВОДСТВО ───────────────────────────────────── */
.help-guide { max-width: 680px; }
.help-step { margin-bottom: 1.5rem; padding: 1.2rem; background: var(--glass-bg); border: 1px solid var(--glass-border); border-radius: var(--r-lg); }
.help-num { display: inline-flex; width: 28px; height: 28px; border-radius: 50%; background: var(--accent); color: var(--bg-dim); font-family: var(--font-mono); font-size: .8rem; font-weight: 700; align-items: center; justify-content: center; margin-bottom: .6rem; }
.help-step-h { font-family: var(--font-head); font-size: 1rem; font-weight: 700; margin-bottom: .4rem; }
.help-step-b { font-size: .87rem; color: var(--text-dim); line-height: 1.6; }
.help-tip { background: rgba(0,218,243,.06); border-left: 2px solid var(--accent); padding: .6rem .8rem; border-radius: 0 var(--r-sm) var(--r-sm) 0; font-family: var(--font-mono); font-size: .78rem; margin-top: .6rem; }
.hint-mark { cursor: help; color: var(--accent); font-family: var(--font-mono); font-size: .7rem; margin-left: .3rem; position: relative; }
/* Тултип через JS fixed — не клипится в модалках */
.hint-tooltip {
  position: fixed; z-index: 99999; pointer-events: none;
  background: var(--bg-card); border: 1px solid var(--accent); border-radius: var(--r-md);
  color: var(--text); font-family: var(--font-sans); font-size: .78rem; line-height: 1.45;
  padding: .5rem .7rem; width: 220px; max-width: 280px;
  box-shadow: 0 4px 20px rgba(0,0,0,.5); word-break: break-word; }

/* ── ВЫБОР ИКОНКИ КАТЕГОРИИ ────────────────────────────────── */
.icon-picker-grid { display:flex; flex-wrap:wrap; gap:.35rem; margin-bottom:.6rem; }
.icon-btn { font-size:1.4rem; line-height:1; padding:.3rem .4rem; border-radius:var(--r-sm);
  background:rgba(255,255,255,.05); border:1px solid transparent; cursor:pointer;
  transition:background .15s, border-color .15s; user-select:none; }
.icon-btn:hover  { background:rgba(255,255,255,.1); }
.icon-btn.active { background:rgba(0,229,212,.15); border-color:var(--accent); }
.icon-picker-sep { width:100%; height:0; border-top:1px solid var(--line-faint); margin:.3rem 0; }
.icon-custom-row { display:flex; gap:.5rem; align-items:center; margin-top:.3rem; }
.icon-preview { font-size:1.6rem; min-width:2rem; text-align:center; }

/* ── МАРШРУТНЫЙ ЛИСТ (внутренние стили) ───────────────────── */
.route-section { margin-top: 1rem; border-top: 1px solid var(--line-faint); padding-top: .8rem; }
.route-title { font-family: var(--font-mono); font-size: .65rem; font-weight: 600; letter-spacing: .07em; color: var(--text-dim); margin-bottom: .6rem; }
.stages { display: flex; gap: .5rem; }
.stage-box { flex: 1; border: 1px solid var(--line-faint); border-radius: var(--r-md); padding: .5rem; text-align: center; }
.st-name { font-weight: 600; font-size: .82rem; }
.st-sign { margin-top: 1.2rem; border-top: 1px solid var(--line-faint); padding-top: .3rem; font-family: var(--font-mono); font-size: .62rem; color: var(--text-faint); }
.cm-lbl { font-family: var(--font-mono); font-size: .65rem; font-weight: 600; letter-spacing: .06em; color: var(--red); margin-bottom: .4rem; }
.cm-txt { font-size: .95rem; font-weight: 600; }
.comment-box { border: 2px solid rgba(255,180,171,.3); padding: .8rem 1rem; border-radius: var(--r-md); background: rgba(255,180,171,.05); }
.internal-num { font-family: var(--font-mono); font-size: .78rem; color: var(--text-dim); }
.cut-badge { display: inline-block; padding: .18rem .6rem; background: rgba(0,218,243,.1); color: var(--accent); border: 1px solid rgba(0,218,243,.25); border-radius: 999px; font-family: var(--font-mono); font-size: .65rem; }

/* ── НАКЛАДНАЯ ────────────────────────────────────────────── */
.inv-sum { font-family: var(--font-mono); font-weight: 600; color: var(--text); }
.no-print { }

/* ── ПЕРЕОПРЕДЕЛЕНИЯ ──────────────────────────────────────── */
.lsub-inline { font-family: var(--font-mono); font-size: .7rem; color: var(--text-dim); display: inline; }
.lval { font-family: var(--font-mono); font-size: .85rem; color: var(--text); }
.empty-small { font-family: var(--font-mono); font-size: .8rem; color: var(--text-dim); padding: 1rem; }
.lb { font-family: var(--font-mono); font-size: .65rem; font-weight: 600; color: var(--text-faint); letter-spacing: .06em; }
.num { font-family: var(--font-mono); font-size: .88rem; }
.sk { color: var(--text-faint); font-family: var(--font-mono); font-size: .7rem; }
.sn { font-size: .85rem; }
.loc { font-family: var(--font-mono); font-size: .75rem; color: var(--text-dim); }
.info { font-size: .85rem; color: var(--text-dim); }
.green { color: var(--green); }
.yellow { color: var(--yellow); }
.prio { font-family: var(--font-mono); font-size: .72rem; }
.step { display: flex; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--line-faint); }
.step:last-child { border-bottom: none; }
.srow { display: flex; align-items: center; gap: .6rem; padding: .4rem 0; }
.summary-box { background: rgba(0,218,243,.06); border: 1px solid rgba(0,218,243,.18); border-radius: var(--r-md); padding: 1rem; margin-top: 1rem; }
.header { font-family: var(--font-head); font-size: 1.1rem; font-weight: 700; margin-bottom: .8rem; }
.product-name { font-size: .9rem; font-weight: 600; }
.right-col { }
.ord-num  { font-family: var(--font-mono); font-size: .88rem; font-weight: 700; color: var(--accent); }
.ord-name { font-size: .88rem; }
.ord-info { font-family: var(--font-mono); font-size: .72rem; color: var(--text-dim); margin-top: 2px; }
.ord-loc  { font-family: var(--font-mono); font-size: .72rem; color: var(--text-dim); }
.ord-meta { font-family: var(--font-mono); font-size: .7rem; color: var(--text-faint); }
.order-num { font-family: var(--font-mono); font-size: .88rem; font-weight: 700; color: var(--accent); }
.orders { }
.upcoming { opacity: .8; }

/* ── WMS ДОПОЛНЕНИЯ ───────────────────────────────────────── */
.wms-auto-one { font-family: var(--font-mono); font-size: .72rem; }
.ws-order-link { cursor: pointer; text-decoration: underline dotted; color: var(--accent); }
.ws-order-link-modal { cursor: pointer; color: var(--accent); }
.ship-salon-all { accent-color: var(--accent); }

/* ── НАЗНАЧЕНИЕ РАБОТНИКОВ ────────────────────────────────── */
.assign-clear { background: none; border: none; cursor: pointer; color: var(--text-faint); padding: .2rem; font-size: .8rem; transition: color .2s; }
.assign-clear:hover { color: var(--red); }

/* ── ПОИСК: СТРОКА ────────────────────────────────────────── */
.search-row { display: flex; gap: .6rem; margin-bottom: 1rem; }
.search-row input { flex: 1; background: rgba(6,14,32,.55); border: 1px solid var(--line-faint); border-radius: var(--r-md); padding: .65rem .9rem; color: var(--text); font-family: var(--font-mono); font-size: .85rem; outline: none; }
.search-row input:focus { border-color: var(--accent); }

/* ── ASSIGNED TAG (в списке заказов производства) ─────────── */
.assigned-tag { font-family: var(--font-mono); font-size: .65rem; font-weight: 700; color: var(--accent); background: rgba(0,218,243,.1); border: 1px solid rgba(0,218,243,.25); padding: .15rem .55rem; border-radius: 999px; display: inline-block; margin-top: .2rem; }

/* ── NAV LABEL ────────────────────────────────────────────── */
.nav-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Мобильный sidebar шире — текст меню не обрезается */
@media(max-width:768px){
  :root { --sidebar-w: 264px; }
  .nav-label { white-space: normal; line-height:1.25; font-size:.71rem; }
  .sidebar { padding-bottom: calc(1rem + env(safe-area-inset-bottom)); }
  .user-box { padding-bottom: env(safe-area-inset-bottom); }
  .toast { bottom: calc(1rem + env(safe-area-inset-bottom)); right: .8rem; left:.8rem; max-width:none; }
  .wms-top-bar { overflow-x: auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; }
}

/* ── МОБИЛЬНАЯ: production split ─────────────────────────── */
@media (max-width: 768px) {
  .category-grid { grid-template-columns: repeat(2, 1fr); }
  .prod-split { grid-template-columns: 1fr; }
  .prod-timer { font-size: 1.6rem; }
  .prod-product-name { font-size: 1.4rem; }
}

/* ── КАРТОЧКА ЗАКАЗА (детальный вид) ─────────────────────── */
.order-detail-card { max-width: 700px; }
.order-detail-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: .8rem; padding-bottom: .8rem; border-bottom: 1px solid var(--line-faint);
}
.order-detail-num {
  font-family: var(--font-mono); font-size: 1rem; font-weight: 700;
  display: flex; align-items: center; gap: .5rem; margin-bottom: .3rem;
}
.order-detail-product {
  font-family: var(--font-head); font-size: 1.2rem; font-weight: 700; letter-spacing: -0.01em;
}
.order-detail-actions {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  padding: .8rem; background: rgba(23,31,51,.4); border-radius: var(--r-md);
  margin-bottom: 1rem;
}

/* ══════════════════════════════════════════════════════════════
   FIX + EFFECTS v42
   ══════════════════════════════════════════════════════════════ */

/* ── ФИКС: САЙДБАР PC — collapsed ──────────────────────────── */
.sidebar.collapsed .brand { display: none; }
.sidebar.collapsed .brand-row { justify-content: center; padding: .6rem 0; }

/* Desktop: бургер в топбаре НЕ показываем — collapse-кнопка внутри sidebar */

/* ── ФИКС: САЙДБАР МОБИЛЬНЫЙ ──────────────────────────────── */
@media(max-width: 768px) {
  .sidebar {
    height: 100vh;
    height: 100dvh; /* динамическая высота — учитывает браузерный chrome */
    padding-top: max(1.5rem, env(safe-area-inset-top)) !important;
    display: flex; flex-direction: column;
  }
  .nav { overflow-y: auto; min-height: 0; flex: 1; }
  .user-box {
    flex-shrink: 0;
    padding-bottom: max(.8rem, env(safe-area-inset-bottom));
  }
}

/* ── PAGE TRANSITION ─────────────────────────────────────────── */
@keyframes pageEnter {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.content.page-in { animation: pageEnter .22s ease forwards; }

/* ── STAGGER LIST ROWS ──────────────────────────────────────── */
@keyframes rowSlideIn {
  from { opacity: 0; transform: translateX(-6px); }
  to   { opacity: 1; transform: translateX(0); }
}
.row-stagger {
  animation: rowSlideIn .2s ease both;
  animation-delay: var(--stagger-delay, 0ms);
}

/* ── SKELETON LOADER ─────────────────────────────────────────── */
@keyframes skeletonShimmer {
  0%   { background-position: -600px 0; }
  100% { background-position: 600px 0; }
}
.skeleton-row {
  display: flex; align-items: center; gap: .8rem;
  padding: .75rem .9rem; margin-bottom: 3px;
  background: rgba(23,31,51,.3); border: 1px solid rgba(59,73,76,.2);
  border-radius: var(--r-md);
}
.skeleton-line {
  height: 12px; border-radius: 3px; flex-shrink: 0;
  background: linear-gradient(90deg, rgba(59,73,76,.2) 0%, rgba(59,73,76,.45) 50%, rgba(59,73,76,.2) 100%);
  background-size: 600px 100%;
  animation: skeletonShimmer 1.4s ease-in-out infinite;
}
.skeleton-dot {
  width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
  background: rgba(59,73,76,.35);
  animation: skeletonShimmer 1.4s ease-in-out infinite;
}

/* ── STATUS BADGES — ПУЛЬС НА АКТИВНЫХ ─────────────────────── */
.s-sewing::before, .s-upholstery::before, .s-assembly::before {
  content: ''; display: inline-block;
  width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0;
  background: currentColor; margin-right: 3px;
  animation: pulseGlow 1.3s ease-in-out infinite;
}

/* ── LIVE DOT RIPPLE ────────────────────────────────────────── */
@keyframes liveRipple {
  0%   { box-shadow: 0 0 0 0 rgba(47,217,122,0.6); background: var(--green); }
  70%  { box-shadow: 0 0 0 7px rgba(47,217,122,0); }
  100% { box-shadow: 0 0 0 0 rgba(47,217,122,0); }
}
.dash-live-dot { animation: liveRipple 1.6s ease-in-out infinite !important; }

/* ── SEARCH HIGHLIGHT ───────────────────────────────────────── */
mark.search-hl {
  background: rgba(0,218,243,.18); color: var(--accent);
  border-radius: 2px; padding: 0 1px;
}

/* ── CHIP CLICK FEEDBACK ────────────────────────────────────── */
.chip { transition: all .15s ease !important; }
.chip:active { transform: scale(0.94); }

/* ── КНОПКИ — клик feedback ─────────────────────────────────── */
.btn-primary:active { transform: scale(0.96) !important; }
.act-btn:active { transform: scale(0.96) !important; }

/* ── ЛЕВЫЙ БОРДЕР НА HOVER — остальные списки ───────────────── */
.prod-order-row {
  border-left: 3px solid transparent !important;
  transition: all .18s ease !important;
}
.prod-order-row:hover {
  border-left-color: var(--accent) !important;
  transform: translateX(3px) !important;
}
.prod-order-row.assigned { border-left-color: rgba(0,218,243,.5) !important; }

.ship-row {
  border-left: 3px solid transparent !important;
  transition: all .18s ease !important;
}
.ship-row:hover {
  border-left-color: var(--accent) !important;
  transform: translateX(3px) !important;
}

.list-row {
  border-left: 3px solid transparent !important;
  transition: all .18s ease !important;
}
.list-row:hover { border-left-color: var(--accent) !important; }

/* ── ПРИОРИТЕТ КРАСНЫЙ — усиленный пульс ────────────────────── */
@keyframes redPulse {
  0%, 100% { box-shadow: 0 0 5px rgba(255,180,171,.5); }
  50%       { box-shadow: 0 0 12px rgba(255,180,171,.9), 0 0 20px rgba(255,180,171,.3); }
}
.p-red { animation: redPulse 1.8s ease-in-out infinite !important; }

/* ── REFRESH BUTTON SPIN ────────────────────────────────────── */
@keyframes spinOnce { to { transform: rotate(360deg); } }
.btn-spin { animation: spinOnce .5s ease; display: inline-block; }

/* ── FOCUS INPUTS GLOW ──────────────────────────────────────── */
.field input:focus, .field select:focus, .field textarea:focus {
  box-shadow: 0 0 0 3px rgba(0,218,243,.1), 0 0 14px rgba(0,218,243,.07) !important;
}

/* ── MОБИЛЬНЫЙ: page-in без сдвига ─────────────────────────── */
@media(max-width: 768px) {
  .content.page-in { animation: fadeIn .18s ease forwards; }
  @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
}

/* ══════════════════════════════════════════════════════════════
   POWER UPGRADE v43 — Видимые эффекты + FX-off система
   ══════════════════════════════════════════════════════════════ */

/* ── ПЕРЕОПРЕДЕЛЯЕМ АНИМАЦИИ — ЯРЧЕ/БЫСТРЕЕ ────────────────── */
@keyframes glowBreath {
  0%, 100% { box-shadow: 0 0 25px rgba(0,218,243,0.35), 0 0 0 1px rgba(0,218,243,0.2); }
  50%       { box-shadow: 0 0 55px rgba(0,218,243,0.65), 0 0 80px rgba(0,218,243,0.15), 0 0 0 1px rgba(0,218,243,0.45); }
}
@keyframes glowBreathGreen {
  0%, 100% { box-shadow: 0 0 25px rgba(47,217,122,0.35), 0 0 0 1px rgba(47,217,122,0.2); }
  50%       { box-shadow: 0 0 55px rgba(47,217,122,0.65), 0 0 80px rgba(47,217,122,0.15), 0 0 0 1px rgba(47,217,122,0.45); }
}
@keyframes glowBreathYellow {
  0%, 100% { box-shadow: 0 0 25px rgba(255,217,102,0.35), 0 0 0 1px rgba(255,217,102,0.2); }
  50%       { box-shadow: 0 0 55px rgba(255,217,102,0.65), 0 0 80px rgba(255,217,102,0.15), 0 0 0 1px rgba(255,217,102,0.45); }
}
@keyframes floatUpDown {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-7px); }
}
.dash-kpi-card { animation-duration: 3s, 2.5s !important; }
.dash-kpi-card.green { animation-duration: 3s, 2.5s !important; }
.dash-kpi-card.yellow { animation-duration: 3s, 2.5s !important; }

/* ── KPI NUMBER — NEON TEXT ─────────────────────────────────── */
.dash-kpi-num {
  font-size: 3.4rem !important;
  text-shadow: 0 0 20px rgba(0,218,243,0.9), 0 0 40px rgba(0,218,243,0.5) !important;
}
.dash-kpi-card.green .dash-kpi-num {
  text-shadow: 0 0 20px rgba(47,217,122,0.9), 0 0 40px rgba(47,217,122,0.5) !important;
}
.dash-kpi-card.yellow .dash-kpi-num {
  text-shadow: 0 0 20px rgba(255,217,102,0.9), 0 0 40px rgba(255,217,102,0.5) !important;
}

/* ── NEON CURSOR TRAIL ──────────────────────────────────────── */
#cursor-trail {
  position: fixed; z-index: 9999; pointer-events: none;
  width: 14px; height: 14px; border-radius: 50%;
  background: rgba(0,218,243,0.7);
  box-shadow: 0 0 12px rgba(0,218,243,1), 0 0 24px rgba(0,218,243,0.6), 0 0 40px rgba(0,218,243,0.3);
  top: 0; left: 0; will-change: transform;
  mix-blend-mode: screen;
}
#cursor-ring {
  position: fixed; z-index: 9998; pointer-events: none;
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid rgba(0,218,243,0.5);
  top: 0; left: 0; will-change: transform;
}

/* ── PRIORITY COLORED ROWS ──────────────────────────────────── */
.order-row[data-prio="red"]   { border-left-color: var(--red) !important; }
.order-row[data-prio="yellow"]{ border-left-color: var(--yellow) !important; }
.order-row[data-prio="green"] { border-left-color: rgba(47,217,122,0.4) !important; }

/* ── TOPBAR BORDER ANIMATION ────────────────────────────────── */
@keyframes borderShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.topbar::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,218,243,0.6), rgba(123,92,255,0.6), rgba(0,218,243,0.6), transparent);
  background-size: 200% 100%;
  animation: borderShift 4s ease-in-out infinite;
}
.topbar { position: relative; }

/* ── SIDEBAR ACTIVE — STRONGER GLOW ────────────────────────── */
.nav-item.active {
  box-shadow: inset 0 0 20px rgba(0,218,243,0.08) !important;
}
.nav-item.active::after {
  box-shadow: 0 0 14px rgba(0,218,243,1), 0 0 28px rgba(0,218,243,0.6) !important;
}
.brand .ac {
  text-shadow: 0 0 16px rgba(0,218,243,0.9), 0 0 32px rgba(0,218,243,0.5), 0 0 60px rgba(0,218,243,0.25) !important;
}

/* ── PIPE FLOW LINE — BRIGHTER ──────────────────────────────── */
.dash-pipeline::before {
  opacity: 1;
  height: 2px !important;
  background: linear-gradient(90deg,
    rgba(0,218,243,0) 0%, rgba(0,218,243,0.9) 25%, rgba(0,218,243,0.9) 75%, rgba(0,218,243,0) 100%) !important;
  box-shadow: 0 0 8px rgba(0,218,243,0.6);
}
.dash-pipe-card.active::before {
  height: 3px !important;
  box-shadow: 0 0 10px rgba(0,218,243,0.8) !important;
}

/* ── LIVE RIPPLE — BIGGER ───────────────────────────────────── */
@keyframes liveRipple {
  0%   { box-shadow: 0 0 0 0 rgba(47,217,122,0.8); }
  70%  { box-shadow: 0 0 0 10px rgba(47,217,122,0); }
  100% { box-shadow: 0 0 0 0 rgba(47,217,122,0); }
}

/* ── ORDER ROW HOVER — BRIGHTER ─────────────────────────────── */
.order-row:hover {
  background: rgba(0,218,243,0.08) !important;
  border-left-color: var(--accent) !important;
  box-shadow: -3px 0 14px rgba(0,218,243,0.3), 0 4px 24px rgba(0,0,0,0.4) !important;
}

/* ── PRODUCTION TIMER GLOW ──────────────────────────────────── */
.prod-timer {
  text-shadow: 0 0 20px rgba(0,218,243,0.8), 0 0 40px rgba(0,218,243,0.4) !important;
}

/* ── FX-OFF: отключаем всё ──────────────────────────────────── */
.fx-off *,
.fx-off *::before,
.fx-off *::after {
  animation: none !important;
  transition-duration: 0.1ms !important;
}
.fx-off #cursor-trail,
.fx-off #cursor-ring { display: none !important; }
.fx-off .splash canvas { display: none !important; }
.fx-off .kpi-shimmer { display: none !important; }
.fx-off .kpi-corner { display: none !important; }
.fx-off .login-scan { display: none !important; }
.fx-off .topbar::after { display: none !important; }
.fx-off .dash-pipeline::before { display: none !important; }

/* ── FX TOGGLE В НАСТРОЙКАХ ─────────────────────────────────── */
.fx-toggle-card { margin-bottom: 1.2rem; }
.fx-toggle-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: .8rem 0; border-bottom: 1px solid var(--line-faint);
}
.fx-toggle-row:last-child { border-bottom: none; }
.fx-switch {
  position: relative; width: 44px; height: 24px; flex-shrink: 0;
}
.fx-switch input { opacity: 0; width: 0; height: 0; }
.fx-slider {
  position: absolute; inset: 0; border-radius: 24px;
  background: rgba(59,73,76,.4); cursor: pointer;
  transition: background .25s; border: 1px solid var(--line-faint);
}
.fx-slider::before {
  content: ''; position: absolute; left: 3px; top: 50%; transform: translateY(-50%);
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--text-dim); transition: all .25s;
}
.fx-switch input:checked + .fx-slider { background: rgba(0,218,243,.25); border-color: var(--accent); }
.fx-switch input:checked + .fx-slider::before { transform: translate(20px, -50%); background: var(--accent); box-shadow: 0 0 8px rgba(0,218,243,.6); }

/* ── СТРАНИЦА ПРОФИЛЯ ──────────────────────────────────────── */
.profile-page { max-width: 480px; }
.profile-header-card { display: flex; align-items: center; gap: 1.2rem; margin-bottom: 1.2rem; }
.profile-avatar-big {
  width: 72px; height: 72px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 1.6rem; font-weight: 700;
  border: 2px solid; letter-spacing: .05em;
  box-shadow: 0 0 20px currentColor;
}
.profile-name { font-size: 1.1rem; font-weight: 700; margin-bottom: .25rem; }
.profile-role-label { font-family: var(--font-mono); font-size: .75rem; color: var(--text-dim); margin-bottom: .2rem; }
.profile-phone { font-size: .8rem; color: var(--text-dim); margin-top: .15rem; }
.avatar-upload-btn {
  position: absolute; bottom: 0; right: 0;
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--bg-highest); border: 1.5px solid var(--accent);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--accent); transition: background .2s;
}
.avatar-upload-btn:hover { background: rgba(0,229,212,.15); }

/* ── ДОПЫ В РЕДАКТОРЕ КАТЕГОРИИ ────────────────────────────── */
.addon-row { display:flex; align-items:center; justify-content:space-between;
  padding:.45rem .6rem; border:1px solid var(--line); border-radius:var(--r-sm);
  margin-bottom:.35rem; font-size:.87rem; }
.addon-row:hover { border-color:rgba(0,218,243,.3); }
