:root {
  --ink:#15212b;
  --paper:#f5f3ed;
  --white:#fff;
  --blue:#1266df;
  --blue-dark:#0b4fb5;
  --line:#c9c6bd;
  --muted:#596874;
  --danger:#9a3029;
  --success:#17654b;
  --display:"Newsreader",Georgia,serif;
  --body:"Hanken Grotesk",Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { min-width:320px; margin:0; background:var(--paper); color:var(--ink); font:16px/1.55 var(--body); }
button,input,textarea,select { font:inherit; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; padding:10px 14px; background:#fff; color:var(--ink); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
:focus-visible { outline:3px solid #fff; outline-offset:2px; box-shadow:0 0 0 6px var(--blue); }
.builder-header { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0 max(24px,calc((100% - 1500px)/2)); background:var(--ink); color:#fff; }
.builder-header > span { color:#c4cfd7; font-size:14px; }
.builder-brand { display:inline-flex; align-items:center; color:#fff; font:500 26px/1 var(--display); text-decoration:none; letter-spacing:-.025em; }
.builder-brand::before { content:""; width:42px; height:36px; margin-right:11px; flex:0 0 auto; background:url('/sales/assets/credentialedmd-mark-light.svg') center / contain no-repeat; }
.builder-brand span { color:#9ac1e3; font:inherit; letter-spacing:inherit; }
.builder-progress { background:#fff; border-bottom:1px solid var(--line); }
.builder-progress ol { width:min(1500px,calc(100% - 48px)); min-height:62px; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:0 auto; padding:0; list-style:none; }
.builder-progress li { display:flex; align-items:center; gap:10px; color:#78838b; font-size:14px; }
.builder-progress li > span { width:28px; height:28px; display:grid; place-items:center; border:1px solid #aeb6bc; border-radius:50%; font-size:12px; }
.builder-progress .complete,.builder-progress .current { color:var(--ink); font-weight:700; }
.builder-progress .complete > span { background:var(--ink); border-color:var(--ink); color:#fff; }
.builder-progress .current > span { background:var(--blue); border-color:var(--blue); color:#fff; }
.builder-layout { width:min(1500px,100%); margin:0 auto; display:grid; grid-template-columns:minmax(390px,500px) minmax(0,1fr); }
.builder-panel { padding:32px clamp(24px,4vw,44px); background:#fff; border-right:1px solid var(--line); }
.builder-intro > p:first-child { margin:0 0 12px; color:var(--blue-dark); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.builder-intro h1 { max-width:560px; margin:0; font:500 clamp(32px,3vw,40px)/1.08 var(--display); letter-spacing:-.025em; }
.builder-intro > p:last-child { max-width:65ch; margin:22px 0 0; color:var(--muted); }
.builder-form { margin-top:28px; }
.builder-form fieldset { min-width:0; margin:0; padding:32px 0; border:0; border-top:1px solid var(--line); }
.builder-form legend { padding:0 16px 0 0; color:var(--ink); font-weight:700; }
.upload-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:4px; }
.upload-control { min-height:140px; display:flex; flex-direction:column; justify-content:space-between; gap:10px; padding:16px; background:var(--paper); border:1px solid var(--line); cursor:pointer; transition:background-color .18s ease,border-color .18s ease; }
.upload-control:hover { background:#eef4ff; border-color:var(--blue); }
.upload-control:has(+ input:focus-visible) { outline:3px solid #fff; outline-offset:2px; box-shadow:0 0 0 6px var(--blue); }
.upload-label { color:var(--blue-dark); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.upload-control strong { font-size:17px; line-height:1.25; overflow-wrap:anywhere; }
.upload-control small { color:var(--muted); font-size:13px; line-height:1.4; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.field-grid { display:grid; grid-template-columns:1fr 150px; gap:18px 14px; margin-top:20px; }
.field-grid label { display:grid; gap:7px; }
.field-grid label > span { font-size:13px; font-weight:700; }
.field-grid .wide { grid-column:1/-1; }
.field-grid input,.field-grid textarea { width:100%; min-height:48px; padding:11px 13px; border:1px solid #8e979d; border-radius:0; background:#fff; color:var(--ink); }
.field-grid textarea { min-height:108px; resize:vertical; }
.field-grid input:focus,.field-grid textarea:focus,.preview-toolbar select:focus { border-color:var(--blue); outline:3px solid #c9dcff; outline-offset:1px; box-shadow:none; }
.field-grid small { color:var(--muted); font-size:12px; }
.builder-confirmation { display:grid; grid-template-columns:22px 1fr; gap:12px; padding:16px 0; color:var(--muted); font-size:14px; }
.builder-confirmation input { width:18px; height:18px; margin-top:3px; accent-color:var(--ink); }
.builder-actions { display:flex; gap:12px; margin-top:24px; }
.builder-button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:12px 18px; border:1px solid var(--ink); border-radius:0; font-weight:700; cursor:pointer; }
.builder-button.primary { flex:1; background:var(--ink); color:#fff; }
.builder-button.primary:hover { background:var(--blue-dark); border-color:var(--blue-dark); }
.builder-button.secondary { background:#fff; color:var(--ink); }
.builder-button.secondary:hover { background:var(--paper); }
.builder-status { min-height:24px; margin:12px 0 0; color:var(--muted); font-size:14px; }
.builder-status.error { color:var(--danger); }
.builder-status.success { color:var(--success); }
.builder-stage { min-width:0; padding:clamp(30px,4vw,54px); background:#e8ebed; }
.preview-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:16px; margin-bottom:18px; }
.preview-toolbar > div span,.preview-toolbar label { display:block; color:#52616b; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.preview-toolbar > div strong { display:block; margin-top:4px; font:500 26px/1.1 var(--display); }
.preview-toolbar label { display:grid; gap:6px; }
.preview-toolbar select { min-height:44px; padding:8px 34px 8px 12px; border:1px solid #89949b; background:#fff; color:var(--ink); text-transform:none; letter-spacing:0; }
.preview-frame-wrap { position:relative; min-height:720px; background:#fff; box-shadow:0 24px 60px -38px rgba(20,33,43,.65); overflow:hidden; }
.preview-frame-wrap iframe { width:100%; height:min(780px,calc(100vh - 230px)); min-height:680px; display:block; border:0; background:#fff; }
.preview-loading { position:absolute; inset:0; z-index:2; display:grid; place-items:center; background:#fff; color:var(--muted); }
.preview-loading[hidden] { display:none; }
.preview-note { max-width:70ch; margin:16px 0 0; color:#59666f; font-size:13px; }
.preview-frame-wrap.preview-empty { min-height:240px; box-shadow:none; border:1px dashed #a6b2b9; }
.preview-empty .preview-loading { position:static; min-height:240px; padding:32px; text-align:center; line-height:1.7; }
.preview-frame-wrap iframe[hidden] { display:none; }
.builder-return { color:#e4edf5; font-size:14px; text-underline-offset:4px; }
.upload-help { color:var(--muted); font-size:13px; margin:6px 0 0; }
.builder-text-button { padding:0; background:none; border:0; color:var(--blue-dark); text-align:left; font-size:13px; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.builder-optional { border-top:1px solid var(--line); padding:22px 0 30px; }
.builder-optional summary { cursor:pointer; font-weight:700; }
.builder-optional summary span { font-weight:400; font-size:13px; color:var(--muted); margin-left:8px; }
.builder-mobile-preview { display:none; }
@media(min-width:1051px) {
  .builder-stage { position:sticky; top:0; align-self:start; height:100vh; padding:28px; overflow:auto; }
  .preview-frame-wrap { min-height:560px; }
  .preview-frame-wrap iframe { height:calc(100vh - 200px); min-height:560px; }
}
@media (max-width:1050px) {
  .builder-layout { grid-template-columns:1fr; }
  .builder-panel { border-right:0; border-bottom:1px solid var(--line); }
  .builder-stage { padding-inline:24px; }
  .preview-frame-wrap iframe { height:720px; }
  body { padding-bottom:76px; }
  .builder-stage { display:none; }
  body.show-preview .builder-stage { display:block; }
  body.show-preview .builder-panel { display:none; }
  .builder-mobile-preview { display:block; position:fixed; bottom:16px; left:50%; transform:translateX(-50%); z-index:10; border:1px solid #fff; border-radius:4px; background:var(--ink); color:#fff; padding:12px 24px; min-height:48px; font-weight:700; box-shadow:0 4px 18px #15212b33; cursor:pointer; white-space:nowrap; }
}
@media (max-width:680px) {
  .builder-header { padding:12px 16px; flex-wrap:wrap; gap:10px; }
  .builder-return { margin-left:auto; }
  .builder-progress ol { width:100%; min-height:76px; padding:10px 16px; }
  .builder-progress ol { grid-template-columns:repeat(2,1fr); }
  .builder-progress li { justify-content:flex-start; font-size:11px; line-height:1.2; }
  .builder-progress li > span { font-size:12px; }
  .builder-panel { padding:28px 16px; }
  .field-grid { grid-template-columns:1fr; }
  .field-grid .wide { grid-column:auto; }
  .builder-actions,.preview-toolbar { align-items:stretch; flex-direction:column; }
  .builder-actions .builder-button { width:100%; }
  .builder-stage { padding:28px 16px; }
  .preview-frame-wrap { min-height:640px; }
  .preview-frame-wrap iframe { min-height:640px; height:70vh; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .upload-control { transition-duration:.01ms; }
}
