:root {
  --bg:#101422; --surface:#171c2e; --surface-2:#1b2138;
  --line:#2a3049; --line-soft:#222840;
  --text:#e8e4d8; --dim:#8b90a5; --dimmer:#6c7186;
  --accent:#9184d9; --accent-soft:#2a2544; --accent-bright:#a89dea;

  --midas:#d9a441; --azot:#62c6d8; --nemesis:#c65b52;
  --idris:#4fae8f; --janus:#9a7fd1;

  --alive:#7fd6a4; --updating:#e0c36a; --fallen:#c65b52;
  --danger:#e0736a; --danger-bg:#2e1d1f;
  --ok-bg:#16301f; --ok:#7fd6a4;

  --radius:12px; --radius-sm:8px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;
  --mono:ui-monospace,"Cascadia Mono","JetBrains Mono",Menlo,monospace;
}

* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:var(--font); }
a { color:var(--accent); }

/* Шапка */
.top {
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 24px; background:var(--surface); border-bottom:1px solid var(--line);
}
.brand { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:500; }
.brand a { color:var(--text); text-decoration:none; }
.brand a:hover { color:var(--accent-bright); }
.brand .sep { color:var(--line); }
.top .right { display:flex; align-items:center; gap:14px; font-size:13px; color:var(--dim); }
.top .right a { text-decoration:none; }
.top .right a:hover { text-decoration:underline; }

/* Кнопки */
button, .btn {
  border:none; border-radius:var(--radius-sm); padding:9px 15px;
  background:var(--accent); color:#14111f; font-size:13px; font-weight:500;
  cursor:pointer; font-family:inherit;
}
button:hover, .btn:hover { background:var(--accent-bright); }
button:disabled { background:var(--line); color:var(--dimmer); cursor:default; }
button.secondary { background:transparent; color:var(--dim); border:1px solid var(--line); }
button.secondary:hover { background:var(--surface-2); color:var(--text); }
button.link { background:none; padding:0; color:var(--danger); font-weight:400; }
button.link:hover { background:none; text-decoration:underline; }

/* Поля */
input[type=text], input[type=email], input[type=password],
input[type=number], input[type=search], select {
  width:100%; padding:10px 12px; background:var(--bg);
  border:1px solid var(--line); border-radius:var(--radius-sm);
  color:var(--text); font-size:14px; font-family:inherit;
}
input:focus, select:focus { outline:none; border-color:var(--accent); }
input::placeholder { color:var(--dimmer); }
label { display:block; font-size:13px; color:var(--dim); margin-bottom:6px; }
select { cursor:pointer; }
option { background:var(--surface); }

/* Карточки и блоки */
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px; }
.muted { color:var(--dim); font-size:14px; }
.mono { font-family:var(--mono); font-size:12px; color:var(--dimmer); }
h2.sec {
  font-size:12px; font-weight:500; color:var(--dim);
  text-transform:uppercase; letter-spacing:.14em; margin:0;
}
.msg { display:none; font-size:13px; padding:10px 12px; border-radius:var(--radius-sm); margin-bottom:14px; }
.msg.err { display:block; background:var(--danger-bg); color:var(--danger); }
.msg.ok  { display:block; background:var(--ok-bg); color:var(--ok); }
.hint { font-size:11.5px; color:var(--dimmer); margin:-8px 0 16px; line-height:1.6; }
.hint code { font-family:var(--mono); color:var(--dim); }


/* Скроллбары: по умолчанию светлые и выбиваются из тёмной темы */
* { scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--line); border-radius: 5px;
  border: 2px solid var(--bg); background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background: var(--dimmer); background-clip: padding-box;
  border: 2px solid var(--bg); }
::-webkit-scrollbar-corner { background: transparent; }

/* Спиннеры у числовых полей только мешают в фильтрах */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; }
