:root{
  --ink-900:#161a23; --ink-700:#3a4152; --ink-500:#6b7280; --ink-300:#c9ced6; --ink-100:#eef0f3;
  --paper:#ffffff; --bg:#f5f6f8;
  /* Trust blue — the primary interactive color across forms, steps, links */
  --accent:#1f56d1; --accent-600:#163f9e; --accent-100:#e7edfb;
  --amber:#b7791f; --amber-100:#fdf3e0; --amber-border:#f0d9a8;
  --green:#1f7a4d; --green-100:#e7f6ee;
  --red:#b23b3b; --red-100:#fbeaea;
  --radius:14px;
  --shadow:0 1px 2px rgba(22,26,35,.06), 0 8px 24px rgba(22,26,35,.06);
  /* Deep navy hero (trust) + warm gold accent (warmth / invitation to join) */
  --hero-bg:#0c1526; --hero-bg-2:#17273f; --hero-ink:#f7f9fc; --hero-sub:#aab8cf; --hero-border:#28374f;
  --neon:#f0a92e; --neon-ink:#2b1c04; --neon-dim:rgba(240,169,46,.16);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
html, body{overflow-x:hidden;}
body{margin:0;background:var(--bg);color:var(--ink-900);min-height:100vh;display:flex;justify-content:center;padding:32px 16px 80px;}
.app{width:100%;max-width:800px;}
.app--wide{max-width:1180px;}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.brand-mark{width:36px;height:36px;border-radius:10px;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;flex-shrink:0;}
.brand-text h1{font-size:16px;margin:0;font-weight:700;}
.brand-text p{font-size:12.5px;margin:2px 0 0;color:var(--ink-500);}
.brand-help{margin-left:auto;font-size:13px;color:var(--accent);text-decoration:none;font-weight:600;}
.brand-row{display:flex;align-items:center;width:100%;}
.card{background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 26px;margin-bottom:16px;}

/* ---------- Hero card (event landing / marketing block) ---------- */
/* .full-bleed stretches the hero edge-to-edge across the full browser width,
   independent of the (narrower) centered content column below it. Standard
   "break out of container" trick — relies on the parent being horizontally
   centered with symmetric padding, which body/.app are. */
.hero-card.full-bleed{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  border-radius:0;
}
.hero-card{
  /* Blue/black gradient hero (no background photo) — per-event banner
     upload from the admin panel is a planned feature, not wired up yet. */
  background:
    linear-gradient(115deg, rgba(6,11,22,.94) 0%, rgba(12,21,38,.82) 38%, rgba(23,39,63,.35) 100%),
    radial-gradient(120% 160% at 100% 0%, var(--hero-bg-2) 0%, var(--hero-bg) 55%);
  border:1px solid var(--hero-border);
  border-radius:20px;
  margin-bottom:28px;
  color:var(--hero-ink);
  position:relative;
  overflow:hidden;
}
.hero-inner{max-width:1180px;margin:0 auto;padding:44px 40px;}
.hero-kicker{display:inline-flex;align-items:center;gap:8px;background:var(--neon-dim);color:var(--neon);border:1px solid rgba(240,169,46,.4);border-radius:99px;padding:5px 12px;font-size:12.5px;font-weight:700;margin-bottom:18px;text-transform:uppercase;letter-spacing:.04em;}
/* Event name — the main attention-grabber in the hero, set in a heavy display
   font with a gold gradient fill (falls back to solid gold where text-fill
   gradients aren't supported). */
.event-display{
  font-family:'Anton', 'Arial Narrow', sans-serif;
  font-size:clamp(2.4rem, 6vw, 4.6rem);
  line-height:.94;
  letter-spacing:.01em;
  text-transform:uppercase;
  margin:0 0 16px;
  max-width:820px;
  color:var(--neon);
  text-shadow:0 4px 40px rgba(240,169,46,.25);
}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .event-display{
    background:linear-gradient(100deg, #fff 0%, var(--neon) 55%, #ffd479 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:transparent;
  }
}
.hero-tagline{font-size:17px;color:var(--hero-sub);font-weight:600;margin:0 0 8px;}
.hero-tagline .accent{color:var(--neon);font-weight:800;}
.hero-event-name{font-size:15.5px;color:var(--hero-sub);margin:0 0 22px;font-weight:600;}
.hero-info-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px;}
.hero-info-item{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.05);border:1px solid var(--hero-border);border-radius:10px;padding:9px 13px;font-size:13px;font-weight:600;color:var(--hero-ink);}
.hero-info-item .ic{font-size:14px;}
.btn-neon{background:var(--neon);color:var(--neon-ink);border:none;border-radius:10px;padding:13px 22px;font-size:14.5px;font-weight:800;cursor:pointer;transition:.12s;display:inline-flex;align-items:center;gap:8px;text-decoration:none;box-shadow:0 6px 20px rgba(240,169,46,.25);}
.btn-neon:hover{filter:brightness(.96);}
.trust-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px;}
.trust-item{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--hero-sub);font-weight:600;}
.trust-item .tick{color:var(--neon);font-weight:800;}

