/* Kermothing — приборная тема: ночная смена в рефсервисе.
   Палитра: глубокий сине-графитовый фон, сигнальный красный как единственный акцент,
   аварийная триада (красный/янтарь/сланец) — только для статусов. */
:root{
  --bg:#0f151c; --panel:#161f2a; --panel2:#1b2634; --edge:#243447; --edge2:#2e4257;
  --text:#d8e2ec; --muted:#8ca0b2; --accent:#ee2a33; --accent-dim:#7d1418;
  --red:#ff6161; --amber:#ffb454; --slate:#7fa6c9; --green:#57c690;
  --ff-disp:"Bahnschrift","DIN Alternate","Segoe UI",Arial,sans-serif;
  --ff-body:"Segoe UI",Roboto,system-ui,Arial,sans-serif;
  --ff-mono:Consolas,"Cascadia Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 var(--ff-body)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--ff-disp);font-weight:600;letter-spacing:.3px;margin:.2em 0 .4em}
h1{font-size:26px}
h2.sect{font-size:15px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);
  border-bottom:1px solid var(--edge);padding-bottom:6px;margin:34px 0 14px}
.mono{font-family:var(--ff-mono)}
.small{font-size:12.5px}
.muted{color:var(--muted)}
.hidden{display:none!important}
.row-gap{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---- masthead: тонкая термолента как подпись бренда ---- */
.mast{background:linear-gradient(180deg,#0c1218,#0f151c);border-bottom:1px solid var(--edge);
  position:sticky;top:0;z-index:20}
.mast::after{content:"";display:block;height:2px;
  background:repeating-linear-gradient(90deg,var(--accent-dim) 0 26px,transparent 26px 34px);opacity:.5}
.mast-in{max-width:1280px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:22px}
.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-family:var(--ff-disp);
  font-size:20px;letter-spacing:.5px}
.brand b{color:var(--accent);font-weight:700}
.brand:hover{text-decoration:none}
.mast nav{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.mast nav a{padding:7px 12px;border-radius:8px;color:var(--muted);font-family:var(--ff-disp);letter-spacing:.4px}
.mast nav a.on,.mast nav a:hover{color:var(--text);background:var(--panel2);text-decoration:none}
.mast .who{color:var(--accent);font-family:var(--ff-mono);font-size:13px;margin:0 4px 0 10px}

.wrap{max-width:1280px;margin:0 auto;padding:22px 20px 60px}
.foot{max-width:1280px;margin:0 auto;padding:18px 20px 30px;color:#5b6d7e;font-size:12.5px;
  border-top:1px solid var(--edge)}

/* ---- карточки / формы ---- */
.card{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:16px 18px;margin:0 0 16px}
.auth-card{max-width:460px;margin:6vh auto 0;background:var(--panel);border:1px solid var(--edge);
  border-radius:14px;padding:26px 28px}
.auth-card.wide{max-width:640px}
.auth-card h1{margin-top:0}
label{display:block;margin:12px 0;font-size:13px;color:var(--muted)}
input,textarea,select{width:100%;margin-top:5px;background:var(--bg);border:1px solid var(--edge2);
  color:var(--text);border-radius:8px;padding:9px 11px;font:14px var(--ff-body)}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent-dim);border-color:var(--accent-dim)}
.btn{display:inline-block;background:var(--accent);color:#fff;border:none;border-radius:9px;
  padding:9px 16px;font:600 14px var(--ff-disp);letter-spacing:.4px;cursor:pointer}
