:root{--font-sans:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--bg:#f4f5f7;--card:#fff;--line:#e7e9ee;--line-2:#eef0f3;--ink:#15181d;--ink-2:#545b66;--ink-3:#8a9099;--accent:#d9156f;--accent-hover:#b8115d;--accent-soft:#fdf0f6;--accent-line:#f8cfe3;--good-fg:#157347;--good-bg:#edf7f0;--good-line:#cfe9d8;--warn-fg:#9a6700;--warn-bg:#fdf6e3;--warn-line:#efe1b6;--bad-fg:#b42318;--bad-bg:#fef3f2;--bad-line:#fbd6d1;--neu-fg:#475467;--neu-bg:#f3f4f6;--neu-line:#e3e6eb;--radius:12px;--radius-sm:8px;--radius-pill:999px;--cell-py:9px;--pad:20px;--gap:14px;font-family:var(--font-sans);color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh;margin:0;font-size:14px;line-height:1.5}button,input,textarea,select{font:inherit}::selection{background:var(--accent-line)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d9dde3 padding-box content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#c3c9d1 padding-box content-box}button{border:1px solid var(--line);background:var(--card);color:var(--ink-2);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;transition:border-color .12s,color .12s,background .12s;display:inline-flex}button:hover:not(:disabled){border-color:var(--accent-line);color:var(--ink)}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--accent);color:#fff;border:0;font-weight:600}.primary:hover:not(:disabled){background:var(--accent-hover);border:0}.loginShell{place-items:center;min-height:100vh;padding:24px;display:grid}.loginCard{background:var(--card);border:1px solid var(--line);border-radius:18px;width:min(460px,100%);padding:38px 34px;box-shadow:0 1px 3px #14181d0f,0 12px 36px #14181d0f}.loginCard h1{letter-spacing:-.01em;margin:14px 0;font-size:27px;font-weight:600;line-height:1.25}.loginCard textarea{width:100%;min-height:120px;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;margin:12px 0;padding:12px}.fallbackBox{border:1px solid var(--line);border-radius:var(--radius);background:#fafbfc;margin-top:18px;padding:14px}.mark{color:#fff;background:#050506;border-radius:14px;place-items:center;width:48px;height:48px;padding:8px;display:grid;overflow:hidden}.mark img{object-fit:contain;width:100%;height:100%;display:block}.mark.small{border-radius:10px;width:34px;height:34px;padding:5px}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:0;font-size:11px}.muted,.footnote{color:var(--ink-3)}.footnote{font-family:var(--font-mono);font-size:12px}.appShell{grid-template-columns:256px 1fr;min-height:100vh;display:grid}aside{border-right:1px solid var(--line);background:#fbfbfc;flex-direction:column;height:100vh;padding:20px 16px;display:flex;position:sticky;top:0}aside button{width:100%;color:var(--ink-2);border-radius:var(--radius-sm);background:0 0;border-color:#0000;justify-content:flex-start;gap:11px;margin:1px 0;padding:9px 12px;font-size:13.5px;font-weight:500}aside button:hover:not(:disabled){background:var(--line-2);color:var(--ink);border-color:#0000}aside button.active{background:var(--accent-soft);color:var(--accent);border-color:#0000;font-weight:600}.brand{align-items:center;gap:11px;margin-bottom:22px;display:flex}.brand b{color:var(--ink);white-space:nowrap;font-size:13.5px;font-weight:600}.brand span{color:var(--ink-3);white-space:nowrap;font-size:11.5px;display:block}.content{padding:var(--pad);width:100%;max-width:1320px}.topbar{margin-bottom:var(--gap);justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.topbar h1{letter-spacing:-.01em;margin:0;font-size:21px;font-weight:600}.topbar p{color:var(--ink-2);margin:3px 0 0;font-size:13px}.topActions{align-items:center;gap:10px;display:flex}.badge{border-radius:var(--radius-pill);font-size:11.5px;font-weight:600;font-family:var(--font-mono);white-space:nowrap;color:var(--neu-fg);background:var(--neu-bg);border:1px solid var(--neu-line);align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.badge.good{color:var(--good-fg);background:var(--good-bg);border-color:var(--good-line)}.badge.warn{color:var(--warn-fg);background:var(--warn-bg);border-color:var(--warn-line)}.badge.bad{color:var(--bad-fg);background:var(--bad-bg);border-color:var(--bad-line)}.hero,.panel,.stat,.empty,.errorBox,.loading{border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:22px}.hero{padding:26px 28px}.hero .eyebrow{color:var(--accent)}.hero h2{letter-spacing:-.01em;margin:8px 0;font-size:25px;font-weight:600}.hero p{color:var(--ink-2);max-width:680px;margin:0}.viewStack{gap:var(--gap);display:grid}.statsGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.stat{padding:16px 18px}.stat span{color:var(--ink-3);font-size:12px;font-weight:500;display:block}.stat strong{letter-spacing:-.01em;margin-top:7px;font-size:24px;font-weight:600;display:block}.stat.good{border-color:var(--line)}.stat.good strong{color:var(--good-fg)}.stat.warn{border-color:var(--line)}.stat.warn strong{color:var(--warn-fg)}.split{gap:var(--gap);grid-template-columns:1fr 1fr;display:grid}.panel h3{margin:0;font-size:15px;font-weight:600}.bigLine{letter-spacing:-.02em;margin:8px 0 2px;font-size:42px;font-weight:600}.tableWrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;padding:var(--cell-py) 18px;vertical-align:middle}th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;background:#fafbfc;font-size:10.5px;font-weight:600}td{color:var(--ink);border-top:1px solid var(--line-2);font-size:13.5px}tbody tr:first-child td{border-top:0}.empty{color:var(--ink-3);text-align:center;border-style:dashed;padding:48px 24px}.panel input,.panel select,.panel textarea,.formGrid input,.formGrid select,.wideLabel textarea,.manualAdd input,.catalogSearch input,.filterBar input,.filterBar select,.tableToolbar select{width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:10px 12px;font-size:14px;transition:border-color .12s,box-shadow .12s}.panel input:focus,.panel select:focus,.panel textarea:focus,.formGrid input:focus,.formGrid select:focus,.wideLabel textarea:focus,.catalogSearch input:focus,.filterBar input:focus,.filterBar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.formGrid label,.wideLabel,.filterBar label{color:var(--ink-2);gap:6px;font-size:12px;font-weight:500;display:grid}.wideLabel textarea{resize:vertical;min-height:74px}.rail{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);margin:10px 0;padding:13px}.rail span{color:var(--ink-3);margin-top:5px;display:block}.rowActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rowActions button{padding:9px 14px;font-size:13px}.minimumVersionGrid{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.minimumVersionCard{gap:12px;display:grid}.minimumVersionCard .panelHeader{margin-bottom:0}.minimumVersionValue{margin:0;font-size:16px}.minimumVersionForm{grid-template-columns:1fr;gap:10px}.jsonPanel{white-space:pre-wrap;color:#c8ccd4;font-family:var(--font-mono);background:#0f1115;border:1px solid #1c1f26;border-radius:10px;max-height:520px;padding:16px;font-size:12px;line-height:1.6;overflow:auto}.errorText,.warnText{color:var(--bad-fg)}.errorBox{border-color:var(--bad-line);background:var(--bad-bg);color:var(--bad-fg);align-items:center;gap:12px;display:flex}.errorBox svg{min-width:20px}.loading{color:var(--ink-2)}.successText{color:var(--good-fg);background:var(--good-bg);border:1px solid var(--good-line);border-radius:var(--radius-sm);align-items:center;gap:8px;margin:0;padding:10px 12px;display:inline-flex}.explorer{position:relative}.explorerHero{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:flex-start;gap:18px;padding:22px;display:flex}.explorerHero h2{margin:5px 0 8px;font-size:20px;font-weight:600}.resultPill{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--radius-pill);color:var(--accent);font-weight:600;font-family:var(--font-mono);white-space:nowrap;padding:8px 14px;font-size:12.5px}.filterBar{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:minmax(220px,1.3fr) repeat(auto-fit,minmax(155px,1fr));align-items:end;gap:12px;padding:14px 16px;display:grid}.searchBox{position:relative}.searchBox svg{color:var(--ink-3);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.searchBox input{padding-left:36px}.tableToolbar{color:var(--ink-2);justify-content:space-between;align-items:center;font-size:12.5px;display:flex}.tableToolbar label{align-items:center;gap:8px;display:inline-flex}.tableToolbar select{width:auto;padding:6px 9px}.dataExplorerTable th{white-space:nowrap}.sortButton{color:var(--ink-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;background:0 0;border:0;padding:0;font-size:10.5px;font-weight:600}.sortButton:hover:not(:disabled){color:var(--ink);background:0 0;border-color:#0000}.clickRow{cursor:pointer}.clickRow:hover td{background:var(--accent-soft)}.pager{color:var(--ink-2);justify-content:flex-end;align-items:center;gap:12px;font-size:13px;display:flex}.pager span{font-family:var(--font-mono);font-size:12.5px}.detailDrawer{z-index:41;background:var(--card);border-left:1px solid var(--line);border-radius:0;width:min(460px,100vw - 40px);height:auto;padding:24px;position:fixed;top:0;bottom:0;right:0;overflow:auto;box-shadow:-12px 0 40px #14181d1f}.drawerClose{float:right}.detailDrawer h3{margin:8px 0 16px;font-size:19px;font-weight:600}.detailFacts{border:1px solid var(--line);background:var(--card);border-radius:10px;grid-template-columns:auto 1fr;gap:10px 16px;margin:14px 0;padding:14px;font-size:13px;display:grid}.detailFacts span{color:var(--ink-3)}.detailFacts b{font-family:var(--font-mono);word-break:break-all;font-weight:500}.segmented{background:var(--card);border:1px solid var(--line);border-radius:10px;gap:4px;width:max-content;padding:4px;display:inline-flex}.segmented button{color:var(--ink-2);background:0 0;border-color:#0000;border-radius:7px;padding:7px 14px}.segmented button:hover:not(:disabled){background:var(--line-2);border-color:#0000}.segmented button.active{background:var(--accent);color:#fff;border-color:#0000;font-weight:600}.editorialOps{gap:var(--gap);display:grid}.editorialHero{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.editorialLayout{gap:var(--gap);grid-template-columns:minmax(240px,.85fr) minmax(320px,1.25fr) minmax(260px,1fr);align-items:start;display:grid}.editorialLayout .panel{min-width:0}.panelHeader{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.panelHeader h3{margin:4px 0 0}.playlistCards{gap:9px;max-height:620px;padding-right:4px;display:grid;overflow:auto}.playlistCard{text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;justify-content:space-between;align-items:flex-start;gap:12px;width:100%;padding:13px;display:flex}.playlistCard:hover{border-color:var(--accent-line)}.playlistCard.selected{border-color:var(--accent-line);background:var(--accent-soft)}.playlistCard b{color:var(--ink);font-size:13.5px;font-weight:600}.playlistCard small{font-family:var(--font-mono);color:var(--ink-3);font-size:11px}.playlistMeta{flex-direction:column;align-items:flex-end;gap:5px;display:flex}.formGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:14px;display:grid}.wideLabel{margin:14px 0}.inlineValidation{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.validationGood,.validationBad{border-radius:var(--radius-pill);align-items:center;gap:6px;padding:6px 11px;font-size:12px;font-weight:600;display:inline-flex}.validationGood{color:var(--good-fg);background:var(--good-bg);border:1px solid var(--good-line)}.validationBad{color:var(--bad-fg);background:var(--bad-bg);border:1px solid var(--bad-line)}.catalogSearch{grid-template-columns:1fr auto;align-items:end;gap:8px;display:grid}.songChips{gap:8px;margin:14px 0;display:grid}.songChip{border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;padding:9px 11px;display:flex}.songChip.bad{border-color:var(--bad-line);background:var(--bad-bg)}.songChip b{color:var(--ink);font-size:13px;font-weight:600}.songChip small{color:var(--ink-3);font-size:11px}.catalogResults{gap:8px;max-height:340px;display:grid;overflow:auto}.catalogResult,.placementRow{background:var(--card);border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;padding:10px;display:flex}.sortIndex{min-width:42px;color:var(--accent);font-weight:700;font-family:var(--font-mono);place-items:center;display:grid}.placementList{gap:10px;margin-top:14px;display:grid}.auditCard{border:1px solid var(--line);background:var(--card);border-radius:10px;gap:10px;margin-bottom:10px;padding:12px;display:grid}.auditCard .jsonPanel{max-height:220px;margin:0}.missionGrid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;display:grid}.missionCard{text-align:left;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);place-content:start flex-start;align-items:flex-start;gap:10px;min-height:118px;padding:18px;display:grid}.missionCard:hover{border-color:var(--accent-line)}.missionCard b{color:var(--ink);font-size:14.5px;font-weight:600}.missionCard small{color:var(--ink-2);font-size:12.5px;line-height:1.45}.missionCard.primaryMission{border-color:var(--accent-line);background:var(--accent-soft)}.compactStats{margin-top:0}.missionTabs{margin:0}.stepper{flex-wrap:wrap;gap:8px;display:flex}.stepper span{font-family:var(--font-mono);border-radius:var(--radius-sm);color:var(--ink-3);border:1px solid var(--line);white-space:nowrap;background:#fff;padding:7px 12px;font-size:11.5px;font-weight:600}.stepper span.active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.publishHint{color:var(--ink-3);align-self:center;font-size:12px}@media (width<=1180px){.editorialLayout{grid-template-columns:1fr}}@media (width<=1000px){.appShell{grid-template-columns:1fr}aside{height:auto;position:relative}.statsGrid,.split{grid-template-columns:1fr}.topbar{flex-direction:column;gap:14px}}@media (width<=900px){.filterBar{grid-template-columns:1fr}.detailDrawer{width:auto;left:18px;right:0}.pager{justify-content:space-between}.stepper{gap:6px}.missionGrid{grid-template-columns:1fr}}.notice{border:1px solid var(--line);background:var(--card);border-radius:var(--radius-sm);color:var(--good-fg);padding:10px 14px;font-size:13.5px}.actions{align-items:center;gap:8px;display:flex}.homeLayout{grid-template-columns:minmax(340px,1fr) minmax(380px,1.05fr)}.rowThumb{object-fit:cover;border-radius:6px;width:64px;height:27px;display:block}.destWarning{color:var(--bad-fg);align-items:center;gap:5px;margin-top:4px;font-size:11.5px;display:flex}.destBadRow td{background:var(--bad-bg)}.stripePreviews{flex-wrap:wrap;align-items:flex-start;gap:18px;margin-bottom:16px;display:flex}.stripePreview{flex:320px;gap:6px;min-width:0;max-width:100%;margin:0;display:grid}.stripePreview.stripePreviewFixed{flex:none}.stripePreview figcaption{font-size:11px}.stripePreviewFrame{background:#0b0c10;width:100%;position:relative;overflow:hidden}.stripePreviewFrame img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.stripePreviewPlaceholder{color:#6b7280;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:11.5px;display:flex;position:absolute;inset:0}.stripePreviewVeil{position:absolute;inset:0}.stripePreviewText{justify-content:space-between;align-items:flex-end;gap:8px;padding:16px;display:flex;position:absolute;inset:0}.stripePreviewCopy{flex-direction:column;gap:4px;min-width:0;display:flex}.stripePreviewEyebrow{color:#ffffffd1;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;font-weight:500;overflow:hidden}.stripePreviewTitle{letter-spacing:-.02em;color:#fff;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:15px;font-weight:600;display:-webkit-box;overflow:hidden}.stripePreviewSong{color:#ffffffd1;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.stripePreviewChevron{color:#ffffffd1;flex-shrink:0;margin-bottom:2px}.fieldHint{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:5px;font-size:11.5px;font-weight:400;display:flex}.charCounter{font-family:var(--font-mono);color:var(--ink-3);margin-left:auto;font-size:11px}.charCounter.warn{color:var(--warn-fg)}.charCounter.over{color:var(--bad-fg);font-weight:600}.imagePicker{gap:8px;margin:16px 0;display:grid}.imagePicker label{color:var(--ink-2);gap:6px;font-size:12px;font-weight:500;display:grid}.imageMeta{font-family:var(--font-mono);color:var(--ink-2);gap:12px;font-size:11.5px;display:flex}.imageWarnings{gap:6px;display:grid}.imageWarnings .warnText{color:var(--warn-fg);align-items:flex-start;gap:6px;margin:0;font-size:12.5px;display:flex}.jpegOffer{border:1px solid var(--good-line);background:var(--good-bg);border-radius:var(--radius-sm);gap:8px;padding:12px;display:grid}.jpegOffer p{color:var(--good-fg);margin:0;font-size:12.5px}.jpegOfferPreview{aspect-ratio:2.35;object-fit:cover;border-radius:8px;width:100%;max-width:280px}.songPicker{gap:10px;margin:16px 0;display:grid}.manualSongToggle{color:var(--ink-2);font-size:12.5px}.manualSongToggle summary{cursor:pointer;color:var(--accent);font-weight:500}.manualSongToggle .manualAdd{grid-template-columns:1fr auto;gap:8px;margin-top:8px;display:grid}.sceneCard{flex:220px;max-width:260px}.scenePhoto{aspect-ratio:9/19.5;object-fit:cover;background:var(--surface-2,#111);border-radius:12px;width:100%}.scenePhotoWide{aspect-ratio:16/9;object-fit:cover;background:var(--surface-2,#111);border-radius:12px;width:100%}.scenePhotoEmpty{color:var(--ink-3);border:1px dashed var(--ink-3);place-items:center;font-size:12px;display:grid}