/* ---------- Wizard wide layout (main form + sticky aside) ---------- */
.wizard-grid{display:grid;grid-template-columns:1fr 300px;gap:30px;align-items:start;}
.wizard-aside{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px;}
.aside-card{background:var(--ink-100);border-radius:12px;padding:16px 18px;}
.aside-card h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500);margin:0 0 12px;font-weight:700;}
.aside-row{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;padding:7px 0;border-bottom:1px solid var(--ink-300);}
.aside-row:last-child{border-bottom:none;}
.aside-row .k{color:var(--ink-500);flex-shrink:0;}
.aside-row .v{font-weight:700;color:var(--ink-900);text-align:right;}
.aside-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--ink-700);}

/* ---------- Step indicator ---------- */
.step-indicator{display:flex;align-items:center;gap:0;margin-bottom:24px;}
.step-item{display:flex;align-items:center;gap:9px;color:var(--ink-500);font-size:13.5px;font-weight:700;}
.step-item .num{width:24px;height:24px;border-radius:50%;background:var(--ink-100);color:var(--ink-500);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;}
.step-item.active{color:var(--ink-900);}
.step-item.active .num{background:var(--accent);color:#fff;}
.step-item.done .num{background:var(--green);color:#fff;}
.step-line{flex:1;height:2px;background:var(--ink-100);margin:0 12px;min-width:20px;}
.step-line.done{background:var(--green);}

/* ---------- Consent / rules box ---------- */
.consent-box{border:1.5px solid var(--ink-300);border-radius:12px;margin:18px 0;overflow:hidden;}
.consent-box .rules-scroll{max-height:170px;overflow-y:auto;padding:14px 16px;font-size:13px;line-height:1.6;color:var(--ink-700);background:var(--ink-100);white-space:pre-line;}
.consent-check{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;font-size:13.5px;color:var(--ink-900);font-weight:600;background:var(--ink-100);border:1.5px solid var(--ink-300);border-radius:10px;margin:10px 0 18px;}
.consent-check input{margin-top:3px;width:18px;height:18px;flex-shrink:0;accent-color:var(--accent);}

/* ---------- Two-part conditions / image-use authorization ---------- */
.consent-section{border:1.5px solid var(--ink-300);border-radius:14px;padding:18px 18px 6px;margin:18px 0;background:#fbfbfc;}
.consent-h3{font-size:15px;font-weight:800;color:var(--ink-900);margin:6px 0 10px;}
.consent-section h3.consent-h3:first-child{margin-top:0;}
.consent-list{margin:0 0 4px;padding-left:20px;}
.consent-list li{font-size:13px;line-height:1.65;color:var(--ink-700);margin-bottom:6px;}
.consent-p{font-size:13.5px;line-height:1.6;color:var(--ink-700);margin:0 0 10px;}
.consent-note{font-size:12.5px;line-height:1.6;color:var(--ink-500);margin:0 0 14px;}
.consent-note a, .consent-links a{color:var(--accent);font-weight:600;text-decoration:none;}
.consent-links{font-size:12.5px;color:var(--ink-500);margin-bottom:16px;}

/* ---------- Slot card (availability style) ---------- */
.slot-status{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;}
.slot-status.ok{background:var(--green-100);color:var(--green);}
.slot-status.none{background:var(--red-100);color:var(--red);}
h2.panel-title{font-size:20px;margin:0 0 4px;}
p.panel-sub{color:var(--ink-500);font-size:13.5px;margin:0 0 22px;}
label{display:block;font-size:13px;font-weight:600;color:var(--ink-700);margin-bottom:6px;}
.field{margin-bottom:16px;}
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], select{
  width:100%;padding:11px 13px;border:1.5px solid var(--ink-300);border-radius:10px;font-size:14.5px;color:var(--ink-900);background:#fff;
}
input:focus, select:focus{outline:none;border-color:var(--accent);}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.event-summary{background:var(--ink-100);border-radius:12px;padding:14px 16px;margin-bottom:20px;font-size:13.5px;color:var(--ink-700);}
.event-summary strong{color:var(--ink-900);}
.slot-note{display:flex;gap:10px;background:var(--accent-100);border:1px solid #c7d4fb;border-radius:12px;padding:13px 15px;margin-bottom:18px;font-size:13px;color:var(--ink-700);}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:6px;}
.slot{border:1.5px solid var(--ink-300);border-radius:12px;padding:12px 12px;cursor:pointer;background:#fff;text-align:left;transition:.12s;}
.slot:hover:not(.full){border-color:var(--accent);background:var(--accent-100);}
.slot.selected{border-color:var(--accent);background:var(--accent-100);box-shadow:0 0 0 3px var(--accent-100) inset, 0 0 0 1.5px var(--accent);}
.slot.full{opacity:.45;cursor:not-allowed;background:var(--ink-100);}
.slot .top-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;}
.slot .time{font-weight:700;font-size:15px;}
.slot .cap{font-size:12px;color:var(--ink-500);margin-top:3px;}
.slot .cap.low{color:var(--amber);font-weight:600;}
.slot .cap.none{color:#b23b3b;font-weight:600;}
.notice-box{background:var(--amber-100);border:1.5px solid var(--amber-border);border-radius:12px;padding:16px 18px;margin:18px 0;font-size:14px;line-height:1.55;color:#5c4310;}
.notice-box b{color:#4a3609;}
.btn-row{display:flex;gap:10px;margin-top:22px;}
button, .btn{font:inherit;border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:.12s;display:inline-block;text-decoration:none;text-align:center;}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{background:var(--accent-600);}
.btn-primary:disabled{background:var(--ink-300);cursor:not-allowed;}
.btn-secondary{background:var(--ink-100);color:var(--ink-900);}
.btn-secondary:hover{background:var(--ink-300);}
.btn-block{width:100%;}
.admin-topbar{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:8px 0 0;font-size:12.5px;}
.admin-topbar a{color:var(--ink-500);text-decoration:none;font-weight:600;}
.admin-topbar a:hover{color:var(--ink-900);}
.admin-topbar-form{margin:0;}
.admin-topbar-form button{background:none;border:none;padding:0;color:var(--ink-500);font-weight:600;font-size:12.5px;cursor:pointer;font-family:inherit;}
.admin-topbar-form button:hover{color:var(--ink-900);}
.confirm-head{text-align:center;margin-bottom:22px;}
.confirm-check{width:56px;height:56px;border-radius:50%;background:var(--green-100);color:var(--green);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:28px;}
.confirm-head h2{margin:0 0 4px;font-size:21px;}
.confirm-head p{margin:0;color:var(--ink-500);font-size:13.5px;}
#participant-card{border:1.5px dashed var(--ink-300);border-radius:14px;padding:20px;background:#fbfbfc;margin-bottom:18px;}
.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin-bottom:14px;}
.card-field .k{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-500);margin-bottom:2px;}
.card-field .v{font-size:15px;font-weight:700;color:var(--ink-900);}
.code-block{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--accent-100);border:1.5px solid #c7d4fb;border-radius:10px;padding:12px 14px;margin-top:6px;}
.code-block .code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:19px;font-weight:700;letter-spacing:.05em;color:var(--accent-600);}
.qr-wrap{text-align:center;margin:14px 0;}
.qr-wrap img{border-radius:10px;border:1px solid var(--ink-300);}
.reminder-banner{background:var(--amber-100);border:1.5px solid var(--amber-border);border-radius:12px;padding:14px 16px;font-size:13.5px;line-height:1.55;color:#5c4310;margin-bottom:18px;font-weight:600;}
.info-line{font-size:13px;color:var(--ink-700);margin-bottom:9px;line-height:1.5;}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;}
.action-grid a, .action-grid button{width:100%;}
.event-list{list-style:none;padding:0;margin:0;}
.event-list li{border:1.5px solid var(--ink-300);border-radius:12px;padding:14px 16px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;}
.event-list a{color:var(--accent);font-weight:600;text-decoration:none;}
table{width:100%;border-collapse:collapse;font-size:13.5px;}
th, td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--ink-100);}
th{color:var(--ink-500);font-weight:600;font-size:12px;text-transform:uppercase;}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:700;}
.badge.active{background:var(--green-100);color:var(--green);}
.badge.inactive{background:var(--ink-100);color:var(--ink-500);}
.foot-link{display:block;text-align:center;margin-top:18px;font-size:12.5px;color:var(--ink-500);}
@media (max-width:960px){
  .wizard-grid{grid-template-columns:1fr;}
  .wizard-aside{position:static;}
}
@media (max-width:480px){
  .row2, .card-grid, .action-grid{grid-template-columns:1fr;}
  .hero-inner{padding:28px 20px;}
  .event-display{max-width:100%;}
  .hero-tagline{font-size:15px;}
  .step-item span.label{display:none;}
  .slot-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));}
  .hero-info-row{gap:8px;}
  .hero-info-item{font-size:12px;padding:8px 11px;}
}
@media print{
  body *{visibility:hidden;}
  #participant-card, #participant-card *{visibility:visible;}
  #participant-card{position:absolute;top:0;left:0;width:100%;border:2px solid #000;}
}

