:root{--bg:#f6f7f9;--card:#fff;--ink:#1d2433;--mute:#5b6577;--line:#e3e6ec;--brand:#2456d6;--brand-ink:#fff;--brand-soft:#e8efff;--ok:#127a46;--ok-soft:#e5f6ec;--warn:#8a5200;--warn-soft:#fff3d6;--bad:#a1272e;--bad-soft:#fde8ea}
@media (prefers-color-scheme:dark){:root{--bg:#12151c;--card:#1b2030;--ink:#eef1f7;--mute:#a3acbf;--line:#2c3348;--brand:#7ea2ff;--brand-ink:#0d1222;--brand-soft:#22305a;--ok:#5fd394;--ok-soft:#173326;--warn:#f1be5a;--warn-soft:#3a2e12;--bad:#ff8a92;--bad-soft:#3d1c20}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,"Segoe UI",Roboto,sans-serif}
a{color:var(--brand)}
button,input,select,textarea{font:inherit;color:inherit}
.top{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top-in{max-width:960px;margin:0 auto;padding:10px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.brand{font-weight:700}
.who{margin-left:auto;font-size:14px;color:var(--mute);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
nav.tabs{max-width:960px;margin:0 auto;padding:0 16px 10px;display:flex;gap:8px;overflow-x:auto}
nav.tabs a{flex:0 0 auto;padding:8px 12px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);background:var(--bg);font-size:14px}
nav.tabs a[aria-current=page]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
main{max-width:960px;margin:0 auto;padding:16px}
h1{font-size:24px;margin:8px 0 4px}
h2{font-size:18px;margin:0 0 8px}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.three div{background:var(--brand-soft);border-radius:10px;padding:8px 10px;font-size:14px}
.three b{display:block;font-size:12px;color:var(--brand);text-transform:uppercase;letter-spacing:.03em}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin:12px 0}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.spread{justify-content:space-between}
.btn{border:0;background:var(--brand);color:var(--brand-ink);padding:12px 18px;border-radius:12px;font-weight:600;cursor:pointer;min-height:44px}
.btn.ghost{background:transparent;color:var(--brand);border:1px solid var(--brand)}
.btn.small{padding:8px 12px;min-height:36px;font-size:14px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
label.f{display:block;margin:10px 0 4px;font-weight:600;font-size:14px}
.hint{font-size:14px;color:var(--mute);margin:4px 0 0}
input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.pill{font-size:12px;padding:2px 9px;border-radius:99px;display:inline-block;background:var(--line);color:var(--ink)}
.p-ok{background:var(--ok-soft);color:var(--ok)}.p-ai{background:var(--brand-soft);color:var(--brand)}.p-warn{background:var(--warn-soft);color:var(--warn)}.p-bad{background:var(--bad-soft);color:var(--bad)}
.banner{padding:10px 16px;font-size:14px;text-align:center}
.banner.warn{background:var(--warn-soft);color:var(--warn)}
.alert{border-radius:10px;padding:10px 12px;margin:10px 0;font-size:14px}
.alert.err{background:var(--bad-soft);color:var(--bad)}
.alert.ok{background:var(--ok-soft);color:var(--ok)}
.alert.info{background:var(--warn-soft);color:var(--warn)}
.prog{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:8px 0}
.prog i{display:block;height:100%;background:var(--brand);width:calc(var(--w,0) * 1%)}
.opt{display:block;border:1.5px solid var(--line);border-radius:12px;padding:12px;margin:8px 0;cursor:pointer}
.opt:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.opt input[type=radio]{margin-right:8px}
.opt .why{font-size:14px;color:var(--mute);margin:6px 0 0 26px}
.basis{margin:8px 0 0 26px;padding:10px;border-radius:10px;background:var(--warn-soft);font-size:14px}
.basis p{margin:4px 0}
.list{list-style:none;margin:0;padding:0}
.list li{border-top:1px solid var(--line);padding:12px 0}
.list li:first-child{border-top:0}
.auth{max-width:420px;margin:6vh auto;padding:0 16px}
.muted{color:var(--mute)}
.steps{display:grid;gap:8px}
.step{display:flex;gap:10px;align-items:center}
@media(max-width:560px){.three{grid-template-columns:1fr}h1{font-size:20px}.who{margin-left:0}}

.opt{white-space:pre-line}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.code{font:600 20px/1.4 ui-monospace,Consolas,monospace;letter-spacing:.04em;padding:10px;border-radius:10px;background:var(--brand-soft);word-break:break-all}
.qa{margin:6px 0;padding:8px 10px;border-radius:10px;background:var(--bg);font-size:14px}
.qa b{display:block;color:var(--mute);font-weight:600}
.survey{max-width:560px;margin:4vh auto;padding:0 16px}
.survey textarea{min-height:140px;font-size:17px}
.opt-text{white-space:pre-line}

.tw { overflow-x: auto; }
table.grid { border-collapse: collapse; width: 100%; }
table.grid th, table.grid td { border: 1px solid var(--line, #d8dee9); padding: .5rem .6rem; text-align: left; vertical-align: top; }
table.grid td a { text-decoration: none; font-size: 1.1rem; }
.pre { white-space: pre-wrap; }
.tree, .tree ul { list-style: none; padding-left: 1.1rem; border-left: 2px solid var(--line); }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.watermark { position: fixed; inset: 0; pointer-events: none; z-index: 1; display: flex; flex-direction: column; justify-content: space-around; align-items: center; opacity: .09; font-size: 2rem; font-weight: 700; transform: rotate(-20deg); }
.share-view { position: relative; padding: 16px; max-width: 900px; margin: 0 auto; }
progress { width: 100%; height: 12px; }
@media print { .top, .no-print, nav.tabs, .banner, .three { display: none !important; } .card { break-inside: avoid; box-shadow: none; } }
details.card > summary { cursor: pointer; padding: .25rem 0; }
