:root{
  --bg:#0b0e14; --panel:#11151f; --panel2:#151b28; --line:#232b3b;
  --fg:#dbe3ee; --mut:#8a97ab; --accent:#5b9dff;
  --ok:#3fb950; --bad:#f85149; --warn:#d29922;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
  --shadow:rgba(0,0,0,0);
  --topbg:rgba(11,14,20,.9);
}
:root[data-theme="light"]{
  --bg:#f7f9fc; --panel:#ffffff; --panel2:#f0f3f8; --line:#dce2ec;
  --fg:#0f1722; --mut:#55617a; --accent:#0b62d6;
  --ok:#1a7f37; --bad:#c9252d; --warn:#9a6700;
  --shadow:rgba(16,24,40,.06);
  --topbg:rgba(247,249,252,.9);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif}
a{color:var(--accent)}
.top{display:flex;justify-content:space-between;align-items:center;
  padding:16px 28px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--topbg);backdrop-filter:blur(8px);z-index:9}
.brand{font-family:var(--mono);font-weight:600;letter-spacing:.02em;display:flex;align-items:center;gap:9px}
.dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}
main{max-width:1100px;margin:0 auto;padding:44px 24px 80px}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 14px}
h1{font-size:clamp(34px,6vw,60px);line-height:1.05;margin:0 0 18px;letter-spacing:-.02em}
#heroWord{color:var(--accent)}
.lede{color:var(--mut);max-width:60ch;margin:0}

.verdict{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;
  margin:40px 0;padding:26px 28px;border:1px solid var(--line);border-radius:16px;background:var(--panel);
  transition:border-color .3s,background .3s}
.verdict[data-state="human"]{border-color:var(--ok);background:linear-gradient(180deg,rgba(63,185,80,.07),transparent)}
.verdict[data-state="bot"]{border-color:var(--bad);background:linear-gradient(180deg,rgba(248,81,73,.07),transparent)}
.verdict__label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--mut)}
.verdict__value{font-size:34px;font-weight:700;letter-spacing:-.01em;margin:2px 0 4px}
.verdict[data-state="human"] .verdict__value{color:var(--ok)}
.verdict[data-state="bot"] .verdict__value{color:var(--bad)}
.verdict__sub{color:var(--mut);font-size:14px}
.verdict__layers{display:flex;gap:10px}
.layer{min-width:118px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);display:grid;gap:3px}
.layer__name{font-size:11px;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.layer__score{font-family:var(--mono);font-size:19px;font-weight:600}
.layer.pass .layer__score{color:var(--ok)} .layer.fail .layer__score{color:var(--bad)}

.challenge{padding:26px 28px;border:1px solid var(--line);border-radius:16px;background:var(--panel);margin-bottom:40px}
h2{font-size:20px;margin:0 0 16px}
.tasks{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:9px}
.tasks li{font-size:14px;color:var(--mut);padding-left:28px;position:relative}
.tasks li::before{content:"○";position:absolute;left:6px;color:var(--mut)}
.tasks li.done{color:var(--fg)} .tasks li.done::before{content:"●";color:var(--ok)}
.tasks b{color:var(--fg);font-weight:600}
.count{font-family:var(--mono);color:var(--accent)}
.phrase-label{display:block;font-size:13px;color:var(--mut);margin-bottom:8px}
.phrase-label code{font-family:var(--mono);color:var(--fg);background:var(--panel2);padding:2px 7px;border-radius:5px}
.phrase{width:100%;padding:13px 15px;border-radius:10px;border:1px solid var(--line);
  background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:15px;outline:none}
.phrase:focus{border-color:var(--accent)}
.phrase.match{border-color:var(--ok)}
.actions{display:flex;gap:12px;align-items:center;margin-top:18px;flex-wrap:wrap}
.btn{padding:11px 20px;border-radius:10px;border:1px solid transparent;background:var(--accent);color:#04101f;
  font-weight:650;font-size:14px;cursor:pointer;font-family:inherit}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn--ghost{background:transparent;color:var(--fg);border-color:var(--line)}
.status{font-family:var(--mono);font-size:13px;color:var(--mut)}

.signals__head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.signals__head h2{margin:0}
.filters{display:flex;gap:7px}
.chip{padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:transparent;
  color:var(--mut);font-size:13px;cursor:pointer;font-family:inherit}
.chip--on{background:var(--accent);color:#04101f;border-color:var(--accent);font-weight:600}
.tally{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--mut)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}
.card{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:grid;gap:6px;box-shadow:0 1px 2px var(--shadow)}
.card.flag{border-color:rgba(248,81,73,.5);background:linear-gradient(180deg,rgba(248,81,73,.06),transparent)}
.card__id{font-family:var(--mono);font-size:13px;font-weight:600;word-break:break-word}
.card__desc{font-size:12.5px;color:var(--mut);line-height:1.45}
.card__foot{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px;color:var(--mut)}
.badge{padding:2px 8px;border-radius:999px;font-size:10.5px;letter-spacing:.06em;font-weight:700}
.badge.flag{background:rgba(248,81,73,.16);color:var(--bad)}
.badge.clean{background:rgba(63,185,80,.14);color:var(--ok)}
footer{border-top:1px solid var(--line);padding:24px;text-align:center;color:var(--mut);font-size:13px}
@media(max-width:760px){.verdict{grid-template-columns:1fr}.verdict__layers{flex-wrap:wrap}}

nav{display:flex;align-items:center;gap:14px}
.theme{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);
  cursor:pointer;color:var(--fg);display:grid;place-items:center;font-size:14px;line-height:1}
.theme:hover{border-color:var(--accent)}
.theme::before{content:"\263E"}
:root[data-theme="light"] .theme::before{content:"\2600"}

[hidden]{display:none!important}