/* ============================================================
   Individual Photoshoot module additions (ps- prefix) — purely
   additive, none of the rules above were changed.
   ============================================================ */
.ps-nav{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 4px;}
.ps-nav-item{background:var(--ink-100);color:var(--ink-700);border-radius:8px;padding:7px 12px;font-size:13px;font-weight:600;text-decoration:none;}
.ps-nav-item--active{background:var(--accent);color:#fff;}
.ps-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:18px 0;}
.ps-stat-card{background:var(--ink-100);border-radius:12px;padding:16px;text-align:center;}
.ps-stat-n{font-size:28px;font-weight:800;color:var(--ink-900);}
.ps-stat-k{font-size:12px;color:var(--ink-500);margin-top:4px;}
.ps-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:18px;font-size:11px;font-weight:700;color:var(--ink-500);text-transform:uppercase;text-align:center;}
.ps-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px;}
.ps-cal-cell{display:block;min-height:64px;border:1.5px solid var(--ink-300);border-radius:10px;padding:8px;text-decoration:none;color:var(--ink-900);background:#fff;}
.ps-cal-cell:hover{border-color:var(--accent);background:var(--accent-100);}
.ps-cal-cell--empty{border:none;background:transparent;}
.ps-cal-cell--closed{background:var(--red-100);border-color:#eccaca;}
.ps-cal-daynum{font-weight:700;font-size:13px;}
.ps-cal-tag{font-size:10.5px;color:var(--ink-500);margin-top:4px;}
.ps-cal-tag--closed{color:var(--red);font-weight:700;}
.badge.ps-pending{background:var(--amber-100);color:var(--amber);}
.badge.ps-done{background:var(--accent-100);color:var(--accent-600);}

/* ---------- Style / package picker cards (public wizard) ---------- */
.ps-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:6px;align-items:stretch;}
.ps-pick-card{display:flex;flex-direction:column;height:100%;border:1.5px solid var(--ink-300);border-radius:14px;overflow:hidden;cursor:pointer;background:#fff;transition:.12s;text-align:left;color:inherit;text-decoration:none;}
.ps-pick-card:hover{border-color:var(--accent);}
.ps-pick-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-100) inset, 0 0 0 1.5px var(--accent);}
/* Fixed-ratio thumbnail container: every category card gets the exact same
   image footprint (4:3) no matter what size photo was uploaded, so the grid
   always lines up cleanly and never reflows while an image loads. */
