:root{
  --bg:#0b1020;--card:#131b2d;--card2:#18233a;--fg:#edf2fb;
  --muted:#9aa9c3;--line:#263552;--accent:#42b8ff;--accent2:#b47cff;
  --good:#4fd1a5;--warn:#ffc857;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:radial-gradient(circle at 15% 0%,#182544 0,#0b1020 38%,#080d18 100%);
  color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",
  "PingFang SC","Microsoft YaHei",sans-serif;line-height:1.7;min-height:100vh
}
.wrap{max-width:980px;margin:auto;padding:42px 20px 70px}
.brand{font-size:13px;letter-spacing:3px;color:var(--muted)}
.badge{display:inline-block;margin:16px 0;padding:5px 13px;border:1px solid #30415f;
border-radius:999px;color:#c7d4eb;background:#42b8ff12;font-size:13px}
h1{font-size:clamp(32px,6vw,52px);line-height:1.15;margin-bottom:14px;
background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;
background-clip:text;-webkit-text-fill-color:transparent}
.sub{color:var(--muted);max-width:780px;font-size:17px}
.card{background:rgba(19,27,45,.92);border:1px solid var(--line);border-radius:18px;
box-shadow:0 16px 45px #00000025}
.detector{margin-top:30px;padding:22px}
.toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:12px}
.toolbar strong{font-size:17px}.hint{color:var(--muted);font-size:13px;margin-left:8px}
#counter{color:var(--muted);font-size:13px}
textarea{display:block;width:100%;min-height:300px;resize:vertical;border:1px solid #30415f;
border-radius:13px;background:#0b1221;color:var(--fg);padding:17px;font:inherit;outline:none}
textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #42b8ff18}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
button{border:0;border-radius:11px;padding:11px 17px;font:inherit;cursor:pointer}
.primary{background:linear-gradient(90deg,var(--accent),var(--accent2));color:white;font-weight:700}
.secondary{background:#1c2942;color:#dce6f8;border:1px solid #30415f}
button:hover{filter:brightness(1.08)}button:disabled{opacity:.55;cursor:not-allowed}
.message{margin-top:13px;padding:11px 14px;border-radius:10px;background:#261d13;color:#ffd78a}
.hidden{display:none!important}
.result{margin-top:20px;padding:24px}
.result-head{display:flex;justify-content:space-between;gap:20px;align-items:center}
.eyebrow{font-size:12px;letter-spacing:2px;color:var(--muted)}
h2{font-size:25px;margin:5px 0 8px}.score{font-size:42px;font-weight:800;
background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;
background-clip:text;-webkit-text-fill-color:transparent;white-space:nowrap}
.scorebar{height:11px;background:#0a1120;border-radius:99px;overflow:hidden;border:1px solid #24324c}
.scorebar div{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .5s}
.interpretation{color:var(--muted);margin:12px 0 25px}
h3{margin-bottom:12px}
.signals{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.signal{background:var(--card2);border:1px solid var(--line);border-radius:13px;padding:15px}
.signal>div:first-child{display:flex;justify-content:space-between;gap:10px}
.signal b{font-size:16px}.signal small{color:var(--muted);font-size:12px}
.meter{height:7px;background:#0a1120;border-radius:99px;overflow:hidden;margin:10px 0}
.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.notice{margin-top:18px;padding:15px 17px;border-left:3px solid var(--accent);background:#10192b;color:var(--muted)}
.notice strong{color:var(--fg)}.notice p{font-size:13.5px;margin-top:5px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}
.info-grid .card{padding:22px}
.info-grid ul{padding-left:20px;color:var(--muted)}
.info-grid li{margin:7px 0}.info-grid strong{color:var(--fg)}
.weights{display:grid;gap:10px}.weights span{display:flex;justify-content:space-between;
padding:11px 13px;background:var(--card2);border-radius:9px;color:var(--muted)}
.weights b{color:var(--fg)}
footer{text-align:center;color:#71809a;font-size:12px;margin-top:28px}
@media(max-width:680px){
 .wrap{padding:28px 13px 50px}.detector,.result,.info-grid .card{padding:16px}
 textarea{min-height:240px}.info-grid{grid-template-columns:1fr}
 .result-head{align-items:flex-start}.score{font-size:32px}
 .toolbar{align-items:flex-start;flex-direction:column;gap:2px}
}
