/**
 * Zibuke OnCall — STRICT COLOUR ENFORCER (Static Version)
 * ───────────────────────────────────────────────────────────────────────
 * The Four Inviolable Colour Rules:
 *   Rule 1: black bg (#000000)  → lime text (#CFFF04)
 *   Rule 2: black bg (#000000)  → white text (#ffffff)   [secondary/muted]
 *   Rule 3: lime bg  (#CFFF04)  → black text (#000000)
 *   Rule 4: white bg (#ffffff)  → black text (#000000)   [printable/invoices ONLY]
 *
 * This stylesheet relies on HTML structural elements having classes:
 * .zo-band-black, .zo-band-surface, .zo-band-lime, .zo-band-white
 */

/* ═══ 0. Base theme — Rule 1 (black bg → lime text) ═══ */
body {
  background-color: #000000 !important;
  color: #CFFF04 !important;
}

/* Default inheritance for elements where color isn't explicitly set */
p, span, li, td, th, label, small, h1, h2, h3, h4, h5, h6, a, strong, em, .card, .panel, .box {
  color: inherit;
}

/* ═══ 1. VARIETY BANDS ═══ */
.zo-band-black {
  background-color: #000000 !important;
  color: #CFFF04 !important;
}

.zo-band-surface {
  background-color: #0a0a0a !important;
  color: #CFFF04 !important;
}

.zo-band-lime {
  background-color: #CFFF04 !important;
  color: #000000 !important;
}

.zo-band-white, .printable, .invoice, .receipt {
  background-color: #ffffff !important;
  color: #000000 !important;
}

/* Strict descendant enforcement */
/* If you are inside a lime/white band, your text MUST be black */
.zo-band-lime *, .zo-band-white *, .printable *, .invoice *, .receipt * {
  color: #000000 !important;
  border-color: rgba(0, 0, 0, 0.2) !important;
}

/* If you are inside a black/surface band, your text MUST be lime (unless muted) */
.zo-band-black *:not(.text-muted):not(.text-secondary):not(.text-white):not(.text-success):not(.text-danger):not(.text-warning):not(.text-info):not(.btn-lime):not(.btn-lime *),
.zo-band-surface *:not(.text-muted):not(.text-secondary):not(.text-white):not(.text-success):not(.text-danger):not(.text-warning):not(.text-info):not(.btn-lime):not(.btn-lime *) {
  color: #CFFF04 !important;
  border-color: rgba(207, 255, 4, 0.2) !important;
}

/* Rule 2 — white secondary/muted text on black background */
.text-muted, .text-secondary, .muted, .secondary, .text-white {
  color: #ffffff !important;
}

/* Form controls default to black bg + lime text */
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
textarea, select, .form-control {
  background-color: #000000 !important;
  color: #CFFF04 !important;
  border: 1px solid rgba(207,255,4,0.35) !important;
}
::placeholder { color: rgba(207,255,4,0.5) !important; opacity: 1 !important; }

/* Rule 3 Buttons */
.bg-lime, .section-lime, .btn-lime, .btn-primary, button.btn-lime {
  background-color: #CFFF04 !important;
  color: #000000 !important;
}
.bg-lime *, .section-lime *, .btn-lime *, .btn-primary * {
  color: #000000 !important;
}

/* ═══ 5. Status / alert indicator colours (text-only on black bg) ═══ */
.text-success, .text-green, .badge-success, .alert-success,
.status-success, .status-paid, .status-completed, .status-active { color: #10b981 !important; background-color: #000000 !important; }
.text-danger, .text-red, .text-error, .badge-danger, .alert-danger,
.status-failed, .status-overdue, .status-rejected, .status-cancelled { color: #ef4444 !important; background-color: #000000 !important; }
.text-warning, .text-amber, .badge-warning, .alert-warning,
.status-pending, .status-in-progress, .status-warning { color: #f59e0b !important; background-color: #000000 !important; }
.text-info, .text-blue, .badge-info, .alert-info,
.status-scheduled, .status-diagnosing, .status-info { color: #3b82f6 !important; background-color: #000000 !important; }

/* Notification badges keep a red background with black text (Rule 3 variant). */
.notification-badge, .badge-count, .unread-badge {
  background-color: #ef4444 !important;
  color: #000000 !important;
}

table th { background-color: rgba(207,255,4,0.10) !important; }
table tr:nth-child(even) td { background-color: rgba(255,255,255,0.02) !important; }

/* ═══ 7. Links & buttons ═══ */
a { color: inherit; }
a:hover { opacity: 0.8 !important; }
button { background-color: #000000 !important; color: #CFFF04 !important; border: 1px solid #CFFF04 !important; }

/* ═══ 8. Keep images / svgs / media untouched ═══ */
img, svg, video, canvas, picture, source { background: transparent !important; }

/* ═══ 9. Print — Rule 4 everywhere on paper ═══ */
@media print {
  .no-print { display: none !important; }
  html, body { background: #ffffff !important; color: #000000 !important; }
  * { background: #ffffff !important; color: #000000 !important; }
}
