:root { color-scheme: light; --ink:#181818; --muted:#5c5c58; --line:#d3d0c8; --paper:#fff; --soft:#f4f1e9; --black:#090909; --red:#c71324; --red-dark:#96101c; --blue:#145dcc; }
* { box-sizing: border-box; }
body { min-width:320px; margin:0; color:var(--ink); background:radial-gradient(900px 520px at 5% 0%, rgba(199,19,36,.22), transparent 64%), var(--black); font-family:Inter,system-ui,sans-serif; }
button,input,select,textarea { font:inherit; }
.shell { width:min(1100px,calc(100% - 32px)); margin:0 auto; padding:32px 0 72px; }
.page-header { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:24px; color:#fff; }
.eyebrow { margin:0 0 8px; color:#ff4151; font-size:12px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
h1 { margin:0; font-size:clamp(40px,7vw,78px); line-height:.92; letter-spacing:-.055em; text-transform:uppercase; }
.lede { max-width:720px; margin:18px 0 0; color:#c9c9c4; font-size:17px; line-height:1.55; }
.prototype-badge { flex:0 0 auto; padding:9px 12px; color:#fff; border:1px solid rgba(255,255,255,.25); border-radius:999px; font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.header-tools { display:flex; align-items:center; gap:12px; }
.logout-link { color:#fff; font-size:12px; font-weight:850; text-underline-offset:4px; }
.event-form { padding:clamp(22px,4vw,42px); background:var(--paper); border-top:5px solid var(--red); border-radius:6px; box-shadow:0 26px 80px rgba(0,0,0,.5); }
.progress { margin-bottom:32px; }
.progress-head { display:flex; justify-content:space-between; gap:14px; margin-bottom:10px; color:var(--muted); font-size:12px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.progress-track { height:7px; overflow:hidden; background:var(--soft); border:1px solid var(--line); border-radius:999px; }
.progress-track span { display:block; width:25%; height:100%; background:var(--red); transition:width .2s ease; }
.form-message { margin:0 0 24px; padding:14px 16px; color:#8e101b; background:#fff0f1; border:1px solid #e8a8ae; border-radius:8px; font-weight:750; }
fieldset { min-width:0; margin:0; padding:0; border:0; }
legend { width:100%; margin:0 0 8px; padding:0; font-size:clamp(28px,4vw,42px); font-weight:900; line-height:1.1; letter-spacing:-.025em; }
.step-intro { margin:0 0 28px; color:var(--muted); font-size:16px; line-height:1.55; }
.field-grid { display:grid; gap:18px; align-items:start; }
.two-column { grid-template-columns:repeat(2,minmax(0,1fr)); }
.three-column { grid-template-columns:repeat(3,minmax(0,1fr)); }
.timeline-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.field { display:grid; align-content:start; gap:8px; margin-bottom:18px; }
.field.compact { max-width:360px; }
.field > span,.group-label { font-weight:850; }
.field b { color:var(--red); }
.field small,.check-row small,.upload-zone small { display:block; color:var(--muted); font-size:12px; font-weight:600; line-height:1.45; }
.field .day-offset { color:var(--red); font-weight:850; letter-spacing:.02em; }
.field-help { margin:-4px 0 22px; color:var(--muted); font-size:13px; line-height:1.5; }
input,select,textarea { width:100%; min-height:52px; padding:12px 13px; color:var(--ink); background:#fff; border:2px solid var(--line); border-radius:8px; outline:0; }
textarea { min-height:100px; resize:vertical; }
input:focus,select:focus,textarea:focus { border-color:var(--blue); box-shadow:0 0 0 4px rgba(20,93,204,.16); }
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"] { border-color:var(--red); }
.conditional-panel,.availability-panel,.storage-note { margin:6px 0 24px; padding:20px; background:var(--soft); border-left:4px solid var(--red); }
.conditional-panel h2 { margin:0 0 18px; font-size:20px; }
.category-picker { margin:0 0 24px; padding:18px; background:var(--soft); border:1px solid var(--line); border-radius:10px; }
.category-picker-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr); gap:18px; align-items:stretch; }
.category-field { margin:0; }
.type-explainer { display:flex; flex-direction:column; justify-content:center; margin:0; padding:16px 18px; background:#eef5ff; border:1px solid #b9d0ef; border-left:4px solid var(--blue); border-radius:8px; }
.type-explainer strong { display:block; margin-bottom:5px; font-size:17px; }
.type-explainer p { margin:0 0 10px; color:#34445a; line-height:1.5; }
.type-explainer small { display:block; margin-top:10px; color:#34445a; font-weight:700; }
.type-explainer a,.type-reference a { color:#0f4ea9; font-weight:800; text-underline-offset:3px; }
.type-reference { margin:16px 0 0; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:8px; }
.type-reference summary { padding:15px 18px; border-radius:7px; font-weight:850; cursor:pointer; outline:0; }
.type-reference summary:focus-visible { box-shadow:inset 0 0 0 3px rgba(20,93,204,.35); }
.type-reference summary:hover { background:#faf9f6; }
.type-reference[open] summary { border-bottom:1px solid var(--line); }
.type-reference dl { display:grid; grid-template-columns:minmax(150px,.65fr) minmax(0,2fr); gap:0; margin:0; padding:6px 18px; }
.type-reference dt,.type-reference dd { margin:0; padding:12px 0; border-bottom:1px solid var(--line); }
.type-reference dd { color:var(--muted); line-height:1.45; }
.type-reference > p { margin:0; padding:16px 18px; color:var(--muted); line-height:1.5; }
.check-row { display:grid; grid-template-columns:28px 1fr; gap:12px; align-items:start; margin:0; padding:14px 0; cursor:pointer; }
.check-row + .check-row { border-top:1px solid var(--line); }
.check-row input { width:26px; min-height:26px; height:26px; margin:0; accent-color:var(--red); }
.check-row strong { display:block; margin-bottom:3px; }
.field-group { margin:8px 0 28px; padding:20px; background:var(--soft); border:1px solid var(--line); border-radius:10px; }
.group-label { display:block; margin-bottom:5px; font-size:17px; }
.series-panel,.program-details { margin:8px 0 24px; padding:20px; border-radius:10px; }
.series-panel { background:#eef5ff; border:1px solid #b9d0ef; border-left:4px solid var(--blue); }
.program-details { background:var(--soft); border:1px solid var(--line); border-left:4px solid var(--red); }
.panel-heading { display:flex; justify-content:space-between; align-items:start; gap:18px; margin-bottom:18px; }
.panel-heading h2,.lineup-heading h3 { margin:0 0 5px; }
.panel-heading h2 { font-size:21px; }
.panel-heading p,.lineup-heading p { margin:0; color:var(--muted); line-height:1.45; }
.panel-heading > span,.lineup-heading > span { flex:0 0 auto; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.series-panel > .field { margin-bottom:0; }
.series-panel [data-new-series] { margin-top:18px; }
.series-description { grid-column:1 / -1; }
.lineup-heading { display:flex; justify-content:space-between; align-items:start; gap:18px; margin:4px 0 12px; padding-top:16px; border-top:1px solid var(--line); }
.lineup-heading h3 { font-size:18px; }
.performer-list { display:grid; gap:12px; }
.performer-row { padding:16px; background:#fff; border:1px solid var(--line); border-radius:9px; }
.performer-row-heading { display:grid; grid-template-columns:28px 1fr auto; gap:10px; align-items:center; margin-bottom:14px; }
.performer-row-heading > span { display:grid; place-items:center; width:28px; height:28px; color:#fff; background:var(--red); border-radius:50%; font-size:12px; font-weight:900; }
.performer-row-heading button { min-height:40px; padding:7px 11px; color:var(--red-dark); background:#fff; border:1px solid #e2abb0; border-radius:7px; font-weight:800; cursor:pointer; }
.performer-fields { display:grid; grid-template-columns:1.3fr .9fr .8fr .65fr .65fr 1.1fr; gap:12px; align-items:start; }
.performer-fields .field { margin:0; }
.performer-fields input,.performer-fields select { min-height:48px; }
.add-performer { margin-top:12px; }
.category-data-note { margin:14px 0 0; padding:12px 14px; color:#34445a; background:#eef5ff; border-left:4px solid var(--blue); line-height:1.5; }
.availability-panel { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.availability-panel strong,.availability-panel span { display:block; }
.availability-panel span { margin-top:4px; color:var(--muted); font-size:13px; }
.artwork-section { margin-top:8px; }
.artwork-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:14px; }
.artwork-heading h2 { margin:0 0 5px; font-size:21px; }
.artwork-heading p { max-width:650px; margin:0; color:var(--muted); line-height:1.45; }
.artwork-heading > span { flex:0 0 auto; color:var(--muted); font-size:12px; font-weight:700; }
.artwork-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.upload-zone { display:grid; gap:14px; align-items:start; min-height:250px; padding:18px; background:var(--soft); border:2px dashed #aaa69d; border-radius:10px; }
.upload-zone input { position:absolute; width:1px; height:1px; min-height:0; opacity:0; pointer-events:none; }
.upload-zone img { width:100%; height:150px; object-fit:contain; background:#fff; border:1px solid var(--line); border-radius:8px; }
.upload-zone em { display:block; margin-top:8px; color:var(--muted); font-size:12px; font-style:normal; font-weight:750; }
.upload-zone em.is-valid { color:#17733a; }
.upload-select { display:block; cursor:pointer; }
.upload-select strong { display:block; }
.image-metadata { display:grid; gap:8px; }
.image-metadata input { position:static; width:100%; height:auto; min-height:46px; opacity:1; pointer-events:auto; }
.offers-section { margin:28px 0; padding:20px; background:var(--soft); border:1px solid var(--line); border-radius:10px; }
.offer-list { display:grid; gap:12px; }
.offer-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; padding:14px; background:#fff; border:1px solid var(--line); border-radius:8px; }
.offer-fields { display:grid; grid-template-columns:1.2fr .6fr .8fr; gap:12px; align-items:start; }
.offer-url { grid-column:span 1; }
.offer-row .field { margin:0; }
.remove-offer { min-height:52px; padding:0 14px; color:var(--red-dark); background:#fff; border:1px solid #e2abb0; border-radius:8px; font-weight:850; cursor:pointer; }
.compact-button { min-height:44px; }
.review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.review-item { padding:16px; background:var(--soft); border:1px solid var(--line); border-radius:8px; }
.review-item span { display:block; margin-bottom:5px; color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.storage-note { margin-top:24px; }
.storage-note p { margin:7px 0 0; color:var(--muted); line-height:1.55; }
.form-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:30px; padding-top:20px; border-top:1px solid var(--line); }
.primary-button,.secondary-button { min-height:52px; padding:12px 22px; border-radius:8px; font-weight:900; cursor:pointer; }
.primary-button { min-width:190px; color:#fff; background:var(--red); border:2px solid var(--red); }
.primary-button:hover { background:var(--red-dark); border-color:var(--red-dark); }
.secondary-button { color:var(--ink); background:#fff; border:2px solid var(--line); }
.secondary-button:hover { border-color:var(--red); }
.login-shell { min-height:100vh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(520px,100%); padding:clamp(26px,5vw,46px); background:#fff; border-top:5px solid var(--red); border-radius:6px; box-shadow:0 26px 80px rgba(0,0,0,.5); }
.login-card h1 { margin-bottom:18px; color:var(--ink); font-size:clamp(34px,7vw,56px); }
.login-card .primary-button { width:100%; }
.link-button { display:inline-grid; place-items:center; text-decoration:none; }
.check-list { display:grid; gap:10px; margin:24px 0; padding:0; list-style:none; }
.check-list li { padding:12px 14px; background:var(--soft); border-left:4px solid var(--line); }
.check-list strong { display:inline-block; min-width:48px; }
.check-pass { border-left-color:#17733a !important; }
.check-fail { border-left-color:var(--red) !important; }
.saved-actions { display:grid; gap:10px; }
.capture-list { display:grid; gap:8px; margin:18px 0 28px; }
.capture-list a { padding:12px 14px; color:var(--ink); background:var(--soft); border:1px solid var(--line); border-radius:7px; font-weight:750; }
.capture-json { max-height:620px; overflow:auto; padding:18px; color:#e8e8e4; background:#111; border-radius:8px; font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; overflow-wrap:anywhere; }
[hidden] { display:none !important; }
@media (max-width:980px) {
  .performer-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .shell { width:100%; padding:18px 12px 40px; }
  .page-header { display:block; }
  .prototype-badge { display:inline-block; margin-top:18px; }
  .header-tools { margin-top:18px; }
  .header-tools .prototype-badge { margin-top:0; }
  .event-form { padding:24px 18px; }
  .two-column,.three-column,.timeline-grid,.review-grid,.artwork-grid,.offer-row,.offer-fields { grid-template-columns:1fr; }
  .category-picker-grid { grid-template-columns:1fr; }
  .performer-fields { grid-template-columns:1fr; }
  .panel-heading,.lineup-heading { display:block; }
  .panel-heading > span,.lineup-heading > span { display:block; margin-top:8px; }
  .series-description { grid-column:auto; }
  .type-reference dl { grid-template-columns:1fr; }
  .type-reference dt { padding-bottom:3px; border-bottom:0; }
  .type-reference dd { padding-top:0; }
  .availability-panel { display:grid; }
  .availability-panel button { width:100%; }
  .artwork-heading { display:block; }
  .artwork-heading > span { display:block; margin-top:8px; }
  .form-actions { display:grid; grid-template-columns:1fr; }
  .form-actions button { width:100%; }
  .primary-button { order:-1; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; transition:none !important; } }
