:root{--bg: #f6f8fb;--surface: #ffffff;--surface-2: #eef2f7;--ink: #16202e;--ink-2: #55627a;--line: #d8dfe9;--accent: #0f6cbd;--accent-ink: #ffffff;--accent-soft: #e3eefb;--ok: #15803d;--ok-bg: #e6f4ea;--err: #b3261e;--err-bg: #fbeae9;--shadow: 0 1px 2px rgba(22, 32, 46, .06), 0 8px 24px rgba(22, 32, 46, .07);--radius: 10px}@media(prefers-color-scheme:dark){:root{--bg: #0f141d;--surface: #161e2b;--surface-2: #1d2735;--ink: #e4eaf3;--ink-2: #93a1b8;--line: #2b3648;--accent: #4d9fe8;--accent-ink: #0b1420;--accent-soft: #1a2c41;--ok: #58c07d;--ok-bg: #14291c;--err: #ef8a84;--err-bg: #321a18;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,Yu Gothic,Noto Sans JP,Meiryo,sans-serif;font-size:15px;line-height:1.7}.topbar{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.topbar .brand{font-size:16px;font-weight:700;letter-spacing:.01em;color:var(--ink);text-decoration:none}.layout{max-width:760px;margin:0 auto;padding:24px 20px 80px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 30px 24px}.card h2{margin:6px 0 4px;font-size:21px;line-height:1.4;text-wrap:balance}.card .lede{margin:0 0 20px;color:var(--ink-2);font-size:13.5px}.step-eyebrow{margin:0;font-size:11px;letter-spacing:.14em;color:var(--accent);font-weight:700}.loading{color:var(--ink-2)}.progress-wrap{margin-bottom:18px}.progress{display:flex;gap:6px;margin:0;padding:0;list-style:none}.progress .seg{flex:1;text-align:center}.progress .bar{display:block;height:4px;border-radius:2px;background:var(--line);margin-bottom:6px}.progress .seg.done .bar,.progress .seg.now .bar{background:var(--accent)}.progress .lbl{font-size:11px;color:var(--ink-2);letter-spacing:.04em}.progress .seg.now .lbl{color:var(--accent);font-weight:700}.progress-meta{display:flex;justify-content:space-between;margin:8px 2px 0;font-size:12px;color:var(--ink-2)}fieldset.field{border:0;margin:0 0 20px;padding:0;min-width:0}.q-label{display:flex;align-items:baseline;gap:8px;font-weight:700;margin-bottom:8px;padding:0}.badge{font-size:10.5px;padding:1px 7px;border-radius:4px;font-weight:700;letter-spacing:.06em;white-space:nowrap}.badge.req{color:var(--err);background:var(--err-bg)}.badge.opt{color:var(--ink-2);background:var(--surface-2)}input[type=text],input[type=email],textarea{width:100%;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:8px;padding:9px 12px}textarea{min-height:96px;resize:vertical}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--err)}.with-suffix{display:flex;align-items:center;gap:8px}.with-suffix .suffix{color:var(--ink-2);font-size:13px;white-space:nowrap}.hint{font-size:12px;color:var(--ink-2);margin:5px 0 0}.field-error{display:block;margin:6px 0 0;font-size:12.5px;color:var(--err);font-weight:600}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.choice{display:block;border:1.5px solid var(--line);border-radius:8px;padding:11px 14px;margin-bottom:8px;cursor:pointer;background:var(--surface)}.choice:hover{border-color:var(--accent)}.choice.on{border-color:var(--accent);background:var(--accent-soft)}.choice input{margin-right:9px;accent-color:var(--accent)}.choice .sub{display:block;margin-left:25px;font-size:12.5px;color:var(--ink-2)}.choice .reco-reason{color:var(--ok)}.chip-reco{font-size:10.5px;color:var(--ok);background:var(--ok-bg);border-radius:4px;padding:1px 7px;font-weight:700;margin-left:8px}.note{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:11px 14px;font-size:13px;margin:10px 0 16px}.note.info{border-color:var(--accent);border-left-width:4px}.note.err{border-color:var(--err);border-left:4px solid var(--err);background:var(--err-bg)}.note-label{margin:0 0 4px;font-weight:700}.note-body{margin:0}.review-group{border:1px solid var(--line);border-radius:8px;margin-bottom:14px;overflow:hidden}.review-group .rg-head{display:flex;justify-content:space-between;align-items:center;background:var(--surface-2);padding:8px 14px;font-weight:700;font-size:13px}.review-group dl{margin:0;padding:10px 14px}.review-group .row{display:grid;grid-template-columns:200px 1fr;gap:4px 14px;padding:5px 0;border-bottom:1px dashed var(--line);font-size:13.5px}.review-group .row:last-child{border-bottom:0}.review-group dt{color:var(--ink-2);margin:0}.review-group dd{margin:0;overflow-wrap:anywhere}.review-group .unanswered{color:var(--ink-2)}@media(max-width:560px){.review-group .row{grid-template-columns:1fr}}.start-steps{margin:0 0 22px;padding-left:20px;color:var(--ink-2);font-size:13.5px}.done-icon{width:52px;height:52px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;margin-bottom:14px}.appno-line{display:flex;align-items:baseline;gap:10px;margin:4px 0 8px}.appno-label{font-size:12px;color:var(--ink-2)}.appno{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:22px;font-weight:700;letter-spacing:.04em}button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 16px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}button.ghost{background:transparent}button.link{border:0;background:none;color:var(--accent);padding:2px 4px;font-size:12px;text-decoration:underline}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav{display:flex;justify-content:space-between;gap:12px;margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}.save-status{margin:10px 2px 0;font-size:12px;color:var(--ink-2);text-align:right}.save-status.error{color:var(--err)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
