
:root{--bg:#14151a;--card:#1d1f27;--line:#2c2f3a;--text:#e6e7ee;--muted:#9a9db0;--accent:#e0669f;--ok:#3fb27f;--warn:#e0a03f;--err:#e0575b}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--accent)}
header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;padding:.7rem 1rem;background:var(--card);border-bottom:1px solid var(--line)}
header strong{font-size:1.1rem}
nav{display:flex;flex-wrap:wrap;gap:.3rem;flex:1}
nav a{padding:.35rem .7rem;border-radius:8px;text-decoration:none;color:var(--muted)}
nav a.active,nav a:hover{background:var(--line);color:var(--text)}
main{max-width:960px;margin:0 auto;padding:1rem}
h1{font-size:1.4rem;margin:.4rem 0 1rem}
h2{font-size:1.05rem;margin:0 0 .6rem}
.card,fieldset{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem;margin:0 0 1rem}
fieldset legend{padding:0 .5rem;font-weight:600}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.badge{display:inline-block;padding:.1rem .6rem;border-radius:99px;font-size:.85rem;font-weight:600}
.badge.ok{background:#173a2b;color:var(--ok)}.badge.err{background:#3d1b1d;color:var(--err)}.badge.warn{background:#3d2f16;color:var(--warn)}
.muted{color:var(--muted)}.small{font-size:.85rem}
.row{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:.4rem 1rem;align-items:start;padding:.45rem 0;border-top:1px solid var(--line)}
.row:first-of-type{border-top:0}
@media(max-width:640px){.row{grid-template-columns:1fr}}
input[type=text],input[type=password],input[type=number],select,textarea{width:100%;padding:.5rem .6rem;background:#0f1014;color:var(--text);border:1px solid var(--line);border-radius:8px;font:inherit}
textarea{min-height:7rem;resize:vertical}
input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}
button{padding:.5rem 1rem;border:0;border-radius:8px;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer}
button.secondary{background:var(--line);color:var(--text)}button.danger{background:var(--err)}
button:disabled{opacity:.5;cursor:not-allowed}
.actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.6rem 0}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.4rem .5rem;border-top:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:500;font-size:.85rem}
.log td:first-child{white-space:nowrap;color:var(--muted);font-size:.85rem}
.lv-error{color:var(--err)}.lv-warn{color:var(--warn)}
.flash{padding:.7rem 1rem;border-radius:10px;margin-bottom:1rem}
.flash.ok{background:#173a2b;color:var(--ok)}.flash.err{background:#3d1b1d;color:var(--err)}
.flash ul{margin:.3rem 0 0;padding-left:1.2rem}
.login{max-width:360px;margin:12vh auto;padding:0 1rem}
.help{color:var(--muted);font-size:.85rem;margin-top:.2rem}
.chan{display:flex;align-items:center;gap:.5rem;padding:.15rem 0}
.bar{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:.2rem 0 .6rem}
.bar>span{display:block;height:100%;background:var(--accent)}
details summary{cursor:pointer;color:var(--muted)}
