:root{--bg:#f3f7fa;--panel:#ffffff;--ink:#102238;--muted:#5e6f80;--line:#d5e1ea;--primary:#123f63;--primary-dark:#0b2740;--secondary:#eef5f9;--brand-blue:#2f83bd;--brand-teal:#0f766e;--brand-wash:#eaf4fa;--danger:#9f3f3a;--warning-bg:#fff4d7;--warning-line:#dfb74b;--error-bg:#fff8f7;--error-line:#e3aaa4;--focus:#2f78c4}*{box-sizing:border-box}html{background:linear-gradient(180deg,#fbfdff 0,#f0f6fa 44%,var(--bg) 100%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0;min-height:100vh}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}.shell{margin:0 auto;max-width:1120px;min-height:100vh;padding:34px 28px 44px}.shell.narrow{max-width:760px;padding-top:56px}.brandHeader{justify-content:space-between;gap:18px;margin:0 0 22px}.brandHeader,.brandLockup{align-items:center;display:flex}.brandLockup{color:var(--ink);min-width:0}.brandLogoImage{display:block;height:auto;max-height:38px;object-fit:contain;width:min(220px,58vw)}.brandLabel{background:#ffffff;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.78rem;font-weight:750;line-height:1.35;max-width:50%;padding:6px 10px;text-align:right}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 40px rgba(16,34,56,.08);padding:36px}.subPanel{background:#fbfdfe;border:1px solid #dce7ef;border-radius:8px;margin:0;padding:32px}.subPanel>legend{color:var(--ink);font-size:1.08rem;font-weight:750;padding:0 10px}.eyebrow{color:var(--brand-teal);font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 10px;text-transform:uppercase}h1{color:var(--ink);font-size:clamp(1.75rem,3.6vw,2.5rem);line-height:1.12;margin:0 0 22px}h2{font-size:1.15rem;margin:0 0 12px}p{line-height:1.58}.muted{color:var(--muted)}.stack{display:grid;grid-gap:30px;gap:30px}.detailsGrid,.filters,.formGrid,.summaryGrid{align-items:start;display:grid;grid-gap:22px 24px;gap:22px 24px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.respondentGrid{grid-template-columns:repeat(2,minmax(260px,1fr))}.fieldGroup,label{align-content:start;display:grid;grid-gap:12px;gap:12px;margin:0}.fieldGroup{border:0;padding:0}.subPanel>:where(.fieldGroup,.formGrid,label,.conditional)+:where(.fieldGroup,.formGrid,label,.conditional){margin-top:28px}.fieldGroup legend,.fieldLabel{color:var(--ink);font-weight:700;margin:0}.labelLine{align-items:baseline;color:var(--ink);display:flex;flex-wrap:wrap;font-weight:700;gap:7px;line-height:1.35}.labelText{min-width:0}.requiredMark{color:#a34842;font-weight:900}.optionalBadge{background:#eef5f9;border:1px solid #d5e1ea;border-radius:999px;color:var(--muted);font-size:.72rem;font-weight:750;padding:2px 7px}.fieldHelp{color:var(--muted);font-size:.84rem;font-weight:500;line-height:1.5;max-width:72ch}.missingHint{align-items:center;color:#a34a44;display:inline-flex;font-size:.78rem;font-weight:650;gap:5px}.missingHint:before{background:#c56b64;border-radius:50%;content:"";height:5px;width:5px}.labelLine:has(.missingHint){color:#9f3f3a}.labelLine:has(.missingHint)+input,.labelLine:has(.missingHint)+select,.labelLine:has(.missingHint)+textarea,label:has(.missingHint) input,label:has(.missingHint) select,label:has(.missingHint) textarea{background:#fffdfc;border-color:var(--error-line);box-shadow:0 0 0 1px rgba(159,63,58,.06)}.fieldGroup:has(.missingHint) .checkRow,.fieldGroup:has(.missingHint) .radioRow{background:#fffdfc;border-color:var(--error-line)}.fieldFocusFlash{animation:field-focus-flash 1.5s ease-out;border-radius:6px}@keyframes field-focus-flash{0%,70%{background:rgba(159,63,58,.08);box-shadow:0 0 0 6px rgba(159,63,58,.08)}to{background:transparent;box-shadow:none}}.srOnly{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}input,select,textarea{background:#ffffff;border:1px solid #b9c8d5;border-radius:6px;color:var(--ink);min-height:46px;padding:11px 13px;width:100%}input,select{height:48px}textarea{min-height:116px;resize:vertical}.leadTimeField{gap:12px}.leadTimeControls{display:grid;grid-gap:10px;gap:10px}.quickChips{display:flex;flex-wrap:wrap;gap:8px}.chipButton{background:#f8fbfd;border:1px solid #cbdbe7;border-radius:999px;color:var(--ink);font-size:.82rem;font-weight:750;min-height:36px;padding:6px 12px;width:auto}.chipButton.active,.chipButton:hover{border-color:var(--brand-blue)}.chipButton.active{background:var(--brand-wash);color:var(--brand-navy)}input:focus,select:focus,textarea:focus{border-color:var(--brand-blue);box-shadow:0 0 0 3px rgba(47,131,189,.16);outline:none}.checkGrid,.inlineChoices{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.inlineChoices.vertical{grid-template-columns:1fr}.checkRow,.radioRow{align-items:start;background:#f8fbfd;border:1px solid #dce7ef;border-radius:6px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:20px 1fr;line-height:1.35;min-height:54px;padding:14px}.checkRow:hover,.radioRow:hover{border-color:#b8d2e4}.checkRow:has(input:checked),.radioRow:has(input:checked){background:var(--brand-wash);border-color:#8fc0df}.checkRow input,.radioRow input{height:20px;margin:0;min-height:20px;width:20px}.conditional{background:#f5faf9;border-left:4px solid var(--brand-teal);display:grid;grid-gap:18px;gap:18px;margin-top:18px;padding:18px}.notice,.warning{border-radius:8px;line-height:1.5;padding:14px 16px}.notice{background:#eff8f7;border:1px solid #b9ded9;color:#123f3f}.warning{background:var(--warning-bg);border:1px solid var(--warning-line)}.errorSummary{background:var(--error-bg);border:1px solid var(--error-line);border-radius:8px;color:#71312d;margin-bottom:22px;padding:18px}.errorSummary ul{margin:0;padding-left:20px}.errorSummary li{margin:6px 0}.errorJump{align-items:center;background:transparent;border:0;color:inherit;display:inline-flex;gap:10px;justify-content:space-between;min-height:0;padding:0;text-align:left;width:100%}.errorJump span{text-decoration:underline;text-underline-offset:2px}.errorJump strong{color:#9f3f3a;font-size:.8rem;white-space:nowrap}.progressWrap{margin-bottom:18px}.progress,.progressWrap{display:grid;grid-gap:10px;gap:10px}.progress{grid-template-columns:repeat(7,minmax(0,1fr))}.progressStep{align-items:center;background:rgba(255,255,255,.78);border:1px solid #d5e1ea;border-radius:8px;display:grid;grid-gap:6px;gap:6px;min-height:72px;padding:10px;position:relative}.progressStep:before{background:transparent;border-radius:8px 8px 0 0;content:"";height:3px;left:-1px;position:absolute;right:-1px;top:-1px}.progressStep span{align-items:center;background:#ffffff;border:1px solid #d9e4eb;border-radius:50%;color:var(--primary);display:inline-flex;font-size:.82rem;font-weight:800;height:26px;justify-content:center;width:26px}.progressStep strong{font-size:.82rem;line-height:1.2}.progressStep.active{background:#eaf5fb;border-color:#9fc9e2}.progressStep.active:before{background:var(--brand-blue)}.progressStep.active span{background:var(--primary);border-color:var(--primary);color:#ffffff}.progressStep.done{background:#eef8f6;border-color:#b9ded9}.progressStep.done:before{background:var(--brand-teal)}.completionMeter{background:rgba(255,255,255,.8);border:1px solid #dce7ef;border-radius:8px;display:grid;grid-gap:7px;gap:7px;padding:10px 12px}.completionMeterText{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:.78rem;gap:8px;justify-content:space-between}.completionMeterText strong{color:var(--primary);font-size:.78rem}.completionTrack,.miniCompletionTrack{background:#e6eef4;border-radius:999px;overflow:hidden}.completionTrack{height:6px}.completionFill,.miniCompletionFill{background:linear-gradient(90deg,var(--brand-teal),var(--brand-blue));border-radius:inherit;height:100%;transition:width .16s ease}.miniCompletion{display:grid;grid-gap:5px;gap:5px;min-width:120px}.miniCompletionLabel{color:var(--muted);font-size:.78rem;font-weight:750}.miniCompletionTrack{height:5px}.saveBar{align-items:center;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 42px rgba(16,34,56,.16);display:flex;gap:16px;justify-content:space-between;margin-top:20px;padding:14px}.saveStatus{color:var(--muted);font-size:.92rem}.adminHeader,.buttonRow,.exportLinks{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.adminHeader{justify-content:space-between}.exportPanel{background:#f7fbfd;border:1px solid #dce7ef;border-radius:8px;display:grid;grid-gap:12px;gap:12px;margin:18px 0;padding:16px}.exportPanel h2,.exportPanel p{margin:0}.exportLinks.compact .button{min-height:38px;padding:8px 12px}.exportPanel .exportLinks{margin-top:0}.button{align-items:center;border-radius:6px;border:1px solid transparent;display:inline-flex;font-weight:750;justify-content:center;min-height:42px;padding:10px 16px;text-decoration:none;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button.primary{background:var(--primary);color:#ffffff}.button.primary:hover{background:var(--primary-dark)}.button.secondary{background:var(--secondary);border-color:#c8d8e3;color:var(--primary)}.button.secondary:hover{background:#e4f0f7;border-color:#aac7da}.button.danger{background:var(--danger);color:#ffffff}.detailsGrid,.summaryGrid{margin:18px 0}.detailsGrid div,.summaryGrid div{background:#f8fbfd;border:1px solid #dce7ef;border-radius:8px;padding:14px}.summaryGrid span,dt{color:var(--muted);display:block;font-size:.84rem;font-weight:700;margin-bottom:6px}.summaryGrid strong,dd{font-size:1.04rem;font-weight:800;margin:0}.tableWrap{margin-top:18px;overflow-x:auto}.statusTable{border-collapse:collapse;font-size:.92rem;min-width:900px;width:100%}.statusTable td,.statusTable th{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}.statusTable th{background:#edf5fa;color:var(--primary);font-weight:800}.statusTable tbody tr:hover{background:#f8fbfd}.exportLinks,.filters{margin-top:20px}@media (max-width:800px){.shell,.shell.narrow{padding:16px}.panel,.subPanel{padding:20px}.brandHeader{align-items:flex-start;flex-direction:column}.brandLabel{max-width:100%;text-align:left}.brandLogoImage{max-height:34px;width:min(196px,68vw)}.progress{grid-template-columns:repeat(2,minmax(0,1fr))}.respondentGrid{grid-template-columns:1fr}.saveBar{align-items:stretch;flex-direction:column}.buttonRow{display:grid;grid-template-columns:1fr}.button{width:100%}}