:root{--bg:#0a0a0f;--card:#15151f;--line:#26263a;--accent:#7c5cff;--txt:#e8e8f0;--muted:#8a8aa0}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--txt)}
h1,h2,h3{margin:0 0 .6rem}
.muted{color:var(--muted);font-size:.85rem;margin:.2rem 0 1rem}
.err{color:#ff6b6b;min-height:1.2em;font-size:.85rem;margin-top:.5rem}
.ok{color:#4ade80;margin-left:.6rem;font-size:.85rem}
button{background:var(--accent);color:#fff;border:0;padding:.55rem 1rem;border-radius:8px;font-weight:600;cursor:pointer}
button.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}
button.danger{background:#ef4444}
button.small{padding:.3rem .6rem;font-size:.8rem}
input,select{background:#0d0d15;border:1px solid var(--line);color:var(--txt);padding:.5rem .6rem;border-radius:8px;font-size:.9rem;width:100%}
input[type=color]{height:40px;padding:2px}
input[type=checkbox]{width:auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.4rem;margin-bottom:1.2rem}
/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}
.login-card{width:340px;text-align:center}
.login-card input{margin:.4rem 0}
.login-card button{width:100%;margin-top:.6rem}
/* layout */
header{display:flex;align-items:center;gap:1.2rem;padding:.8rem 1.4rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}
.brand{font-weight:700}
nav{display:flex;gap:.3rem;flex:1}
nav button{background:transparent;color:var(--muted);font-weight:500}
nav button.active{background:var(--accent);color:#fff}
main{max-width:900px;margin:1.5rem auto;padding:0 1.2rem}
label{display:block;margin:.6rem 0;font-size:.85rem;color:var(--muted)}
label input,label select{margin-top:.25rem}
label.inline{display:flex;align-items:center;gap:.5rem;color:var(--txt)}
fieldset{border:1px solid var(--line);border-radius:10px;margin:.8rem 0}
legend{color:var(--muted);font-size:.8rem;padding:0 .4rem}
.row{display:flex;gap:.6rem;align-items:center;margin:.8rem 0;flex-wrap:wrap}
.row input{flex:1}
table{width:100%;border-collapse:collapse;font-size:.85rem}
th,td{text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--line);vertical-align:middle}
th{color:var(--muted);font-weight:600}
td code{background:#0d0d15;padding:.15rem .4rem;border-radius:6px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.2rem}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.2rem}
.stat .n{font-size:2rem;font-weight:700}
.stat .l{color:var(--muted);font-size:.8rem}
