/* CGV 自有广告前端原型；限定在广告页内，避免影响其它模块。 */
#cgvAdApp { color:var(--text); }
#cgvAdApp .cgv-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:14px; }
#cgvAdApp .cgv-head h2 { font-size:18px; margin:0 0 6px; }
#cgvAdApp .cgv-head p { color:var(--text-muted); font-size:12px; margin:0; line-height:1.6; }
#cgvAdApp .cgv-layout { display:grid; grid-template-columns:205px minmax(0,1fr); gap:16px; align-items:start; }
#cgvAdApp .cgv-sidebar { background:var(--bg-card); border:1px solid var(--border); border-radius:9px; padding:9px; position:sticky; top:72px; }
#cgvAdApp .cgv-side-group { color:var(--text-muted); font-size:10px; font-weight:700; letter-spacing:.04em; padding:12px 10px 5px; }
#cgvAdApp .cgv-side-btn { width:100%; border:0; border-radius:6px; background:transparent; color:var(--text); text-align:left; padding:9px 10px; cursor:pointer; font-size:12px; }
#cgvAdApp .cgv-side-btn:hover { background:var(--bg-subtle); }
#cgvAdApp .cgv-side-btn.active { background:rgba(13,122,111,.10); color:var(--teal); font-weight:700; }
#cgvAdApp .cgv-main { min-width:0; }
#cgvAdApp .cgv-page { display:none; }
#cgvAdApp .cgv-page.active { display:block; }
#cgvAdApp .cgv-card { background:var(--bg-card); border:1px solid var(--border); border-radius:9px; padding:18px; margin-bottom:14px; }
#cgvAdApp .cgv-card h3 { margin:0 0 6px; font-size:15px; }
#cgvAdApp .cgv-card h4 { margin:0 0 8px; font-size:13px; }
#cgvAdApp .cgv-muted { color:var(--text-muted); font-size:12px; line-height:1.6; }
#cgvAdApp .cgv-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
#cgvAdApp .cgv-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; }
#cgvAdApp .cgv-grid.two { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
#cgvAdApp .cgv-field { display:flex; flex-direction:column; gap:5px; min-width:0; font-size:12px; }
#cgvAdApp .cgv-field>span { color:var(--text-muted); font-weight:600; }
#cgvAdApp .cgv-field input, #cgvAdApp .cgv-field select, #cgvAdApp .cgv-field textarea { width:100%; border:1px solid var(--border); border-radius:6px; background:var(--bg-card); color:var(--text); padding:8px 9px; font:inherit; }
#cgvAdApp .cgv-field textarea { min-height:74px; resize:vertical; }
#cgvAdApp .cgv-field input:disabled, #cgvAdApp .cgv-field select:disabled { background:var(--bg-subtle); color:var(--text-muted); }
#cgvAdApp .cgv-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:14px; }
#cgvAdApp .cgv-button { border:1px solid var(--teal); border-radius:6px; background:var(--teal); color:#fff; padding:8px 12px; font-size:12px; font-weight:600; cursor:pointer; }
#cgvAdApp .cgv-button.secondary { background:var(--bg-card); color:var(--teal); }
#cgvAdApp .cgv-button:disabled { opacity:.50; cursor:not-allowed; }
#cgvAdApp .cgv-step-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:8px; }
#cgvAdApp .cgv-step { border:1px solid var(--border); border-radius:7px; padding:11px; background:var(--bg-subtle); font-size:12px; }
#cgvAdApp .cgv-step b { display:block; margin-bottom:5px; }
#cgvAdApp .cgv-step small { color:var(--text-muted); line-height:1.5; }
#cgvAdApp .cgv-note { border:1px solid var(--border); border-radius:7px; background:var(--bg-subtle); padding:11px 13px; color:var(--text-muted); font-size:12px; line-height:1.7; margin:12px 0; }
#cgvAdApp .cgv-note.warning { background:#fffbeb; border-color:#fcd34d; color:#92400e; }
#cgvAdApp .cgv-note.success { background:#ecfdf5; border-color:#a7f3d0; color:#065f46; }
#cgvAdApp .cgv-table-wrap { max-width:100%; overflow:auto; border:1px solid var(--border); border-radius:7px; }
#cgvAdApp .cgv-table { width:100%; border-collapse:collapse; font-size:12px; }
#cgvAdApp .cgv-table th, #cgvAdApp .cgv-table td { text-align:left; padding:9px 10px; border-bottom:1px solid var(--border); vertical-align:top; }
#cgvAdApp .cgv-table th { color:var(--text-muted); background:var(--bg-subtle); white-space:nowrap; }
#cgvAdApp .cgv-table td { color:var(--text); }
#cgvAdApp .cgv-empty { text-align:center !important; color:var(--text-muted) !important; padding:25px 10px !important; }
#cgvAdApp .cgv-preview { min-height:170px; background:#101827; color:#d1d5db; border-radius:7px; display:flex; justify-content:center; align-items:center; text-align:center; padding:20px; font-size:12px; }
#cgvAdApp .cgv-kpi { border:1px solid var(--border); border-radius:7px; padding:12px; background:var(--bg-subtle); }
#cgvAdApp .cgv-kpi span { display:block; color:var(--text-muted); font-size:11px; }
#cgvAdApp .cgv-kpi strong { display:block; font-size:18px; margin-top:5px; }

