:root{--bg:#f7f8fa;--fg:#1a2233;--mut:#5b6577;--pri:#0b6b4f;--pri2:#095a42;--card:#fff;--bd:#dfe3ea;--warn:#fff6e0;--warnbd:#f0c661;--err:#b3261e}
@media(prefers-color-scheme:dark){:root{--bg:#10141b;--fg:#e8ecf2;--mut:#98a2b3;--pri:#2bb58a;--pri2:#23a07a;--card:#182029;--bd:#2a3441;--warn:#2b2412;--warnbd:#7a6220;--err:#ff8a80}}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;background:var(--bg);color:var(--fg);line-height:1.75}
.wrap{max-width:960px;margin:0 auto;padding:0 16px}.narrow{max-width:640px}
.hd{background:var(--card);border-bottom:1px solid var(--bd)}.hd .wrap{display:flex;justify-content:space-between;align-items:center;min-height:56px}
.logo{font-weight:700;color:var(--fg);text-decoration:none}nav a{margin-left:16px;color:var(--mut);text-decoration:none}nav a.btn{color:#fff}
.hero{padding:56px 0 40px;text-align:center;background:linear-gradient(180deg,var(--card),var(--bg))}
h1{font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.35;margin:.2em 0 .5em}h2{font-size:1.4rem;margin:2em 0 .6em}h3{margin:.2em 0}
.lead{font-size:1.1rem;max-width:640px;margin:0 auto 1.4em}
.btn{display:inline-block;background:var(--pri);color:#fff;border:0;border-radius:8px;padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--pri2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.sm{padding:6px 14px;font-size:.9rem}
.btn.ghost{background:transparent;color:var(--pri);border:1px solid var(--pri)}
.note{color:var(--mut);font-size:.9rem}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.card,.panel{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px 18px}.panel{padding:22px}
.panel.ok{border-color:var(--pri)}
.steps{padding-left:1.3em}.steps li{margin:.5em 0}
.warn{background:var(--warn);border:1px solid var(--warnbd);border-radius:8px;padding:12px 14px;margin-bottom:16px}
label{display:block;margin:12px 0;font-weight:600}
input[type=email],input[type=text]{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--bd);border-radius:8px;font-size:1rem;background:var(--bg);color:var(--fg)}
label.chk{font-weight:400;display:flex;gap:10px;align-items:flex-start}label.chk input{margin-top:.45em}
.err{color:var(--err);font-weight:600}
details{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:10px 14px;margin:8px 0}summary{cursor:pointer;font-weight:600}
.spin{width:28px;height:28px;border:3px solid var(--bd);border-top-color:var(--pri);border-radius:50%;animation:s 1s linear infinite;margin-bottom:10px}
@keyframes s{to{transform:rotate(360deg)}}
.score{font-size:3rem;font-weight:800;color:var(--pri)}.score small{font-size:1rem;color:var(--mut);margin-left:6px}
.item{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--bd);border-radius:8px;background:var(--card);margin:6px 0}
pre{overflow:auto;background:var(--bg);padding:12px;border-radius:8px;font-size:.8rem}
.ft{margin-top:56px;padding:24px 0;border-top:1px solid var(--bd);color:var(--mut);font-size:.9rem;text-align:center}.ft a{color:var(--mut)}
.legal h2{font-size:1.15rem}table{border-collapse:collapse;width:100%}th,td{border:1px solid var(--bd);padding:8px 10px;text-align:left;vertical-align:top}th{background:var(--card);white-space:nowrap}.tblwrap{overflow:auto}
[hidden]{display:none!important}
@media print{.hd,.ft,.btn{display:none}}
