:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#1e293b;background:#eef2f7}*{box-sizing:border-box}body{margin:0}.topbar{height:58px;background:#fff;border-bottom:1px solid #dbe3ec;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.brand{font-weight:750}.participant{font-size:12px;color:#64748b}.page{max-width:1240px;margin:22px auto;padding:0 16px}.panel{background:#fff;border:1px solid #dbe3ec;border-radius:10px;padding:24px;box-shadow:0 3px 14px rgba(15,23,42,.05)}.welcome{max-width:780px;margin:42px auto}.welcome h1{font-size:26px;margin:0 0 18px}.welcome-copy{color:#334155;font-size:14px;line-height:1.9}.welcome-copy p{margin:0 0 12px}.welcome-copy p:first-child{font-weight:700}.muted{color:#64748b;font-size:13px;line-height:1.7}.consent{display:flex;align-items:flex-start;gap:9px;margin-top:21px;font-size:13px;line-height:1.7;padding:13px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px}.consent input{margin-top:5px}.primary,.secondary,.next-page-btn{border:0;border-radius:7px;padding:10px 18px;font-weight:700;cursor:pointer}.primary{background:#2563eb;color:#fff}.primary:disabled{background:#cbd5e1;cursor:not-allowed}.secondary{background:#e2e8f0;color:#334155}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:9px 11px;margin-top:12px;font-size:12px;display:none}.progress-wrap{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.progress-title{font-weight:750}.progress-track{height:7px;background:#e2e8f0;border-radius:10px;overflow:hidden;margin-top:6px}.progress-fill{height:100%;background:#2563eb}.embed-frame{width:100%;border:0;background:#fff;min-height:760px;border-radius:8px}.embed-shell{padding:0;overflow:hidden}.embed-footer{border-top:1px solid #e2e8f0;padding:18px;background:#fff;text-align:center}.ready-note{font-size:13px;color:#64748b}.ready-note.ok{color:#166534;font-weight:700}.next-page-wrap{display:none;margin-top:15px;text-align:center}.next-page-btn{min-width:220px;min-height:58px;background:#2563eb;color:#fff;font-size:21px;box-shadow:0 4px 12px rgba(37,99,235,.2)}.next-page-btn:hover{background:#1d4ed8;transform:translateY(-1px)}.instruction-shell{max-width:1140px;margin:auto}.survey{max-width:900px;margin:auto}.survey h1{font-size:22px;margin-top:0}.question{padding:16px 0;border-bottom:1px solid #e2e8f0}.question:last-child{border-bottom:0}.question-label{font-size:14px;font-weight:700;margin-bottom:10px}.required{color:#dc2626}.likert{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.likert label,.radio-list label{border:1px solid #cbd5e1;border-radius:7px;padding:9px 7px;font-size:12px;text-align:center;cursor:pointer}.likert input,.radio-list input{margin-right:4px}.radio-list{display:flex;flex-direction:column;gap:7px}.survey textarea,.survey input[type=text],.phone-card input{width:100%;padding:11px 12px;border:1px solid #cbd5e1;border-radius:7px;font:inherit}.survey textarea{min-height:95px}.submitted-box{margin-top:22px;padding:14px;border:1px solid #86efac;background:#f0fdf4;color:#166534;border-radius:7px;text-align:center;font-weight:700}.phone-card,.complete,.transition-card{max-width:700px;margin:65px auto;text-align:center}.phone-card{text-align:left}.phone-card h1,.complete h1,.transition-card h1{margin-top:0}.privacy-note{padding:12px 14px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:7px;font-size:13px;line-height:1.7}.complete .code{font-size:22px;font-weight:800;background:#f1f5f9;border-radius:8px;padding:12px;margin:18px 0}.local-only{display:none;background:#fff7ed;border:1px solid #fed7aa;padding:12px;border-radius:7px;margin-top:18px}.local-only select{width:100%;padding:9px;border:1px solid #cbd5e1;border-radius:6px;margin-top:8px}.spinner{display:none;font-size:12px;color:#64748b;margin-left:8px}@media(max-width:700px){.topbar{padding:0 12px}.page{margin:12px auto}.panel{padding:17px}.likert{grid-template-columns:1fr}.likert label{text-align:left}.actions{width:100%}.actions button{flex:1}.next-page-btn{width:100%}}


/* V3 integration: prevent browser scroll anchoring when iframe heights change. */
.embed-shell,
.embed-frame,
.final-survey-shell {
  overflow-anchor: none;
}

.embed-frame {
  display: block;
  transition: none;
}

.embed-footer {
  position: relative;
  z-index: 2;
}

.final-survey-shell {
  max-width: 1280px;
  margin: 0 auto;
}

button:disabled {
  cursor: not-allowed;
}


