.portal-page{min-height:100dvh;background:
  radial-gradient(circle at 16% 12%,rgba(110,153,194,.2),transparent 31%),
  radial-gradient(circle at 88% 78%,rgba(184,132,164,.14),transparent 32%),#091321;color:#eef2f8}


.portal-main{min-height:100dvh;display:grid;place-items:center;padding:clamp(138px,15vh,175px) 6vw 70px}
.portal-shell{width:min(1180px,100%);display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1fr);overflow:hidden;border:1px solid rgba(196,211,231,.18);border-radius:32px;background:rgba(12,25,42,.88);box-shadow:0 34px 90px rgba(1,7,16,.34),inset 0 1px rgba(255,255,255,.04)}
.portal-intro{position:relative;min-height:610px;padding:clamp(42px,5vw,72px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:radial-gradient(ellipse at 20% 25%,rgba(111,153,195,.18),transparent 42%),linear-gradient(145deg,rgba(36,56,84,.9),rgba(21,31,52,.92))}
.portal-intro:before,.portal-intro:after{content:"";position:absolute;border:1px solid rgba(183,202,228,.16);border-radius:50%;pointer-events:none}.portal-intro:before{width:520px;height:250px;right:-260px;top:40px;transform:rotate(-35deg)}.portal-intro:after{width:420px;height:180px;left:-230px;bottom:80px;transform:rotate(28deg)}
.portal-kicker{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#b9c6d8}
.portal-intro h1{max-width:8ch;font-size:clamp(50px,5.4vw,78px);line-height:.98;letter-spacing:-.06em;text-wrap:balance}
.portal-intro p{position:relative;z-index:1;max-width:43ch;color:#bec9d8;font-size:14px;line-height:1.8}
.portal-trust{display:grid;gap:12px;font-size:12px;color:#aab9cd}
.portal-trust span{display:flex;align-items:center;gap:10px}.portal-trust i{width:8px;height:8px;border:1px solid #9dc9e2;background:transparent;transform:rotate(45deg)}
.portal-panel{padding:clamp(42px,5vw,72px);align-self:center}
.portal-panel h2{font-size:clamp(34px,3.5vw,50px);line-height:1.05;letter-spacing:-.045em}
.portal-panel>.lede{margin:18px 0 34px;color:#aebdce;font-size:14px}
.portal-form{display:grid;gap:20px}.portal-form label,.question-form label{display:grid;gap:9px;color:#cdd7e4;font-size:12px;letter-spacing:.01em}
.portal-form input,.question-form input,.question-form select,.question-form textarea{width:100%;min-height:52px;border:1px solid rgba(190,207,228,.22);border-radius:10px;background:rgba(4,12,23,.45);color:#eef2f8;padding:13px 15px;font:inherit;transition:border-color .2s,background .2s,box-shadow .2s}
.portal-form input:focus,.question-form input:focus,.question-form select:focus,.question-form textarea:focus{outline:0;border-color:#9cc8e3;background:rgba(7,17,31,.7);box-shadow:0 0 0 4px rgba(156,200,227,.1)}
.portal-form input::placeholder,.question-form input::placeholder,.question-form textarea::placeholder{color:#71849b}
.portal-action{min-height:54px;border:0;border-radius:10px;background:#eef2f7;color:#12243a;font-weight:600;transition:transform .2s,background .2s}.portal-action:hover{transform:translateY(-2px);background:#fff}.portal-action:active{transform:translateY(0)}
.portal-action.secondary{background:transparent;color:#d8e1ed;border:1px solid rgba(190,207,228,.25)}
.portal-status{min-height:22px;color:#e5b8ae;font-size:12px;line-height:1.6}.portal-status.success{color:#a9d7c5}
.portal-note{margin-top:28px;padding-top:24px;border-top:1px solid rgba(190,207,228,.14);color:#8799ae;font-size:11px;line-height:1.7}.portal-note a{color:#d5deea;text-decoration:underline;text-underline-offset:4px}

.questionnaire-main{min-height:calc(100dvh - 105px);padding:48px max(5vw,calc((100vw - 1480px)/2)) 100px}
.questionnaire-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}.questionnaire-head h1{font-size:clamp(42px,5vw,70px);line-height:1;letter-spacing:-.055em}.questionnaire-head p{max-width:48ch;margin-top:16px;color:#9fb0c5;font-size:14px}
.questionnaire-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:28px;align-items:start}
.question-nav{position:sticky;top:105px;padding:24px;border:1px solid rgba(190,207,228,.16);border-radius:22px;background:rgba(11,24,41,.72)}
.question-progress{height:3px;margin-bottom:25px;border-radius:3px;background:#29384d;overflow:hidden}.question-progress i{display:block;width:20%;height:100%;background:linear-gradient(90deg,#8fc2df,#dfb49f);transition:width .35s ease}
.question-nav ol{display:grid;gap:4px;margin:0;padding:0;list-style:none;counter-reset:steps}.question-nav li{display:flex;align-items:center;gap:12px;padding:12px;border-radius:9px;color:#788aa0;font-size:12px}.question-nav li:before{counter-increment:steps;content:"0" counter(steps);font-variant-numeric:tabular-nums}.question-nav li.active{background:rgba(255,255,255,.045);color:#edf2f7}.question-nav small{display:block;margin-top:22px;color:#71849a;line-height:1.6}
.question-card{padding:clamp(28px,4vw,58px);border:1px solid rgba(190,207,228,.16);border-radius:26px;background:rgba(12,25,42,.78);box-shadow:0 30px 90px rgba(1,7,16,.28)}
.question-card fieldset{display:none;margin:0;padding:0;border:0}.question-card fieldset.active{display:block;animation:question-in .45s cubic-bezier(.2,.8,.2,1)}
.question-card legend{margin-bottom:10px;font-size:clamp(30px,3vw,44px);font-weight:500;letter-spacing:-.045em}.step-description{max-width:62ch;margin-bottom:30px;color:#9fb0c5;font-size:14px}
.question-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.question-grid .full{grid-column:1/-1}.question-form textarea{min-height:120px;resize:vertical}.question-form option{color:#12243a}
.sensitive-note{grid-column:1/-1;padding:14px 16px;border-left:2px solid #d9b3a1;background:rgba(217,179,161,.06);color:#aebdce;font-size:11px;line-height:1.65}
.check-row{display:flex!important;grid-template-columns:auto 1fr!important;align-items:start;gap:12px!important}.check-row input{width:18px!important;min-height:18px!important;margin-top:2px;padding:0}.check-row a{text-decoration:underline;text-underline-offset:3px}
.question-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:34px;padding-top:24px;border-top:1px solid rgba(190,207,228,.14)}.question-actions>div{display:flex;gap:10px}.question-actions button{min-height:46px;padding:0 20px;border-radius:9px}
.save-state{font-size:11px;color:#8496ac}.portal-logout{border:0;background:transparent;color:#aebed1;text-decoration:underline;text-underline-offset:4px}
@keyframes question-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

@media(max-width:900px){.portal-shell{grid-template-columns:1fr}.portal-intro{min-height:360px}.portal-intro h1{max-width:11ch}.questionnaire-layout{grid-template-columns:1fr}.question-nav{position:relative;top:auto}.question-nav ol{grid-template-columns:repeat(5,1fr)}.question-nav li{display:grid;gap:5px;padding:8px;font-size:10px}}
@media(max-width:650px){.portal-page header nav{top:75px}.portal-main{padding:108px 16px 40px}.portal-shell{border-radius:22px}.portal-intro,.portal-panel{padding:32px 24px}.questionnaire-main{padding-inline:16px}.questionnaire-head{display:block}.questionnaire-head .portal-logout{margin-top:22px}.question-nav ol{grid-template-columns:1fr}.question-nav li{display:flex}.question-grid{grid-template-columns:1fr}.question-grid .full{grid-column:auto}.question-card{padding:28px 20px;border-radius:20px}.question-actions{align-items:flex-start;flex-direction:column-reverse}.question-actions>div{width:100%}.question-actions button{flex:1}}
@media(prefers-reduced-motion:reduce){.question-card fieldset.active{animation:none}.portal-action,.question-progress i{transition:none}}
