/**
 * Video Operations — light homepage shell (VIDEOOPS UI)
 * Uses explicit classes — do not rely on sky-* utilities missing from tailwind.css build.
 */
.videoops-page {
  --vo-accent: #0284c7;
  --vo-accent-hover: #0369a1;
  --vo-accent-soft: #e0f2fe;
  --vo-text: #0f172a;
  --vo-muted: #475569;
  --vo-muted2: #64748b;
  --vo-stroke: rgba(148, 163, 184, 0.45);
  --vo-surface: rgba(255, 255, 255, 0.78);
  --vo-danger: #dc2626;
  --vo-success: #059669;
}

.videoops-page .vo-surface {
  background: var(--vo-surface);
  border: 1px solid var(--vo-stroke);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.07);
  backdrop-filter: blur(8px);
}

.videoops-page .vo-tab-active {
  background: rgba(255, 255, 255, 0.92);
  color: var(--vo-accent-hover);
  border: 1px solid var(--vo-stroke);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.videoops-page .vo-tab-idle {
  color: var(--vo-muted);
  background: transparent;
  border: 1px solid transparent;
}

.videoops-page .vo-tab-idle:hover {
  color: var(--vo-text);
}

.videoops-page .vo-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  border-radius: 0.5rem;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.videoops-page .vo-btn:focus-visible {
  outline: 2px solid var(--vo-accent);
  outline-offset: 2px;
}

.videoops-page .vo-btn-primary {
  background: linear-gradient(180deg, #0ea5e9, var(--vo-accent));
  color: #ffffff !important;
  border-color: #0284c7;
  box-shadow: 0 1px 2px rgba(2, 132, 199, 0.35);
}

.videoops-page .vo-btn-primary:hover:not(:disabled) {
  background: linear-gradient(180deg, #38bdf8, #0284c7);
}

.videoops-page .vo-btn-primary:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.videoops-page .vo-btn-secondary {
  background: #ffffff;
  color: var(--vo-accent-hover) !important;
  border-color: #cbd5e1;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.videoops-page .vo-btn-secondary:hover:not(:disabled) {
  background: #f8fafc;
  border-color: #94a3b8;
}

.videoops-page .vo-btn-ghost {
  background: transparent;
  color: var(--vo-muted) !important;
  border-color: transparent;
}

.videoops-page .vo-btn-ghost:hover:not(:disabled) {
  color: var(--vo-text) !important;
}

.videoops-page .vo-btn-success {
  background: var(--vo-success);
  color: #ffffff !important;
  border-color: #047857;
}

.videoops-page .vo-btn-success:hover:not(:disabled) {
  background: #047857;
}

.videoops-page .vo-btn-danger {
  background: var(--vo-danger);
  color: #ffffff !important;
  border-color: #b91c1c;
}

.videoops-page .vo-btn-danger:hover:not(:disabled) {
  background: #b91c1c;
}

.videoops-page .vo-btn-sm {
  padding: 0.375rem 0.75rem;
  font-size: 0.75rem;
}

.videoops-page .vo-btn-md {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}

.videoops-page .vo-input,
.videoops-page .vo-select {
  width: 100%;
  border-radius: 0.5rem;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: var(--vo-text) !important;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
}

.videoops-page .vo-input::placeholder {
  color: #94a3b8;
}

.videoops-page .vo-kpi-card {
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid #e2e8f0;
  padding: 1rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.videoops-page .vo-kpi-card--highlight {
  border-color: #7dd3fc;
  background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
}

.videoops-page .vo-badge-warn {
  background: #fef3c7;
  color: #92400e;
  border-color: #fcd34d;
}

.videoops-page .vo-badge-hold {
  background: #fee2e2;
  color: #991b1b;
  border-color: #fca5a5;
}

.videoops-page .vo-badge {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem;
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #e2e8f0;
  font-size: 0.75rem;
}

.videoops-page .vo-badge-ready {
  background: #d1fae5;
  color: #065f46;
  border-color: #a7f3d0;
}

.videoops-page #vo-create-modal .vo-modal-panel {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.15);
}

.videoops-page table tbody tr {
  border-top: 1px solid #e2e8f0;
}

.videoops-page table tbody tr:hover {
  background: rgba(224, 242, 254, 0.45);
}

.videoops-page .vo-link {
  color: var(--vo-accent-hover);
  font-weight: 600;
  text-decoration: none;
}

.videoops-page a.vo-btn {
  text-decoration: none;
}

/* Panel / executive sub-views — do not rely on Tailwind purge for JS-toggled .hidden */
.videoops-page .vo-panel.hidden,
.videoops-page .vo-exec-view.hidden,
.videoops-page #vo-exec-risk-banner.hidden {
  display: none !important;
}

.videoops-page .vo-exec-subtab.vo-tab-active {
  background: rgba(255, 255, 255, 0.92);
  color: var(--vo-accent-hover);
  border: 1px solid var(--vo-stroke);
}
