:root{--primary:#4F46E5;--primary-d:#3730A3;--accent:#7C3AED;--bg:#F8FAFC;--card:#fff;--ink:#0F172A;--muted:#64748B;--line:#CBD5E1;--soft:#E0E7FF;--ok:#047857;--err:#B91C1C;--warn:#B45309}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
header.top{padding:12px 16px;max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:12px}
header.top img{height:32px}
header.top .sp{flex:1}
main{max-width:720px;margin:0 auto;padding:0 16px 48px}
main.wide{max-width:1100px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px}
h1{font-size:1.5rem;margin:8px 0 4px}h2{font-size:1.15rem;margin:0 0 12px}h3{font-size:1rem;margin:16px 0 8px}
p.lead{color:var(--muted);margin:0 0 16px}
.muted{color:var(--muted)}.small{font-size:.9rem}
label{display:block;font-weight:600;margin:14px 0 4px}
.hint{font-weight:400;color:var(--muted);font-size:.9rem}
input[type=text],input[type=email],input[type=date],input[type=number],select,textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink)}
textarea{min-height:100px;resize:vertical}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,.choice:focus-within,.drop:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
button,.btn{min-height:44px;padding:0 18px;border-radius:8px;border:1px solid var(--primary);background:var(--primary);color:#fff;font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
button.secondary,.btn.secondary{background:#fff;color:var(--primary)}
button.danger{background:#fff;color:var(--err);border-color:var(--err)}
button:disabled{opacity:.6;cursor:not-allowed}
button.sm{min-height:44px;padding:0 12px;font-size:.9rem}
.err{color:var(--err);font-weight:600;margin-top:8px}.okmsg{color:var(--ok);font-weight:600}
.notice{background:#FFFBEB;border:1px solid #FCD34D;border-radius:8px;padding:10px 12px;font-size:.92rem}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.grow{flex:1;min-width:200px}
.badge{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--soft);color:var(--primary-d);font-weight:700;font-size:.9rem}
.badge.warn{background:#FEF3C7;color:var(--warn)}
.steps{display:flex;gap:6px;margin:12px 0;padding:0;list-style:none;font-size:.85rem;color:var(--muted);flex-wrap:wrap}
.steps li{padding:6px 10px;border-radius:8px;background:#EEF2FF}
.steps li.on{background:var(--primary);color:#fff;font-weight:600}
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.choice{display:block;border:2px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;font-weight:400;margin:0}
.choice strong{display:block}.choice input{position:absolute;opacity:0}
.choice:has(input:checked){border-color:var(--primary);background:#EEF2FF}
.checks{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:14px 0 0}
.checks label{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:999px;font-weight:400;margin:0;cursor:pointer}
.consent{display:flex;gap:10px;align-items:flex-start;font-weight:400;margin-top:16px}
.consent input{width:24px;height:24px;margin-top:2px;flex:none}
.code{font-size:1.8rem;font-weight:700;letter-spacing:.04em;color:var(--primary-d)}
.link{word-break:break-all;background:#F1F5F9;padding:10px;border-radius:8px;font-family:ui-monospace,Consolas,monospace;font-size:.85rem}
.hp{position:absolute;left:-9999px}
.drop{border:2px dashed var(--line);border-radius:12px;padding:20px;text-align:center;color:var(--muted);cursor:pointer}
.drop.over{border-color:var(--primary);background:#EEF2FF}
.msg{padding:8px 12px;border-radius:8px;margin:6px 0;background:#F1F5F9}.msg.mine{background:#EEF2FF}.msg.int{background:#FFFBEB;border:1px dashed #FCD34D}
.msg .meta{font-size:.8rem;color:var(--muted)}
table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
tr.sel{background:#EEF2FF}
.cols{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:16px;align-items:start}
@media (max-width:820px){.cols{grid-template-columns:1fr}}
.prog{height:8px;background:#E2E8F0;border-radius:999px;overflow:hidden}.prog>i{display:block;height:100%;background:var(--primary);width:0}
.file{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.file .n{flex:1;word-break:break-all}
.miss{color:var(--warn);font-size:.85rem;margin:2px 0 8px 12px}
dl.kv{display:grid;grid-template-columns:160px 1fr;gap:4px 12px;margin:0}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0;word-break:break-word}
[hidden]{display:none!important}
@media (prefers-reduced-motion:no-preference){.card{transition:box-shadow .2s}.card:hover{box-shadow:0 2px 12px rgba(15,23,42,.08)}}
@media (max-width:420px){.steps{font-size:.75rem}button,.btn{width:100%}.row>button,.row>.btn{width:auto;flex:1}}
