:root { color-scheme: dark; --ink:#f7eef1; --muted:#bdaeb4; --panel:#1a1518; --line:#49343c; --red:#e52b50; --pink:#ff7390; --bg:#0c090b; }
* { box-sizing:border-box; }
body { margin:0; font:1rem/1.5 system-ui,sans-serif; color:var(--ink); background:radial-gradient(circle at 50% -20%,#3a101b 0,transparent 38%),var(--bg); }
a,button,summary,[role="button"],[tabindex="0"],.tag-token[data-tag-range] { cursor:pointer; }
a { color:var(--pink); } button,input,textarea,select { font:inherit; }
.shell { width:min(1050px,calc(100% - 28px)); margin:auto; }
header { border-bottom:1px solid var(--line); background:#0c090be8; position:sticky; top:0; z-index:2; }
header .shell { display:flex; gap:20px; align-items:center; min-height:66px; }
header strong { font-size:1.2rem; margin-right:auto; }
.version-pill { display:inline-block; margin-left:6px; padding:2px 6px; border:1px solid #604650; border-radius:999px; color:var(--muted); font-size:.72rem; vertical-align:middle; }
nav { display:flex; flex-wrap:wrap; gap:6px; }
nav a { color:var(--ink); text-decoration:none; padding:8px 10px; border-radius:8px; }
nav a[aria-current=page],nav a:hover { background:#351721; }
main { padding:32px 0 90px; }
h1 { margin:0 0 8px; font-size:clamp(1.8rem,5vw,2.7rem); } .lede,.muted { color:var(--muted); }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; margin:24px 0; }
.card,.form-card { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:18px; box-shadow:0 12px 35px #0004; }
.card h2 { margin:0; font-size:1.15rem; }.count { display:block; font-size:2.2rem; font-weight:800; color:var(--pink); }
.actions { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; align-items:center; }
.button,button { border:0; border-radius:9px; padding:10px 14px; background:var(--red); color:white; font-weight:700; text-decoration:none; cursor:pointer; }
.button.secondary,button.secondary { background:#372a2f; }
.button.danger,button.danger { background:#7d2033; }
label { display:block; font-weight:700; margin:15px 0 6px; }
input,textarea,select { width:100%; color:var(--ink); background:#0f0c0e; border:1px solid #604650; border-radius:8px; padding:10px 11px; }
.field { min-width:0; }
.field label:first-child { margin-top:15px; }
.field small { display:block; margin-top:6px; }
.field-label-row { display:flex; align-items:center; gap:8px; margin-top:15px; }
.field-label-row label { margin:0; }
.line-style-toggle { width:28px; height:28px; padding:0; border-radius:50%; background:#372a2f; color:#f7eef1; border:1px solid #604650; line-height:1; }
.line-style-toggle[aria-expanded=true] { background:#17552e; border-color:#43d17b; color:#7effa8; transform:rotate(90deg); }
.line-style-panel { display:none; margin-top:8px; padding:10px; border:1px solid #4c3941; border-radius:8px; background:#120d11; }
.line-style-panel.is-open { display:block; }
.line-style-panel h3,.style-editor-detail h3 { margin:12px 0 8px; color:#7effa8; font-size:.96rem; }
.line-style-panel h3:first-child,.style-editor-detail h3:first-child { margin-top:0; }
.style-editor-detail { margin:10px 0; border:1px solid #4c3941; border-radius:8px; background:#120d11; overflow:hidden; }
.style-editor-detail summary { cursor:pointer; padding:11px 12px; font-weight:850; color:#f7eef1; }
.static-style-preview-field summary { display:flex; align-items:center; gap:10px; }
.static-style-preview-field summary > span:first-child { flex:1; min-width:0; }
.summary-order-controls { display:inline-flex; gap:6px; align-items:center; }
.style-editor-detail summary::marker { color:#7effa8; }
.style-editor-detail > .cols,
.style-editor-detail > .style-checks,
.style-editor-detail > h3,
.style-editor-detail > small { margin:0 12px 12px; }
.style-preview-sample { margin:0 12px 12px; padding:10px 12px; border:1px solid #604650; border-radius:8px; background:#0f0c0e; color:#f7eef1; }
.autosave-recovery { margin:0 0 14px; padding:12px; border:1px solid #725f2c; border-radius:10px; background:#231c0c; color:#f7dfaa; }
.autosave-recovery strong { color:#ffe08a; }
.autosave-recovery .actions { margin:10px 0 0; }
.current-upload { margin:12px 0 16px; padding:12px; border:1px solid #365444; border-radius:10px; background:#0c1510; }
.current-upload strong { color:#7effa8; }
.current-upload dl { display:grid; gap:7px; margin:10px 0 0; }
.current-upload dl div { display:grid; grid-template-columns:minmax(90px,.28fr) minmax(0,1fr); gap:10px; align-items:start; }
.current-upload dt { color:var(--muted); font-weight:800; }
.current-upload dd { margin:0; min-width:0; overflow-wrap:anywhere; }
.cols.compact { gap:0 10px; }
.style-checks { display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.style-checks label { margin:0; padding:7px 9px; border:1px solid #604650; border-radius:8px; background:#0f0c0e; font-weight:700; }
.check-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin:12px 0; }
.check-grid label { margin:0; padding:9px 10px; border:1px solid #604650; border-radius:8px; background:#0f0c0e; font-weight:750; }
.check-grid input { width:auto; margin-right:7px; }
.font-list { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 14px; }
.font-list span { padding:6px 9px; border:1px solid #604650; border-radius:999px; background:#0f0c0e; color:var(--muted); font-size:.9rem; }
.order-list { display:grid; gap:8px; margin:12px 0 18px; }
.order-row { display:grid; grid-template-columns:minmax(0,1fr) 38px 38px; gap:8px; align-items:center; padding:8px 10px; border:1px solid #604650; border-radius:8px; background:#0f0c0e; }
.order-row span { font-weight:800; }
.order-button { width:38px; height:34px; padding:0; border-radius:8px; background:#372a2f; border:1px solid #604650; }
input.has-tags,textarea.has-tags { border-color:#43d17b; box-shadow:0 0 0 2px #43d17b33; color:#7effa8; font-weight:800; }
textarea { min-height:110px; resize:vertical; } input[type=checkbox] { width:auto; margin-right:7px; }
.tag-preview { display:none; margin:7px 0 0; padding:9px 10px; border:1px solid #365444; border-radius:8px; background:#0c1510; color:var(--muted); font-size:.92rem; }
.tag-preview.has-content { display:block; }
.tag-token { display:inline-block; margin:0 3px 3px 0; padding:2px 6px; border-radius:6px; font-weight:800; color:#061009; background:#43d17b; outline:1px solid #c7ffd7; }
.calendar-suggestion { margin-top:6px; color:#ffd27a; font-size:.86rem; }
.tag-ticket-link { background:#45dc77; }
.tag-directions-link { background:#60b7ff; color:#04101a; }
.tag-theater-link { background:#f7c84a; }
.tag-calendar-link { background:#d78cff; }
.tag-color,.tag-color-hover { background:#ff8ab3; }
.tag-font-size,.tag-font-size-hover { background:#92e6ff; }
.tag-bold,.tag-bold-hover { background:#ffe07a; }
.tag-italic,.tag-italic-hover,.tag-italize,.tag-italize-hover { background:#c5a5ff; }
.tag-br { background:#8ec5ff; }
.tag-hidden { background:#969696; color:#151515; }
.tag-navicon { background:#ffffff; color:#101010; }
.tag-next-show { background:#ff8f57; }
.tag-menu { position:fixed; z-index:10; display:none; min-width:230px; max-height:230px; overflow:auto; padding:6px; border:1px solid #6d5360; border-radius:8px; background:#120d11; box-shadow:0 14px 34px #0009; }
.tag-menu.is-open { display:grid; gap:4px; }
.tag-option { border:0; border-radius:6px; padding:8px 9px; text-align:left; color:var(--ink); background:#221820; cursor:pointer; }
.tag-option strong { color:#7effa8; }
.tag-option small { display:block; color:var(--muted); }
.tag-option:hover,.tag-option.is-active { background:#31503d; }
.tag-token[data-tag-range] { cursor:pointer; }
.tag-token[data-tag-range]:hover { outline-color:#fff; box-shadow:0 0 0 2px #ffffff2b; }
.tag-style-popover { position:fixed; z-index:30; display:none; width:min(320px,calc(100vw - 24px)); padding:12px; border:1px solid #6d5360; border-radius:10px; background:#120d11; box-shadow:0 16px 42px #000c; }
.tag-style-popover.is-open { display:block; }
.tag-style-popover h3 { margin:0 0 8px; color:#7effa8; font-size:1rem; }
.tag-style-popover label { margin:8px 0 4px; color:var(--muted); font-size:.86rem; }
.tag-style-popover input { margin:0; }
.cols { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.editor-section { margin:22px 0; padding-top:18px; border-top:1px solid var(--line); }
.editor-section h2 { margin:0 0 8px; font-size:1.18rem; }
.datetime-tools { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.ticket-occurrence-list { display:grid; gap:10px; margin-top:10px; }
.ticket-occurrence-row { display:grid; grid-template-columns:minmax(150px,.55fr) minmax(0,1fr); gap:10px; align-items:end; padding:10px; border:1px solid #4c3941; border-radius:8px; background:#120d11; }
.ticket-occurrence-row label { margin:0; color:var(--muted); font-size:.9rem; }
.ticket-occurrence-row input { margin:0; }
.switch-row { display:flex; align-items:center; gap:10px; margin:18px 0 8px; }
.switch-row label { margin:0; }
.switch-row input { position:absolute; inline-size:1px; block-size:1px; opacity:0; }
.switch-slider { position:relative; width:54px; height:28px; border-radius:999px; background:#3a2c32; border:1px solid #604650; flex:0 0 auto; }
.switch-slider::after { content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#bdaeb4; transition:transform .16s ease, background .16s ease; }
.switch-row input:checked + .switch-slider { background:#17552e; border-color:#43d17b; }
.switch-row input:checked + .switch-slider::after { transform:translateX(26px); background:#7effa8; }
.help-button { width:28px; height:28px; padding:0; border-radius:50%; background:#372a2f; color:var(--ink); border:1px solid #604650; }
.help-popover { display:none; max-width:620px; margin:6px 0 12px; padding:10px 12px; border:1px solid #66523b; border-radius:8px; background:#21180e; color:#f7dfaa; }
.help-popover.is-open { display:block; }
.conditional-field,.venue-theme-group { display:none; }
.conditional-field.is-open,.venue-theme-group.is-open,.no-venue-guidance.is-open { display:block; }
.no-venue-guidance { display:none; }
.no-venue-location-fields { margin:10px 0 12px; padding:10px 12px; border:1px solid #604650; border-radius:8px; background:#0f0c0e; }
.auto-button-options { display:grid; gap:6px; align-content:start; padding:10px 12px; border:1px solid #604650; border-radius:8px; background:#0f0c0e; }
.auto-button-options strong { color:#7effa8; }
.auto-button-options label { display:flex; align-items:center; gap:7px; margin:0; font-weight:750; }
.flyer-region-editor { margin-top:14px; padding:12px; border:1px solid #4c3941; border-radius:8px; background:#120d11; }
.flyer-region-editor h3 { margin:0 0 4px; }
.flyer-grid-toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:12px 0; }
.flyer-grid-toolbar span { color:var(--muted); font-weight:800; }
.region-paint-button { width:34px; height:34px; padding:0; border-radius:8px; background:#372a2f; border:1px solid #604650; }
.region-paint-button.region-1.is-active { background:#17552e; border-color:#43d17b; color:#7effa8; }
.region-paint-button.region-2.is-active { background:#113d61; border-color:#54b7ff; color:#d5ecff; }
.region-paint-button.region-3.is-active { background:#5f4710; border-color:#ffcb3d; color:#fff0ad; }
.region-paint-button.region-4.is-active { background:#5e1720; border-color:#ff5364; color:#ffd5da; }
.flyer-grid-stage { position:relative; max-width:720px; margin:12px 0; border:1px solid #604650; background:#080607; }
.flyer-grid-stage img { display:block; width:100%; height:auto; }
.flyer-grid-picker { position:absolute; inset:0; display:grid; grid-template-columns:repeat(var(--grid-cols), 1fr); grid-template-rows:repeat(var(--grid-rows), 1fr); touch-action:none; user-select:none; }
.flyer-grid-cell { min-width:0; min-height:0; padding:0; border:1px solid #ffffff26; border-radius:0; background:transparent; touch-action:none; }
.flyer-grid-cell:hover { background:#ffffff2c; }
.flyer-grid-cell.region-1 { background:#2cff7770; border-color:#baffcd; }
.flyer-grid-cell.region-2 { background:#54b7ff70; border-color:#d5ecff; }
.flyer-grid-cell.region-3 { background:#ffcb3d75; border-color:#fff0ad; }
.flyer-grid-cell.region-4 { background:#ff536475; border-color:#ffd5da; }
.flyer-region-row { display:grid; grid-template-columns:92px minmax(130px,1fr) minmax(180px,1.35fr) minmax(150px,.9fr) minmax(180px,1fr); gap:8px; align-items:end; padding:10px 0; border-top:1px solid #3a2b31; }
.flyer-region-row:first-of-type { border-top:0; }
.flyer-region-row.region-1 strong { color:#7effa8; }
.flyer-region-row.region-2 strong { color:#d5ecff; }
.flyer-region-row.region-3 strong { color:#fff0ad; }
.flyer-region-row.region-4 strong { color:#ffd5da; }
.flyer-region-row.region-1 { border-color:#2cff774d; }
.flyer-region-row.region-2 { border-color:#54b7ff4d; }
.flyer-region-row.region-3 { border-color:#ffcb3d4d; }
.flyer-region-row.region-4 { border-color:#ff53644d; }
.flyer-region-row strong { padding-bottom:10px; }
.flyer-region-row label { margin:0; font-size:.86rem; color:var(--muted); }
.flyer-region-row input { margin-top:4px; }
.flyer-region-row .field { min-width:0; margin:0; }
.bounds-mode-toggle { display:flex; align-items:center; gap:7px; min-height:42px; margin:0; padding:8px 9px; border:1px solid #604650; border-radius:8px; background:#0f0c0e; }
.painted-bounds-field input { color:#9cd6a8; }
.custom-bounds-field { display:none; grid-column:2 / -1; }
.custom-bounds-field textarea { min-height:88px; margin-top:4px; font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.flyer-region-row.use-custom-bounds .custom-bounds-field { display:block; }
.flyer-region-row.use-custom-bounds .painted-bounds-field { opacity:.45; }
.item { display:flex; gap:14px; align-items:center; padding:15px 0; border-bottom:1px solid var(--line); }.item .meta { flex:1; min-width:0; }.item h3 { margin:0; }.item p { margin:3px 0; color:var(--muted); }
.quick-active-form { margin:0; }
.quick-active-toggle { display:flex; align-items:center; gap:6px; margin:0; padding:8px 10px; border:1px solid #604650; border-radius:8px; background:#0f0c0e; white-space:nowrap; }
.quick-active-toggle input { margin:0; }
.notice { padding:12px 15px; border:1px solid #497a5c; background:#163323; border-radius:10px; margin:0 0 18px; }.notice.error { border-color:#9d4355; background:#431723; }
.empty { padding:28px; text-align:center; color:var(--muted); border:1px dashed var(--line); border-radius:12px; }
code { color:#ffc1ce; } footer { color:var(--muted); font-size:.88rem; padding:25px 0; }
.manual-card p { color:var(--muted); }
.assistant-toggle { position:fixed; right:18px; bottom:18px; z-index:20; box-shadow:0 12px 30px #0008; }
.assistant-panel { position:fixed; right:18px; bottom:76px; z-index:20; display:none; width:min(390px,calc(100vw - 28px)); max-height:min(620px,calc(100vh - 100px)); overflow:auto; padding:14px; border:1px solid #604650; border-radius:14px; background:#151014; box-shadow:0 18px 48px #000b; }
.assistant-panel.is-open { display:block; }
.assistant-panel h2 { margin:0 0 6px; }
.assistant-panel p { margin:6px 0; color:var(--muted); }
.assistant-answer { margin-top:10px; padding:10px; border:1px solid #365444; border-radius:10px; background:#0c1510; }
.assistant-answer h3 { margin:0 0 6px; color:#7effa8; }
.assistant-answer ul { margin:6px 0 0; padding-left:18px; }
@media(max-width:900px){ .flyer-region-row { grid-template-columns:1fr 1fr; } .flyer-region-row strong,.custom-bounds-field { grid-column:1 / -1; } .flyer-region-row strong { padding-bottom:0; } }
@media(max-width:700px){ header { position:static; } header .shell { align-items:flex-start; padding:13px 0; flex-direction:column; gap:8px; }.cols,.datetime-tools,.ticket-occurrence-row,.flyer-region-row { grid-template-columns:1fr; }.item { align-items:flex-start; flex-direction:column; }.item .actions { margin:0; }.custom-bounds-field { grid-column:auto; } }
