:root{
  --bg:#0b0f17; --bg2:#101724; --card:#141c2c; --line:#22304a;
  --txt:#e8eef7; --mut:#93a1b8; --acc:#2dd4bf; --acc2:#a78bfa;
  --good:#34d399; --bad:#f87171; --warn:#fbbf24; --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font:15px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 22px;background:var(--bg2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;flex-wrap:wrap}
.brand{display:flex;gap:12px;align-items:center}
.logo{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--acc),var(--acc2));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;color:#06251f}
.brand h1{margin:0;font-size:19px}
.brand p{margin:0;color:var(--mut);font-size:12.5px}
.settings{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.settings label{color:var(--mut);font-size:12.5px}
.settings input{width:320px;max-width:60vw;background:#0a0f1a;border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:8px 10px;font-family:var(--mono);font-size:12.5px}
.honesty{margin:14px 22px 0;padding:10px 14px;border:1px solid #2a3a2a;border-left:4px solid var(--warn);background:#151a12;border-radius:8px;font-size:13.5px;color:#d8e2d0}
.honesty strong{color:var(--warn)}
.groups{display:flex;gap:8px;padding:14px 22px 4px;flex-wrap:wrap;position:sticky;top:77px;background:var(--bg);z-index:9}
.groups button{background:var(--card);border:1px solid var(--line);color:var(--mut);border-radius:20px;padding:7px 16px;cursor:pointer;font-size:13.5px}
.groups button.active{background:var(--acc);border-color:var(--acc);color:#06251f;font-weight:700}
main{padding:10px 22px 30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}
.card h3{margin:0;font-size:16px}
.card .desc{margin:0;color:var(--mut);font-size:13px}
.ep{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;flex-wrap:wrap}
.ep .m{background:#0a0f1a;border:1px solid var(--line);color:var(--acc);border-radius:6px;padding:2px 8px;font-weight:700;cursor:pointer}
.ep .p{color:var(--mut);word-break:break-all}
.badge{font-size:11px;font-weight:700;border-radius:20px;padding:2px 10px;background:#3a2b10;color:var(--warn);border:1px solid #6b4d16}
.note{font-size:12.5px;color:var(--mut);background:#0d1320;border:1px dashed var(--line);border-radius:8px;padding:8px 10px}
.note b{color:var(--txt)}
form{display:grid;grid-template-columns:1fr 1fr;gap:8px}
form .full{grid-column:1/-1}
label.f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mut)}
label.f input,label.f select,label.f textarea{background:#0a0f1a;border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:8px 10px;font-size:13.5px;font-family:inherit;width:100%}
label.f textarea{font-family:var(--mono);font-size:12.5px;resize:vertical}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{background:linear-gradient(135deg,var(--acc),#0ea5a4);border:none;color:#06251f;font-weight:700;border-radius:8px;padding:9px 18px;cursor:pointer;font-size:14px}
.btn.small{padding:7px 12px;font-size:12.5px}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--mut);font-weight:600}
.btn:disabled{opacity:.55;cursor:wait}
.result{display:none;border-top:1px solid var(--line);padding-top:10px}
.result.show{display:block}
.rhead{display:flex;gap:8px;align-items:center;margin-bottom:8px;font-size:12.5px;color:var(--mut);font-family:var(--mono);flex-wrap:wrap}
.pill{font-weight:800;border-radius:20px;padding:2px 12px;font-size:12px}
.pill.ok{background:#0d2b1f;color:var(--good);border:1px solid #14532d}
.pill.err{background:#2b0f0f;color:var(--bad);border:1px solid #5b1a1a}
pre.out{background:#070b13;border:1px solid var(--line);border-radius:8px;padding:12px;overflow:auto;max-height:340px;font-family:var(--mono);font-size:12px;line-height:1.5;margin:0;white-space:pre-wrap;word-break:break-word}
.tok-k{color:#7dd3fc}.tok-s{color:#a5f3a5}.tok-n{color:#fbbf24}.tok-b{color:#f472b6}.tok-p{color:#8b93a7}
details.req{margin-top:8px}
details.req summary{cursor:pointer;color:var(--mut);font-size:12.5px}
footer{padding:18px 22px 40px;color:var(--mut);font-size:13px;border-top:1px solid var(--line)}
footer code{font-family:var(--mono);background:#0a0f1a;padding:1px 6px;border-radius:6px;color:var(--acc)}
@media(max-width:640px){main{grid-template-columns:1fr}.settings input{width:100%}}
