:root{--bg:#0b1020;--card:#141b2e;--fg:#e8edf6;--mut:#9aa6bd;--acc:#3b82f6;--crit:#ef4444;--ok:#22c55e;--warn:#f59e0b;--br:#243049}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,"Hiragino Sans","Noto Sans JP",sans-serif;background:var(--bg);color:var(--fg);line-height:1.6}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:860px;margin:0 auto;padding:0 20px}
header.nav{border-bottom:1px solid var(--br);padding:14px 0}
header.nav .wrap{display:flex;justify-content:space-between;align-items:center}
.brand{font-weight:700;font-size:18px}.brand span{color:var(--acc)}
.hero{text-align:center;padding:48px 0 24px}
.hero h1{font-size:30px;margin:0 0 10px}.hero .en{color:var(--mut);font-weight:400;font-size:16px}
.hero p.sub{color:var(--mut);max-width:620px;margin:8px auto 0}
.card{background:var(--card);border:1px solid var(--br);border-radius:14px;padding:22px;margin:18px 0}
.checker label{display:block;font-weight:600;margin:12px 0 4px}
.checker .hint{color:var(--mut);font-size:13px;font-weight:400}
.checker input{width:100%;padding:11px 12px;border-radius:9px;border:1px solid var(--br);background:#0d1424;color:var(--fg);font-size:15px}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;border-radius:9px;padding:12px 18px;font-size:15px;font-weight:600;cursor:pointer}
.btn:hover{filter:brightness(1.08)}.btn.block{width:100%;margin-top:16px}
.btn.sec{background:transparent;border:1px solid var(--acc);color:var(--acc)}
.verdict{text-align:center;padding:10px}
.verdict .big{font-size:40px;font-weight:800}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700}
.badge.crit{background:rgba(239,68,68,.15);color:#fca5a5}
.badge.ok{background:rgba(34,197,94,.15);color:#86efac}
.lock{text-align:center;padding:20px;border:1px dashed var(--br);border-radius:12px;margin-top:16px}
.muted{color:var(--mut)}.small{font-size:13px}
.cve-item{border:1px solid var(--br);border-radius:10px;padding:14px;margin:12px 0}
.cve-item h3{margin:0 0 6px}
footer{border-top:1px solid var(--br);margin-top:40px;padding:22px 0;color:var(--mut);font-size:13px}
.notice{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;padding:12px;font-size:14px;color:#fcd34d}
.err{color:#fca5a5;font-size:14px;margin-top:8px}
.ok-msg{color:#86efac;font-size:14px;margin-top:8px}

/* ---- Legal / 法務ページ ---- */
.legal{max-width:760px;margin:0 auto;padding:10px 20px 40px}
.legal h1{font-size:24px;margin:24px 0 4px}
.legal .updated{color:var(--mut);font-size:13px;margin:0 0 24px}
.legal h2{font-size:17px;margin:28px 0 10px}
.legal p,.legal li{color:var(--fg)}
.legal .en{color:var(--mut);font-size:13px}
.legal section{margin-bottom:22px}
.legal table.kv{width:100%;border-collapse:collapse;border:1px solid var(--br);border-radius:10px;overflow:hidden}
.legal table.kv th{text-align:left;vertical-align:top;background:#0d1424;color:var(--mut);font-weight:600;padding:12px 14px;width:200px;border-bottom:1px solid var(--br);border-right:1px solid var(--br)}
.legal table.kv td{padding:12px 14px;border-bottom:1px solid var(--br);color:var(--fg)}
.legal table.kv tr:last-child th,.legal table.kv tr:last-child td{border-bottom:none}
.legal .todo{background:rgba(245,158,11,.12);border:1px dashed rgba(245,158,11,.5);border-radius:6px;padding:1px 6px;color:#fcd34d;font-size:13px}
.legal ul{padding-left:20px}
.legal ul li{margin:4px 0}
.footer-legal a{color:var(--mut);margin:0 6px}