.ps-pick-cover-wrap{width:100%;aspect-ratio:4/3;overflow:hidden;flex-shrink:0;background:var(--ink-100);}
.ps-pick-cover-wrap img.ps-pick-cover{width:100%;height:100%;display:block;object-fit:cover;object-position:var(--image-position, center);}
.ps-pick-body{flex:1;display:flex;flex-direction:column;padding:14px 16px;}
.ps-pick-title{font-weight:700;font-size:15px;margin:0 0 4px;}
/* Clamped to 2 lines so a longer description never makes one card taller
   than its neighbors in the same row. */
.ps-pick-desc{font-size:12.5px;color:var(--ink-500);margin:0 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em;}
.ps-pick-price{font-weight:800;color:var(--accent);font-size:18px;margin-top:8px;}
.ps-pick-meta{font-size:12px;color:var(--ink-500);margin-top:2px;}
.ps-pick-list{list-style:none;margin:0 0 8px;padding:0;}
.ps-pick-list li{font-size:12.5px;color:var(--ink-700);padding:2px 0;}
.ps-pick-card{position:relative;}
.ps-pick-card--popular{border-color:var(--accent);box-shadow:0 0 0 1.5px var(--accent);}
.ps-pick-badge{position:absolute;top:10px;right:10px;background:var(--accent);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.02em;padding:4px 9px;border-radius:999px;z-index:1;}
.theme-editorial .ps-pick-card--popular{border-color:var(--ed-accent);box-shadow:0 0 0 1px var(--ed-accent);}
.theme-editorial .ps-pick-badge{background:var(--ed-accent);border-radius:2px;font-family:'Inter',sans-serif;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}

