.survey-shell { min-height: 100vh; padding: 2rem 0; background: radial-gradient(circle at 90% 0%, rgba(245,158,11,.1), transparent 30%), var(--bg-primary); }
.survey-container { max-width: 960px; }
.survey-card { padding: clamp(1.25rem, 4vw, 2.5rem); background:#fff; border:1px solid var(--border-color); border-radius:16px; box-shadow:var(--shadow-md); }
.survey-header { display:flex; gap:1rem; padding-bottom:1.5rem; border-bottom:1px solid var(--border-color); }
.survey-icon { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; width:54px; height:54px; color:var(--primary-color); background:rgba(30,58,95,.1); border-radius:14px; font-size:1.45rem; }
.survey-header h1 { margin:.75rem 0; color:var(--primary-color); font-size:clamp(1.55rem,4vw,2.35rem); font-weight:800; line-height:1.15; }
.survey-header h1 small { font-size:.62em; font-weight:700; }
.survey-header p { margin:.4rem 0; color:var(--text-secondary); font-size:.9rem; line-height:1.6; }
.survey-signature { color:var(--primary-color)!important; font-weight:700; }
.survey-signature span { color:var(--accent-color); font-size:.8rem; }
.required-note { margin-top:1rem!important; font-size:.78rem!important; }
.required-note span, .form-label span, fieldset span { color:#d33d3d; }
.survey-progress { margin:1.75rem 0 2rem; }
.progress-track { height:8px; overflow:hidden; background:#e8eef5; border-radius:99px; }
.progress-track span { display:block; width:50%; height:100%; background:linear-gradient(90deg,var(--primary-color),var(--accent-color)); border-radius:inherit; transition:width .35s ease; }
.progress-labels { display:flex; justify-content:space-between; gap:1rem; margin-top:.5rem; color:var(--text-secondary); font-size:.78rem; }
.progress-labels span:last-child { color:var(--primary-color); font-weight:700; }
.section-heading { display:flex; gap:.85rem; margin-bottom:1.5rem; }
.section-heading > span { color:var(--accent-color); font-size:1rem; font-weight:800; }
.section-heading h2 { margin:0; color:var(--primary-color); font-size:1.35rem; font-weight:800; }
.section-heading p { margin:.3rem 0 0; color:var(--text-secondary); font-size:.85rem; }
.form-label, .choice-fieldset legend, .rating-fieldset legend { color:var(--text-primary); font-size:.84rem; font-weight:700; }
.form-control { border-color:var(--border-color); border-radius:9px; padding:.7rem .85rem; }
.form-control:focus { border-color:var(--primary-color); box-shadow:0 0 0 .2rem rgba(30,58,95,.14); }
.choice-fieldset, .rating-fieldset { padding:0; border:0; }
.choice-fieldset legend, .rating-fieldset legend { float:none; width:auto; margin-bottom:.7rem; }
.choice-grid { display:grid; gap:.75rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.choice-option, .check-option { display:flex; align-items:flex-start; gap:.65rem; min-height:48px; padding:.75rem; color:var(--text-primary); background:#fbfdff; border:1px solid var(--border-color); border-radius:9px; cursor:pointer; }
.choice-option:has(input:checked), .check-option:has(input:checked) { color:var(--primary-color); background:rgba(30,58,95,.06); border-color:var(--primary-color); }
.choice-option input, .check-option input { margin-top:.2rem; accent-color:var(--primary-color); }
.choice-option small { color:var(--text-secondary); }
.service-options { display:grid; gap:.65rem; }
.other-service { margin-top:1rem; }
.invalid-feedback.d-block { display:block; }
.rating-list { display:grid; gap:1rem; }
.rating-fieldset { padding:1rem; background:#fbfdff; border:1px solid var(--border-color); border-radius:12px; }
.star-rating { display:flex; align-items:center; gap:.15rem; flex-wrap:wrap; }
.star-button { padding:.15rem .2rem; color:#cbd5e1; background:transparent; border:0; font-size:1.65rem; cursor:pointer; transition:color .15s ease, transform .15s ease; }
.star-button:hover, .star-button:focus-visible, .star-button.active { color:var(--accent-color); transform:scale(1.12); }
.star-button:focus-visible { outline:2px solid var(--primary-color); outline-offset:2px; border-radius:4px; }
.rating-caption { margin-left:.5rem; color:var(--text-secondary); font-size:.78rem; }
.recaptcha-note { margin:0; color:var(--text-secondary); font-size:.82rem; }
.recaptcha-note i { color:var(--primary-color); }
.survey-actions { display:flex; justify-content:space-between; gap:.75rem; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--border-color); }
.btn-survey-primary { color:#fff; background:linear-gradient(135deg,var(--primary-color),var(--secondary-blue)); border:0; border-radius:9px; font-weight:700; }
.btn-survey-primary:hover, .btn-survey-primary:focus-visible { color:#fff; background:linear-gradient(135deg,var(--primary-hover),var(--primary-color)); }
.confirmation-screen { padding:2rem 1rem; text-align:center; }
.confirmation-icon { display:inline-flex; align-items:center; justify-content:center; width:68px; height:68px; color:#fff; background:var(--success-color); border-radius:50%; font-size:2rem; animation:confirmation-pop .5s ease both; }
.confirmation-screen h2 { margin:1.25rem 0 .75rem; color:var(--primary-color); font-size:1.7rem; font-weight:800; }
.confirmation-screen p { max-width:600px; margin:.35rem auto; color:var(--text-secondary); line-height:1.6; }
.reference-box { max-width:360px; margin:1.5rem auto; padding:1rem; color:var(--text-secondary); background:#f8fafc; border:1px solid var(--border-color); border-radius:10px; }
.reference-box strong { display:block; margin-top:.3rem; color:var(--primary-color); font-size:1.1rem; letter-spacing:.04em; }
@keyframes confirmation-pop { from { opacity:0; transform:scale(.7); } to { opacity:1; transform:scale(1); } }
@media (max-width:575.98px) { .survey-shell { padding:1rem 0; } .survey-header { gap:.75rem; } .survey-icon { width:45px; height:45px; font-size:1.15rem; } .choice-grid { grid-template-columns:1fr; } .survey-actions .btn { flex:1; } }
