:root{--navy:#20407F;--blue:#2A85B8;--purple:#735B8F;--bg:#F4F7FB;--card:#fff;--text:#17202E;--muted:#6B7A90;--line:#D7E0EC;--bad:#B3261E;--good:#1E7B34}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Source Sans 3',system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
header.top{background:#fff;border-bottom:1px solid var(--line);padding:10px 16px}
header.top .wrap{max-width:640px;margin:0 auto}
header.top img.logo{display:block;height:44px;width:auto}
h1.pt{font-size:22px;font-weight:700;margin:6px 4px 0;color:var(--text)}
main{max-width:640px;margin:0 auto;padding:14px 12px 40px}
.card{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:16px;margin:12px 0}
.card h2{margin:0 0 4px;font-size:17px;color:var(--navy)}
.card .sub{margin:0 0 10px;color:var(--muted);font-size:13px}
label.lbl{display:block;font-size:14px;font-weight:600;margin:12px 0 4px}
label.lbl .req{color:var(--bad)}
input[type=text],input[type=tel],input[type=email],select,textarea{width:100%;font:inherit;font-size:16px;padding:11px 12px;border:1px solid #B9C6D8;border-radius:4px;background:#fff;color:var(--text)}
textarea{min-height:76px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(42,133,184,.35);border-color:var(--blue)}
.invalid{border-color:var(--bad)!important;background:#FFF6F5}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:420px){.row2{grid-template-columns:1fr}}
.opts{display:grid;gap:6px;margin-top:6px}
.opt{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border:1px solid var(--line);border-radius:4px;cursor:pointer;font-size:15px;background:#fff}
.opt input{width:20px;height:20px;margin:1px 0 0;flex:0 0 auto}
.opt:has(input:checked){border-color:var(--blue);background:#EEF6FB}
.yn{display:flex;gap:8px;margin-top:6px}
.yn .opt{flex:1;justify-content:center;align-items:center}
.q{padding:10px 0;border-bottom:1px solid var(--line)}
.q:last-of-type{border-bottom:none}
.q p{margin:0 0 4px;font-size:15px}
.consent{white-space:pre-wrap;background:#F8FAFD;border:1px solid var(--line);border-radius:4px;padding:12px;font-size:14px}
.sigwrap{margin-top:10px}
.sigbox{position:relative;border:1px solid #8FA3BF;border-radius:4px;background:#fff;touch-action:none}
.sigbox canvas{display:block;width:100%;height:170px;border-radius:4px;touch-action:none}
.sigbox .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#A5B3C6;font-size:14px;pointer-events:none}
.sigbox.invalid{border-color:var(--bad)}
button{font:inherit;cursor:pointer}
button.primary{width:100%;padding:14px;border:0;border-radius:4px;background:var(--navy);color:#fff;font-size:17px;font-weight:600;margin-top:8px}
button.primary:disabled{opacity:.55;cursor:not-allowed}
button.ghost{border:1px solid #B9C6D8;background:#fff;color:var(--navy);border-radius:4px;padding:6px 12px;font-size:14px;margin-top:6px}
.err{background:#FDECEA;border:1px solid #F3B8B2;color:var(--bad);border-radius:4px;padding:12px;margin:12px 0;font-size:14px}
.err ul{margin:6px 0 0 18px;padding:0}
.warn{background:#FFF4D6;border:1px solid #F0DCA0;color:#8A6100;border-radius:4px;padding:12px;margin:12px 0;font-size:14px}
.ok{text-align:left;padding:22px 20px;border-left:4px solid var(--good)}
.ok .tick{display:none}
.ok h2{font-size:22px;margin:0 0 6px;color:var(--text)}
.big{font-size:20px;font-weight:700;color:var(--navy)}
.pill{display:inline-block;background:#F3F6FA;border:1px solid var(--line);color:var(--navy);border-radius:3px;padding:3px 10px;font-size:14px;margin:2px 4px 2px 0}
.muted{color:var(--muted);font-size:13px}
.help{text-align:center;margin:20px 0;font-size:14px}
.help a{color:var(--navy)}
.hidden{display:none!important}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.spin{display:inline-block;width:18px;height:18px;border:3px solid #cfe0ee;border-top-color:var(--blue);border-radius:50%;animation:s .8s linear infinite;vertical-align:-3px;margin-right:8px}
@keyframes s{to{transform:rotate(360deg)}}

.langbar { display: flex; gap: 8px; flex-wrap: wrap; }
.langbtn { border: 1px solid #b9c3d3; background: #fff; border-radius: 18px; padding: 8px 14px; font: inherit; cursor: pointer; }
.langbtn.on { background: #1b3a6b; color: #fff; border-color: #1b3a6b; }
