:root{--navy:#071d4d;--ink:#10203f;--muted:#63708a;--line:#d8deea;--bg:#f6f8fb;--blue:#0d47b5;--orange:#d95308;--green:#187139;--ask:#fff8f3;--teach:#f0f8ef;--test:#f1f6fd}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
button,input,select,textarea{font:inherit}
.app{min-height:100vh;display:grid;grid-template-columns:235px 1fr}
aside{background:var(--navy);color:#fff;padding:29px 20px;position:sticky;top:0;height:100vh}
.brand{display:block;color:#fff;text-decoration:none;font-size:29px;font-weight:800;letter-spacing:-1.2px;margin:0 6px 39px}
.brand span{color:#68a2ff}
aside>p{font-weight:700;margin:0 6px 13px}
nav{display:grid;gap:4px}
.step{display:grid;grid-template-columns:30px 1fr;gap:11px;align-items:center;padding:12px 10px;border-radius:8px;color:#dbe6ff}
.step i{display:grid;place-items:center;width:29px;height:29px;border:1px solid #8ea3ce;border-radius:50%;font-style:normal;font-size:13px}
.step.active{background:#173a7b;color:#fff;font-weight:700}
.step.active i,.step.done i{background:#fff;color:var(--navy);border-color:#fff}
.workspace{min-width:0;display:grid;grid-template-rows:auto 1fr auto}
.workspace>header{height:88px;padding:18px 34px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}
.workspace h1{font-size:24px;line-height:1.2;margin:0;letter-spacing:-.5px}
.workspace header span{color:var(--muted)}
#branch{border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:#fff}
main{width:min(930px,calc(100% - 48px));margin:28px auto 100px}
main>h2{font-size:24px;margin:0 0 5px}
main>.lead{color:var(--muted);margin:0 0 22px}
.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;margin:0 0 18px}
.panel h3{margin:0 0 14px;font-size:15px}
.kind{padding:9px 14px;margin:-22px -22px 18px;color:#fff;border-radius:9px 9px 0 0;font-size:16px}
.ask{border-color:#ed9e6d;background:var(--ask)}
.ask .kind{background:var(--orange)}
.teach{border-color:#8fbd97;background:var(--teach)}
.teach .kind{background:var(--green)}
.test{border-color:#7d9fda;background:var(--test)}
.test .kind{background:var(--blue)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}
.wide{grid-column:1/-1}
label.field{display:flex;flex-direction:column;gap:7px;font-weight:700}
input[type=text],select,textarea{width:100%;border:1px solid #c9d2e1;border-radius:7px;background:#fff;padding:12px 13px;color:var(--ink);outline:none}
textarea{min-height:82px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:#2563c5;box-shadow:0 0 0 3px #2563c522}
.choices{display:flex;flex-wrap:wrap;gap:9px 18px;margin:8px 0 13px}
.choices label,.check{display:flex;gap:8px;align-items:flex-start}
.choices input,.check input{width:18px;height:18px;margin-top:2px;accent-color:var(--blue)}
.q{margin:18px 0 7px}
.q:first-child{margin-top:0}
.hidden{display:none!important}
.teach-ack{font-weight:700;color:var(--green);margin-top:13px}
.message-pair{display:grid;gap:7px;margin:10px 0 14px}
.message-pair b{color:var(--blue)}
.consent-copy{font-size:17px;line-height:1.65}
.workspace>footer{position:fixed;bottom:0;left:235px;right:0;background:#fff;border-top:1px solid var(--line);padding:14px 34px;display:flex;align-items:center;justify-content:flex-end;gap:18px;z-index:3}
.workspace button{border:0;border-radius:7px;background:var(--blue);color:#fff;padding:12px 22px;font-weight:700;cursor:pointer}
.workspace button.secondary{background:#fff;color:var(--blue);border:1px solid var(--blue)}
#status{color:#b4233d;margin-right:auto}
.success{text-align:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:70px 25px}
.success i{display:grid;place-items:center;width:64px;height:64px;margin:auto;border-radius:50%;background:var(--green);color:#fff;font-size:34px;font-style:normal}
.success h2{font-size:30px;margin:24px 0 8px}
@media(max-width:760px){.app{display:block}
aside{position:static;height:auto;padding:17px 15px}
.brand{margin:0 0 16px;font-size:24px}
aside>p{display:none}
nav{display:flex;overflow:auto}
.step{padding:8px}
.step span{display:none}
.workspace>header{height:auto;padding:16px;align-items:flex-start;flex-direction:column}
.workspace h1{font-size:21px}
#branch{padding:7px 10px}
main{width:calc(100% - 24px);margin:20px auto 100px}
.grid{grid-template-columns:1fr}
.wide{grid-column:auto}
.panel{padding:18px}
.kind{margin:-18px -18px 16px}
.workspace>footer{left:0;padding:12px;gap:10px}
.workspace button{padding:11px 14px}
#status{position:absolute;bottom:69px;left:12px;background:#fff}
}
@media(max-width:760px){
body{font-size:16px}
.app>aside{position:sticky;top:0;z-index:6;padding:9px 10px 8px;box-shadow:0 4px 16px #071d4d26}
.app>aside .brand{display:none}
.app>aside nav{gap:5px;scrollbar-width:none;scroll-snap-type:x proximity}
.app>aside nav::-webkit-scrollbar{display:none}
.step{flex:0 0 auto;scroll-snap-align:center;padding:5px}
.step i{width:34px;height:34px;font-size:14px}
.workspace>header{padding:12px 14px;gap:9px}
.workspace>header>div:first-child span{font-size:13px}
.header-actions{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px}
.workspace h1{font-size:20px}
main{width:100%;padding:0 12px;margin:17px auto 126px}
main>h2{font-size:22px}
.panel{border-radius:12px;padding:16px;margin-bottom:14px}
.kind{margin:-16px -16px 16px;padding:10px 12px}
.choices{display:grid;grid-template-columns:1fr;gap:8px;margin:10px 0 17px}
.choices label,.check{min-height:48px;align-items:center;border:1px solid #d8deea;border-radius:10px;background:#fff;padding:11px 12px}
.choices input,.check input{width:22px;height:22px;margin:0;flex:0 0 auto}
input[type=text],select,textarea{min-height:50px;font-size:16px;border-radius:10px}
.consent-copy{font-size:16px}
.workspace>footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom));justify-content:space-between;box-shadow:0 -5px 18px #071d4d16}
.workspace>footer button{min-height:48px;flex:1;padding:11px 10px}
.workspace>footer #next{flex:1.7}
#status{bottom:calc(72px + env(safe-area-inset-bottom));right:12px;padding:8px 10px;border:1px solid #efb7bf;border-radius:8px;box-shadow:0 5px 16px #0002}
#status:empty{display:none}
}
