/* Control-plane portal — дизайн в духе te-it.ru (TE-Design): dark-first, панели,
   градиент #0369C6→#935FF6, Unbounded (заголовки) / Manrope (текст) / JetBrains Mono (статусы). */

@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:optional;src:url(fonts/JetBrainsMono-400-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:optional;src:url(fonts/JetBrainsMono-400-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:optional;src:url(fonts/JetBrainsMono-700-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:optional;src:url(fonts/JetBrainsMono-700-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:optional;src:url(fonts/Manrope-400-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:optional;src:url(fonts/Manrope-400-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:optional;src:url(fonts/Manrope-600-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:optional;src:url(fonts/Manrope-600-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:optional;src:url(fonts/Manrope-700-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:optional;src:url(fonts/Manrope-700-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:optional;src:url(fonts/Manrope-800-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:optional;src:url(fonts/Manrope-800-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:400;font-display:optional;src:url(fonts/Unbounded-400-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:400;font-display:optional;src:url(fonts/Unbounded-400-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600;font-display:optional;src:url(fonts/Unbounded-600-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600;font-display:optional;src:url(fonts/Unbounded-600-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:800;font-display:optional;src:url(fonts/Unbounded-800-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:800;font-display:optional;src:url(fonts/Unbounded-800-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}

:root{
  --bg:#04060c;
  --bg2:#070b16;
  --panel:#0a0f1e;
  --line:rgba(148,170,255,.12);
  --txt:#eef2ff;
  --mut:#aeb9d9;
  --blue:#0369C6;
  --violet:#935FF6;
  --cyan:#38bdf8;
  --green:#34d399;
  --green-txt:#2ee6a8;
  --cyan-txt:#67e8f9;
  --warn-txt:#fcd34d;
  --warn-bg:rgba(251,191,36,.1);
  --warn-line:rgba(251,191,36,.25);
  --red:#ff6b6b;
  --grad:linear-gradient(100deg,#0369C6 0%,#935FF6 100%);
  --font-d:'Unbounded',system-ui,sans-serif;
  --font-b:'Manrope',system-ui,sans-serif;
  --font-m:'JetBrains Mono',ui-monospace,monospace;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:radial-gradient(1200px 600px at 80% -10%,rgba(147,95,246,.12),transparent 60%),
             radial-gradient(1000px 500px at -10% 0,rgba(3,105,198,.14),transparent 55%),
             var(--bg);
  color:var(--txt);
  font-family:var(--font-b);
  font-size:15px;
  line-height:1.55;
  min-height:100vh;
}
h1{font-family:var(--font-d);font-weight:800;font-size:26px;letter-spacing:.2px;margin:8px 0 16px}
h2{font-family:var(--font-d);font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:1.5px;color:var(--mut);margin:26px 0 12px}
a{color:var(--cyan-txt)}
code,.mono{font-family:var(--font-m);font-size:13px}
.muted{color:var(--mut)}

header{
  display:flex;align-items:center;gap:20px;
  padding:14px 0;margin-bottom:22px;
  border-bottom:1px solid var(--line);
}
header .brand{
  font-family:var(--font-d);font-weight:800;font-size:14px;letter-spacing:.6px;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  white-space:nowrap;
}
header a{color:var(--mut);text-decoration:none;font-weight:600;font-size:14px}
header a:hover{color:var(--txt)}
header .who{margin-left:auto;color:var(--mut);font-family:var(--font-m);font-size:12px}

main{max-width:1180px;margin:0 auto;padding:0 24px 60px}

fieldset{
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--panel);
  padding:16px 18px;
  margin:18px 0;
}
legend{color:var(--mut);font-weight:700;font-size:13px;padding:0 8px;letter-spacing:.4px}

input,select{
  background:var(--bg2);
  color:var(--txt);
  border:1px solid var(--line);
  border-radius:8px;
  padding:7px 10px;
  font-family:var(--font-b);
  font-size:14px;
}
input:focus,select:focus{outline:none;border-color:var(--cyan)}
input::placeholder{color:rgba(174,185,217,.55)}
label{color:var(--mut)}

.btn{
  display:inline-block;padding:7px 14px;border:0;border-radius:8px;
  background:var(--grad);color:#fff;font-family:var(--font-b);font-weight:700;font-size:13.5px;
  cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:filter .15s ease;
}
.btn:hover{filter:brightness(1.15)}
.btn.sec{background:transparent;border:1px solid var(--line);color:var(--mut)}
.btn.sec:hover{color:var(--txt);border-color:var(--cyan)}

table{border-collapse:collapse;width:100%;margin:10px 0 14px}
th,td{border-bottom:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
th{color:var(--mut);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid rgba(148,170,255,.25)}
tr:hover td{background:rgba(148,170,255,.04)}

.badge{
  display:inline-block;padding:2px 10px;border-radius:999px;
  font-family:var(--font-m);font-size:11.5px;letter-spacing:.3px;
  border:1px solid transparent;white-space:nowrap;
}
.succeeded,.approved{background:rgba(52,211,153,.1);border-color:rgba(52,211,153,.35);color:var(--green-txt)}
.failed{background:rgba(255,107,107,.1);border-color:rgba(255,107,107,.35);color:var(--red)}
.requires_human{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-txt)}
.postponed{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-txt)}
.running,.acked{background:rgba(56,189,248,.1);border-color:rgba(56,189,248,.35);color:var(--cyan-txt)}
.created,.queued,.planned{background:rgba(3,105,198,.14);border-color:rgba(3,105,198,.45);color:#7fb6f2}
.online{background:rgba(52,211,153,.1);border-color:rgba(52,211,153,.35);color:var(--green-txt)}
.stale,.offline{background:rgba(174,185,217,.08);border-color:var(--line);color:var(--mut)}
.cancelled{background:rgba(174,185,217,.08);border-color:var(--line);color:var(--mut)}

.hint{color:var(--mut);font-size:12.5px;margin-top:2px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin:14px 0}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.card .num{font-family:var(--font-d);font-weight:800;font-size:26px;color:var(--txt)}
.card .lbl{color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:1.2px;margin-top:2px}