/* ---------- Prominent "back" navigation button ---------- */
/* Replaces the old plain text .foot-link for actual "go back" actions —
   still text-only links for informational links (policy/licence pages). */
.ps-back-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1.5px solid var(--ink-300);border-radius:999px;font-size:13px;font-weight:700;color:var(--ink-900);text-decoration:none;background:#fff;transition:.12s;margin:0 0 18px;}
.ps-back-btn:hover{border-color:var(--accent);color:var(--accent-600);background:var(--accent-100);}
.ps-back-btn-arrow{font-size:15px;line-height:1;}
.theme-editorial .ps-back-btn{border:1px solid var(--ed-line);border-radius:2px;color:var(--ed-ink);background:var(--ed-paper);text-transform:uppercase;font-size:11.5px;letter-spacing:.07em;font-weight:600;}
.theme-editorial .ps-back-btn:hover{border-color:var(--ed-accent);color:var(--ed-accent-dark);background:var(--ed-accent-soft);}

/* ---------- Quick-toggle availability grid (admin day view) ---------- */
.ps-slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;margin:14px 0 10px;}
.ps-slot-form{margin:0;}
.ps-slot-btn{width:100%;border:1.5px solid var(--ink-300);border-radius:9px;padding:10px 6px;font-size:12.5px;font-weight:700;font-family:inherit;text-align:center;background:#fff;color:var(--ink-500);cursor:pointer;transition:.12s;}
.ps-slot-btn:hover{border-color:var(--accent);}
.ps-slot-open{background:var(--green-100);border-color:var(--green);color:var(--green);}
.ps-slot-open:hover{background:var(--green);color:#fff;}
.ps-slot-empty{background:#fff;border-color:var(--ink-300);color:var(--ink-500);}
.ps-slot-booked{background:var(--ink-100);border-color:var(--ink-300);color:var(--ink-500);cursor:not-allowed;opacity:.7;}
.ps-slot-blocked{background:var(--red-100);border-color:var(--red);color:var(--red);}
.ps-slotgrid-legend{display:flex;flex-wrap:wrap;gap:16px;margin:4px 0 6px;font-size:12px;color:var(--ink-500);align-items:center;}
.ps-legend-swatch{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:5px;vertical-align:middle;border:1.5px solid var(--ink-300);}
.ps-legend-swatch.ps-slot-booked{border-color:var(--ink-300);}
.ps-interval-active{background:var(--accent)!important;color:#fff!important;}

/* ============================================================
   Editorial theme — opt-in via layout({..., theme:'editorial'}).
   Every rule here is scoped under .theme-editorial, so pages that
   don't request it (all of Media Day, all admin pages) render
   exactly as before. Currently used by the public Individual
   Photoshoot pages only.
   ============================================================ */
.theme-editorial{
  --ed-bg:#f7f5f1; --ed-paper:#ffffff; --ed-ink:#14161a; --ed-ink-soft:#6b7280;
  --ed-line:#e4e1da; --ed-accent:#d9531e; --ed-accent-dark:#b8431a; --ed-accent-soft:#efece5;
  --ed-hero-bg:#111318; --ed-hero-ink:#f5f1ea; --ed-hero-sub:#a3a9b5; --ed-hero-border:rgba(255,255,255,.14);
  background:var(--ed-bg);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ed-ink);
}
.theme-editorial .brand-mark{background:var(--ed-ink);border-radius:3px;}
.theme-editorial .brand-text h1{font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.03em;font-size:19px;font-weight:400;}
.theme-editorial .brand-text p{color:var(--ed-ink-soft);}
.theme-editorial .brand-help{color:var(--ed-accent);}

.theme-editorial .card{background:var(--ed-paper);border:1px solid var(--ed-line);border-radius:3px;box-shadow:none;padding:40px 38px;}
.theme-editorial h2.panel-title{font-family:'Bebas Neue',Impact,sans-serif;font-weight:400;font-size:32px;letter-spacing:.01em;text-transform:uppercase;color:var(--ed-ink);}
.theme-editorial p.panel-sub{color:var(--ed-ink-soft);font-size:14px;}

.theme-editorial .hero-card{background:var(--ed-hero-bg);border:none;border-top:1px solid var(--ed-hero-border);border-bottom:1px solid var(--ed-hero-border);border-radius:0;color:var(--ed-hero-ink);}
.theme-editorial .hero-inner{text-align:center;padding:64px 40px 56px;}
.theme-editorial .hero-info-row{justify-content:center;margin-top:30px;}
.theme-editorial .trust-row{justify-content:center;}
.theme-editorial .hero-kicker{background:none;border:none;color:var(--ed-accent);font-size:11px;letter-spacing:.18em;padding:0;margin-bottom:22px;box-shadow:none;}
.theme-editorial .event-display{
  font-family:'Bebas Neue',Impact,sans-serif;text-transform:uppercase;font-weight:400;
  font-size:clamp(2.64rem,7.7vw,5.06rem);letter-spacing:.01em;text-shadow:none;
  background:none;-webkit-text-fill-color:unset;color:var(--ed-hero-ink);max-width:100%;
}
.theme-editorial .hero-tagline{color:var(--ed-hero-sub);font-weight:500;}
.theme-editorial .hero-tagline .accent{color:var(--ed-accent);font-weight:600;}
.theme-editorial .hero-inner::after{content:'';display:block;width:56px;height:1px;background:var(--ed-hero-border);margin:26px auto 0;}
.theme-editorial .hero-event-name{display:none;}
.theme-editorial .hero-info-item{background:rgba(255,255,255,.06);border:1px solid var(--ed-hero-border);color:var(--ed-hero-ink);border-radius:2px;}
.theme-editorial .trust-item{color:var(--ed-hero-sub);}
.theme-editorial .tick{color:var(--ed-accent);}

.theme-editorial .btn-primary{background:var(--ed-ink);color:var(--ed-bg);border-radius:2px;text-transform:uppercase;font-size:12px;letter-spacing:.09em;font-weight:600;padding:14px 22px;}
.theme-editorial .btn-primary:hover{background:var(--ed-accent-dark);}
.theme-editorial .btn-primary:disabled{background:var(--ed-line);color:var(--ed-ink-soft);}
.theme-editorial .btn-secondary{background:transparent;border:1px solid var(--ed-line);color:var(--ed-ink);border-radius:2px;text-transform:uppercase;font-size:12px;letter-spacing:.09em;font-weight:600;}
.theme-editorial .btn-secondary:hover{border-color:var(--ed-ink);background:transparent;}

.theme-editorial .ps-pick-card{background:var(--ed-paper);border:1px solid var(--ed-line);border-radius:3px;box-shadow:none;}
.theme-editorial .ps-pick-card:hover{border-color:var(--ed-accent);}
.theme-editorial .ps-pick-cover{filter:grayscale(1) brightness(1.02);transition:filter .35s ease;}
.theme-editorial .ps-pick-card:hover .ps-pick-cover{filter:grayscale(0);}
.theme-editorial .ps-pick-title{font-family:'Bebas Neue',Impact,sans-serif;font-weight:400;font-size:20px;letter-spacing:.02em;text-transform:uppercase;}
.theme-editorial .ps-pick-price{color:var(--ed-accent);font-family:'Inter',sans-serif;font-weight:800;}
.theme-editorial .ps-pick-desc, .theme-editorial .ps-pick-meta{color:var(--ed-ink-soft);}
.theme-editorial .ps-pick-list li{color:var(--ed-ink);}

.theme-editorial .step-item{color:var(--ed-ink-soft);}
.theme-editorial .step-item .num{background:var(--ed-accent-soft);color:var(--ed-accent-dark);}
.theme-editorial .step-item.active{color:var(--ed-ink);}
.theme-editorial .step-item.active .num{background:var(--ed-ink);color:var(--ed-bg);}
.theme-editorial .step-item.done .num{background:var(--ed-accent);color:#fff;}
.theme-editorial .step-line.done{background:var(--ed-accent);}

.theme-editorial .aside-card{background:var(--ed-accent-soft);border:1px solid var(--ed-line);border-radius:3px;}
.theme-editorial .aside-card h3{color:var(--ed-accent-dark);}
.theme-editorial .aside-row{border-bottom-color:var(--ed-line);}
.theme-editorial .aside-row .k{color:var(--ed-ink-soft);}
.theme-editorial .aside-row .v{color:var(--ed-ink);}

.theme-editorial input[type=text], .theme-editorial input[type=email], .theme-editorial input[type=number],
.theme-editorial input[type=date], .theme-editorial select{
  border:1px solid var(--ed-line);border-radius:2px;background:var(--ed-paper);color:var(--ed-ink);
}
.theme-editorial input:focus, .theme-editorial select:focus{border-color:var(--ed-accent);}
.theme-editorial label{color:var(--ed-ink-soft);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.06em;}

.theme-editorial .ps-cal-cell{background:var(--ed-paper);border-color:var(--ed-line);color:var(--ed-ink);}
.theme-editorial .ps-cal-cell:hover{border-color:var(--ed-accent);background:var(--ed-accent-soft);}
.theme-editorial .ps-cal-cell--closed{background:var(--ed-bg);border-color:var(--ed-line);}
.theme-editorial .ps-cal-cell:focus-visible{outline:2px solid var(--ed-accent);outline-offset:1px;}
.theme-editorial .ps-cal-tag{color:var(--ed-ink-soft);}
.theme-editorial .ps-cal-tag--closed{color:var(--ed-ink-soft);}
.theme-editorial .slot{border:1px solid var(--ed-line);border-radius:2px;background:var(--ed-paper);}
.theme-editorial .slot:hover:not(.full){border-color:var(--ed-accent);background:var(--ed-accent-soft);}
.theme-editorial .slot.selected{border-color:var(--ed-ink);background:var(--ed-accent-soft);box-shadow:none;}
.theme-editorial .slot .time{font-family:'Inter',sans-serif;font-weight:700;}

.theme-editorial .event-summary{background:var(--ed-accent-soft);border:1px solid var(--ed-line);border-radius:2px;color:var(--ed-ink);}
.theme-editorial .event-summary strong{color:var(--ed-ink);}
.theme-editorial .consent-check{background:var(--ed-accent-soft);border:1px solid var(--ed-line);border-radius:2px;color:var(--ed-ink);}
.theme-editorial .consent-check input{accent-color:var(--ed-ink);}

.theme-editorial .confirm-check{background:var(--ed-accent-soft);color:var(--ed-accent-dark);}
.theme-editorial .confirm-head h2{font-family:'Bebas Neue',Impact,sans-serif;font-weight:400;font-size:26px;letter-spacing:.02em;text-transform:uppercase;}

/* ---------- Media Day flow (public.js) -- brand-matched coverage ---------- */
.theme-editorial .btn-neon{background:var(--ed-accent);color:#fff;border-radius:2px;box-shadow:none;text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;font-weight:700;}
.theme-editorial .btn-neon:hover{background:var(--ed-accent-dark);filter:none;}
.theme-editorial .aside-list{color:var(--ed-ink-soft);}
.theme-editorial .cap{color:var(--ed-ink-soft);}
.theme-editorial .card-field .k{color:var(--ed-ink-soft);}
.theme-editorial .card-field .v{color:var(--ed-ink);}
.theme-editorial .consent-h3{color:var(--ed-ink);}
.theme-editorial .consent-links a, .theme-editorial .consent-note a{color:var(--ed-accent);}
.theme-editorial .consent-list li{color:var(--ed-ink-soft);}
.theme-editorial .consent-note{color:var(--ed-ink-soft);}
.theme-editorial .consent-p{color:var(--ed-ink-soft);}
.theme-editorial .consent-section{border:1px solid var(--ed-line);background:var(--ed-bg);border-radius:2px;}
.theme-editorial .event-list li{border:1px solid var(--ed-line);border-radius:2px;}
.theme-editorial .event-list a{color:var(--ed-accent);}
.theme-editorial .qr-wrap img{border:1px solid var(--ed-line);border-radius:2px;}

/* ---------- Admin dashboards (admin.js / psAdmin.js) -- light-touch brand refresh ---------- */
.theme-editorial .badge.inactive{background:var(--ed-line);color:var(--ed-ink-soft);}
.theme-editorial .ps-nav-item{background:var(--ed-bg);color:var(--ed-ink-soft);border-radius:2px;}
.theme-editorial .ps-nav-item--active{background:var(--ed-ink);color:var(--ed-bg);}
.theme-editorial .ps-interval-active{background:var(--ed-accent)!important;color:#fff!important;}
.theme-editorial .ps-slotgrid-legend{color:var(--ed-ink-soft);}
.theme-editorial .ps-legend-swatch{border-color:var(--ed-line);}
.theme-editorial .ps-stat-card{background:var(--ed-bg);border:1px solid var(--ed-line);border-radius:2px;}
.theme-editorial .ps-stat-k{color:var(--ed-ink-soft);}
.theme-editorial .ps-stat-n{color:var(--ed-ink);font-family:'Bebas Neue',Impact,sans-serif;font-size:32px;letter-spacing:.01em;}
.theme-editorial .ps-slot-btn{border-color:var(--ed-line);border-radius:2px;background:var(--ed-paper);color:var(--ed-ink-soft);}
.theme-editorial .ps-slot-btn:hover{border-color:var(--ed-accent);}
.theme-editorial .ps-cal-weekdays{color:var(--ed-ink-soft);}
.theme-editorial #participant-card{border:1px solid var(--ed-line);border-radius:3px;background:var(--ed-paper);}
.theme-editorial .code-block{background:var(--ed-accent-soft);border:1px solid var(--ed-line);border-radius:2px;}
.theme-editorial .code-block .code{color:var(--ed-accent-dark);}
.theme-editorial .info-line{color:var(--ed-ink-soft);}
.theme-editorial .foot-link{color:var(--ed-ink-soft);}
.theme-editorial .foot-link:hover{color:var(--ed-ink);}
