:root{--brand:#e8922a;--brand-light:#f0a030;--brand-hover:#f5c77e;--brand-dark:#d17a0b;--brand-bg:#fff8f0;--brand-text:#7a5c2e;--action:#43a047;--action-hover:#388e3c;--danger:#ef4444;--danger-hover:#dc2626;--text-primary:#1a1a2e;--text-secondary:#6b7280;--text-tertiary:#9ca3af;--text-muted:#4a5268;--surface:#fff;--surface-page:#f5f5f5;--surface-hover:#f8f9fa;--surface-muted:#f3f4f6;--border:#e5e7eb;--border-input:#d1d5db;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--shadow-xl:0 20px 60px #0003;--status-active-bg:#d1fae5;--status-active-text:#065f46;--status-scheduled-bg:#e0e7ff;--status-scheduled-text:#3730a3;--status-hold-bg:#fef3c7;--status-hold-text:#92400e;--status-expired-bg:#f3f4f6;--status-expired-text:#6b7280;--status-error-bg:#fee2e2;--status-error-text:#991b1b;--online:#10b981;--offline:#d1d5db;--toggle-on:#f59e0b;--type-video:#e0e7ff;--type-image:#fce7f3;--type-ads:#fff7ed;--type-jingles:#f0fdf4;--type-announcements:#fdf4ff;--type-failsafe:#f0f9ff}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--surface-page);color:var(--text-primary);flex-direction:column;font-family:Calibri,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;display:flex;overflow:hidden}#app{flex-direction:column;height:100%;display:flex}a{color:inherit;text-decoration:none}.top-nav{background:var(--surface);border-bottom:2px solid var(--brand);z-index:150;flex-shrink:0;align-items:center;height:56px;padding:0 24px 0 0;display:flex}.top-nav-brand{flex-shrink:0;align-items:center;height:100%;margin-right:40px;display:flex;overflow:hidden}.brand-logo{object-fit:cover;object-position:top center;width:auto;height:140%;margin-top:-4px;display:block}.top-nav-menu{flex:1;align-items:center;gap:0;height:100%;display:flex}.top-nav-item{height:100%;color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-bottom:3px solid #0000;align-items:center;gap:4px;padding:0 20px;font-size:14px;font-weight:500;transition:color .15s;display:flex;position:relative}.top-nav-item:hover{color:var(--text-primary)}.top-nav-item.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.btn-signout{background:var(--action);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:20px;flex-shrink:0;margin-left:auto;padding:8px 20px;font-size:13px;font-weight:600;transition:background .15s}.btn-signout:hover{background:var(--action-hover)}.top-nav-chevron{flex-shrink:0;width:14px;height:14px;transition:transform .2s}.top-nav-item.dropdown-open .top-nav-chevron{transform:rotate(180deg)}.channel-dropdown{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:200;border-radius:8px;min-width:220px;padding:6px 0;position:absolute;top:100%;left:0}.channel-option{color:var(--text-primary);cursor:pointer;align-items:center;gap:10px;padding:10px 16px;font-size:13px;font-weight:500;transition:background .1s;display:flex}.channel-option:hover{background:var(--surface-hover)}.channel-option.active{background:var(--brand-bg);color:var(--brand);font-weight:600}.channel-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.app-layout{flex:1;display:flex;overflow:hidden}.sidebar{background:linear-gradient(180deg, var(--brand) 0%, var(--brand-light) 100%);z-index:100;flex-direction:column;width:200px;min-width:200px;display:flex;overflow-y:auto}.sidebar nav{flex:1;padding:8px 0}.nav-item{cursor:pointer;color:#000000a6;border-left:3px solid #0000;border-radius:0 6px 6px 0;align-items:center;gap:10px;margin:1px 8px 1px 0;padding:10px 16px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{color:#000000d9;background:#fff3}.nav-item.active{color:var(--text-primary);background:#ffffffd9;font-weight:600}.nav-icon{flex-shrink:0;display:inline-flex}.nav-icon svg{opacity:.6;width:18px;height:18px}.nav-item.active .nav-icon svg{opacity:.9}.sidebar-footer{border-top:1px solid #fff3;padding:8px 0}.sidebar-credits{color:#00000059;padding:10px 16px 12px;font-size:10px;line-height:1.5}.sidebar-version{align-items:center;gap:6px;margin-bottom:2px;font-weight:600;display:flex}.ds-pill{letter-spacing:.5px;border-radius:3px;padding:1px 5px;font-size:8px;font-weight:700;display:inline-block}.ds-pill.mock{background:var(--brand);color:#fff}.ds-pill.api{color:#fff;background:#15803d}.sidebar-build-link{color:#ffffffb3;cursor:pointer;margin-top:1px;font-size:9px;text-decoration:none;transition:color .15s;display:block}.sidebar-build-link:hover{color:#fff;text-decoration:underline}.sidebar-build-link.active{color:var(--brand);font-weight:600}.main{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.main-inner{z-index:1;flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.main-header{background:var(--surface-page);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 32px 14px;display:flex}.main-header h1{color:var(--text-primary);font-size:20px;font-weight:700}.main-header-left{flex-shrink:0;align-items:center;gap:16px;display:flex}.main-header-actions{align-items:center;gap:8px;display:flex}.main-content{flex:1;padding:0 32px 24px;overflow-y:auto}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--action);color:#fff}.btn-primary:hover{background:var(--action-hover)}.btn-ghost{color:var(--brand);border:1px solid var(--border-input);background:0 0}.btn-ghost:hover{background:var(--brand-bg);border-color:var(--brand)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-danger-ghost{color:var(--danger);border:1px solid var(--border-input);background:0 0;align-items:center;display:inline-flex}.btn-danger-ghost:hover{border-color:var(--danger);background:#ef44440f}.delete-confirm{align-items:center;gap:8px;width:100%;display:flex}.delete-confirm-text{color:var(--danger);flex:1;font-size:13px;font-weight:600}.save-error{color:var(--danger);text-overflow:ellipsis;white-space:nowrap;flex:1;padding:0 12px;font-size:12px;overflow:hidden}.content-loading{text-align:center;color:var(--text-tertiary);padding:40px 24px;font-size:13px}.content-error{color:var(--danger);background:#ef44440f;border:1px solid #ef444440;border-radius:8px;margin-bottom:16px;padding:16px 18px;font-size:13px}.btn-sm{padding:6px 12px;font-size:12px}.btn-icon{border:1px solid var(--border-input);background:var(--surface);cursor:pointer;color:var(--text-secondary);border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:inline-flex}.btn-icon svg{width:16px;height:16px}.btn-icon:hover{color:var(--text-primary);border-color:var(--text-tertiary)}.btn-icon.active{color:var(--brand);border-color:var(--brand);background:var(--brand-bg)}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.search-wrap{align-items:center;display:inline-flex;position:relative}.search-wrap input{border:1px solid var(--border-input);border-radius:6px;outline:none;width:220px;padding:7px 28px 7px 12px;font-size:13px;transition:border .15s}.search-wrap input:focus{border-color:var(--brand)}.search-clear{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;padding:2px;font-size:16px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.filter-bar select{border:1px solid var(--border-input);background:var(--surface);cursor:pointer;border-radius:6px;outline:none;padding:7px 12px;font-size:13px}.filter-bar select:focus{border-color:var(--brand)}.filter-count{color:var(--text-secondary);font-size:12px}.filter-separator{background:var(--border);width:1px;height:20px}.btn-clear-filters{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:12px;transition:all .15s;display:none}.btn-clear-filters.visible{display:inline-block}.btn-clear-filters:hover{color:var(--brand);background:var(--brand-bg)}.view-toggle{align-items:center;gap:2px;display:flex}.content-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:16px;display:grid}.content-card{background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;border:2px solid #0000;border-radius:8px;transition:all .2s;overflow:hidden}.content-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.content-card.selected{border-color:var(--brand)}.card-thumb{justify-content:center;align-items:center;height:140px;display:flex;position:relative;overflow:hidden}.card-thumb .format-badge{color:#fff;background:#0000008c;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:600;position:absolute;top:8px;right:8px}.card-thumb .status-badge{border-radius:4px;padding:3px 8px;font-size:10px;font-weight:600;position:absolute;top:8px;left:8px}.card-checkbox{z-index:3;cursor:pointer;background:#ffffff80;border:2px solid #ffffffb3;border-radius:4px;width:20px;height:20px;display:none;position:absolute;top:8px;left:8px}.content-card:hover .card-checkbox{display:flex}.card-checkbox.checked{background:var(--brand);border-color:var(--brand);display:flex}.card-body{padding:12px 14px}.card-body .card-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:13px;font-weight:600;overflow:hidden}.card-meta{color:var(--text-secondary);align-items:center;gap:8px;font-size:11px;display:flex}.card-meta .pill{background:var(--surface-muted);border-radius:10px;align-items:center;gap:3px;padding:2px 8px;font-weight:500;display:inline-flex}.card-type-icon{display:flex}.card-type-icon svg{opacity:.5;width:36px;height:36px}.meta-icon{display:inline-flex}.meta-icon svg{width:12px;height:12px}.btn-svg{display:inline-flex}.btn-svg svg{width:16px;height:16px}.table-thumb-icon{display:flex}.table-thumb-icon svg{opacity:.5;width:14px;height:14px}.status-active{background:var(--status-active-bg);color:var(--status-active-text)}.status-scheduled{background:var(--status-scheduled-bg);color:var(--status-scheduled-text)}.status-hold{background:var(--status-hold-bg);color:var(--status-hold-text)}.status-expired{background:var(--status-expired-bg);color:var(--status-expired-text)}.status-unscheduled{background:var(--status-error-bg);color:var(--status-error-text)}.status-processing{background:var(--type-video);color:var(--status-scheduled-text);padding-left:18px;position:relative}.status-processing:before{content:"";border:1.5px solid;border-top-color:#0000;border-radius:50%;width:8px;height:8px;margin-top:-4px;animation:.8s linear infinite spin;position:absolute;top:50%;left:6px}@keyframes spin{to{transform:rotate(360deg)}}.content-group-header{color:var(--text-primary);align-items:center;gap:8px;padding:16px 0 8px;font-size:13px;font-weight:700;display:flex}.content-group-header:first-child{padding-top:0}.content-group-header .cgh-count{color:var(--text-tertiary);font-size:11px;font-weight:500}.content-table{border-collapse:collapse;width:100%}.content-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:2px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:11px;font-weight:600}.content-table th.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .1s}.content-table th.th-sort:hover{color:var(--text-primary)}.content-table th.th-sorted{color:var(--brand)}.content-table th .sort-arrow{margin-left:2px;font-size:9px}.content-table td{border-bottom:1px solid var(--surface-muted);vertical-align:middle;padding:10px 12px;font-size:13px}.content-table tr{cursor:pointer;transition:background .1s}.content-table tbody tr:hover{background:var(--surface-hover)}.content-table .table-name-cell{align-items:center;gap:10px;display:flex}.content-table .table-thumb{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:30px;display:flex}.content-table .table-name{font-weight:600}.content-table .table-pill,.table-pill{background:var(--surface-muted);color:var(--text-secondary);border-radius:10px;align-items:center;gap:3px;margin-right:2px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.stats-period-pills{background:var(--surface-muted);border-radius:8px;gap:4px;margin-bottom:16px;padding:3px;display:flex}.stats-period-pills button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:6px 8px;font-size:12px;font-weight:600;transition:all .15s}.stats-period-pills button:hover{color:var(--text-primary)}.stats-period-pills button.active{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-sm)}.stats-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.stats-card{background:var(--surface-hover);border-radius:8px;padding:14px 16px}.stats-card .stats-number{color:var(--text-primary);font-size:22px;font-weight:800;line-height:1.1}.stats-card .stats-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:11px;font-weight:600}.stats-chart{background:var(--surface-hover);border-radius:8px;padding:14px 16px}.stats-chart-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:11px;font-weight:600}.stats-bars{align-items:flex-end;gap:2px;height:80px;display:flex}.stats-bar{background:var(--brand);border-radius:2px 2px 0 0;flex:1;min-height:2px;transition:opacity .1s}.stats-bar:hover{opacity:.7}.target-tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:10px;display:flex}.target-tab{color:var(--text-secondary);cursor:pointer;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.target-tab:hover{color:var(--text-primary)}.target-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.target-tab-count{background:var(--surface-muted);color:var(--text-secondary);text-align:center;border-radius:8px;min-width:16px;padding:1px 6px;font-size:10px;font-weight:700}.target-tab.active .target-tab-count{background:var(--brand-bg);color:var(--brand)}.boost-badge{background:var(--brand-bg);color:var(--brand);border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.boost-badge.boost-takeover{background:var(--status-error-bg);color:var(--status-error-text)}.location-group-header td{color:var(--brand)!important;background:var(--surface-hover)!important;border-bottom:1px solid var(--border)!important;cursor:default!important;padding:12px 12px 6px!important;font-size:12px!important;font-weight:700!important}.loc-count{color:var(--text-secondary);margin-left:6px;font-weight:500}.bulk-bar{background:var(--brand-bg);border:1px solid var(--brand-hover);color:var(--status-hold-text);border-radius:8px;align-items:center;gap:12px;margin-bottom:16px;padding:10px 16px;font-size:13px;font-weight:500;display:flex}.bulk-bar .btn{margin-left:auto}.slide-over-backdrop{z-index:200;background:#00000040;position:fixed;inset:0}.slide-over-backdrop.open{opacity:1;pointer-events:all}.slide-over{background:var(--surface);z-index:201;flex-direction:column;width:440px;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #0000001f}.slide-over.open{transform:translate(0)}.slide-over-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.slide-over-header h2{font-size:16px;font-weight:700}.slide-over-body{flex:1;padding:24px;overflow-y:auto}.slide-over-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.detail-row{margin-bottom:16px}.detail-grid{grid-template-columns:1fr 1fr;gap:22px 20px;margin-bottom:22px;display:grid}.detail-grid .detail-row{margin-bottom:0}.detail-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:4px;font-size:11px;font-weight:600}.detail-value{color:var(--text-primary);font-size:14px}.detail-name-input{background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:100%;padding:2px 6px;font-size:16px;font-weight:700;transition:border .15s,background .15s}.detail-name-input:hover{border-color:var(--border-input)}.detail-name-input:focus{border-color:var(--brand);background:var(--surface)}.detail-tabs{border-bottom:1px solid var(--border);margin:-24px -24px 16px;padding:0 24px;display:flex}.detail-tab{color:var(--text-secondary);cursor:pointer;border-bottom:2px solid #0000;padding:10px 16px;font-size:13px;font-weight:600;transition:all .15s}.detail-tab:hover{color:var(--text-primary)}.detail-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.changelog-list{padding:0}.changelog-entry{border-bottom:1px solid var(--surface-muted);gap:12px;padding:10px 0;display:flex}.changelog-entry:last-child{border-bottom:none}.cl-dot{background:var(--border-input);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.changelog-entry:first-child .cl-dot{background:var(--brand)}.cl-body{flex:1;min-width:0}.cl-action{color:var(--text-primary);font-size:13px;font-weight:500}.cl-meta{color:var(--text-tertiary);margin-top:2px;font-size:11px}.health-panel{margin-left:auto;position:relative}.health-cards{flex-wrap:nowrap;gap:8px;display:flex}.health-card{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:11px;font-weight:500;transition:all .15s;display:flex}.health-card:hover{filter:brightness(.95)}.health-card.active{border-color:currentColor}.health-card .hc-count{font-size:16px;font-weight:800;line-height:1}.health-card .hc-label{line-height:1.2}.health-warn{background:var(--status-hold-bg);color:var(--status-hold-text)}.health-error{background:var(--status-error-bg);color:var(--status-error-text)}.health-info{background:var(--status-scheduled-bg);color:var(--status-scheduled-text)}.health-ok{background:var(--status-active-bg);color:var(--status-active-text)}.health-detail{z-index:50;background:var(--surface);border:1px solid var(--border);min-width:360px;max-height:300px;box-shadow:var(--shadow-lg);border-radius:8px;margin-top:8px;padding:12px 16px;font-size:12px;position:absolute;top:100%;right:0;overflow-y:auto}.health-detail-item{border-bottom:1px solid var(--surface-muted);cursor:pointer;align-items:center;gap:8px;padding:4px 0;display:flex}.health-detail-item:last-child{border-bottom:none}.health-detail-item:hover{color:var(--brand)}.health-detail-item .hdi-name{flex:1;font-weight:600}.health-detail-item .hdi-meta{color:var(--text-secondary);font-size:11px}.modal-backdrop{z-index:300;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-backdrop.open{opacity:1;pointer-events:all}.modal{background:var(--surface);max-height:90vh;box-shadow:var(--shadow-xl);border-radius:12px;flex-direction:column;display:flex}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h2{font-size:16px;font-weight:700}.modal-body{flex:1;padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.form-field{flex-direction:column;gap:4px;display:flex}.form-field label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:11px;font-weight:600}.form-field input[type=text],.form-field input[type=number],.form-field input[type=email],.form-field input[type=date],.form-field select,.form-field textarea{border:1px solid var(--border-input);background:var(--surface);border-radius:6px;outline:none;width:100%;padding:7px 10px;font-family:inherit;font-size:13px;transition:border .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--brand)}.slide-over-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:4px}.slide-over-close:hover{color:var(--text-primary)}.steps{gap:0;margin-bottom:24px;display:flex}.step-dot{color:var(--text-tertiary);flex:1;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.step-dot .dot{background:var(--border);width:24px;height:24px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;transition:all .2s;display:flex}.step-dot.active .dot{background:var(--brand);color:#fff}.step-dot.done .dot{background:var(--online);color:#fff}.step-dot.active,.step-dot.done{color:var(--text-primary)}.step-line{background:var(--border);flex:1;align-self:center;max-width:40px;height:2px;margin:0 8px}.drop-zone{border:2px dashed var(--border-input);text-align:center;cursor:pointer;border-radius:8px;padding:40px 24px;transition:all .15s}.drop-zone:hover{border-color:var(--brand);background:var(--brand-bg)}.drop-zone p{color:var(--text-secondary);margin-bottom:4px;font-size:14px}.drop-zone .sub{color:var(--text-tertiary);font-size:12px}.file-picked{background:var(--surface-hover);border-radius:8px;align-items:center;gap:14px;margin-bottom:8px;padding:10px 14px;display:flex}.file-picked .file-icon{background:var(--brand-bg);border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.file-picked .file-icon svg{width:20px;height:20px}.file-picked .file-info{flex:1}.file-picked .file-name{font-size:13px;font-weight:600}.file-picked .file-size{color:var(--text-secondary);font-size:11px}.format-selectors{gap:12px;margin-top:16px;display:flex}.format-group{flex:1}.format-group label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:6px;font-size:11px;font-weight:600;display:block}.format-options{gap:6px;display:flex}.format-opt{border:2px solid var(--border);text-align:center;cursor:pointer;color:var(--text-secondary);border-radius:6px;flex:1;padding:8px;font-size:12px;font-weight:600;transition:all .15s}.format-opt:hover{border-color:var(--brand-hover)}.format-opt.selected{border-color:var(--brand);color:var(--brand);background:var(--brand-bg)}.toggle-row{justify-content:space-between;align-items:center;padding:10px 0;display:flex}.toggle-row .toggle-label{font-size:13px;font-weight:500}.toggle-row .toggle-sub{color:var(--text-secondary);font-size:11px}.toggle-switch{background:var(--border-input);cursor:pointer;border-radius:11px;width:40px;height:22px;transition:background .2s;position:relative}.toggle-switch.on{background:var(--toggle-on)}.toggle-switch .toggle-knob{background:var(--surface);border-radius:50%;width:18px;height:18px;transition:left .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.toggle-switch.on .toggle-knob{left:20px}.date-row{gap:12px;margin-bottom:12px;display:flex}.date-field{flex:1}.date-field label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:4px;font-size:11px;font-weight:600;display:block}.date-field input{border:1px solid var(--border-input);border-radius:6px;outline:none;width:100%;padding:7px 10px;font-size:13px}.date-field input:focus{border-color:var(--brand)}.tag-picker{flex-direction:column;gap:6px;display:flex}.tag-picker-search{border:1px solid var(--border-input);border-radius:6px;outline:none;width:100%;margin-bottom:4px;padding:7px 10px;font-size:13px}.tag-picker-search:focus{border-color:var(--brand)}.tag-item{cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;transition:background .1s;display:flex}.tag-item:hover{background:var(--surface-muted)}.tag-item.selected{background:var(--brand-bg)}.tag-check{border:2px solid var(--border-input);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.tag-item.selected .tag-check{background:var(--brand);border-color:var(--brand)}.tag-item .tag-name{flex:1;font-weight:500}.tag-item .tag-players{color:var(--text-secondary);font-size:11px}.reach-box{background:var(--brand-bg);border-radius:8px;align-items:center;gap:10px;padding:14px 16px;display:flex}.reach-box .reach-number{color:var(--brand);font-size:28px;font-weight:800}.reach-box .reach-label{color:var(--brand-text);font-size:13px;line-height:1.3}.confirm-summary{background:var(--surface-hover);text-align:center;border-radius:8px;padding:20px}.confirm-summary .arrow{color:var(--text-tertiary);margin:0 8px}.confirm-flow{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-bottom:16px;font-size:14px;font-weight:600;display:flex}.confirm-flow .chip{background:var(--brand-bg);color:var(--brand);border-radius:6px;padding:4px 12px}.confirm-reach{color:var(--brand);margin-bottom:4px;font-size:32px;font-weight:800}.confirm-reach-label{color:var(--text-secondary);font-size:13px}.schedule-modal{width:860px}.sched-section{margin-bottom:20px}.sched-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:600}.sched-row{align-items:flex-end;gap:12px;margin-bottom:10px;display:flex}.sched-row .sched-field{flex-direction:column;gap:4px;display:flex}.sched-row .sched-field label{color:var(--text-secondary);font-size:11px;font-weight:600}.sched-row .sched-field input,.sched-row .sched-field select{border:1px solid var(--border-input);border-radius:6px;outline:none;padding:7px 10px;font-size:13px}.sched-row .sched-field input:focus,.sched-row .sched-field select:focus{border-color:var(--brand)}.weekly-grid{border-collapse:collapse;width:100%}.weekly-grid th{color:var(--text-tertiary);text-align:center;-webkit-user-select:none;user-select:none;padding:4px 0;font-size:10px;font-weight:600}.weekly-grid th.row-label{text-align:right;width:36px;color:var(--text-secondary);padding-right:8px}.weekly-grid td{text-align:center;padding:1px}.weekly-grid .hour-cell{background:var(--surface-muted);cursor:pointer;border:1px solid var(--border);border-radius:3px;width:28px;height:22px;transition:all .1s}.weekly-grid .hour-cell:hover{border-color:var(--brand-hover)}.weekly-grid .hour-cell.active{background:var(--brand);border-color:var(--brand-dark)}.weekly-grid .day-label{color:var(--text-secondary);text-align:right;-webkit-user-select:none;user-select:none;white-space:nowrap;padding-right:8px;font-size:11px;font-weight:600}.grid-actions{gap:8px;margin-top:6px;display:flex}.grid-actions button{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px}.grid-actions button:hover{text-decoration:underline}.repeat-option{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.repeat-option input[type=radio]{accent-color:var(--brand)}.repeat-option input[type=number],.repeat-option select{border:1px solid var(--border-input);text-align:center;border-radius:4px;outline:none;width:60px;padding:4px 6px;font-size:13px}.repeat-option input[type=number]:focus{border-color:var(--brand)}.repeat-option input[type=date]{border:1px solid var(--border-input);border-radius:4px;outline:none;padding:4px 8px;font-size:13px}.occurrence-preview{background:var(--surface-hover);color:var(--text-muted);border-radius:6px;padding:10px 14px;font-size:12px;line-height:1.6}.occurrence-preview .occ-label{color:var(--text-primary);margin-bottom:4px;font-weight:600}.occurrence-preview .occ-date{display:block}.sched-warning{background:var(--status-hold-bg);border:1px solid var(--brand-hover);color:var(--status-hold-text);border-radius:6px;align-items:center;gap:6px;margin-top:8px;margin-bottom:12px;padding:8px 12px;font-size:12px;display:flex}.announce-times{flex-direction:column;gap:6px;display:flex}.announce-time-row{align-items:center;gap:6px;display:flex}.announce-time-row select{border:1px solid var(--border-input);background:var(--surface);cursor:pointer;border-radius:6px;outline:none;padding:6px 8px;font-size:13px}.announce-time-row select:focus{border-color:var(--brand)}.announce-time-row select:first-child{min-width:110px}.announce-colon{color:var(--text-secondary);font-weight:700}.announce-remove{border:1px solid var(--border-input);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:6px;width:28px;height:28px;margin-left:4px;font-size:16px;line-height:1;transition:all .15s}.announce-remove:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.announce-remove:disabled{opacity:.3;cursor:not-allowed}.schedule-summary{background:var(--surface-hover);color:var(--text-muted);border-radius:8px;margin-top:8px;padding:12px 14px;font-size:12px;line-height:1.5}.schedule-summary .sched-label{color:var(--text-primary);font-weight:600}.playlist-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.playlist-card{background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:8px;transition:all .2s;overflow:hidden}.playlist-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.playlist-card-header{flex-direction:column;justify-content:flex-end;min-height:80px;padding:16px;display:flex}.playlist-card-header .playlist-status{border-radius:4px;align-self:flex-start;margin-bottom:8px;padding:3px 8px;font-size:10px;font-weight:600;display:inline-block}.playlist-card-body{padding:14px 16px}.playlist-card-body .playlist-name{color:var(--text-primary);margin-bottom:6px;font-size:14px;font-weight:700}.playlist-card-body .playlist-meta{color:var(--text-secondary);font-size:11px;line-height:1.5}.playlist-card-create{background:var(--surface);border:2px dashed var(--border-input);cursor:pointer;min-height:160px;color:var(--text-tertiary);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.playlist-card-create:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-bg)}.tag-browser{gap:0;height:100%;display:flex}.tag-list-panel{border-right:1px solid var(--border);flex-direction:column;width:320px;min-width:320px;height:100%;display:flex}.tag-list-panel .panel-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:16px;display:flex}.tag-list-panel .panel-header input{border:1px solid var(--border-input);border-radius:6px;outline:none;flex:1;padding:7px 10px;font-size:13px}.tag-list-panel .panel-header input:focus{border-color:var(--brand)}.tag-list-items{flex:1;overflow-y:auto}.tag-list-entry{cursor:pointer;border-left:3px solid #0000;align-items:center;gap:12px;padding:12px 16px;transition:background .1s;display:flex}.tag-list-entry:hover{background:var(--surface-hover)}.tag-list-entry.active{background:var(--brand-bg);border-left-color:var(--brand)}.tag-list-entry .tag-icon{background:var(--brand-bg);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.tag-list-entry .tag-icon svg{width:16px;height:16px;color:var(--brand)}.tag-entry-info{flex:1;min-width:0}.tag-entry-name{color:var(--text-primary);font-size:13px;font-weight:600}.tag-entry-meta{color:var(--text-secondary);gap:12px;margin-top:2px;font-size:11px;display:flex}.tag-detail-panel{flex-direction:column;flex:1;display:flex;overflow:hidden}.tag-detail-empty{color:var(--text-tertiary);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.tag-detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:16px 24px;display:flex}.tag-detail-header h3{align-items:center;gap:6px;margin-bottom:2px;font-size:16px;font-weight:700;display:flex}.tag-rename-btn{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;padding:2px;transition:color .15s;display:inline-flex}.tag-rename-btn:hover{color:var(--brand)}.tag-detail-header .sub{color:var(--text-secondary);font-size:12px}.tag-detail-body{flex:1;overflow-y:auto}.tag-tabs{border-bottom:1px solid var(--border);background:var(--surface);padding:0 24px;display:flex}.tag-tab{color:var(--text-secondary);cursor:pointer;border-bottom:2px solid #0000;padding:10px 16px;font-size:13px;font-weight:600;transition:all .15s}.tag-tab:hover{color:var(--text-primary)}.tag-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.tag-detail-content{max-width:680px;padding:16px 24px}.tag-content-item{cursor:pointer;border-radius:6px;align-items:center;gap:12px;padding:10px 12px;transition:background .1s;display:flex}.tag-content-item:hover{background:var(--surface-hover)}.tag-content-thumb{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:36px;display:flex}.tag-content-thumb svg{opacity:.5;width:16px;height:16px}.tag-content-info{flex:1}.tag-content-name{font-size:13px;font-weight:600}.tag-content-meta{color:var(--text-secondary);font-size:11px}.tag-content-link{color:var(--brand);font-size:11px;font-weight:500}.tag-player-group-header{color:var(--brand);border-bottom:1px solid var(--border);margin-top:4px;padding:12px 12px 4px;font-size:11px;font-weight:700}.tag-player-group-header:first-child{margin-top:0}.tag-player-group-header .tpg-country{color:var(--text-tertiary);font-weight:500}.tag-player-group-header .tpg-count{color:var(--text-tertiary);margin-left:4px;font-weight:500}.tag-player-item{border-radius:6px;align-items:center;gap:12px;padding:10px 12px;transition:background .1s;display:flex}.tag-player-item:hover{background:var(--surface-hover)}.tag-player-icon{background:var(--surface-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.tag-player-icon svg{width:16px;height:16px;color:var(--text-secondary)}.tag-player-icon.type-music{background:var(--type-jingles)}.tag-player-icon.type-music svg{color:var(--action)}.tag-player-icon.type-signage{background:var(--brand-bg)}.tag-player-icon.type-signage svg{color:var(--brand)}.tag-player-info{flex:1}.tag-player-name{font-size:13px;font-weight:600}.tag-player-meta{color:var(--text-secondary);font-size:11px}.tag-player-status{align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex}.status-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.status-dot.online{background:var(--online)}.status-dot.offline{background:var(--offline)}.players-table{border-collapse:collapse;width:100%}.players-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:2px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:11px;font-weight:600}.players-table td{border-bottom:1px solid var(--surface-muted);vertical-align:middle;padding:10px 12px;font-size:13px}.players-table tbody tr{cursor:pointer;transition:background .1s}.players-table tbody tr:hover{background:var(--surface-hover)}.player-desc{color:var(--text-primary);font-weight:600}.player-serial{color:var(--text-secondary);letter-spacing:.3px;font-family:Calibri,sans-serif;font-size:12px}.player-tag-pills{flex-wrap:wrap;gap:4px;display:flex}.player-tag-pill{background:var(--brand-bg);color:var(--brand);border-radius:10px;align-items:center;gap:3px;margin-right:2px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.player-tag-pill.direct-pill{background:var(--brand);color:#fff}.player-tag-pill .tag-pill-remove{color:var(--brand);cursor:pointer;opacity:.6;background:0 0;border:none;margin-left:2px;padding:0 0 0 4px;font-size:14px;font-weight:700;line-height:1;transition:opacity .1s}.player-tag-pill .tag-pill-remove:hover{opacity:1}.players-stats{gap:24px;margin-bottom:20px;display:flex}.stat-card{background:var(--surface);box-shadow:var(--shadow-sm);border-radius:8px;min-width:140px;padding:16px 20px}.stat-card .stat-number{color:var(--text-primary);font-size:24px;font-weight:800}.stat-card .stat-label{color:var(--text-secondary);margin-top:2px;font-size:12px}.stat-card.stat-card-clickable{cursor:pointer;transition:all .15s}.stat-card.stat-card-clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card.stat-card-active{box-shadow:0 0 0 2px var(--status-error-text)}.player-detail-tabs{border-bottom:1px solid var(--border);margin-bottom:16px;display:flex}.player-detail-tab{color:var(--text-secondary);cursor:pointer;border-bottom:2px solid #0000;padding:8px 14px;font-size:13px;font-weight:600;transition:all .15s}.player-detail-tab:hover{color:var(--text-primary)}.player-detail-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.player-detail-props{margin-bottom:20px}.player-detail-props table{border-collapse:collapse;width:100%}.player-detail-props td{border-bottom:1px solid var(--surface-muted);vertical-align:top;padding:6px 0;font-size:13px}.player-detail-props td:first-child{color:var(--text-secondary);width:160px;font-size:12px;font-weight:600}.player-detail-props td:last-child{color:var(--text-primary)}.stream-log{max-height:400px;overflow-y:auto}.stream-log table{border-collapse:collapse;width:100%}.stream-log th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:2px solid var(--border);background:var(--surface);padding:6px 8px;font-size:10px;font-weight:600;position:sticky;top:0}.stream-log td{border-bottom:1px solid var(--surface-muted);color:var(--text-muted);padding:5px 8px;font-size:12px}.stream-log .log-time{white-space:nowrap;color:var(--text-secondary);font-size:11px}.stream-log .log-row-clickable{cursor:pointer;transition:background .1s}.stream-log .log-row-clickable:hover{background:var(--brand-bg)}.stream-log .log-row-status td{color:var(--text-tertiary)}.stream-log .log-desc-status{font-style:italic}.stream-log .log-badge{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.stream-log .log-badge-content{background:var(--brand);color:#fff}.stream-log .log-badge-music{color:var(--text-secondary);background:#e5e7eb}.stream-log .log-badge-status{color:var(--text-tertiary);border:1px dashed var(--border);background:0 0}.stream-log-footer{justify-content:center;align-items:center;gap:8px;padding:12px 8px 4px;display:flex}.stream-log-end{color:var(--text-tertiary);font-size:11px;font-style:italic}.stream-log-filters{align-items:center;gap:8px;margin-bottom:10px;display:flex}.stream-log-filters .stream-log-window{border:1px solid var(--border-input);background:var(--surface);cursor:pointer;border-radius:6px;outline:none;padding:7px 10px;font-size:13px}.stream-log-filters .stream-log-window:focus{border-color:var(--brand)}.stream-log-refreshing{color:var(--brand);font-size:14px;animation:1.2s linear infinite spin;display:inline-block}.stub-page{text-align:center;color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;padding:80px 40px;display:flex}.stub-page h2{color:var(--text-secondary);margin-bottom:8px;font-size:18px;font-weight:700}.stub-page p{color:var(--text-tertiary);max-width:400px;font-size:14px;line-height:1.5}.sim-layout{gap:24px;height:100%;display:flex}.sim-controls{background:var(--surface);width:280px;min-width:280px;box-shadow:var(--shadow-sm);border-radius:8px;flex-shrink:0;align-self:flex-start;padding:20px}.sim-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:10px;font-size:11px;font-weight:700}.sim-results{flex:1;min-width:0}.sim-empty{height:200px;color:var(--text-tertiary);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:flex}.sim-result-header{background:var(--surface);box-shadow:var(--shadow-sm);border-radius:8px;margin-bottom:16px;padding:16px 20px}.sim-result-header h3{margin-bottom:4px;font-size:15px;font-weight:700}.sim-result-header .sim-context{color:var(--text-secondary);font-size:12px;line-height:1.5}.sim-result-summary{gap:16px;margin-bottom:16px;display:flex}.sim-stat{background:var(--surface);box-shadow:var(--shadow-sm);text-align:center;border-radius:8px;flex:1;padding:12px 16px}.sim-stat .ss-number{font-size:24px;font-weight:800}.sim-stat .ss-label{color:var(--text-secondary);margin-top:2px;font-size:11px}.sim-content-list{background:var(--surface);box-shadow:var(--shadow-sm);border-radius:8px;overflow:hidden}.sim-content-list .scl-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--border);padding:12px 16px;font-size:11px;font-weight:700}.sim-content-item{border-bottom:1px solid var(--surface-muted);cursor:pointer;align-items:center;gap:12px;padding:10px 16px;font-size:13px;transition:background .1s;display:flex}.sim-content-item:last-child{border-bottom:none}.sim-content-item:hover{background:var(--surface-hover)}.sim-content-item .sci-thumb{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:30px;display:flex}.sim-content-item .sci-thumb svg{opacity:.5;width:14px;height:14px}.sim-content-item .sci-info{flex:1;min-width:0}.sim-content-item .sci-name{font-weight:600}.sim-content-item .sci-meta{color:var(--text-secondary);margin-top:1px;font-size:11px}.sim-content-item .sci-reason{color:#065f46;white-space:nowrap;background:#d1fae5;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:600}.sim-excluded-section{background:var(--surface);box-shadow:var(--shadow-sm);border-radius:8px;margin-top:16px;overflow:hidden}.sim-excluded-item .sci-reason{color:#991b1b;background:#fee2e2}
