:root {
    color-scheme: dark;
    --bg: #08090d;
    --panel: #11131a;
    --panel2: #171a23;
    --text: #f4f5f7;
    --muted: #9399a8;
    --accent: #ff365d;
    --line: rgba(255,255,255,.09);
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; background: radial-gradient(circle at 20% 0%, #1a1020 0, var(--bg) 38%); color: var(--text); min-height: 100vh; }
a { color: inherit; text-decoration: none; }
.topbar { height: 72px; padding: 0 max(24px, calc((100vw - 1180px)/2)); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: rgba(8,9,13,.78); backdrop-filter: blur(14px); position: sticky; top: 0; z-index: 10; }
.brand { font-weight: 900; letter-spacing: -.04em; font-size: 28px; }.brand span { color: var(--accent); }
nav { display: flex; gap: 24px; color: #c4c8d2; } nav a:hover { color: white; }
.shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 52px 0 80px; }
.hero, .page-heading { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 28px; }
.eyebrow, .label { color: var(--accent); font-size: 12px; font-weight: 800; letter-spacing: .18em; }
h1 { font-size: clamp(42px, 7vw, 82px); letter-spacing: -.06em; line-height: .95; margin: 10px 0 16px; } .page-heading h1 { font-size: 54px; }
p { color: var(--muted); line-height: 1.6; }
.live-dot { font-size: 14px; letter-spacing: .08em; color: var(--accent); vertical-align: middle; white-space: nowrap; }
.status-card { min-width: 190px; padding: 18px; border: 1px solid var(--line); background: var(--panel); border-radius: 14px; display: grid; gap: 4px; }.status-card span,.status-card small { color: var(--muted); font-size: 11px; }.status-card strong { font-size: 22px; }
.player-card, .panel { background: linear-gradient(180deg, var(--panel2), var(--panel)); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.24); }
.video-wrap { aspect-ratio: 16/9; background: #000; display: grid; place-items: center; position: relative; }.video-wrap video { width: 100%; height: 100%; background: #000; }.player-message { position: absolute; inset: 0; display: grid; place-items: center; color: var(--muted); pointer-events: none; }
.now-next { display: grid; grid-template-columns: 2fr 1fr; gap: 1px; background: var(--line); }.now-next > div { background: var(--panel); padding: 26px; }.now-next h2,.now-next h3 { margin: 8px 0 0; }.now-next p { margin: 5px 0 0; }
.two-col { display: grid; grid-template-columns: minmax(300px,.8fr) minmax(420px,1.4fr); gap: 24px; align-items: start; }.panel { padding: 26px; }.panel h2 { margin-top: 0; }
.form-stack { display: grid; gap: 16px; }.form-stack label { display: grid; gap: 7px; color: #c7cad3; font-size: 13px; } input,select { width: 100%; padding: 12px 13px; border-radius: 10px; border: 1px solid var(--line); background: #090b10; color: white; font: inherit; } button { border: 0; border-radius: 10px; background: var(--accent); color: white; padding: 12px 16px; font-weight: 800; cursor: pointer; } button:hover { filter: brightness(1.08); } .danger { background: transparent; color: #ff6682; font-size: 22px; padding: 6px 10px; }
.media-list,.schedule-list { display: grid; gap: 10px; }.media-list article { padding: 14px; background: #0b0d12; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 4px; }.media-list span,.media-list code { color: var(--muted); font-size: 12px; word-break: break-all; }
.schedule-list article { display: grid; grid-template-columns: 100px 1fr auto; gap: 16px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #0b0d12; }.schedule-list article.on-air { border-color: rgba(255,54,93,.6); box-shadow: inset 3px 0 var(--accent); }.time { font-variant-numeric: tabular-nums; color: #d8dbe3; }.programme { display: grid; gap: 3px; }.programme span,.muted { color: var(--muted); font-size: 13px; }
.validation-summary-errors, .field-validation-error { color: #ff6b85; font-size: 13px; }
code { color: #d1b4ff; }
@media (max-width: 760px) { .shell { width: min(100% - 28px, 1180px); padding-top: 28px; }.hero,.page-heading { align-items: start; flex-direction: column; }.status-card { width: 100%; }.two-col { grid-template-columns: 1fr; }.now-next { grid-template-columns: 1fr; }.topbar nav { gap: 12px; font-size: 14px; } }

/* v0.2 */
.button-link, .secondary-button { display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; padding: 12px 16px; font-weight: 800; background: var(--accent); color: white; }
.secondary-button { background: #222632; border: 1px solid var(--line); }
.secondary-button:hover, .button-link:hover { filter: brightness(1.1); }
.panel-title-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.notice { margin: 0 0 24px; padding: 15px 17px; border-radius: 12px; border: 1px solid var(--line); background: #10131a; color: #d9dce5; }
.notice.success { border-color: rgba(71,214,147,.3); box-shadow: inset 3px 0 #47d693; }
.notice.warning { border-color: rgba(255,170,72,.3); box-shadow: inset 3px 0 #ffaa48; }
.notice pre { margin: 10px 0 0; white-space: pre-wrap; color: var(--muted); font: 12px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; }
.inline-zone { color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .12em; margin-left: 5px; }
.programme-progress { height: 4px; margin-top: 12px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.08); }
.programme-progress span { display: block; height: 100%; background: var(--accent); border-radius: inherit; }

.guide-heading { align-items: center; }
.guide-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.guide-scroll-shell { overflow-x: auto; border-radius: 18px; }
.guide-card { --channel-width: 160px; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: var(--panel); box-shadow: 0 30px 80px rgba(0,0,0,.2); min-width: 900px; }
.guide-card::before { content: ""; display: block; }
.guide-time-row, .guide-row { display: grid; grid-template-columns: var(--channel-width) minmax(720px, 1fr); }
.guide-time-row { height: 48px; background: #0c0e14; border-bottom: 1px solid var(--line); }
.guide-row { min-height: 88px; border-bottom: 1px solid var(--line); }
.guide-row:last-child { border-bottom: 0; }
.guide-channel-cell { padding: 14px 16px; border-right: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; gap: 3px; background: #0d0f15; }
.guide-channel-cell strong { font-size: 20px; }
.guide-channel-cell span { color: var(--muted); font-size: 12px; }
.guide-channel-header { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.guide-lane { position: relative; min-height: 88px; overflow: hidden; background: linear-gradient(180deg, #12151d, #0f1118); }
.guide-times { min-height: 48px; background: #0c0e14; overflow: visible; }
.guide-times > span { position: absolute; top: 15px; transform: translateX(-50%); color: #9aa0ae; font-size: 11px; font-variant-numeric: tabular-nums; }
.guide-times > span:first-child { transform: none; }
.guide-times > span:last-of-type { transform: translateX(-100%); }
.guide-hour-line { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(255,255,255,.055); z-index: 0; }
.guide-now-line { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--accent); z-index: 5; box-shadow: 0 0 14px rgba(255,54,93,.65); }
.guide-programme { position: absolute; top: 9px; bottom: 9px; z-index: 2; overflow: hidden; border: 1px solid rgba(255,255,255,.09); border-radius: 10px; padding: 10px 12px; background: #1a1e29; display: flex; flex-direction: column; gap: 4px; }
.guide-programme:hover { background: #232836; border-color: rgba(255,255,255,.17); }
.guide-programme.is-now { background: linear-gradient(135deg, rgba(255,54,93,.28), #1a1e29 55%); border-color: rgba(255,54,93,.5); }
.guide-programme strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13px; }
.guide-programme span { color: #a8adba; font-size: 11px; white-space: nowrap; }
.guide-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 4px 0; color: var(--muted); font-size: 12px; }
.guide-footer a { color: #d7dae2; }
.legend-now { display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 10px rgba(255,54,93,.55); }
.guide-empty { padding: 30px; color: var(--muted); }
@media (max-width: 960px) { .guide-scroll-shell { overflow-x: auto; border-radius: 18px; }
.guide-card { --channel-width: 120px; } .guide-heading { align-items: flex-start; } }

/* v0.2.1 - background/incremental library scanning */
.hidden { display: none !important; }
.scan-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.danger-button { background: #2a1118; color: #ff7590; border: 1px solid rgba(255,117,144,.25); }
button:disabled { opacity: .48; cursor: not-allowed; filter: none; }
.scan-status-card { margin-bottom: 24px; }
.scan-status-card h2 { margin: 6px 0 0; }
.scan-status-card > .panel-title-row > strong { font-size: 28px; font-variant-numeric: tabular-nums; }
.scan-progress { height: 9px; background: rgba(255,255,255,.07); border-radius: 99px; overflow: hidden; margin: 20px 0; }
.scan-progress span { display: block; height: 100%; min-width: 0; background: linear-gradient(90deg, var(--accent), #ff7893); border-radius: inherit; transition: width .25s ease; }
.scan-stats { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 10px; }
.scan-stats > div { padding: 13px 14px; border-radius: 11px; background: #0b0d12; border: 1px solid var(--line); display: grid; gap: 4px; }
.scan-stats span, .scan-current span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.scan-stats strong { font-size: 19px; font-variant-numeric: tabular-nums; }
.scan-current { margin-top: 14px; padding: 13px 14px; border-radius: 11px; background: #0b0d12; border: 1px solid var(--line); display: grid; gap: 5px; }
.scan-current code { word-break: break-all; font-size: 12px; }
.scan-error-list { margin-top: 14px; padding: 14px; border-radius: 11px; border: 1px solid rgba(255,170,72,.25); background: rgba(255,170,72,.04); }
.scan-error-list pre { margin: 8px 0 0; color: var(--muted); white-space: pre-wrap; font: 12px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; }
.library-layout { grid-template-columns: minmax(280px,.55fr) minmax(520px,1.45fr); }
.library-title-row { align-items: center; margin-bottom: 18px; }
.library-title-row h2 { margin-bottom: 3px; }
.library-search { display: flex; gap: 8px; align-items: center; width: min(520px, 62%); }
.library-search input { min-width: 0; }
.subtle-button { background: #151923; border: 1px solid var(--line); }
.pager { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 20px; color: var(--muted); }
.pager .secondary-button { padding: 9px 13px; }
@media (max-width: 900px) {
    .scan-stats { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .library-layout { grid-template-columns: 1fr; }
    .library-title-row { align-items: stretch; flex-direction: column; }
    .library-search { width: 100%; }
}
@media (max-width: 560px) {
    .scan-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .library-search { flex-wrap: wrap; }
    .library-search input { flex: 1 1 100%; }
}

/* v0.3 - channel manager + fast scheduling */
.channel-layout { grid-template-columns: minmax(280px,.55fr) minmax(620px,1.45fr); }
.channel-list { display: grid; gap: 10px; margin-top: 18px; }
.channel-row { display: grid; grid-template-columns: 82px minmax(240px,1fr) 110px auto auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #0b0d12; }
.channel-number-field { display: grid; grid-template-columns: auto 1fr; gap: 5px; align-items: center; }
.channel-number-field span { color: var(--muted); font-size: 10px; font-weight: 900; }
.channel-number-field input { padding-inline: 8px; }
.channel-main-fields { display: grid; gap: 5px; min-width: 0; }
.channel-main-fields code { color: var(--muted); font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.toggle-field { display: flex; gap: 7px; align-items: center; color: var(--muted); font-size: 12px; }
.toggle-field input { width: auto; accent-color: var(--accent); }
.channel-watch-link { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; color: #d9dce5; font-weight: 700; font-size: 12px; background: #151923; }
.channel-strip { display: flex; gap: 8px; overflow-x: auto; margin: -18px 0 22px; padding: 2px 0 6px; }
.channel-strip a { display: flex; gap: 9px; align-items: center; flex: 0 0 auto; padding: 10px 13px; border-radius: 10px; border: 1px solid var(--line); background: #10131a; color: #d9dce5; }
.channel-strip a.active { border-color: rgba(255,54,93,.5); background: rgba(255,54,93,.12); box-shadow: inset 2px 0 var(--accent); }
.channel-strip span { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.channel-strip strong { font-size: 12px; }
.schedule-layout { grid-template-columns: minmax(340px,.72fr) minmax(520px,1.28fr); }
.schedule-tools { display: grid; gap: 24px; }
.schedule-next-card { border-color: rgba(255,54,93,.28); box-shadow: 0 30px 80px rgba(0,0,0,.24), inset 0 2px rgba(255,54,93,.35); }
.media-picker { position: relative; display: grid; gap: 7px; }
.media-picker-results { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% - 2px); max-height: 360px; overflow-y: auto; padding: 7px; border: 1px solid var(--line); border-radius: 12px; background: #090b10; box-shadow: 0 18px 50px rgba(0,0,0,.55); }
.media-picker-option { width: 100%; display: grid; gap: 4px; text-align: left; padding: 10px 11px; border-radius: 8px; background: transparent; color: #e8eaf0; font-weight: 400; }
.media-picker-option:hover { background: #191d27; filter: none; }
.media-picker-option strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.media-picker-option span { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.media-picker-empty { padding: 16px 12px; color: var(--muted); font-size: 12px; }
.media-picker-hint { color: var(--muted); font-size: 10px; line-height: 1.45; }
.guide-channel-link { color: var(--muted); font-size: 12px; }
.guide-channel-link:hover { color: white; }
@media (max-width: 1050px) {
    .channel-layout, .schedule-layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .channel-row { grid-template-columns: 72px 1fr; }
    .channel-row .toggle-field, .channel-row .subtle-button, .channel-row .channel-watch-link { grid-column: span 1; }
}

/* v0.4 - recurring broadcast rules */
.rules-layout { grid-template-columns: minmax(330px,.62fr) minmax(580px,1.38fr); }
.rule-time-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rule-query-wrap { position: relative; }
.rule-preview { margin-top: 8px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 10px; background: #0b0d12; display: grid; gap: 8px; }
.rule-preview > span { color: var(--muted); font-size: 11px; }
.rule-preview > strong { font-size: 12px; }
.rule-preview > div { display: grid; gap: 3px; }
.rule-preview > div span { color: var(--muted); font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rule-list { display: grid; gap: 14px; margin-top: 18px; }
.rule-card { padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #0b0d12; }
.rule-card.paused { opacity: .64; }
.rule-card-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.rule-card-heading h3 { margin: 3px 0 5px; font-size: 20px; }
.rule-card-heading p { margin: 0; font-size: 12px; }
.rule-channel { color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.rule-state { flex: 0 0 auto; border: 1px solid var(--line); border-radius: 99px; padding: 6px 9px; color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.rule-state.live { color: #62e1a4; border-color: rgba(98,225,164,.25); background: rgba(98,225,164,.06); }
.rule-upcoming { margin-top: 16px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 11px; background: #10131a; display: grid; gap: 7px; }
.rule-upcoming > span { color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.rule-upcoming > div { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 10px; align-items: baseline; }
.rule-upcoming time { color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.rule-upcoming strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.rule-upcoming.empty { color: var(--muted); font-size: 11px; }
.rule-status { margin-top: 10px; color: var(--muted); font-size: 10px; }
.rule-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.rule-actions form { margin: 0; }
.rule-actions button { padding: 8px 10px; font-size: 10px; }
.rule-empty { min-height: 220px; display: grid; place-content: center; text-align: center; gap: 5px; color: var(--muted); }
.rule-empty strong { color: #d9dce5; }
.schedule-rule-pill { display: inline-flex; margin-left: 6px; padding: 2px 5px; border-radius: 5px; background: rgba(255,54,93,.13); color: var(--accent); font-size: 8px; letter-spacing: .1em; vertical-align: middle; }
.rule-lock { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; border: 1px solid var(--line); color: var(--accent); background: #151923; font-size: 18px; }
@media (max-width: 1050px) { .rules-layout { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .rule-time-grid { grid-template-columns: 1fr; } .rule-card-heading { flex-direction: column; } .rule-upcoming > div { grid-template-columns: 1fr; gap: 2px; } }

/* v0.4.1 - per-channel off-air/fallback loops */
.standby-dot { color: #ffaa48; }
.channel-help-card { margin-top: 24px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #0b0d12; display: grid; gap: 6px; }
.channel-help-card strong { font-size: 14px; }
.channel-help-card p { margin: 0; }
.channel-row-expanded { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 14px; }
.channel-row-top { display: grid; grid-template-columns: 82px minmax(240px,1fr) 110px auto auto; gap: 10px; align-items: center; }
.channel-fallback-row { display: grid; grid-template-columns: minmax(180px,.8fr) minmax(280px,1.4fr) minmax(130px,.55fr); gap: 14px; align-items: center; padding-top: 12px; border-top: 1px solid var(--line); }
.channel-fallback-row p { margin: 4px 0 0; font-size: 11px; }
.channel-fallback-row .media-picker input[type="search"] { padding-right: 64px; }
.clear-media-button { position: absolute; right: 6px; top: 6px; padding: 7px 9px; border: 1px solid var(--line); background: #151923; color: var(--muted); font-size: 10px; z-index: 2; }
.fallback-current { display: grid; gap: 3px; min-width: 0; }
.fallback-current span { color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.fallback-current strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
@media (max-width: 900px) {
    .channel-row-top { grid-template-columns: 72px 1fr; }
    .channel-row-top .toggle-field, .channel-row-top .subtle-button, .channel-row-top .channel-watch-link { grid-column: span 1; }
    .channel-fallback-row { grid-template-columns: 1fr; }
}

/* v0.5 - channel broadcast day / operating hours */
.broadcast-day-form { display: grid; gap: 22px; }
.broadcast-day-summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.broadcast-day-summary h2 { margin: 5px 0 4px; }
.broadcast-day-summary p { margin: 0; }
.broadcast-enable { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: #0b0d12; color: #d9dce5; font-weight: 800; }
.broadcast-enable input { width: auto; accent-color: var(--accent); }
.broadcast-day-layout { display: grid; grid-template-columns: minmax(560px, 1.25fr) minmax(360px, .75fr); gap: 24px; align-items: start; }
.hours-grid { display: grid; gap: 8px; margin-top: 18px; }
.hours-row { display: grid; grid-template-columns: 170px 1fr 28px 1fr; gap: 10px; align-items: end; padding: 11px 12px; border: 1px solid var(--line); border-radius: 11px; background: #0b0d12; }
.hours-row > label:not(.day-open-toggle) { display: grid; gap: 5px; }
.hours-row > label > span { color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.day-open-toggle { display: flex; align-items: center; gap: 9px; min-height: 42px; }
.day-open-toggle input { width: auto; accent-color: var(--accent); }
.day-open-toggle strong { font-size: 13px; }
.hours-arrow { align-self: center; text-align: center; color: var(--muted); padding-top: 14px; }
.ident-panel { display: grid; gap: 20px; }
.ident-panel h2 { margin: 5px 0 4px; }
.ident-panel p { margin: 0; }
.ident-picker-label { display: grid; gap: 7px; color: #c7cad3; font-size: 13px; }
.broadcast-flow { display: flex; gap: 7px; flex-wrap: wrap; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #0b0d12; }
.broadcast-flow span { padding: 5px 7px; border-radius: 7px; background: #151923; color: #d9dce5; font-size: 8px; font-weight: 900; letter-spacing: .08em; }
.broadcast-flow b { color: var(--accent); font-size: 10px; }
@media (max-width: 1050px) { .broadcast-day-layout { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
    .broadcast-day-summary { align-items: stretch; flex-direction: column; }
    .hours-row { grid-template-columns: 1fr 1fr; }
    .day-open-toggle { grid-column: 1 / -1; }
    .hours-arrow { display: none; }
}

/* v0.6 - IPTV / XMLTV provider */
.channel-branding-row { display: grid; grid-template-columns: minmax(180px,.8fr) minmax(280px,1.4fr) 90px; gap: 14px; align-items: center; padding-top: 12px; border-top: 1px solid var(--line); }
.channel-branding-row p { margin: 4px 0 0; font-size: 11px; }
.channel-logo-preview { width: 72px; height: 54px; display: grid; place-items: center; overflow: hidden; justify-self: end; border: 1px solid var(--line); border-radius: 10px; background: #090b10; color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.channel-logo-preview img { max-width: 100%; max-height: 100%; object-fit: contain; }
.iptv-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
.iptv-url-panel h2 { margin: 6px 0 5px; }
.iptv-url-panel p { margin: 0 0 14px; }
.copy-url-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: center; }
.copy-url-row code, .path-block { display: block; min-width: 0; padding: 11px 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 1px solid var(--line); border-radius: 9px; background: #090b10; color: #e7e9ef; }
.iptv-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-bottom: 18px; }
.iptv-stats > div { display: grid; gap: 5px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: #0b0d12; }
.iptv-stats span { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .1em; }
.iptv-stats strong { font-size: 13px; }
.iptv-layout { grid-template-columns: minmax(460px,1.15fr) minmax(360px,.85fr); }
.iptv-channel-list { display: grid; gap: 8px; margin-top: 16px; }
.iptv-channel-row { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 12px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #0b0d12; }
.iptv-channel-row > div:last-child { display: grid; gap: 3px; min-width: 0; }
.iptv-channel-row strong { font-size: 13px; }
.iptv-channel-row code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 9px; }
.iptv-logo-cell { width: 64px; height: 46px; display: grid; place-items: center; overflow: hidden; border-radius: 8px; background: #151923; color: var(--muted); font-size: 10px; font-weight: 900; }
.iptv-logo-cell img { width: 100%; height: 100%; object-fit: contain; }
.branding-examples { display: grid; gap: 8px; margin: 12px 0; }
.branding-examples span { color: var(--muted); font-size: 10px; }
.branding-examples code { width: fit-content; padding: 7px 9px; border-radius: 7px; background: #090b10; }
@media (max-width: 1050px) { .iptv-layout, .iptv-hero-grid { grid-template-columns: 1fr; } .iptv-stats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .channel-branding-row { grid-template-columns: 1fr; } .channel-logo-preview { justify-self: start; } .iptv-stats { grid-template-columns: 1fr; } }

/* v0.7 - multiple library sources + automatic channels */
.source-layout { grid-template-columns: minmax(320px,.62fr) minmax(560px,1.38fr); }
.source-list { display: grid; gap: 10px; margin-top: 16px; }
.source-row { display: grid; grid-template-columns: minmax(0,1fr) 120px auto; gap: 12px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #0b0d12; }
.source-main { display: grid; gap: 5px; min-width: 0; }
.source-main input { font-weight: 800; }
.source-main code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 10px; }
.auto-channel-list { display: grid; gap: 18px; }
.auto-channel-card { display: grid; gap: 20px; }
.auto-state { padding: 7px 10px; border: 1px solid var(--line); border-radius: 99px; color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.auto-state.on { color: #62e1a4; border-color: rgba(98,225,164,.25); background: rgba(98,225,164,.06); }
.auto-form { display: grid; gap: 18px; }
.auto-settings-grid { display: grid; grid-template-columns: 1.25fr 1fr .8fr .8fr; gap: 12px; align-items: end; }
.auto-settings-grid > label { display: grid; gap: 6px; color: #c7cad3; font-size: 12px; }
.auto-master-toggle { align-self: stretch; min-height: 42px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #0b0d12; }
.inline-input { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; align-items: center; }
.inline-input span { color: var(--muted); font-size: 10px; }
.auto-source-picker { display: grid; gap: 9px; }
.source-check-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.source-check { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 9px; align-items: start; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: #0b0d12; cursor: pointer; }
.source-check input { width: auto; margin-top: 3px; accent-color: var(--accent); }
.source-check span { display: grid; gap: 4px; min-width: 0; }
.source-check strong { font-size: 12px; }
.source-check code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 9px; }
.auto-actions { display: flex; justify-content: flex-end; }
.auto-next-block { padding-top: 16px; border-top: 1px solid var(--line); display: grid; gap: 10px; }
.auto-next-list { display: grid; gap: 7px; }
.auto-next-list > div { display: grid; grid-template-columns: 120px minmax(0,1fr) 90px; gap: 10px; padding: 8px 10px; border-radius: 8px; background: #0b0d12; align-items: baseline; }
.auto-next-list span { color: var(--muted); font-size: 10px; }
.auto-next-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.auto-pill { color: #62e1a4; background: rgba(98,225,164,.09); }
@media (max-width: 1050px) { .source-layout { grid-template-columns: 1fr; } .auto-settings-grid { grid-template-columns: 1fr 1fr; } .source-check-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .source-row { grid-template-columns: 1fr; } .auto-settings-grid, .source-check-grid { grid-template-columns: 1fr; } .auto-next-list > div { grid-template-columns: 1fr; gap: 2px; } }
.guide-programme small { margin-left: 5px; color: #62e1a4; font-size: 7px; letter-spacing: .08em; }


/* v0.8 - metadata, artwork and network control */
.library-media-card { grid-template-columns: 72px minmax(0,1fr) auto !important; align-items: center; gap: 12px !important; }
.library-thumb { width: 62px; height: 82px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #080a0f; color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .08em; }
.library-thumb img { width: 100%; height: 100%; object-fit: cover; }
.library-media-main { display: grid; gap: 4px; min-width: 0; }
.library-media-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.library-media-main code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.metadata-layout { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 18px; align-items: start; }
.metadata-art-panel { display: grid; gap: 16px; }
.media-poster-large { aspect-ratio: 2/3; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #080a0f; color: var(--muted); font-size: 11px; font-weight: 900; letter-spacing: .1em; }
.media-poster-large img { width: 100%; height: 100%; object-fit: cover; }
.metadata-tech { display: grid; gap: 6px; }
.metadata-tech span { color: var(--accent); font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.metadata-tech code { overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }
.metadata-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.metadata-grid > label { display: grid; gap: 6px; color: #c7cad3; font-size: 12px; }
.metadata-wide { grid-column: 1 / -1; }
.metadata-grid textarea { resize: vertical; min-height: 110px; }

.now-next-rich { grid-template-columns: 150px minmax(0,2fr) minmax(220px,1fr); }
.now-art { padding: 0 !important; overflow: hidden; display: grid; place-items: center; min-height: 190px; background: #080a0f !important; color: var(--muted); font-weight: 900; letter-spacing: .12em; }
.now-art img { width: 100%; height: 100%; max-height: 260px; object-fit: cover; }
.programme-description { max-width: 720px; color: #b8bdca !important; line-height: 1.55; }
.programme-tech { display: block; margin-top: 10px; color: var(--muted); }
.guide-art-dot { display: inline-block; width: 6px; height: 6px; margin-right: 4px; border-radius: 50%; background: #8aa4ff; box-shadow: 0 0 12px rgba(138,164,255,.55); }

.control-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-bottom: 18px; }
.control-stats > div { padding: 14px 16px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel); display: grid; gap: 5px; }
.control-stats span { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.control-stats strong { font-size: 20px; }
.gpu-strip { display: grid; grid-template-columns: 1.4fr repeat(5,1fr); gap: 8px; margin-bottom: 18px; padding: 10px; border: 1px solid var(--line); border-radius: 13px; background: #080a0f; }
.gpu-strip > div { display: grid; gap: 4px; padding: 9px 10px; min-width: 0; }
.gpu-strip span { color: var(--muted); font-size: 7px; font-weight: 900; letter-spacing: .11em; }
.gpu-strip strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.control-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.control-channel-card { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.control-channel-card > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.control-channel-card > header > div { display: flex; align-items: center; gap: 10px; min-width: 0; }
.channel-number { display: inline-grid; place-items: center; min-width: 36px; height: 28px; border-radius: 7px; background: #0a0d14; color: var(--accent); font-size: 10px; font-weight: 900; }
.control-status { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.control-status i { width: 7px; height: 7px; border-radius: 50%; background: #5d6270; }
.status-live .control-status i { background: #ff365d; box-shadow: 0 0 13px rgba(255,54,93,.7); }
.status-standby .control-status i { background: #f1c85b; box-shadow: 0 0 13px rgba(241,200,91,.45); }
.status-opening .control-status i,.status-closing .control-status i { background: #8aa4ff; }
.status-error .control-status i { background: #ff8b5e; }
.control-now,.control-next { display: grid; gap: 5px; padding: 15px 16px; }
.control-now { min-height: 102px; }
.control-next { border-top: 1px solid var(--line); background: #0b0d12; }
.control-now > span,.control-next > span { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.control-now strong,.control-next strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.control-now small,.control-next small { color: var(--muted); }
.control-channel-card footer { display: flex; justify-content: space-between; gap: 12px; padding: 11px 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.control-channel-card footer a { color: #d9dce5; }

@media (max-width: 900px) {
    .gpu-strip { grid-template-columns: repeat(3,1fr); }
    .metadata-layout,.control-grid { grid-template-columns: 1fr; }
    .metadata-art-panel { grid-template-columns: 160px minmax(0,1fr); }
    .now-next-rich { grid-template-columns: 120px minmax(0,1fr); }
    .now-next-rich > div:last-child { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
    .control-stats,.gpu-strip { grid-template-columns: 1fr 1fr; }

    .metadata-art-panel,.metadata-grid,.now-next-rich { grid-template-columns: 1fr; }
    .metadata-wide { grid-column: auto; }
    .now-art { max-height: 260px; }
    .library-media-card { grid-template-columns: 58px minmax(0,1fr) !important; }
    .library-media-card > a { grid-column: 2; justify-self: start; }
    .library-thumb { width: 52px; height: 72px; }
}

/* v0.8.1 - reusable automatic-programming filters */
.filter-match-count { color: #62e1a4; }
.auto-filter-panel { display: grid; gap: 16px; padding: 17px; border: 1px solid rgba(138,164,255,.18); border-radius: 13px; background: linear-gradient(145deg, rgba(138,164,255,.045), #0b0d12 42%); }
.auto-filter-panel .panel-title-row { align-items: start; }
.auto-filter-panel .panel-title-row p { margin: 5px 0 0; font-size: 11px; }
.filter-badge { flex: 0 0 auto; padding: 5px 8px; border-radius: 99px; border: 1px solid rgba(138,164,255,.2); color: #9eb4ff; font-size: 8px; font-weight: 900; letter-spacing: .1em; }
.auto-duration-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.auto-duration-grid > label,.auto-text-filter-grid > label { display: grid; gap: 6px; color: #c7cad3; font-size: 12px; }
.auto-text-filter-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.auto-text-filter-grid textarea { width: 100%; resize: vertical; min-height: 104px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #090b10; color: white; font: inherit; line-height: 1.5; }
.auto-text-filter-grid small,.auto-type-filter small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.filter-spacer { min-height: 42px; display: flex; align-items: center; padding: 0 11px; border: 1px solid var(--line); border-radius: 10px; background: #090b10; color: var(--muted); font-size: 10px; }
.auto-type-filter { display: grid; gap: 9px; }
.auto-type-filter > span,.filter-examples > span { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.type-check-row { display: flex; gap: 9px; flex-wrap: wrap; }
.type-check-row label { display: flex; align-items: center; gap: 8px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: #090b10; cursor: pointer; }
.type-check-row input { width: auto; accent-color: var(--accent); }
.type-check-row strong { font-size: 10px; }
.filter-examples { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; padding-top: 3px; }
.filter-examples code { padding: 5px 7px; border-radius: 6px; background: #080a0f; color: var(--muted); font-size: 8px; }
@media (max-width: 760px) {
    .auto-duration-grid,.auto-text-filter-grid { grid-template-columns: 1fr; }
    .filter-spacer { min-height: auto; padding-block: 10px; }
}

/* v0.9 - continuity presentation / video stings */
.continuity-list { display: grid; gap: 16px; }
.continuity-card { display: grid; gap: 18px; }
.continuity-master { padding: 12px 13px; border: 1px solid rgba(98,225,164,.18); border-radius: 10px; background: rgba(98,225,164,.035); }
.continuity-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.continuity-setting-block { display: grid; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #0b0d12; }
.continuity-setting-block > .label { color: #9eb4ff; font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.continuity-setting-block > label:not(.toggle-field) { display: grid; gap: 6px; color: #c7cad3; font-size: 12px; }
.continuity-sub-toggle { padding: 10px 11px; border: 1px solid var(--line); border-radius: 9px; background: #090b10; }
.continuity-current { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 11px; border-radius: 9px; background: #080a0f; }
.continuity-current strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.continuity-current span { color: var(--muted); font-size: 9px; white-space: nowrap; }
.continuity-types { padding-top: 4px; }
.continuity-note { margin-top: 18px; }
.continuity-note p { max-width: 920px; color: var(--muted); line-height: 1.6; }
.continuity-pill { color: #c39bff; background: rgba(195,155,255,.1); }
.status-continuity .control-status i,
.status-transition .control-status i { background: #c39bff; box-shadow: 0 0 13px rgba(195,155,255,.55); }
@media (max-width: 850px) { .continuity-grid { grid-template-columns: 1fr; } }

/* v0.9.4 - admin branding uploads */
.branding-layout { grid-template-columns: minmax(300px,.58fr) minmax(560px,1.42fr); }
.branding-upload-form input[type="file"], .channel-logo-controls input[type="file"] { padding: 9px; border: 1px dashed var(--line); border-radius: 9px; background: #090b10; color: #cfd3dd; }
.branding-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.branding-card { display: grid; gap: 7px; min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: #0b0d12; }
.branding-card-preview { height: 110px; display: grid; place-items: center; overflow: hidden; border-radius: 8px; background: #07090d; }
.branding-card-preview img { width: 100%; height: 100%; object-fit: contain; }
.branding-card strong,.branding-card code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.branding-card small { color: var(--muted); }
.branding-card code { color: #9eb4ff; font-size: 9px; }
.branding-card form { display: flex; justify-content: flex-end; }
.danger-button { color: #ff8a9e !important; }
.channel-branding-row-v094 { align-items: start; }
.channel-logo-controls { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(170px,.8fr); gap: 9px 10px; align-items: end; }
.channel-logo-controls .compact-field { display: grid; gap: 5px; color: #c7cad3; font-size: 10px; }
.channel-logo-controls .compact-field:nth-child(3) { grid-column: 1 / -1; }
.channel-logo-controls small { grid-column: 1 / -1; font-size: 9px; }
.branding-library-link { grid-column: 1 / -1; width: fit-content; color: #9eb4ff; font-size: 10px; }
@media (max-width: 1050px) { .branding-layout { grid-template-columns: 1fr; } .branding-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 700px) { .branding-grid,.channel-logo-controls { grid-template-columns: 1fr; } .channel-logo-controls .compact-field:nth-child(3),.channel-logo-controls small,.branding-library-link { grid-column: auto; } }


/* v0.9.4.2 - explicit off-air modes + static-image fallback */
.channel-fallback-row-v0942 { align-items: start; }
.fallback-config-controls { display: grid; gap: 11px; }
.fallback-config-controls > .compact-field, .fallback-mode-panel .compact-field { display: grid; gap: 5px; color: #c7cad3; font-size: 10px; }
.fallback-mode-panel { display: grid; gap: 9px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #0b0d12; }
.fallback-mode-panel input[type="file"] { padding: 9px; border: 1px dashed var(--line); border-radius: 9px; background: #090b10; color: #cfd3dd; }
.fallback-image-preview { width: 110px; height: 62px; object-fit: contain; border: 1px solid var(--line); border-radius: 8px; background: #07090d; margin-bottom: 5px; }

/* v0.9.5 - single-channel visual scheduling desk */
.schedule-editor-heading { align-items: center; }
.schedule-day-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 18px; margin-bottom:14px; }
.schedule-date-nav { display:flex; align-items:end; gap:8px; flex-wrap:wrap; }
.schedule-date-nav > label { display:grid; gap:5px; min-width:170px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.schedule-date-nav input { padding:9px 11px; }
.schedule-date-nav .secondary-button { padding:9px 12px; }
.schedule-date-nav .secondary-button.selected { border-color:rgba(255,54,93,.45); background:rgba(255,54,93,.12); }
.schedule-day-summary { display:grid; justify-items:end; gap:3px; text-align:right; }
.schedule-day-summary span { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.1em; }
.schedule-day-summary strong { font-size:17px; font-variant-numeric:tabular-nums; }
.schedule-day-summary strong.closed { color:#ffaa48; }
.schedule-window-strip { display:flex; gap:7px; overflow-x:auto; padding:2px 0 12px; }
.schedule-window-strip a { flex:0 0 auto; padding:8px 11px; border:1px solid var(--line); border-radius:9px; background:#0e1118; color:var(--muted); font-size:11px; font-weight:800; font-variant-numeric:tabular-nums; }
.schedule-window-strip a.active { color:white; border-color:rgba(255,54,93,.5); background:rgba(255,54,93,.13); }
.schedule-timeline-panel { padding:20px; overflow:visible; }
.schedule-lane-title { align-items:center; }
.schedule-lane-title h2 { margin:4px 0 0; font-size:22px; }
.schedule-guide-legend { display:flex; gap:10px; flex-wrap:wrap; color:var(--muted); font-size:9px; }
.schedule-guide-legend span { display:flex; align-items:center; gap:5px; }
.schedule-guide-legend i { width:7px; height:7px; border-radius:3px; background:#5b657b; }
.schedule-guide-legend i.auto { background:#3b8a6a; }.schedule-guide-legend i.rule { background:#8063bf; }.schedule-guide-legend i.preview { background:var(--accent); }
.schedule-time-ruler { position:relative; height:30px; margin-top:18px; border-bottom:1px solid var(--line); }
.schedule-time-ruler span { position:absolute; bottom:7px; transform:translateX(-50%); color:var(--muted); font-size:10px; font-variant-numeric:tabular-nums; }
.schedule-single-lane { position:relative; height:110px; overflow:hidden; border:1px solid var(--line); border-radius:13px; cursor:crosshair; background-color:#0b0e14; background-image:repeating-linear-gradient(to right, rgba(255,255,255,.045) 0, rgba(255,255,255,.045) 1px, transparent 1px, transparent var(--slot-width)); }
.schedule-single-lane::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(255,255,255,.035), transparent 35%); }
.schedule-lane-programme { position:absolute; top:17px; bottom:17px; z-index:2; min-width:3px; padding:10px 11px; border:1px solid rgba(255,255,255,.12); border-radius:10px; background:#202532; overflow:hidden; display:flex; flex-direction:column; justify-content:center; gap:3px; }
.schedule-lane-programme strong,.schedule-lane-programme span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.schedule-lane-programme strong { font-size:11px; }.schedule-lane-programme span { color:#a9afbc; font-size:9px; font-variant-numeric:tabular-nums; }
.schedule-lane-programme.auto { background:linear-gradient(135deg,rgba(56,148,108,.28),#18241f); border-color:rgba(81,200,143,.28); }
.schedule-lane-programme.rule { background:linear-gradient(135deg,rgba(128,99,191,.3),#211d2c); border-color:rgba(160,125,230,.28); }
.schedule-lane-programme.is-now { box-shadow:inset 0 0 0 1px rgba(255,54,93,.55); }
.schedule-lane-programme.preview { z-index:5; top:9px; bottom:9px; border:2px dashed var(--accent); background:rgba(255,54,93,.2); box-shadow:0 0 30px rgba(255,54,93,.2); pointer-events:none; }
.schedule-now-marker { position:absolute; top:0; bottom:0; z-index:7; width:2px; background:var(--accent); box-shadow:0 0 12px rgba(255,54,93,.65); pointer-events:none; }
.schedule-now-marker b { position:absolute; top:3px; left:5px; color:var(--accent); font-size:7px; letter-spacing:.12em; }
.schedule-preview-status { margin:9px 2px 0; font-size:10px; }
.schedule-editor-grid { display:grid; grid-template-columns:minmax(430px,.9fr) minmax(500px,1.1fr); gap:22px; margin-top:22px; align-items:start; }
.schedule-placement-panel { overflow:visible; }
.auto-fill-state { padding:6px 8px; border:1px solid rgba(98,225,164,.25); border-radius:99px; color:#62e1a4; background:rgba(98,225,164,.06); font-size:8px; font-weight:900; letter-spacing:.09em; white-space:nowrap; }
.placement-mode { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.placement-mode label { position:relative; cursor:pointer; }
.placement-mode input { position:absolute; opacity:0; pointer-events:none; }
.placement-mode span { min-height:68px; padding:12px; border:1px solid var(--line); border-radius:11px; background:#0b0d12; display:flex; flex-direction:column; justify-content:center; gap:4px; }
.placement-mode strong { font-size:13px; }.placement-mode small { color:var(--muted); font-size:9px; }
.placement-mode input:checked + span { border-color:rgba(255,54,93,.55); background:rgba(255,54,93,.12); box-shadow:inset 2px 0 var(--accent); }
.placement-mode label.disabled { opacity:.35; cursor:not-allowed; }
.time-slot-field { display:grid; gap:7px; }
.schedule-fill-form { margin-top:16px; padding-top:14px; border-top:1px solid var(--line); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.schedule-fill-form button { padding:9px 11px; }
.schedule-fill-form span { color:var(--muted); font-size:9px; }
.schedule-compact-list { display:grid; gap:7px; margin-top:14px; }
.schedule-compact-list article { display:grid; grid-template-columns:54px minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px 11px; border:1px solid var(--line); border-radius:10px; background:#0b0d12; }
.schedule-compact-list time { color:#d9dce5; font-size:11px; font-variant-numeric:tabular-nums; }
.schedule-compact-list article > div { min-width:0; display:grid; gap:2px; }
.schedule-compact-list strong,.schedule-compact-list span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.schedule-compact-list strong { font-size:11px; }.schedule-compact-list span { color:var(--muted); font-size:8px; }
.schedule-compact-list .danger { padding:3px 7px; }
.schedule-managed { display:grid; place-items:center; width:28px; height:28px; border:1px solid var(--line); border-radius:8px; color:var(--accent); background:#151923; }
@media (max-width:980px) { .schedule-editor-grid { grid-template-columns:1fr; }.schedule-day-toolbar { align-items:stretch; flex-direction:column; }.schedule-day-summary { justify-items:start; text-align:left; } }
@media (max-width:620px) { .placement-mode { grid-template-columns:1fr; }.schedule-guide-legend { display:none; }.schedule-single-lane { height:96px; }.schedule-date-nav > label { flex:1 1 180px; } }