.btn:hover{filter:brightness(1.1);text-decoration:none}
.btn.big{padding:12px 22px;font-size:15px}
.btn.small{padding:5px 10px;font-size:12.5px}
.btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--edge2)}
.btn.danger{background:transparent;color:var(--red);border:1px solid #5a2c33}
.btn.danger:hover{background:#2a171c}
.flash{border-radius:9px;padding:10px 14px;margin:0 0 14px;border:1px solid}
.flash-ok{background:#12302a;border-color:#1e4f43;color:#9fe2c6}
.flash-err{background:#33191d;border-color:#5a2c33;color:#ffb1b1}
.reco-code{font:700 22px/1.3 var(--ff-mono);letter-spacing:2px;background:var(--bg);
  border:1px dashed var(--accent-dim);border-radius:10px;padding:16px;text-align:center;
  color:var(--accent);margin:14px 0;user-select:all}
.hero-trace{margin:-6px -8px 10px}
.hero-trace svg{width:100%;height:80px;display:block}
.list li{margin:6px 0}

/* ---- шапка страницы, пустые состояния ---- */
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.empty{border:1px dashed var(--edge2);border-radius:12px;padding:26px;text-align:center;color:var(--muted)}

/* ---- карточки юнитов ---- */
.unit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.unit-card{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:14px 16px;
  display:flex;flex-direction:column;gap:10px}
.unit-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.unit-serial{font-size:18px;color:var(--accent)}
.unit-name{color:var(--muted);font-size:13px}
.unit-meta{display:flex;flex-direction:column;gap:2px;color:var(--muted);font-size:12.5px}
.unit-actions{display:flex;gap:8px;align-items:center;margin-top:auto}
.tag{background:var(--panel2);border:1px solid var(--edge2);color:var(--muted);border-radius:20px;
  padding:2px 10px;font-size:11.5px;white-space:nowrap}
.rename{margin-left:auto}
.rename summary{cursor:pointer;color:var(--muted);padding:2px 8px;list-style:none}
.inline-form{display:flex;gap:6px;margin-top:8px}
.inline-form input{margin:0}

/* ---- таблицы ---- */
.tbl{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--edge);border-radius:12px;overflow:hidden}
.tbl th{font:600 11.5px var(--ff-disp);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  text-align:left;padding:9px 12px;background:var(--panel2);border-bottom:1px solid var(--edge)}
.tbl td{padding:8px 12px;border-bottom:1px solid var(--edge);vertical-align:top}
.tbl tr:last-child td{border-bottom:none}
.tbl.small td,.tbl.small th{padding:5px 9px;font-size:12.5px}
.pill{display:inline-block;border-radius:20px;padding:2px 10px;font-size:11.5px;font-weight:600}
.pill.ok{background:#123027;color:#7fe0b4}
.pill.err{background:#3a1a20;color:#ff9d9d}
.pill.warn{background:#3a2c14;color:#ffcf8a}
.pill.lg{background:#1c2c3c;color:#9fc0dd}
.pill.run{background:#12303a;color:#7fd9ec}

/* ---- загрузка ---- */
.dropzone{display:block;border:2px dashed var(--edge2);border-radius:12px;padding:34px 20px;text-align:center;
  cursor:pointer;color:var(--text);transition:.15s;margin:14px 0}
.dropzone.over,.dropzone:hover{border-color:var(--accent);background:#1e1114}
.dropzone input{display:none}
.job{background:var(--panel);border:1px solid var(--edge);border-radius:10px;padding:12px 14px;margin-bottom:10px}
.job-ok{border-color:#1e4f43}
.job-err{border-color:#5a2c33}
.bar{height:8px;background:var(--bg);border-radius:6px;overflow:hidden;margin:8px 0 6px}
.bar-in{height:100%;background:linear-gradient(90deg,var(--accent-dim),var(--accent));transition:width .3s}

/* ---- панель графика ---- */
.toolbar .tb-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.tb{margin:0;min-width:180px;flex:0 1 auto}
.presets{display:flex;gap:6px;flex-wrap:wrap}
.chip{background:var(--panel2);border:1px solid var(--edge2);color:var(--muted);border-radius:20px;
  padding:5px 12px;font:13px var(--ff-body);cursor:pointer}
.chip:hover{color:var(--text);border-color:var(--accent-dim)}
.chip.on{background:#2a1012;border-color:var(--accent);color:var(--accent)}
.chip small{opacity:.65;margin-left:5px;font-size:10.5px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;align-items:center}
.chip-group{color:var(--muted);font:600 10.5px var(--ff-disp);letter-spacing:.12em;text-transform:uppercase;
  margin-left:8px}
.chip-group:first-child{margin-left:0}
.chart-card{padding:10px 12px}
.chart-wrap{position:relative;height:460px}
.legend-note{margin:2px 4px 8px}
.dot{display:inline-block;width:9px;height:9px;border-radius:2px;vertical-align:-1px;margin:0 3px 0 8px}
.dot.shut{background:var(--red)}.dot.chk{background:var(--amber)}.dot.lg{background:var(--slate)}.dot.pw{background:#5b6d7e}

/* ---- анализ ---- */
.stat-strip{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 6px}
.stat{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:10px 18px;min-width:130px}
.stat b{display:block;font:700 26px var(--ff-disp);color:var(--accent)}
.stat.crit b{color:var(--red)}
.stat span{color:var(--muted);font-size:12px}
.findings{display:flex;flex-direction:column;gap:10px}
.finding{border-left:3px solid;border-radius:8px;background:var(--panel);padding:10px 14px}
.f-crit{border-color:var(--red)}
.f-warn{border-color:var(--amber)}
.f-info{border-color:var(--slate)}
.f-title{font-weight:600}
.f-detail{color:var(--muted);font-size:13.5px;margin-top:2px}
.alarm-card{margin-bottom:14px}
.alarm-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hints{margin:10px 0 4px;display:flex;flex-direction:column;gap:4px}
.hint{color:#bfe9f2;font-size:13.5px}
.dict-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:10px 0 2px;font-size:13.5px;color:#b9c8d6}
.dict-k{display:block;font:600 10.5px var(--ff-disp);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.ctx{margin-top:10px}
.ctx summary{cursor:pointer;color:var(--accent);font-size:13px}
.ctx table{margin-top:8px}

/* ---- админка ---- */
.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.admin-tabs a{padding:7px 14px;border-radius:9px;border:1px solid var(--edge2);color:var(--muted);
  font-family:var(--ff-disp);letter-spacing:.4px}
.admin-tabs a.on,.admin-tabs a:hover{color:var(--accent);border-color:var(--accent-dim);text-decoration:none;background:#2a1012}
.kv{display:grid;grid-template-columns:220px 1fr;gap:8px 16px;align-items:center}
.msg{border:1px solid var(--edge);border-radius:10px;background:var(--panel);padding:12px 14px;margin-bottom:10px}
.msg.unread{border-color:var(--accent-dim)}
.msg-head{display:flex;gap:12px;color:var(--muted);font-size:12.5px;margin-bottom:6px;flex-wrap:wrap}

@media (max-width:760px){
  .chart-wrap{height:340px}
  .dict-grid{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr}
  .page-head{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important}
}
input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* honeypot-поле формы обратной связи и текст условий */
.hp{position:absolute;left:-6000px;top:auto;width:1px;height:1px;overflow:hidden}
.terms-body h2{font-size:20px;margin-top:.6em}
.terms-body h3{font-size:16px}
.terms-body p,.terms-body li{color:#c3d1de;font-size:14.5px}
.terms-body code{background:var(--bg);border:1px solid var(--edge2);border-radius:5px;padding:1px 5px}
label.cb{display:flex;gap:9px;align-items:flex-start;color:var(--text);font-size:13.5px}
label.cb input{width:auto;margin-top:3px}
.op-status{margin:9px 0 0;font-size:13.5px;color:#c9d6e2}

.btn.tiny{padding:3px 9px;font-size:12px}

/* Логотип */
.brand-logo{height:34px;width:auto;display:block}
.auth-logo{display:block;margin:2px auto 16px;width:64%;max-width:230px;height:auto;border-radius:12px}