/* ==================== 生产级增强模块样式 (COM/MAT/SEQ/DIST) ==================== */
#cgvAdApp .cgv-calc-result { background:var(--bg-subtle); border:1px solid var(--border); border-radius:8px; padding:16px; margin-top:14px; }
#cgvAdApp .cgv-calc-price { font-size:24px; font-weight:800; color:var(--teal); margin:4px 0 10px; }
#cgvAdApp .cgv-qc-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:12px; margin-bottom:14px; }
#cgvAdApp .cgv-qc-card { border:1px solid var(--border); border-left:4px solid var(--teal); border-radius:8px; padding:14px; background:var(--bg-card); box-shadow:0 1px 3px rgba(0,0,0,0.05); }
#cgvAdApp .cgv-qc-card.warn { border-left-color:#f59e0b; }
#cgvAdApp .cgv-qc-card.error { border-left-color:#ef4444; }
#cgvAdApp .cgv-qc-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
#cgvAdApp .cgv-qc-head strong { font-size:13px; color:var(--text); }
#cgvAdApp .cgv-qc-tags { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
#cgvAdApp .cgv-qc-metrics { display:grid; grid-template-columns:1fr 1fr; gap:6px; font-size:11px; color:var(--text-muted); }
#cgvAdApp .cgv-qc-metrics b { color:var(--text); }

/* 甘特图时序轴模拟器 (Sequencing Timeline) */
#cgvAdApp .cgv-timeline-wrapper { background:var(--bg-subtle); border:1px solid var(--border); border-radius:8px; padding:16px; margin:14px 0; overflow-x:auto; }
#cgvAdApp .cgv-timeline-track { position:relative; height:64px; background:rgba(0,0,0,0.06); border-radius:6px; display:flex; align-items:center; padding:0 8px; margin-bottom:10px; min-width:680px; }
#cgvAdApp .cgv-timeline-block { height:46px; border-radius:5px; color:#fff; font-size:11px; font-weight:600; display:flex; flex-direction:column; justify-content:center; align-items:center; margin-right:4px; box-shadow:0 2px 4px rgba(0,0,0,0.15); cursor:pointer; transition:transform 0.15s ease; user-select:none; }
#cgvAdApp .cgv-timeline-block:hover { transform:translateY(-2px); filter:brightness(1.08); }
#cgvAdApp .cgv-timeline-block.opener { background:#3b82f6; width:18%; }
#cgvAdApp .cgv-timeline-block.ad1 { background:#10b981; width:22%; }
#cgvAdApp .cgv-timeline-block.ad2 { background:#0d9488; width:22%; }
#cgvAdApp .cgv-timeline-block.safety { background:#8b5cf6; width:14%; }
#cgvAdApp .cgv-timeline-block.gold { background:#f59e0b; width:16%; }
#cgvAdApp .cgv-timeline-block.feature { background:#64748b; width:8%; }
#cgvAdApp .cgv-timeline-scale { display:flex; justify-content:space-between; font-size:11px; color:var(--text-muted); font-family:monospace; min-width:680px; }

/* 121家影院态势分布大屏 (Distribution) */
#cgvAdApp .cgv-status-badge { display:inline-block; padding:2px 8px; border-radius:12px; font-size:11px; font-weight:600; }
#cgvAdApp .cgv-status-badge.ready { background:rgba(16,185,129,0.12); color:#059669; }
#cgvAdApp .cgv-status-badge.syncing { background:rgba(245,158,11,0.12); color:#d97706; }
#cgvAdApp .cgv-status-badge.pending { background:rgba(239,68,68,0.12); color:#dc2626; }

@media(max-width:900px) { #cgvAdApp .cgv-layout { grid-template-columns:1fr; } #cgvAdApp .cgv-sidebar { position:static; display:flex; flex-wrap:wrap; gap:4px; } #cgvAdApp .cgv-side-group { width:100%; } #cgvAdApp .cgv-side-btn { width:auto; } }
