:root {
  --bg: #071016;
  --panel: rgba(14, 27, 36, 0.88);
  --panel-strong: #0d1b24;
  --line: rgba(154, 197, 219, 0.14);
  --text: #eaf6fa;
  --muted: #8099a6;
  --cyan: #54e5df;
  --cyan-soft: rgba(84, 229, 223, 0.12);
  --amber: #ffbd66;
  --violet: #a78bfa;
  --green: #69dfa3;
  --red: #ff7787;
  --radius: 18px;
  font-family: Inter, "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--bg); color: var(--text); }
body { min-height: 100vh; overflow-x: hidden; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ambient { position: fixed; pointer-events: none; filter: blur(90px); opacity: .18; border-radius: 50%; }
.ambient-one { width: 420px; height: 420px; background: #17dfd3; top: -200px; right: 8%; }
.ambient-two { width: 360px; height: 360px; background: #7144ff; bottom: -220px; left: 18%; }
.login-view { min-height: 100vh; display: grid; place-items: center; padding: 28px; position: relative; z-index: 1; }
.login-card { width: min(430px, 100%); padding: 38px; border: 1px solid var(--line); border-radius: 26px; background: rgba(10, 22, 30, .92); box-shadow: 0 30px 90px rgba(0,0,0,.45); backdrop-filter: blur(20px); }
.brand-mark { width: 56px; height: 48px; display: flex; align-items: end; gap: 5px; margin-bottom: 28px; }
.brand-mark span { width: 8px; border-radius: 8px; background: var(--cyan); box-shadow: 0 0 22px rgba(84,229,223,.5); }
.brand-mark span:nth-child(1) { height: 18px; }.brand-mark span:nth-child(2) { height: 38px; }.brand-mark span:nth-child(3) { height: 27px; }
.brand-mark.small { width: 34px; height: 30px; margin: 0; gap: 3px; }.brand-mark.small span { width: 5px; }.brand-mark.small span:nth-child(1){height:12px}.brand-mark.small span:nth-child(2){height:25px}.brand-mark.small span:nth-child(3){height:18px}
.eyebrow, .section-kicker { color: var(--cyan); font-size: 11px; letter-spacing: .18em; font-weight: 700; margin: 0 0 10px; }
h1 { font-size: 31px; line-height: 1.2; margin: 0; } h2 { font-size: 28px; margin: 4px 0 0; } h3 { font-size: 18px; margin: 4px 0 0; }
.login-copy { color: var(--muted); line-height: 1.7; margin: 16px 0 28px; }
label { display: grid; gap: 8px; color: #abc0ca; font-size: 13px; margin-bottom: 17px; }
input, select, textarea { width: 100%; color: var(--text); background: rgba(3,12,17,.7); border: 1px solid var(--line); border-radius: 11px; padding: 12px 13px; outline: none; transition: border .18s, box-shadow .18s; }
input:focus, select:focus, textarea:focus { border-color: rgba(84,229,223,.65); box-shadow: 0 0 0 3px rgba(84,229,223,.08); }
textarea { resize: vertical; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; }
.primary, .secondary, .text-button, .icon-button { border: 0; border-radius: 10px; transition: .18s ease; }
.primary { background: var(--cyan); color: #05201f; padding: 11px 17px; font-weight: 750; box-shadow: 0 8px 24px rgba(84,229,223,.14); }.primary:hover { filter: brightness(1.08); transform: translateY(-1px); }
.primary:disabled { opacity:.45; cursor:not-allowed; transform:none; filter:none; }
.secondary { background: rgba(143,178,194,.09); color: #c3d7df; border: 1px solid var(--line); padding: 10px 15px; }.secondary:hover { background: rgba(143,178,194,.16); }
.wide { width: 100%; margin-top: 4px; }
.text-button { color: var(--cyan); background: transparent; padding: 5px; }.text-button:hover { color: #b0fffa; }
.icon-button { width: 36px; height: 36px; background: rgba(255,255,255,.06); color: var(--text); font-size: 24px; }
.login-hint, .form-note { color: #647d89; font-size: 12px; line-height: 1.55; }.form-error { color: var(--red); min-height: 18px; font-size: 13px; }
.app-view { min-height: 100vh; display: grid; grid-template-columns: 240px minmax(0,1fr); position: relative; z-index: 1; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 240px; border-right: 1px solid var(--line); padding: 27px 20px; background: rgba(7,16,22,.88); backdrop-filter: blur(18px); display: flex; flex-direction: column; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 9px 27px; }.brand strong { display: block; font-size: 17px; letter-spacing: .04em; }.brand small { display: block; color: var(--muted); margin-top: 2px; }
nav { display: grid; gap: 7px; }.sidebar nav { min-height:0; overflow-y:auto; }.nav-item { min-height: 46px; display: flex; align-items: center; padding: 0 13px; color: #7f98a4; background: transparent; border: 1px solid transparent; border-radius: 11px; text-align: left; }.nav-label { display:flex; align-items:center; gap:12px; min-width:0; }.nav-icon { flex:0 0 auto; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; opacity:.78; transition:color .18s,opacity .18s,transform .18s; }.nav-item:hover { color: var(--text); background: rgba(255,255,255,.025); }.nav-item:hover .nav-icon { opacity:1; transform:translateX(1px); }.nav-item.active { color: var(--text); background: var(--cyan-soft); border-color: rgba(84,229,223,.14); }.nav-item.active .nav-icon { color:var(--cyan); opacity:1; }
.sidebar-foot { margin-top: auto; padding: 16px 9px 0; border-top: 1px solid var(--line); }.connection { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; margin-bottom: 12px; }.connection i { width: 7px; height: 7px; border-radius: 50%; background: var(--amber); }.connection i.online { background: var(--green); box-shadow: 0 0 10px var(--green); }.connection i.offline { background: var(--red); }
.main { grid-column: 2; padding: 30px 36px 48px; min-width: 0; }.topbar { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; }.top-actions { display: flex; align-items: end; gap: 10px; }.site-filter { margin: 0; gap: 4px; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }.site-filter select { width: 245px; padding: 9px 34px 9px 11px; text-transform:none; letter-spacing:0; }
.view { display: none; }.active-view { display: block; animation: reveal .22s ease; } @keyframes reveal { from {opacity:0; transform:translateY(5px)} to {opacity:1; transform:none} }
.scope-banner { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:14px; padding:14px 18px; border:1px solid rgba(84,229,223,.18); border-radius:14px; background:linear-gradient(90deg,rgba(84,229,223,.07),rgba(167,139,250,.035)); }
.scope-banner > div { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:3px 13px; }.scope-banner .section-kicker { grid-column:1 / -1; }.scope-banner strong { font-size:16px; }.scope-banner small { color:var(--muted); font-size:11px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }.metric-card { position: relative; overflow: hidden; min-height: 145px; border-radius: var(--radius); border: 1px solid var(--line); background: var(--panel); padding: 22px; }.metric-card::after { content:""; position:absolute; width:110px; height:110px; border-radius:50%; right:-50px; top:-55px; background: currentColor; filter:blur(30px); opacity:.12; }.metric-card span { color: #9ab0bb; font-size: 13px; }.metric-card strong { display: block; font-size: 38px; margin: 13px 0 3px; }.metric-card small { color: #647d89; }.metric-card.cyan{color:var(--cyan)}.metric-card.amber{color:var(--amber)}.metric-card.violet{color:var(--violet)}.metric-card.green{color:var(--green)}.metric-card.red{color:var(--red)}
.fleet-metric-grid .metric-card { min-height:132px; }.operations-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:-2px 0 18px; border:1px solid var(--line); border-radius:14px; background:rgba(8,20,27,.62); overflow:hidden; }.operations-strip > div { display:grid; grid-template-columns:1fr auto; align-items:center; gap:3px 12px; padding:13px 17px; border-left:1px solid var(--line); }.operations-strip > div:first-child { border-left:0; }.operations-strip span { color:#9ab0bb; font-size:11px; }.operations-strip strong { grid-row:1 / 3; grid-column:2; color:var(--text); font-size:24px; }.operations-strip small { color:var(--muted); font-size:9px; }.overview-site-panel table { min-width:1040px; }
.module-metric-grid .metric-card { min-height: 125px; }
.dashboard-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 14px; }.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); padding: 20px; min-width: 0; }.span-two { grid-column: 1; }.span-three { grid-column: 1 / -1; }.panel-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 17px; }.section-kicker { margin: 0; font-size: 9px; }
.compact-list { display: grid; }.compact-row { display: grid; grid-template-columns: minmax(180px,1.4fr) 1fr 100px 120px; align-items: center; gap: 12px; padding: 13px 2px; border-top: 1px solid var(--line); font-size: 13px; }.compact-row:first-child{border-top:0}.compact-row small,.muted{color:var(--muted)}
.current-scene { min-height: 180px; }.current-id { font-size: 13px; color: var(--muted); word-break: break-all; }.current-status { font-size: 26px; margin: 18px 0 8px; }.current-meta { display:grid; gap:8px; font-size:12px; color:var(--muted); }.current-site-list { align-content:start; }.current-site-item { display:grid; grid-template-columns:1fr auto; gap:7px 10px; padding:12px 0; border-top:1px solid var(--line); }.current-site-item:first-child{border-top:0}.current-site-item strong { font-size:13px; }.current-site-item small { color:var(--muted); font-size:10px; }.current-site-item .current-meta { grid-column:1 / -1; }
.plan-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }.plan-mini { border:1px solid var(--line); background:rgba(0,0,0,.12); border-radius:13px; padding:15px; }.plan-mini strong { display:block; margin-bottom:10px; }.plan-mini small { color:var(--muted); }
.empty-state { color: var(--muted); display:grid; place-items:center; min-height:100px; font-size:13px; }
.toolbar { display:flex; justify-content:space-between; gap:16px; margin-bottom:14px; }.filter-row { display:flex; flex-wrap:wrap; gap:10px; }.filter-row select { min-width:180px; padding:10px 12px; }.filter-row input[type="search"] { min-width:260px; padding:10px 12px; }
.toolbar-copy { display:grid; gap:4px; }.toolbar-copy strong { font-size:15px; }.toolbar-copy small { color:var(--muted); font-size:12px; }
.table-panel { padding: 0; overflow: hidden; }.table-panel .panel-head { padding:20px 20px 0; }.table-wrap { overflow:auto; } table { width:100%; border-collapse:collapse; min-width:820px; } th { color:#66808d; font-size:10px; letter-spacing:.12em; text-transform:uppercase; text-align:left; padding:14px 18px; border-bottom:1px solid var(--line); } td { padding:15px 18px; border-bottom:1px solid rgba(154,197,219,.08); font-size:13px; vertical-align:middle; } tbody tr:hover { background:rgba(84,229,223,.025); }.cell-title { display:block; color:var(--text); font-weight:650; }.cell-sub { color:var(--muted); font-size:11px; margin-top:4px; max-width:240px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#view-devices table { min-width:1120px; }
.badge { display:inline-flex; align-items:center; border-radius:999px; padding:5px 9px; font-size:10px; font-weight:750; letter-spacing:.04em; background:rgba(139,166,180,.1); color:#aabec8; }.badge.queued,.badge.draft{color:var(--amber);background:rgba(255,189,102,.1)}.badge.running,.badge.review,.badge.preparing{color:var(--cyan);background:var(--cyan-soft)}.badge.waiting_approval,.badge.approved{color:var(--violet);background:rgba(167,139,250,.11)}.badge.succeeded,.badge.published,.badge.active,.badge.completed{color:var(--green);background:rgba(105,223,163,.1)}.badge.failed,.badge.withdrawn,.badge.cancelled{color:var(--red);background:rgba(255,119,135,.1)}
.badge.playing,.badge.presenting,.badge.audible,.badge.ready,.badge.online{color:var(--green);background:rgba(105,223,163,.1)}.badge.paused,.badge.scheduled,.badge.claimed,.badge.audible_unverified,.badge.presenting_unverified,.badge.degraded{color:var(--amber);background:rgba(255,189,102,.1)}.badge.offline,.badge.not_ready{color:var(--red);background:rgba(255,119,135,.1)}
.progress { width:100px; height:5px; border-radius:5px; background:rgba(255,255,255,.07); overflow:hidden; }.progress span { display:block; height:100%; border-radius:inherit; background:var(--cyan); }.row-actions { display:flex; gap:5px; flex-wrap:wrap; }.row-action { border:1px solid var(--line); border-radius:7px; padding:5px 8px; background:rgba(255,255,255,.035); color:#a9c0ca; font-size:10px; }.row-action:hover{color:var(--text);border-color:rgba(84,229,223,.35)}
.cards-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:14px; }.plan-card { border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); padding:20px; }.plan-card-head { display:flex; justify-content:space-between; gap:12px; align-items:start; }.plan-card h3 { margin:0; }.plan-card-meta { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:19px 0; padding:14px 0; border-block:1px solid var(--line); }.plan-card-meta span { color:var(--muted); font-size:11px; }.plan-card-meta strong { display:block; color:var(--text); margin-top:5px; font-size:13px; }.plan-actions { display:flex; flex-wrap:wrap; gap:7px; }
.directory-grid { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(270px,330px); gap:11px; overflow:auto; padding:2px 2px 8px; }
.directory-card { border:1px solid var(--line); border-radius:15px; background:var(--panel); overflow:hidden; transition:.18s ease; }
.directory-card.selected { border-color:rgba(84,229,223,.52); box-shadow:0 0 0 2px rgba(84,229,223,.06); }
.directory-main { width:100%; display:grid; grid-template-columns:38px 1fr auto; align-items:center; gap:11px; padding:15px; border:0; background:transparent; color:var(--text); text-align:left; }
.directory-main:hover { background:rgba(84,229,223,.035); }
.directory-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; background:var(--cyan-soft); color:var(--cyan); font-size:13px; font-weight:800; }
.directory-main strong,.directory-main small { display:block; }
.directory-main small { max-width:190px; margin-top:5px; color:var(--muted); font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.directory-main b { min-width:27px; height:27px; display:grid; place-items:center; border-radius:999px; background:rgba(255,255,255,.06); color:var(--muted); font-size:10px; }
.directory-foot { display:flex; align-items:end; justify-content:space-between; gap:10px; min-height:43px; padding:0 13px 12px; }
.directory-foot .pill-list { margin:0; }
.all-directory .directory-icon { background:rgba(167,139,250,.1); color:var(--violet); }
.asset-directory-grid { grid-auto-flow:initial; grid-auto-columns:initial; grid-template-columns:repeat(auto-fit,minmax(285px,1fr)); overflow:visible; gap:14px; padding:2px 2px 18px; }
.asset-directory-card { --directory-accent:var(--cyan); --directory-accent-soft:rgba(84,229,223,.1); position:relative; display:grid; grid-template-rows:1fr auto auto; min-width:0; min-height:248px; overflow:hidden; border:1px solid var(--line); border-radius:17px; background:linear-gradient(155deg,rgba(15,30,39,.96),rgba(10,22,30,.9)); box-shadow:0 12px 28px rgba(0,0,0,.1); transition:border-color .18s,box-shadow .18s,transform .18s; }
.asset-directory-card::before { content:""; position:absolute; inset:0 0 auto; height:2px; background:linear-gradient(90deg,var(--directory-accent),transparent 78%); opacity:.55; }
.asset-directory-card:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--directory-accent) 35%,transparent); box-shadow:0 17px 34px rgba(0,0,0,.18); }
.asset-directory-card.selected { border-color:color-mix(in srgb,var(--directory-accent) 62%,transparent); box-shadow:0 0 0 2px var(--directory-accent-soft),0 18px 36px rgba(0,0,0,.2); }
.asset-directory-card.disabled { opacity:.72; }
.asset-directory-music { --directory-accent:var(--green); --directory-accent-soft:rgba(105,223,163,.09); }
.asset-directory-video { --directory-accent:var(--violet); --directory-accent-soft:rgba(167,139,250,.09); }
.asset-directory-advertisement { --directory-accent:var(--amber); --directory-accent-soft:rgba(255,189,102,.09); }
.asset-directory-all { --directory-accent:var(--cyan); --directory-accent-soft:rgba(84,229,223,.09); }
.asset-directory-select { width:100%; display:block; min-width:0; padding:18px 18px 15px; border:0; background:transparent; color:var(--text); text-align:left; }
.asset-directory-select:hover { background:linear-gradient(135deg,var(--directory-accent-soft),transparent 58%); }
.asset-directory-select:focus-visible { outline:2px solid var(--directory-accent); outline-offset:-3px; }
.asset-directory-head { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; }
.asset-directory-icon { width:42px; height:42px; display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--directory-accent) 22%,transparent); border-radius:12px; background:var(--directory-accent-soft); color:var(--directory-accent); font-size:14px; font-weight:850; box-shadow:inset 0 1px rgba(255,255,255,.04); }
.asset-directory-title { min-width:0; }
.asset-directory-title small,.asset-directory-title strong { display:block; }
.asset-directory-title small { margin-bottom:4px; color:var(--directory-accent); font-size:9px; font-weight:750; letter-spacing:.1em; }
.asset-directory-title strong { overflow:hidden; color:var(--text); font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.asset-directory-count { display:grid; justify-items:end; min-width:45px; }
.asset-directory-count b { color:var(--text); font-size:22px; line-height:1; }
.asset-directory-count small { margin-top:5px; color:var(--muted); font-size:9px; white-space:nowrap; }
.asset-directory-description { display:-webkit-box; min-height:34px; margin:14px 0 13px; overflow:hidden; color:#91a8b3; font-size:11px; line-height:1.55; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.asset-directory-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--muted); font-size:10px; }
.asset-directory-meta>span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.asset-directory-status { flex:none; padding:4px 8px; border-radius:999px; background:var(--directory-accent-soft); color:var(--directory-accent); font-weight:700; }
.asset-directory-card.disabled .asset-directory-status { background:rgba(255,119,135,.08); color:var(--red); }
.asset-directory-storage { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; min-width:0; padding:10px 18px; border-block:1px solid rgba(154,197,219,.09); background:rgba(2,10,15,.2); }
.asset-directory-storage span,.asset-directory-storage small { color:#647e8a; font-size:9px; white-space:nowrap; }
.asset-directory-storage code { min-width:0; overflow:hidden; color:#9fb6c0; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.asset-directory-summary { grid-template-columns:auto minmax(0,1fr); }
.asset-directory-actions { min-height:48px; display:flex; align-items:center; gap:6px; padding:10px 12px; }
.asset-directory-actions .row-action { padding:6px 10px; }
.asset-directory-actions [data-action="new-asset-in-directory"] { border-color:color-mix(in srgb,var(--directory-accent) 30%,transparent); background:var(--directory-accent-soft); color:var(--directory-accent); font-weight:750; }
.asset-directory-actions [data-action="delete-asset-directory"] { margin-left:auto; }
.asset-directory-actions [data-action="delete-asset-directory"]:hover { border-color:rgba(255,119,135,.35); color:var(--red); }
.asset-directory-all-hint { color:#647e8a; font-size:10px; }
.selected-template-banner { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 18px 14px; padding:13px 15px; border:1px solid rgba(154,197,219,.12); border-radius:12px; background:rgba(5,17,24,.55); color:var(--muted); font-size:11px; }
.selected-template-banner.active { border-color:rgba(84,229,223,.28); background:linear-gradient(110deg,rgba(84,229,223,.1),rgba(105,223,163,.04)); color:var(--text); }
.selected-template-banner div { min-width:0; }
.selected-template-banner small,.selected-template-banner strong,.selected-template-banner span { display:block; }
.selected-template-banner small { margin-bottom:4px; color:var(--cyan); font-size:9px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.selected-template-banner strong { font-size:13px; }
.selected-template-banner span { margin-top:4px; overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }
.selected-template-banner>b { flex:none; color:var(--cyan); font-size:12px; }
tr.selected-schedule-asset td { background:rgba(84,229,223,.035); }
tr.selected-schedule-asset td:first-child { box-shadow:inset 2px 0 var(--cyan); }
.badge.selected-schedule { margin-left:8px; border-color:rgba(84,229,223,.3); background:rgba(84,229,223,.1); color:var(--cyan); vertical-align:middle; }
.date-filter { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:10px; white-space:nowrap; }
.date-filter input { min-width:142px; }
.daily-selection-summary { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); gap:10px; margin:0 0 16px; }
.daily-selection-summary span { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 13px; border:1px solid var(--line); border-radius:11px; background:rgba(7,20,28,.55); color:var(--muted); font-size:10px; }
.daily-selection-summary strong { color:var(--text); font-size:13px; }
.startup-check-card.missing-selection { border-style:dashed; opacity:.82; }
@media (max-width:760px) { .daily-selection-summary { grid-template-columns:repeat(2,minmax(120px,1fr)); } }
.template-list-head { margin:0 0 13px; }
.template-list-head select { width:auto; min-width:220px; padding:9px 12px; }
.directory-label { display:inline-flex; align-items:center; gap:7px; margin-bottom:11px; padding:6px 9px; border:1px solid rgba(84,229,223,.22); border-radius:8px; background:rgba(84,229,223,.065); color:var(--cyan); }
.directory-label small { color:var(--muted); font-size:9px; letter-spacing:.06em; }
.directory-label strong { color:var(--cyan); font-size:11px; }
.template-directory-current { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; margin:-1px 0 15px; padding:11px 13px; border:1px solid rgba(84,229,223,.22); border-radius:11px; background:rgba(84,229,223,.055); }
.template-directory-current span,.template-directory-current small { color:var(--muted); font-size:10px; }
.template-directory-current strong { color:var(--cyan); font-size:13px; }
.template-directory-current.pending { border-color:rgba(255,189,102,.28); background:rgba(255,189,102,.065); }
.template-directory-current.pending strong { color:var(--amber); }
dialog { color:var(--text); border:1px solid var(--line); border-radius:20px; background:#0d1b24; padding:0; width:min(570px,calc(100% - 32px)); box-shadow:0 30px 100px #000; } dialog::backdrop { background:rgba(2,7,10,.72); backdrop-filter:blur(5px); }.dialog-form { padding:25px; }.dialog-head { display:flex; justify-content:space-between; margin-bottom:23px; }.dialog-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:24px; }.two-columns { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.checkbox { display:flex; grid-template-columns:auto 1fr; align-items:center; gap:9px; }.checkbox input { width:auto; }
.wide-dialog { width:min(820px,calc(100% - 32px)); max-height:calc(100vh - 40px); overflow:auto; }.three-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.checkbox-row { display:flex; flex-wrap:wrap; gap:24px; }.context-preview { border:1px solid rgba(84,229,223,.16); background:rgba(84,229,223,.045); border-radius:12px; padding:14px; margin:5px 0 14px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.context-preview span { color:var(--muted); font-size:11px; }.context-preview strong { display:block; color:var(--text); font-size:12px; margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.section-space { height:26px; }.ai-run-card,.proposal-card { position:relative; }.ai-run-meta,.proposal-meta { display:grid; gap:7px; padding:14px 0; color:var(--muted); font-size:12px; }.ai-run-meta strong,.proposal-meta strong { color:var(--text); }.notice { border-radius:9px; padding:9px 10px; font-size:11px; line-height:1.5; background:rgba(255,189,102,.08); color:var(--amber); }.notice.ok { background:rgba(105,223,163,.08); color:var(--green); }.pill-list { display:flex; gap:5px; flex-wrap:wrap; margin-top:10px; }.pill { padding:4px 7px; border-radius:999px; background:rgba(255,255,255,.05); color:var(--muted); font-size:10px; }
.advanced-config { border:1px solid var(--line); border-radius:11px; padding:12px 13px; margin:0 0 17px; }.advanced-config summary { color:#abc0ca; font-size:13px; cursor:pointer; }.advanced-config[open] summary { margin-bottom:16px; }
.ai-execution-boundary { margin-bottom:18px; padding:20px; border:1px solid rgba(84,229,223,.2); border-radius:var(--radius); background:linear-gradient(120deg,rgba(84,229,223,.065),rgba(167,139,250,.035) 56%,rgba(105,223,163,.04)); }
.ai-boundary-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:17px; }.ai-boundary-head h3 { margin-top:4px; }.ai-boundary-head>small { color:var(--muted); font-size:10px; }
.ai-execution-flow { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:stretch; gap:10px; }
.ai-execution-flow>i { align-self:center; color:#4d6976; font-style:normal; font-size:18px; }
.ai-flow-step { display:grid; grid-template-columns:30px minmax(0,1fr); align-items:start; gap:10px; min-height:104px; padding:14px; border:1px solid var(--line); border-radius:13px; background:rgba(5,15,21,.45); }
.ai-flow-step>b { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; background:rgba(255,255,255,.055); color:var(--muted); font-size:11px; }
.ai-flow-step span>* { display:block; }.ai-flow-step small { margin-bottom:5px; color:var(--cyan); font-size:9px; font-weight:750; letter-spacing:.08em; }.ai-flow-step strong { font-size:12px; line-height:1.45; }.ai-flow-step em { margin-top:7px; color:var(--muted); font-size:9px; font-style:normal; line-height:1.5; }
.ai-flow-step.review small { color:var(--violet); }.ai-flow-step.edge small { color:var(--green); }.ai-flow-step.edge>b { color:var(--green); background:rgba(105,223,163,.08); }
.tts-form,.stt-form { padding:0; }.tts-player { display:block; width:100%; margin-top:18px; }.tts-panel code,.stt-panel code { color:var(--cyan); }.dialog-actions a.secondary { text-decoration:none; display:inline-flex; align-items:center; }
.template-card { position:relative; overflow:hidden; }.template-card::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:linear-gradient(var(--cyan),var(--violet)); }.template-card .plan-card-meta { grid-template-columns:repeat(2,1fr); }.template-rule-note { display:flex; gap:14px; align-items:flex-start; padding:13px 14px; margin:0 0 20px; border:1px solid rgba(84,229,223,.16); border-radius:12px; background:rgba(84,229,223,.045); color:var(--muted); font-size:12px; line-height:1.55; }.template-rule-note strong { color:var(--cyan); white-space:nowrap; }.editor-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:22px 0 12px; }.editor-list { display:grid; gap:10px; }.editor-item { border:1px solid var(--line); border-radius:14px; padding:14px; background:rgba(0,0,0,.13); }.editor-item-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px; }.editor-item-head strong { font-size:13px; }.editor-grid { display:grid; grid-template-columns:1.3fr .85fr .7fr .7fr; gap:9px; }.editor-grid label { margin:0; font-size:10px; }.editor-grid input,.editor-grid select { padding:9px 10px; font-size:12px; }.editor-grid .span-two-fields { grid-column:span 2; }.editor-checks { display:flex; flex-wrap:wrap; gap:18px; margin-top:11px; }.editor-checks label { margin:0; }.template-dialog,.plan-detail-dialog { width:min(1120px,calc(100% - 32px)); }.readonly-editor { opacity:.78; }.readonly-editor input,.readonly-editor select { pointer-events:none; }.live-console { min-height:470px; }.live-console .panel-head small { display:block; margin-top:6px; color:var(--muted); font-size:11px; }.live-now { min-height:86px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:18px; }.now-stat { border:1px solid var(--line); border-radius:12px; padding:13px; background:rgba(0,0,0,.12); }.now-stat span { color:var(--muted); font-size:10px; }.now-stat strong { display:block; margin-top:7px; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.actual-timeline { display:grid; gap:8px; margin-bottom:22px; }.timeline-track { display:grid; grid-template-columns:72px 1fr; gap:10px; align-items:start; }.timeline-track-label { color:var(--muted); font-size:10px; padding-top:8px; text-transform:uppercase; }.timeline-events { min-height:36px; display:flex; gap:7px; overflow:auto; padding-bottom:4px; }.timeline-event { flex:0 0 auto; min-width:145px; padding:8px 10px; border-radius:9px; border:1px solid var(--line); background:rgba(255,255,255,.035); font-size:10px; }.timeline-event strong { display:block; color:var(--text); margin-bottom:4px; }.timeline-event.actual { border-color:rgba(84,229,223,.28); }.chart-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:9px; }.chart-legend { display:flex; gap:13px; color:var(--muted); font-size:10px; }.chart-legend span::before { content:""; display:inline-block; width:8px; height:3px; border-radius:3px; margin-right:5px; vertical-align:middle; background:currentColor; }.legend-live{color:var(--cyan)!important}.legend-music{color:var(--amber)!important}.legend-video{color:var(--violet)!important}.legend-heat{color:var(--green)!important}.experience-chart { min-height:230px; border:1px solid var(--line); border-radius:13px; background:rgba(0,0,0,.15); overflow:hidden; }.experience-chart svg { display:block; width:100%; height:230px; }.chart-grid { stroke:rgba(154,197,219,.12); stroke-width:1; }.chart-live{stroke:var(--cyan)}.chart-music{stroke:var(--amber)}.chart-video{stroke:var(--violet)}.chart-heat{stroke:var(--green)}.chart-line { fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }.chart-label { fill:#637d89; font-size:9px; }.chart-gap { stroke-dasharray:4 5; opacity:.45; }.visual-response-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-top:12px; }.response-stat { border-radius:10px; padding:10px 12px; background:rgba(255,255,255,.035); }.response-stat span { color:var(--muted); font-size:10px; }.response-stat strong { display:block; margin-top:5px; }.response-stat.uncertain { opacity:.7; }
.template-authorization { margin:4px 0 20px; padding:14px 16px; border:1px solid rgba(84,229,223,.2); border-radius:14px; background:linear-gradient(145deg,rgba(84,229,223,.055),rgba(167,139,250,.025)); }
.template-authorization-head { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.template-authorization-head h3 { margin:4px 0 6px; font-size:17px; }.template-authorization-head p { max-width:700px; margin:0; color:var(--muted); font-size:12px; line-height:1.6; }
.template-grant-count { flex:0 0 auto; min-width:96px; padding:8px 10px; border:1px solid rgba(84,229,223,.24); border-radius:10px; background:rgba(84,229,223,.07); text-align:center; }.template-grant-count strong { display:block; color:var(--cyan); font-size:20px; line-height:1; }.template-grant-count span { display:block; margin-top:4px; color:#9ab3be; font-size:9px; }
.template-authorization-details { margin-top:9px; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:rgba(2,10,15,.26); }.template-authorization-details>summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px 11px; list-style:none; cursor:pointer; }.template-authorization-details>summary::-webkit-details-marker { display:none; }.template-authorization-details>summary>span { display:grid; gap:2px; }.template-authorization-details>summary strong { color:var(--text); font-size:11px; }.template-authorization-details>summary small,.template-authorization-details>summary em { color:var(--muted); font-size:9px; font-style:normal; }.template-authorization-details>summary::after { content:"＋"; color:var(--cyan); font-size:15px; }.template-authorization-details[open]>summary { border-bottom:1px solid var(--line); background:rgba(84,229,223,.035); }.template-authorization-details[open]>summary::after { content:"−"; }.template-authorization-details[open]>summary em { display:none; }.template-authorization-picker { padding:0 10px 10px; }
.template-authorization-toolbar { display:grid; grid-template-columns:minmax(260px,1fr) auto; align-items:end; gap:12px; padding:15px 0 12px; }.template-authorization-toolbar label { margin:0; }.template-authorization-toolbar label span { font-size:11px; }.template-authorization-toolbar input { padding:10px 12px; }.template-authorization-toolbar .row-actions { justify-content:flex-end; padding-bottom:1px; }
.template-grant-site-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; max-height:210px; overflow:auto; padding:1px; }.template-grant-site-list.empty-state { min-height:70px; border:1px dashed var(--line); border-radius:10px; }
.template-grant-site { position:relative; display:grid; grid-template-columns:27px minmax(0,1fr); align-items:center; gap:8px; min-height:52px; margin:0; padding:8px 9px; border:1px solid var(--line); border-radius:9px; background:rgba(2,10,15,.42); cursor:pointer; transition:border-color .18s,background .18s,transform .18s; }.template-grant-site:hover { border-color:rgba(84,229,223,.35); background:rgba(84,229,223,.035); transform:translateY(-1px); }.template-grant-site.selected { border-color:rgba(84,229,223,.55); background:rgba(84,229,223,.09); box-shadow:inset 3px 0 0 var(--cyan); }
.template-grant-site input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }.template-grant-check { display:grid; place-items:center; width:25px; height:25px; border:1px solid rgba(154,197,219,.24); border-radius:7px; color:transparent; background:rgba(255,255,255,.025); font-size:13px; font-weight:800; }.template-grant-site.selected .template-grant-check { border-color:var(--cyan); color:#06201e; background:var(--cyan); }
.template-grant-identity { min-width:0; }.template-grant-identity strong { display:block; overflow:hidden; color:var(--text); font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.template-grant-identity small { display:block; overflow:hidden; margin-top:5px; color:var(--muted); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.template-grant-device { justify-self:end; max-width:116px; color:var(--muted); font-size:9px; line-height:1.4; text-align:right; }.template-grant-device.online { color:var(--green); }
.template-grant-summary { display:flex; align-items:flex-start; gap:10px; margin-top:9px; padding:8px 10px; border-radius:9px; font-size:10px; }.template-grant-summary strong { flex:0 0 auto; }.template-grant-summary span { color:var(--muted); line-height:1.45; }.template-grant-summary.warning { border:1px solid rgba(255,189,102,.24); background:rgba(255,189,102,.07); }.template-grant-summary.warning strong { color:var(--amber); }.template-grant-summary.ready { border:1px solid rgba(105,223,163,.24); background:rgba(105,223,163,.07); }.template-grant-summary.ready strong { color:var(--green); }
.execution-metric-grid { margin-bottom:18px; }.execution-detail-panel { padding:24px; }.execution-detail-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:18px; border-bottom:1px solid var(--line); }.execution-detail-head h3 { margin-top:5px; }.execution-detail-head small { display:block; margin-top:6px; color:var(--muted); font-size:10px; }.execution-detail-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:18px 0 22px; }.execution-detail-summary>div { min-width:0; min-height:88px; display:grid; align-content:center; gap:5px; padding:13px 14px; border:1px solid var(--line); border-radius:12px; background:linear-gradient(145deg,rgba(84,229,223,.045),rgba(255,255,255,.015)); }.execution-detail-summary>div.empty-state { grid-column:1/-1; }.execution-detail-summary span,.execution-detail-summary small { overflow:hidden; color:var(--muted); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }.execution-detail-summary strong { overflow:hidden; color:var(--text); font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.execution-timeline-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; padding-top:4px; }.execution-timeline-intro>div:first-child { display:grid; gap:5px; }.execution-timeline-intro>div:first-child strong { font-size:14px; }.execution-timeline-intro>div:first-child small { color:var(--muted); font-size:9px; }.execution-timeline-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px 12px; max-width:620px; color:var(--muted); font-size:8px; }.execution-timeline-legend span::before { content:""; display:inline-block; width:8px; height:8px; margin-right:5px; border:1px solid currentColor; border-radius:2px; vertical-align:-1px; background:currentColor; opacity:.8; }.execution-timeline-legend .plan-music,.execution-timeline-legend .actual-music{color:var(--amber)}.execution-timeline-legend .plan-video,.execution-timeline-legend .actual-video{color:var(--violet)}.execution-timeline-legend .camera{color:var(--cyan)}.execution-timeline-legend .sound{color:#f472b6}.execution-timeline-legend .heat{color:var(--green)}
.execution-timeline-legend .live-music{color:#fb923c}.execution-timeline-legend .temperature{color:#38bdf8}.execution-timeline-legend .noise{color:#facc15}.execution-timeline-legend .pm25{color:#a3e635}
.execution-density-control { display:flex; justify-content:flex-end; margin-top:14px; padding:11px 13px 9px; border:1px solid var(--line); border-radius:12px; background:rgba(2,10,15,.28); }.execution-density-slider { width:min(640px,100%); }.execution-density-slider input:disabled { opacity:.42; cursor:not-allowed; }
.execution-multilayer-timeline { min-height:0; display:grid; gap:8px; margin-top:10px; }.execution-multilayer-timeline.empty-state { min-height:150px; place-items:center; border:1px dashed var(--line); border-radius:13px; color:var(--muted); }.execution-timeline-scroll { overflow:auto; padding:2px 0 8px; scroll-behavior:auto; scrollbar-gutter:stable; overscroll-behavior-inline:contain; touch-action:pan-x pan-y; contain:layout paint; }.execution-timeline-svg { display:block; min-width:100%; max-width:none; border:1px solid var(--line); border-radius:13px; background:rgba(2,9,13,.4); }.execution-header,.execution-row-label-bg { fill:#0c1921; }.execution-row { fill:rgba(255,255,255,.012); stroke:rgba(154,197,219,.09); stroke-width:1; }.execution-row-label-bg { stroke:rgba(154,197,219,.13); stroke-width:1; }.execution-grid { stroke:rgba(154,197,219,.16); stroke-width:1; }.execution-grid.minor { stroke:rgba(154,197,219,.06); }.execution-marker { fill:#718b98; font:8px ui-monospace,SFMono-Regular,Consolas,monospace; }.execution-marker.minor { fill:#506b78; font-size:7px; }.execution-row-label { fill:var(--text); font-size:11px; font-weight:750; }.execution-row-hint,.execution-empty-label { fill:var(--muted); font-size:8px; }.execution-plan-block rect { stroke-width:1; }.execution-plan-block.music rect { fill:rgba(255,189,102,.14); stroke:var(--amber); }.execution-plan-block.video rect { fill:rgba(167,139,250,.14); stroke:var(--violet); }.execution-block-title { fill:var(--text); font-size:9px; font-weight:700; pointer-events:none; }.execution-block-time { fill:#9db2bd; font-size:7px; pointer-events:none; }
.execution-actual-point line { stroke-width:1; stroke-dasharray:2 3; opacity:.45; }.execution-actual-point circle { stroke-width:2; fill:#0c1921; }.execution-actual-point.music line,.execution-actual-point.music circle { stroke:var(--amber); }.execution-actual-point.video line,.execution-actual-point.video circle { stroke:var(--violet); }.execution-actual-point.system line,.execution-actual-point.system circle { stroke:var(--cyan); }.execution-sample-point circle { stroke-width:2; fill:#0c1921; }.execution-sample-point.camera circle { stroke:var(--cyan); }.execution-sample-point.sound circle { stroke:#f472b6; }.execution-sample-point.conflict circle { stroke:var(--red); stroke-dasharray:2 2; }.execution-sensor-point.camera path { fill:rgba(84,229,223,.22); stroke:var(--cyan); }.execution-sensor-point.sound path { fill:rgba(244,114,182,.2); stroke:#f472b6; }.execution-sensor-point.heat path { fill:rgba(105,223,163,.22); stroke:var(--green); }.execution-heat-block rect { stroke-width:1; }.execution-heat-block.heat-0 rect { fill:rgba(76,107,126,.2); stroke:#577b91; }.execution-heat-block.heat-1 rect { fill:rgba(84,229,223,.13); stroke:#54e5df; }.execution-heat-block.heat-2 rect { fill:rgba(105,223,163,.18); stroke:#69dfa3; }.execution-heat-block.heat-3 rect { fill:rgba(255,189,102,.19); stroke:#ffbd66; }.execution-heat-block.heat-4 rect { fill:rgba(251,146,60,.23); stroke:#fb923c; }.execution-heat-block.heat-5 rect { fill:rgba(255,119,135,.25); stroke:#ff7787; }.execution-now line { stroke:var(--red); stroke-width:1.5; }.execution-now text { fill:var(--red); font-size:7px; font-weight:700; }
.execution-live-block rect,.timeline-svg-live rect { fill:rgba(251,146,60,.16); stroke:#fb923c; stroke-width:1.4; stroke-dasharray:5 3; }.execution-curve { fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }.execution-curve-point { stroke-width:1.5; fill:#0c1921; }.execution-curve.visual,.execution-curve-point.visual { stroke:var(--cyan); }.execution-curve.audio,.execution-curve-point.audio { stroke:#f472b6; }.execution-curve.indoor,.execution-curve-point.indoor { stroke:#38bdf8; }.execution-curve.outdoor,.execution-curve-point.outdoor { stroke:#f97316; }.execution-curve.noise,.execution-curve-point.noise { stroke:#facc15; }.execution-curve.pm25,.execution-curve-point.pm25 { stroke:#a3e635; }.execution-curve.heat,.execution-curve-point.heat { stroke:var(--green); }.sensor-history-timeline { display:grid; gap:8px; margin:18px 0 4px; padding-top:15px; border-top:1px solid var(--line); }.sensor-history-timeline.empty-state { min-height:90px; place-items:center; border:1px dashed var(--line); border-radius:12px; color:var(--muted); }.sensor-curve-legend { display:flex; flex-wrap:wrap; gap:7px 12px; color:var(--muted); font-size:8px; }.sensor-curve-legend span::before { content:""; display:inline-block; width:11px; height:3px; margin-right:5px; border-radius:3px; vertical-align:middle; background:currentColor; }.sensor-curve-legend .indoor{color:#38bdf8}.sensor-curve-legend .outdoor{color:#f97316}.sensor-curve-legend .noise{color:#facc15}.sensor-curve-legend .pm25{color:#a3e635}.sensor-curve-legend .visual{color:var(--cyan)}.sensor-curve-legend .audio{color:#f472b6}.sensor-curve-legend .heat{color:var(--green)}
.execution-record-details,.execution-event-details { padding:0; overflow:hidden; }.execution-record-details>summary,.execution-event-details>summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; list-style:none; cursor:pointer; }.execution-record-details>summary::-webkit-details-marker,.execution-event-details>summary::-webkit-details-marker { display:none; }.execution-record-details>summary>span,.execution-event-details>summary>span { display:grid; gap:4px; }.execution-record-details>summary small,.execution-event-details>summary small { color:var(--cyan); font-size:8px; font-weight:800; letter-spacing:.13em; }.execution-record-details>summary strong,.execution-event-details>summary strong { font-size:14px; }.execution-record-details>summary em,.execution-event-details>summary em { color:var(--muted); font-size:9px; font-style:normal; }.execution-record-details>summary>b,.execution-event-details>summary>em { color:var(--muted); font-size:10px; font-style:normal; }.execution-record-details>summary::after,.execution-event-details>summary::after { content:"＋"; color:var(--cyan); font-size:18px; }.execution-record-details[open]>summary::after,.execution-event-details[open]>summary::after { content:"−"; }.execution-record-details[open]>summary,.execution-event-details[open]>summary { border-bottom:1px solid var(--line); background:rgba(84,229,223,.035); }.execution-detail-footer { display:flex; justify-content:flex-end; margin-top:18px; }
.execution-view-switch { display:inline-flex; gap:4px; margin-bottom:14px; padding:4px; border:1px solid var(--line); border-radius:12px; background:rgba(0,0,0,.14); }.execution-view-switch button { min-width:112px; padding:9px 16px; border:0; border-radius:8px; color:var(--muted); background:transparent; cursor:pointer; }.execution-view-switch button.active { color:#07151c; background:var(--cyan); font-weight:800; }.execution-history-pane-enter { animation:execution-pane-in .16s ease-out; }@keyframes execution-pane-in{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
.execution-sensor-overview-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:4px 0 10px; padding-top:15px; border-top:1px solid var(--line); }.execution-sensor-overview-head>div { display:grid; gap:4px; }.execution-sensor-overview-head strong { font-size:13px; }.execution-sensor-overview-head small,.execution-sensor-overview-head>span { color:var(--muted); font-size:9px; }.execution-sensor-overview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-bottom:22px; }.execution-sensor-card { min-width:0; display:grid; gap:7px; padding:12px 13px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.025); }.execution-sensor-card header { display:flex; align-items:center; justify-content:space-between; gap:8px; }.execution-sensor-card header>span { color:var(--muted); font-size:9px; }.execution-sensor-card>strong { overflow:hidden; min-height:18px; color:var(--text); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.execution-sensor-card>small { overflow:hidden; color:var(--muted); font-size:8px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }.execution-sensor-status { padding:3px 6px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:7px; }.execution-sensor-status.ready { color:var(--green); border-color:rgba(105,223,163,.35); background:rgba(105,223,163,.08); }.execution-sensor-status.degraded { color:var(--amber); border-color:rgba(255,189,102,.35); background:rgba(255,189,102,.08); }.execution-sensor-status.offline { color:var(--red); border-color:rgba(255,119,135,.35); background:rgba(255,119,135,.08); }.execution-sensor-status.not_connected { color:#78919d; background:rgba(120,145,157,.07); }
.direct-entry-card { cursor:pointer; transition:border-color .18s,box-shadow .18s,transform .18s; }.direct-entry-card:hover,.direct-entry-card:focus-visible { border-color:rgba(84,229,223,.42); box-shadow:0 14px 36px rgba(0,0,0,.18),0 0 0 2px rgba(84,229,223,.055); transform:translateY(-2px); outline:0; }.card-entry-hint { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding:9px 11px; border-radius:9px; background:rgba(84,229,223,.055); color:var(--cyan); font-size:10px; }.card-entry-hint b { font-size:15px; }.timeline-overview-head { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-top:20px; padding-top:15px; border-top:1px solid var(--line); }.timeline-overview-head span { display:grid; gap:4px; }.timeline-overview-head small { color:var(--cyan); font-size:8px; font-weight:800; letter-spacing:.14em; }.timeline-overview-head strong { font-size:14px; }.timeline-overview-head em { color:var(--muted); font-size:9px; font-style:normal; }
.source-uri { max-width:320px; }
.store-list-row { cursor:pointer; transition:background .16s,opacity .16s; }
.store-list-row:hover,.store-list-row:focus-visible { background:rgba(84,229,223,.045); outline:2px solid rgba(84,229,223,.22); outline-offset:-2px; }
.site-detail-dialog { width:min(1120px,calc(100% - 32px)); }
.site-detail-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-bottom:26px; }
.site-detail-summary>div { min-height:92px; display:grid; align-content:center; gap:5px; padding:15px 16px; border:1px solid var(--line); border-radius:13px; background:rgba(84,229,223,.035); }
.site-detail-summary span { color:var(--muted); font-size:10px; }
.site-detail-summary strong { color:var(--cyan); font-size:23px; }
.site-detail-summary small { color:var(--muted); font-size:9px; }
.site-detail-summary .business-hours strong { font-size:16px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; white-space:nowrap; }
.site-business-hours { color:var(--cyan); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; white-space:nowrap; }
.site-detail-section-head { display:flex; justify-content:space-between; align-items:end; gap:16px; margin:22px 0 12px; }
.site-detail-section-head>small { max-width:420px; color:var(--muted); font-size:10px; line-height:1.5; text-align:right; }
.site-template-directories { display:grid; gap:14px; }
.site-template-directory { overflow:hidden; border:1px solid var(--line); border-radius:15px; background:rgba(0,0,0,.12); }
.site-template-directory-head { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:14px 16px; border-bottom:1px solid var(--line); background:linear-gradient(90deg,rgba(84,229,223,.065),rgba(167,139,250,.025)); }
.site-template-directory-head>span { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:4px 12px; }
.site-template-directory-head small { grid-column:1/-1; color:var(--muted); font-size:8px; letter-spacing:.08em; }
.site-template-directory-head strong { color:var(--text); font-size:14px; }
.site-template-directory-head code { min-width:0; overflow:hidden; color:var(--cyan); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.site-template-directory-head>b { flex:0 0 auto; padding:6px 9px; border-radius:999px; background:rgba(84,229,223,.08); color:var(--cyan); font-size:9px; }
.site-template-readiness-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:12px; }
.site-template-readiness { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; padding:13px; border:1px solid rgba(154,197,219,.11); border-radius:12px; background:rgba(255,255,255,.02); }
.site-template-readiness>div:first-child strong,.site-template-readiness>div:first-child small { display:block; }
.site-template-readiness>div:first-child strong { font-size:12px; }
.site-template-readiness>div:first-child small { margin-top:4px; color:var(--muted); font-size:8px; }
.site-template-progress,.site-template-device-states,.site-template-readiness>.notice { grid-column:1/-1; }
.site-template-progress { display:flex; justify-content:space-between; gap:10px; padding-top:9px; border-top:1px solid rgba(154,197,219,.09); color:var(--muted); font-size:9px; }
.site-template-device-states { display:flex; flex-wrap:wrap; gap:6px; }
.site-template-device-state { padding:5px 7px; border-radius:8px; background:rgba(255,255,255,.035); color:#a9bdc7; font-size:8px; }
.site-device-list { display:grid; gap:9px; }
.site-device-card { display:grid; grid-template-columns:minmax(160px,1fr) auto minmax(260px,1.5fr) auto; align-items:center; gap:14px; padding:13px 14px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.02); }
.site-device-card>div strong,.site-device-card>div small { display:block; }
.site-device-card>div strong { font-size:12px; }
.site-device-card>div small,.site-device-card>div span { margin-top:4px; color:var(--muted); font-size:9px; }
.site-singer-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.site-singer-card { display:grid; grid-template-columns:64px minmax(0,1fr); gap:12px; padding:13px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.02); }
.site-singer-card.selected { border-color:rgba(84,229,223,.34); background:rgba(84,229,223,.045); }
.site-singer-photo { width:64px; height:76px; overflow:hidden; border-radius:10px; background:rgba(84,229,223,.08); }
.site-singer-photo img { width:100%; height:100%; object-fit:cover; }
.site-singer-photo-placeholder { width:100%; height:100%; display:grid; place-items:center; color:var(--cyan); font-size:24px; font-weight:700; }
.site-singer-profile>div { display:flex; align-items:center; gap:7px; }
.site-singer-profile strong { font-size:13px; }
.site-singer-profile b { padding:3px 6px; border-radius:999px; background:rgba(84,229,223,.12); color:var(--cyan); font-size:8px; }
.site-singer-profile small,.site-singer-profile p { display:block; margin:5px 0 0; color:var(--muted); font-size:9px; line-height:1.55; }
.site-singer-songs { grid-column:1/-1; padding-top:10px; border-top:1px solid rgba(154,197,219,.09); }
.site-singer-songs>span { color:var(--muted); font-size:9px; }
.site-singer-songs>div { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; color:var(--muted); font-size:9px; }
.site-singer-songs em { padding:4px 7px; border-radius:7px; background:rgba(255,255,255,.04); color:#b8ccd5; font-style:normal; }
.site-song-request-list { display:grid; gap:7px; }
.site-song-request { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(120px,.5fr); align-items:center; gap:12px; padding:11px 13px; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.02); }
.site-song-request strong,.site-song-request small,.site-song-request span { display:block; }
.site-song-request strong { font-size:11px; }
.site-song-request small,.site-song-request span { margin-top:3px; color:var(--muted); font-size:8px; }
.playback-control-form { padding:0; }.playback-source { max-width:420px; }.playback-stale { opacity:.72; }.playback-stale:hover { opacity:1; }
.template-media-grid { display:grid; grid-template-columns:1fr 1.7fr 1.7fr 1.7fr .7fr; gap:9px; align-items:end; }
.template-media-grid label { margin:0; font-size:10px; }
.template-media-grid select { padding:9px 10px; font-size:12px; }
.media-editor-item [data-media],.media-editor-item .post-video-ad { display:none; }
.media-editor-item[data-item-type="MUSIC"] [data-media="music"],.media-editor-item[data-item-type="VIDEO"] [data-media="video"],.media-editor-item[data-item-type="AUDIO_VIDEO"] [data-media="music"],.media-editor-item[data-item-type="AUDIO_VIDEO"] [data-media="video"],.media-editor-item[data-item-type="ADVERTISEMENT"] [data-media="ad"],.media-editor-item[data-item-type="VIDEO"] [data-media="ad"],.media-editor-item[data-item-type="AUDIO_VIDEO"] [data-media="ad"] { display:grid; }
.media-editor-item[data-item-type="VIDEO"] .post-video-ad,.media-editor-item[data-item-type="AUDIO_VIDEO"] .post-video-ad { display:flex; }
.media-editor-item .control-disabled { opacity:.42; }
.asset-duration { min-height:57px; display:grid; align-content:center; padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:rgba(84,229,223,.035); }
.asset-duration span { color:var(--muted); font-size:9px; text-transform:uppercase; }
.asset-duration strong { color:var(--cyan); font-size:13px; margin-top:4px; }
.drag-handle { flex:0 0 auto; color:var(--muted); cursor:grab; user-select:none; letter-spacing:-3px; padding:5px 8px 5px 4px; }
.drag-handle:active { cursor:grabbing; }
.media-editor-item.dragging { opacity:.45; border-color:var(--cyan); }
.media-editor-item.timeline-focused,.plan-editor-item.timeline-focused { border-color:rgba(84,229,223,.85); box-shadow:0 0 0 3px rgba(84,229,223,.09),0 0 28px rgba(84,229,223,.08); }
.media-editor-item .editor-item-head { flex-wrap:wrap; }
.media-editor-item .editor-item-head strong { flex:1; }
.editor-track-badge { flex:0 0 auto; padding:5px 8px; border-radius:999px; font-size:9px; font-weight:800; white-space:nowrap; }
.editor-track-badge.music { color:var(--amber); background:rgba(255,189,102,.1); }.editor-track-badge.video { color:var(--violet); background:rgba(167,139,250,.11); }.editor-track-badge.combined { color:var(--cyan); background:var(--cyan-soft); }.editor-track-badge.scene { color:var(--green); background:rgba(105,223,163,.1); }
.editor-row-actions { justify-content:flex-end; }.danger { color:var(--red)!important; }.danger:hover { border-color:rgba(255,119,135,.4)!important; background:rgba(255,119,135,.08)!important; }
.auto-time { display:grid; flex:0 1 auto; gap:4px; color:var(--cyan); font-size:10px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; text-align:right; }
.auto-time-track { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:4px 9px; }
.auto-time-track b { color:var(--cyan); font-size:10px; white-space:nowrap; }
.auto-time-track em { color:var(--text); font-size:9px; font-style:normal; white-space:nowrap; }
.auto-time-track small { color:var(--amber); font-size:9px; white-space:nowrap; }
.auto-time-track.video b { color:var(--violet); }.auto-time-track.scene b { color:var(--green); }
.template-editor-page-host { width:100%; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); box-shadow:0 24px 70px rgba(0,0,0,.16); }
.template-editor-page-host>.dialog-form { width:100%; padding:26px 28px 30px; }
.template-editor-page .dialog-head { align-items:center; padding-bottom:18px; border-bottom:1px solid var(--line); }
.template-editor-page .dialog-head>div small { display:block; margin-top:7px; color:var(--muted); font-size:10px; }
.template-editor-page .editor-item-head { display:grid; grid-template-columns:auto auto minmax(150px,1fr) minmax(310px,auto) auto; }
.template-editor-page .dialog-actions { position:sticky; z-index:5; bottom:12px; width:max-content; margin-left:auto; padding:9px; border:1px solid var(--line); border-radius:13px; background:rgba(13,27,36,.94); box-shadow:0 12px 32px rgba(0,0,0,.28); backdrop-filter:blur(12px); }
.plan-editor-page .editor-item-head { display:flex; }
.plan-detail-edit-fields { display:grid; gap:10px; margin-top:18px; }.cloud-plan-timeline-panel { margin-top:18px; padding:18px; border:1px solid var(--line); border-radius:14px; background:rgba(0,0,0,.08); }.cloud-plan-timeline-head { align-items:center; margin:0 0 7px; }.cloud-plan-timeline-head small { display:block; margin-top:5px; color:var(--muted); font-size:9px; }.cloud-plan-zoom { min-width:210px; margin:0; color:var(--muted); font-size:10px; }.cloud-plan-zoom input { width:100%; margin-top:7px; padding:0; accent-color:var(--cyan); }.plan-item-details { margin-top:18px; }.plan-item-details .long-list-toolbar { margin-top:14px; }.plan-item-details .long-list-toolbar>span { margin-left:auto; }.plan-item-details>summary i { display:block; margin-top:2px; }.plan-item-details[open]>summary em i { color:var(--cyan); }.plan-item-details[open]>summary em i::before { content:"已展开 · "; }
.advanced-rules { border-top:1px solid rgba(154,197,219,.09); margin-top:12px; padding-top:10px; }
.advanced-rules summary { color:var(--muted); font-size:10px; cursor:pointer; }
.advanced-rules[open] summary { margin-bottom:11px; }
.parallel-track-summary { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:stretch; gap:9px; margin:0 0 18px; }
.track-summary { display:grid; gap:3px; min-height:76px; padding:13px 14px; border:1px solid var(--line); border-radius:12px; background:rgba(0,0,0,.12); }.track-summary span { font-size:8px; font-weight:800; letter-spacing:.13em; }.track-summary strong { font-size:13px; }.track-summary small { color:var(--muted); font-size:9px; line-height:1.45; }.track-summary.music span{color:var(--amber)}.track-summary.video span{color:var(--violet)}.track-summary.scene span{color:var(--green)}
.track-link { display:grid; place-items:center; color:#4f6875; font-size:10px; font-weight:800; text-transform:uppercase; }
.template-insert-actions .primary { padding:9px 12px; font-size:11px; }.template-insert-actions .ai-generate-action { padding:9px 13px; border:1px solid rgba(244,114,182,.55); border-radius:10px; background:linear-gradient(135deg,#a855f7,#ec4899); color:#fff; font-size:11px; font-weight:800; box-shadow:0 8px 24px rgba(192,38,211,.24); }.template-insert-actions .ai-generate-action:hover { filter:brightness(1.08); transform:translateY(-1px); }.template-insert-actions .video-action { background:var(--violet); color:#160e2d; box-shadow:0 8px 24px rgba(167,139,250,.14); }.template-insert-actions .ad-action,.video-gap-action { color:var(--amber); border-color:rgba(255,189,102,.28); background:rgba(255,189,102,.07); }
.template-capacity-summary,.plan-detail-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:2px 0 14px; }
.template-capacity-summary>div,.plan-detail-summary>div { min-width:0; display:grid; gap:5px; padding:13px 14px; border:1px solid var(--line); border-radius:12px; background:linear-gradient(145deg,rgba(84,229,223,.045),rgba(255,255,255,.015)); }
.template-capacity-summary span,.plan-detail-summary span { color:var(--muted); font-size:9px; text-transform:uppercase; }.template-capacity-summary strong,.plan-detail-summary strong { overflow:hidden; color:var(--text); font-size:14px; text-overflow:ellipsis; white-space:nowrap; }.template-capacity-summary small,.plan-detail-summary small { overflow:hidden; color:var(--muted); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.long-list-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:16px 0 10px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.018); }
.long-list-toolbar>div { display:flex; align-items:center; gap:8px; }.long-list-toolbar input,.long-list-toolbar select { width:auto; min-width:170px; padding:8px 10px; font-size:10px; }.long-list-toolbar>span { margin-left:auto; color:var(--cyan); font-size:10px; white-space:nowrap; }
.template-item-details { margin-top:18px; border:1px solid var(--line); border-radius:14px; background:rgba(0,0,0,.08); overflow:hidden; }
.template-item-details>summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; list-style:none; cursor:pointer; background:rgba(255,255,255,.018); }
.template-item-details>summary::-webkit-details-marker { display:none; }.template-item-details>summary>span { display:grid; gap:4px; }.template-item-details>summary small { color:var(--cyan); font-size:8px; font-weight:800; letter-spacing:.14em; }.template-item-details>summary strong { font-size:14px; }.template-item-details>summary em { display:grid; gap:3px; text-align:right; font-style:normal; }.template-item-details>summary b { color:var(--cyan); font-size:10px; }.template-item-details>summary i { color:var(--muted); font-size:8px; font-style:normal; }.template-item-details>summary::after { content:"＋"; color:var(--cyan); font-size:18px; }.template-item-details[open]>summary::after { content:"−"; }.template-item-details[open]>summary { border-bottom:1px solid var(--line); background:rgba(84,229,223,.035); }.template-item-details-body { padding:0 14px 14px; }
.long-editor-list { min-height:70px; }.item-page-hidden { display:none!important; }
.compact-editor-item { transition:border-color .16s,background .16s; }.compact-editor-item:not(.expanded) { padding:9px 12px; background:rgba(0,0,0,.09); }.compact-editor-item:not(.expanded)>.editor-item-head { margin-bottom:0; }.compact-editor-item:not(.expanded)>.template-media-grid,.compact-editor-item:not(.expanded)>.editor-grid,.compact-editor-item:not(.expanded)>.editor-checks,.compact-editor-item:not(.expanded)>.advanced-rules { display:none!important; }.compact-editor-item:not(.expanded) .detail-action { display:none; }.compact-editor-item.expanded { border-color:rgba(84,229,223,.3); background:rgba(84,229,223,.025); }.compact-editor-item.expanded .expand-action { color:var(--cyan); border-color:rgba(84,229,223,.27); }.plan-editor-item .editor-item-head { flex-wrap:wrap; }.plan-editor-item .editor-item-head strong { flex:1; }.detail-action.danger { color:var(--red); }
.inline-media-actions { display:flex; flex-wrap:wrap; gap:5px; }.media-preview-action.music { color:var(--amber); border-color:rgba(255,189,102,.28); }.media-preview-action.video,.media-preview-action.ad { color:var(--violet); border-color:rgba(167,139,250,.3); }.template-item-preview { display:grid; gap:9px; margin:0 0 12px; padding:12px; border:1px solid rgba(84,229,223,.2); border-radius:11px; background:rgba(3,12,17,.72); }.template-item-preview[hidden] { display:none; }.media-preview-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }.media-preview-head span { display:grid; gap:3px; }.media-preview-head small { color:var(--cyan); font-size:8px; letter-spacing:.08em; }.media-preview-head strong { font-size:12px; }.media-preview-loading,.media-preview-status { color:var(--muted); font-size:9px; }.template-media-player.audio { width:100%; height:38px; }.template-media-player.video { width:min(640px,100%); max-height:360px; border-radius:9px; background:#000; }
.quick-insert-dialog { width:min(760px,calc(100% - 32px)); }.quick-insert-tools { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:12px; }.quick-insert-tools>small { color:var(--muted); font-size:9px; text-align:right; }.quick-insert-assets { display:grid; gap:7px; min-height:160px; max-height:430px; margin-top:12px; overflow:auto; }.quick-asset-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:11px; margin:0; padding:11px 13px; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.025); cursor:pointer; }.quick-asset-row:hover { border-color:rgba(84,229,223,.32); background:rgba(84,229,223,.035); }.quick-asset-row input { width:auto; }.quick-asset-row strong,.quick-asset-row small { display:block; }.quick-asset-row strong { font-size:12px; }.quick-asset-row small { margin-top:4px; color:var(--muted); font-size:9px; }.quick-asset-row em { color:var(--cyan); font-size:9px; font-style:normal; }.selection-count { align-self:center; margin-right:auto; color:var(--cyan); font-size:11px; }
.template-auto-timeline { min-height:0; display:grid; gap:8px; padding:16px 0 3px; }
.template-auto-timeline.empty-state { min-height:72px; display:grid; }
.auto-timeline-warning { padding:10px 12px; border:1px solid rgba(255,189,102,.2); border-radius:10px; background:rgba(255,189,102,.07); color:var(--amber); font-size:10px; }
.auto-timeline-ok { padding:10px 12px; border:1px solid rgba(105,223,163,.18); border-radius:10px; background:rgba(105,223,163,.055); color:var(--green); font-size:10px; }
.timeline-scale-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:4px 1px; }.timeline-scale-toolbar>span { display:grid; gap:3px; }.timeline-scale-toolbar>span strong { font-size:13px; }.timeline-scale-toolbar>span small,.timeline-scale-toolbar .row-actions>small { color:var(--muted); font-size:8px; }.timeline-scale-toolbar .row-action.active { color:#07151c; border-color:var(--cyan); background:var(--cyan); }
.timeline-density-slider { width:min(520px,50vw); margin:0; gap:5px; }.timeline-density-slider>span:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }.timeline-density-slider>span:first-child small { color:var(--muted); font-size:9px; }.timeline-density-slider>span:first-child strong { color:var(--cyan); font-size:11px; }.timeline-density-slider input[type="range"] { --density-progress:20%; appearance:none; height:20px; margin:0; padding:6px 0; border:0; border-radius:0; background:transparent; box-shadow:none; cursor:pointer; }.timeline-density-slider input[type="range"]::-webkit-slider-runnable-track { height:7px; border:1px solid rgba(84,229,223,.2); border-radius:999px; background:linear-gradient(90deg,var(--cyan) 0 var(--density-progress),rgba(128,153,166,.25) var(--density-progress) 100%); }.timeline-density-slider input[type="range"]::-webkit-slider-thumb { appearance:none; width:19px; height:19px; margin-top:-7px; border:3px solid #0c1921; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 1px rgba(84,229,223,.5),0 0 14px rgba(84,229,223,.3); }.timeline-density-slider input[type="range"]::-moz-range-track { height:7px; border:1px solid rgba(84,229,223,.2); border-radius:999px; background:rgba(128,153,166,.25); }.timeline-density-slider input[type="range"]::-moz-range-progress { height:7px; border-radius:999px; background:var(--cyan); }.timeline-density-slider input[type="range"]::-moz-range-thumb { width:15px; height:15px; border:3px solid #0c1921; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 1px rgba(84,229,223,.5),0 0 14px rgba(84,229,223,.3); }.timeline-density-labels { display:grid!important; grid-template-columns:repeat(6,1fr); gap:0!important; color:var(--muted); }.timeline-density-labels i { font-size:8px; font-style:normal; text-align:center; }.timeline-density-labels i:first-child { text-align:left; }.timeline-density-labels i:last-child { text-align:right; }
.timeline-hour-jumps { display:flex; gap:6px; overflow:auto; padding-bottom:2px; }.timeline-hour-jumps button { flex:0 0 auto; padding:5px 8px; border:1px solid var(--line); border-radius:7px; color:var(--muted); background:rgba(255,255,255,.02); font-size:8px; cursor:pointer; }.timeline-hour-jumps button:hover { color:var(--cyan); border-color:rgba(84,229,223,.3); }
.parallel-timeline-scroll { overflow:auto; padding:2px 0 7px; scroll-behavior:smooth; }.parallel-timeline-canvas { min-width:980px; border:1px solid var(--line); border-radius:13px; overflow:hidden; background:rgba(2,9,13,.34); }.parallel-time-scale,.parallel-timeline-lane { display:grid; grid-template-columns:105px minmax(0,1fr); }.parallel-time-scale { height:31px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.018); }.parallel-time-scale>span { position:sticky; left:0; z-index:4; border-right:1px solid var(--line); background:#0c1921; }.parallel-time-scale>div { position:relative; }.parallel-time-scale>div::after { content:""; position:absolute; inset:0; background:repeating-linear-gradient(90deg,transparent 0,transparent calc(16.666% - 1px),rgba(154,197,219,.075) calc(16.666% - 1px),rgba(154,197,219,.075) 16.666%); pointer-events:none; }.parallel-time-scale div span { position:absolute; top:9px; z-index:1; color:#607a87; font:8px ui-monospace,SFMono-Regular,Consolas,monospace; transform:translateX(-50%); white-space:nowrap; }.parallel-time-scale div span:first-child{transform:none}.parallel-time-scale div span:last-child{transform:translateX(-100%)}
.parallel-timeline-lane { min-height:72px; border-bottom:1px solid rgba(154,197,219,.09); }.parallel-timeline-lane:last-child{border-bottom:0}.parallel-lane-label { position:sticky; left:0; z-index:4; display:grid; align-content:center; gap:4px; padding:10px 12px; border-right:1px solid var(--line); background:#0c1921; box-shadow:8px 0 14px rgba(2,7,10,.12); }.parallel-lane-label strong { font-size:11px; }.parallel-lane-label small { color:var(--muted); font-size:8px; line-height:1.35; }.parallel-lane-body { position:relative; min-height:72px; background:repeating-linear-gradient(90deg,transparent 0,transparent calc(16.666% - 1px),rgba(154,197,219,.055) calc(16.666% - 1px),rgba(154,197,219,.055) 16.666%); }.parallel-lane-empty { position:absolute; inset:0; display:grid; place-items:center; color:#526a76; font-size:9px; }
.parallel-timeline-block { position:absolute; top:12px; height:48px; min-width:6px; overflow:hidden; padding:7px 9px; border:1px solid currentColor; border-radius:8px; color:var(--cyan); background:rgba(84,229,223,.11); text-align:left; white-space:nowrap; transition:filter .16s,transform .16s; }.parallel-timeline-block:hover { z-index:3; filter:brightness(1.2); transform:translateY(-2px); }.parallel-timeline-block.music { color:var(--amber); background:rgba(255,189,102,.12); }.parallel-timeline-block.video { color:var(--violet); background:rgba(167,139,250,.13); }.parallel-timeline-block.scene { color:var(--green); background:rgba(105,223,163,.11); }.parallel-timeline-block strong,.parallel-timeline-block small { display:block; overflow:hidden; text-overflow:ellipsis; }.parallel-timeline-block strong { color:var(--text); font-size:9px; }.parallel-timeline-block small { margin-top:4px; color:currentColor; font-size:7px; }
.parallel-transition-gap { position:absolute; top:10px; z-index:2; height:52px; min-width:2px; border-inline:1px solid rgba(255,189,102,.5); background:repeating-linear-gradient(135deg,rgba(255,189,102,.42) 0,rgba(255,189,102,.42) 2px,rgba(255,189,102,.08) 2px,rgba(255,189,102,.08) 4px); pointer-events:auto; }
.parallel-timeline-svg { display:block; min-width:100%; max-width:none; border:1px solid var(--line); border-radius:13px; background:rgba(2,9,13,.34); }
.timeline-svg-header { fill:#0c1921; }.timeline-svg-row { fill:rgba(255,255,255,.012); stroke:rgba(154,197,219,.09); stroke-width:1; }.timeline-svg-label-bg { fill:#0c1921; stroke:rgba(154,197,219,.12); stroke-width:1; }.timeline-svg-grid { stroke:rgba(154,197,219,.16); stroke-width:1; }.timeline-svg-grid.minor { stroke:rgba(154,197,219,.065); }.timeline-svg-marker { fill:#718b98; font:8px ui-monospace,SFMono-Regular,Consolas,monospace; }.timeline-svg-marker.minor { fill:#526a76; font-size:7px; }.timeline-svg-label { fill:var(--text); font-size:11px; font-weight:750; }.timeline-svg-hint,.timeline-svg-empty { fill:var(--muted); font-size:8px; }.timeline-svg-block { cursor:pointer; outline:none; }.timeline-svg-block rect { stroke-width:1; transition:filter .15s,stroke-width .15s; }.timeline-svg-block.music rect { fill:rgba(255,189,102,.14); stroke:var(--amber); }.timeline-svg-block.video rect { fill:rgba(167,139,250,.14); stroke:var(--violet); }.timeline-svg-block.scene rect { fill:rgba(105,223,163,.12); stroke:var(--green); }.timeline-svg-block:hover rect,.timeline-svg-block:focus rect { filter:brightness(1.25); stroke-width:2; }.timeline-svg-block-title { fill:var(--text); font-size:9px; font-weight:750; pointer-events:none; }.timeline-svg-block-time { fill:#9db2bd; font-size:7px; pointer-events:none; }.timeline-svg-transition { stroke:rgba(255,189,102,.62); stroke-width:1; }
.asset-candidate-list { display:grid; gap:8px; max-height:390px; overflow:auto; }
.asset-candidate { grid-template-columns:auto 1fr auto; align-items:center; gap:10px; margin:0; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.025); }
.asset-candidate input { width:auto; }
.asset-candidate span { min-width:0; }
.asset-candidate strong,.asset-candidate small { display:block; }
.asset-candidate small { color:var(--muted); margin-top:4px; }
.asset-candidate b { color:var(--cyan); font-size:11px; }
.execution-mode-control { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto; align-items:center; gap:14px; margin:-4px 0 22px; padding:15px 16px; border:1px solid rgba(84,229,223,.24); border-radius:13px; background:rgba(84,229,223,.055); }
.execution-mode-control.live-performance { border-color:rgba(255,189,102,.34); background:rgba(255,189,102,.075); }
.execution-mode-control>div { display:grid; gap:3px; }.execution-mode-control span { color:var(--muted); font-size:10px; }.execution-mode-control strong { font-size:14px; }.execution-mode-control small { color:var(--muted); font-size:10px; }.execution-mode-control button { white-space:nowrap; }
@media(max-width:760px){.execution-mode-control{grid-template-columns:1fr}.execution-mode-control button{width:100%}}
.toast { position:fixed; z-index:10; right:28px; bottom:28px; max-width:380px; padding:13px 17px; border-radius:11px; background:#16313a; border:1px solid rgba(84,229,223,.3); box-shadow:0 16px 50px rgba(0,0,0,.4); opacity:0; transform:translateY(12px); pointer-events:none; transition:.2s; }.toast.show { opacity:1; transform:none; }.toast.error { border-color:rgba(255,119,135,.45); background:#361b24; }
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.operations-strip{grid-template-columns:repeat(2,1fr)}.operations-strip>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.operations-strip>div:nth-child(4){border-top:1px solid var(--line)}.dashboard-grid{grid-template-columns:1fr}.span-two,.span-three{grid-column:1}.plan-strip{grid-template-columns:1fr}.editor-grid{grid-template-columns:repeat(2,1fr)}.template-media-grid{grid-template-columns:1fr 1fr 1fr}.template-capacity-summary,.plan-detail-summary{grid-template-columns:repeat(2,1fr)}.live-now{grid-template-columns:repeat(2,1fr)}.site-template-readiness-grid{grid-template-columns:1fr}.site-device-card{grid-template-columns:minmax(160px,1fr) auto}.site-device-card>div:nth-child(3){grid-column:1/-1}}
@media(max-width:760px){.app-view{display:block}.sidebar{position:static;width:auto;height:auto;padding:15px}.brand{padding-bottom:12px}.sidebar nav{display:flex;overflow:auto}.nav-item{min-width:max-content;gap:15px}.sidebar-foot{display:none}.main{padding:20px}.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%}.site-filter{flex:1}.site-filter select{width:100%}.scope-banner{align-items:flex-start}.scope-banner>div{grid-template-columns:1fr}.operations-strip{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr 1fr}.compact-row{grid-template-columns:1fr 100px}.compact-row>*:nth-child(2),.compact-row>*:nth-child(4){display:none}.two-columns,.three-columns,.editor-grid,.template-media-grid{grid-template-columns:1fr}.editor-head,.template-list-head,.site-detail-section-head{align-items:flex-start;flex-direction:column}.template-list-head select{width:100%}.context-preview{grid-template-columns:1fr 1fr}.timeline-track{grid-template-columns:1fr}.visual-response-summary{grid-template-columns:1fr 1fr}.auto-time{display:none}.parallel-track-summary{grid-template-columns:1fr}.track-link{display:none}.editor-row-actions{width:100%}.long-list-toolbar,.quick-insert-tools,.timeline-scale-toolbar{align-items:flex-start;flex-direction:column}.timeline-density-slider{width:100%}.long-list-toolbar>div{width:100%;flex-wrap:wrap}.long-list-toolbar input,.long-list-toolbar select{flex:1;min-width:130px}.long-list-toolbar>span{margin-left:0}.quick-insert-tools>small{text-align:left}.quick-asset-row{grid-template-columns:auto 1fr}.quick-asset-row em{display:none}.site-detail-summary{grid-template-columns:1fr 1fr}.site-detail-section-head>small{text-align:left}.site-template-directory-head{align-items:flex-start}.site-template-directory-head>span{grid-template-columns:1fr}.site-template-directory-head small{grid-column:auto}.site-device-card{grid-template-columns:1fr auto}.site-device-card>button{grid-column:1/-1}.site-device-card>div:nth-child(3){grid-column:1/-1}}
@media(max-width:900px){.site-singer-list{grid-template-columns:1fr}}
@media(max-width:600px){.site-song-request{grid-template-columns:1fr auto}.site-song-request>div:last-child{grid-column:1/-1}}
@media(max-width:480px){.metric-grid{grid-template-columns:1fr}.login-card{padding:28px 22px}.top-actions{flex-wrap:wrap}.top-actions .secondary{width:100%}.filter-row{display:grid;width:100%}.toolbar{align-items:end}.filter-row select{min-width:0}}
@media(max-width:1050px){.template-editor-page .editor-item-head{grid-template-columns:auto auto minmax(140px,1fr) auto}.template-editor-page .auto-time{grid-column:3/-1;grid-row:2;text-align:left}.template-editor-page .auto-time-track{justify-content:flex-start}.template-editor-page .editor-row-actions{grid-column:4;grid-row:1/3}}
@media(max-width:760px){.template-editor-page-host>.dialog-form{padding:19px 16px 24px}.template-editor-page .dialog-head{align-items:flex-start;flex-direction:column;gap:14px}.template-editor-page .editor-item-head{display:flex}.template-editor-page .auto-time{display:grid;width:100%;order:5;text-align:left}.template-editor-page .auto-time-track{justify-content:flex-start}.template-editor-page .editor-row-actions{order:6}.template-editor-page .dialog-actions{position:static;width:100%;flex-wrap:wrap}.template-editor-page .dialog-actions>*{flex:1}}
@media(max-width:1050px){.execution-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.execution-timeline-intro{align-items:flex-start;flex-direction:column}.execution-timeline-legend{justify-content:flex-start}}
@media(max-width:1050px){.execution-sensor-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.execution-detail-panel{padding:18px 15px}.execution-detail-head{align-items:flex-start;flex-direction:column}.execution-detail-head .row-actions{width:100%;justify-content:space-between}.execution-detail-summary{grid-template-columns:1fr}.execution-timeline-intro>div:first-child small{line-height:1.5}.execution-timeline-legend{gap:7px 10px}.execution-event-details>summary{padding:15px}.execution-detail-footer button{width:100%}.execution-sensor-overview-head{align-items:flex-start;flex-direction:column}.execution-sensor-overview{grid-template-columns:1fr}}
.audit-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  padding: 14px 18px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
}
@media(max-width:760px) {
  .template-authorization { padding:15px 12px; }
  .template-authorization-head { flex-direction:column; }
  .template-grant-count { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; }
  .template-grant-count strong,.template-grant-count span { display:inline; margin:0; }
  .template-authorization-toolbar { grid-template-columns:1fr; align-items:stretch; }
  .template-authorization-toolbar .row-actions { justify-content:flex-start; }
  .template-grant-site-list { grid-template-columns:1fr; max-height:220px; }
  .template-grant-summary { flex-direction:column; gap:5px; }
}