/* V4 fixed welcome-page design integrated into the V3 shell. */
.welcome-v4-card{max-width:980px;margin:28px auto;background:#fff;border:1px solid #d7e2ef;border-radius:10px;box-shadow:0 6px 22px rgba(15,39,71,.07);overflow:hidden}
.welcome-v4-header{background:#3b82f6;color:#fff;padding:16px 24px;font-size:20px;font-weight:800}
.welcome-v4-content{padding:30px 34px 34px}
.welcome-v4-greeting{font-size:18px;color:#16304f;margin-bottom:16px;font-weight:700}
.welcome-v4-text{font-size:17px;color:#334155;line-height:1.8}
.welcome-v4-text p{margin:0 0 16px}
.welcome-v4-emphasis{font-weight:800;color:#0f2747}
.welcome-v4-consent-box{margin-top:28px;padding:18px 20px;border:1px solid #bfdbfe;border-left:5px solid #3b82f6;border-radius:8px;background:#f8fbff}
.welcome-v4-consent-title{margin:0 0 12px;font-size:18px;color:#102a4c;font-weight:800}
.welcome-v4-consent-row{display:flex;align-items:flex-start;gap:10px;font-size:16px;color:#334155;line-height:1.8}
.welcome-v4-consent-row input{margin-top:7px;width:18px;height:18px;cursor:pointer;flex:0 0 auto}
.welcome-v4-footer{margin-top:28px;display:flex;justify-content:center;align-items:center;gap:12px}
.welcome-v4-start{min-width:220px;min-height:54px;border:none;border-radius:6px;background:#2563eb;color:#fff;font-size:18px;font-weight:750;cursor:pointer;transition:.15s ease}
.welcome-v4-start:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}
.welcome-v4-start:disabled{background:#cbd5e1;cursor:not-allowed;transform:none}
.welcome-v4-test{margin:22px 0 0}
@media(max-width:700px){.welcome-v4-card{margin:12px auto}.welcome-v4-content{padding:22px 18px 26px}.welcome-v4-header{font-size:18px;padding:14px 18px}.welcome-v4-text,.welcome-v4-consent-row{font-size:16px}.welcome-v4-footer{flex-direction:column}.welcome-v4-start{width:100%}}

/* V5 navigation spacing: keep continuation controls close to completed content. */
.embed-footer{padding:10px 14px 12px}
.next-page-wrap{margin-top:8px}
.transition-card{margin:34px auto}


/* V8 pre-treatment baseline information page. */
.baseline-card{max-width:900px;margin:28px auto;padding:30px 34px}
.baseline-card h1{margin:0 0 10px;font-size:24px;color:#16304f}
.baseline-intro{margin:0 0 22px;color:#64748b;font-size:15px;line-height:1.8}
.baseline-question{padding:18px 0;border-top:1px solid #e2e8f0}
.baseline-question:first-of-type{border-top:0}
.baseline-question-title{font-size:16px;font-weight:750;color:#1e293b;margin-bottom:11px}
.baseline-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.baseline-option{display:flex;align-items:center;gap:8px;border:1px solid #cbd5e1;border-radius:7px;padding:10px 12px;font-size:14px;cursor:pointer;background:#fff}
.baseline-option:hover{border-color:#93c5fd;background:#f8fbff}
.baseline-option:has(input:checked){border-color:#3b82f6;background:#eff6ff;color:#1e40af;font-weight:700}
.baseline-option input{margin:0}
.baseline-actions{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:24px}
.baseline-actions .primary,.baseline-actions .secondary{min-width:180px;min-height:48px;font-size:16px}
.baseline-question.validation-highlight{outline:3px solid rgba(220,38,38,.18);outline-offset:4px;background:#fff7f7;border-radius:6px}
@media(max-width:700px){.baseline-card{margin:12px auto;padding:22px 18px}.baseline-options{grid-template-columns:1fr}.baseline-actions{flex-direction:column}.baseline-actions .primary,.baseline-actions .secondary{width:100%}}

/* V8.2.1: viewport-level patient information access for embedded Case pages. */
.viewport-patient-info-fab[hidden]{display:none!important}
.viewport-patient-info-fab{position:fixed;right:max(18px,calc((100vw - 1240px)/2 - 126px));top:50%;transform:translateY(-50%);z-index:35;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 12px;border:1px solid #93c5fd;border-radius:999px;background:#fff;color:#1d4ed8;box-shadow:0 8px 24px rgba(15,23,42,.14);font-size:12px;font-weight:750;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .15s ease}
.viewport-patient-info-fab:hover{transform:translateY(calc(-50% - 1px));background:#eff6ff;box-shadow:0 10px 28px rgba(15,23,42,.18)}
.viewport-patient-info-fab:focus-visible,.viewport-patient-drawer-close:focus-visible{outline:3px solid rgba(59,130,246,.3);outline-offset:2px}
.viewport-patient-drawer-backdrop{position:fixed;inset:58px 0 0;z-index:40;background:rgba(15,23,42,.38);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.viewport-patient-info-drawer{position:fixed;top:58px;right:0;z-index:45;width:min(520px,calc(100vw - 24px));height:calc(100vh - 58px);background:#f8fafc;box-shadow:-16px 0 40px rgba(15,23,42,.18);transform:translateX(102%);visibility:hidden;transition:transform .24s ease,visibility .24s ease;display:flex;flex-direction:column}
.viewport-patient-drawer-backdrop.open{opacity:1;visibility:visible}
.viewport-patient-info-drawer.open{transform:translateX(0);visibility:visible}
.viewport-patient-drawer-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid #e2e8f0;background:#fff}
.viewport-patient-drawer-heading{font-size:16px;font-weight:800;color:#0f172a}
.viewport-patient-drawer-subtitle{margin-top:2px;font-size:11px;color:#64748b}
.viewport-patient-drawer-close{width:34px;height:34px;flex:0 0 auto;border:1px solid #cbd5e1;border-radius:50%;background:#fff;color:#475569;font-size:20px;line-height:1;cursor:pointer}
.viewport-patient-drawer-content{flex:1;min-height:0;padding:0;background:#f8fafc}
.viewport-patient-info-frame{display:block;width:100%;height:100%;border:0;background:#f8fafc}
body.viewport-patient-drawer-open{overflow:hidden}
@media(max-width:1450px){.viewport-patient-info-fab{right:12px;width:42px;height:42px;min-height:42px;padding:0;justify-content:center}.viewport-patient-info-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}
@media(max-width:700px){.viewport-patient-info-fab{top:auto;right:12px;bottom:16px;transform:none}.viewport-patient-info-fab:hover{transform:translateY(-1px)}.viewport-patient-info-drawer{top:58px;width:100vw;height:calc(100vh - 58px)}.viewport-patient-drawer-backdrop{inset:58px 0 0}}
