/* ═══════════════════════════════════════════════════════════════════════════
   ChiroVision — GlassVision skin

   A frosted-glass, spatial-computing take on the app. Light aurora ground,
   translucent panels with backdrop-blur, subtle inner highlights, rounded
   pill controls. Meant to feel like tomorrow's chiropractic suite viewed
   through Apple Vision Pro rather than a fighter-jet HUD.

   Activated by body.cv-theme-glass — the theme switcher chip toggles the
   class; nothing else on the page needs to change.

   Rules apply to ALL tool pages (universal skin). No per-tool injection
   layer required for Phase A — panels stay legacy structure, just
   translucent.
   ═══════════════════════════════════════════════════════════════════════════ */

body.cv-theme-glass {
  --glass-bg-a: #eef4ff;
  --glass-bg-b: #f8f5ff;
  --glass-panel: rgba(255, 255, 255, 0.55);
  --glass-panel-solid: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(255, 255, 255, 0.75);
  --glass-ink: #1e293b;
  --glass-ink-mute: #64748b;
  --glass-accent: #6366f1;
  --glass-accent-soft: rgba(99, 102, 241, 0.18);
  --glass-accent-glow: rgba(99, 102, 241, 0.35);
  --glass-good: #10b981;
  --glass-warn: #f59e0b;
  --glass-danger: #ef4444;
  --glass-radius: 18px;
  --glass-shadow: 0 10px 40px rgba(15, 23, 42, 0.08),
                  inset 0 1px 0 rgba(255,255,255,0.7);
  color: var(--glass-ink);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;
  background: linear-gradient(135deg, var(--glass-bg-a) 0%, var(--glass-bg-b) 100%) fixed !important;
  min-height: 100vh;
}

/* Ambient aurora blobs — decorative background layer */
body.cv-theme-glass::before {
  content: "";
  position: fixed; inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 15% 20%, rgba(99,102,241,0.20) 0%, transparent 40%),
    radial-gradient(circle at 85% 30%, rgba(236,72,153,0.15) 0%, transparent 45%),
    radial-gradient(circle at 50% 90%, rgba(56,189,248,0.18) 0%, transparent 50%);
}

/* Scoped scrollbar */
body.cv-theme-glass *::-webkit-scrollbar { width: 8px; height: 8px; }
body.cv-theme-glass *::-webkit-scrollbar-track { background: transparent; }
body.cv-theme-glass *::-webkit-scrollbar-thumb {
  background: rgba(99,102,241,0.35);
  border-radius: 100px;
}

/* Generic containers — the glass panel treatment */
body.cv-theme-glass .card,
body.cv-theme-glass .panel,
body.cv-theme-glass .section,
body.cv-theme-glass .control-section,
body.cv-theme-glass .options-section,
body.cv-theme-glass .settings-panel,
body.cv-theme-glass .patient-info-card,
body.cv-theme-glass .billing-card,
body.cv-theme-glass .list-panel,
body.cv-theme-glass .form-panel,
body.cv-theme-glass .info-box,
body.cv-theme-glass .dashboard,
body.cv-theme-glass .instructions-panel,
body.cv-theme-glass .options-actions-bar,
body.cv-theme-glass .image-info-display,
body.cv-theme-glass fieldset,
body.cv-theme-glass .xray-panel {
  background: var(--glass-panel) !important;
  color: var(--glass-ink) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--glass-radius) !important;
  box-shadow: var(--glass-shadow) !important;
  backdrop-filter: blur(20px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
}

/* Headings */
body.cv-theme-glass h1,
body.cv-theme-glass h2,
body.cv-theme-glass h3,
body.cv-theme-glass h4,
body.cv-theme-glass .section-title,
body.cv-theme-glass .card-title,
body.cv-theme-glass legend {
  color: var(--glass-ink) !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}
body.cv-theme-glass label,
body.cv-theme-glass .field-label {
  color: var(--glass-ink-mute) !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Buttons — pill-shaped, translucent */
body.cv-theme-glass button:not(.hud-panel button):not(.hud-tools button):not(.hud-br button):not(.hud-prior *):not(#cv-bug-btn):not(#cv-bug-modal button):not(.cv-theme-chip):not(.cv-back-to-cv),
body.cv-theme-glass .btn,
body.cv-theme-glass .action-btn,
body.cv-theme-glass input[type="button"],
body.cv-theme-glass input[type="submit"] {
  background: var(--glass-panel-solid) !important;
  color: var(--glass-ink) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: 100px !important;
  padding: 8px 16px !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 8px rgba(15,23,42,0.06),
              inset 0 1px 0 rgba(255,255,255,0.9) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: all 0.2s ease-out !important;
}
body.cv-theme-glass button:not(.hud-panel button):not(.hud-tools button):not(.hud-br button):not(.hud-prior *):not(#cv-bug-btn):not(#cv-bug-modal button):not(.cv-theme-chip):not(.cv-back-to-cv):hover,
body.cv-theme-glass .btn:hover,
body.cv-theme-glass .action-btn:hover {
  background: white !important;
  border-color: var(--glass-accent) !important;
  color: var(--glass-accent) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px var(--glass-accent-glow) !important;
}
body.cv-theme-glass .btn.primary,
body.cv-theme-glass .btn.success,
body.cv-theme-glass .action-btn.primary {
  background: var(--glass-accent) !important;
  color: white !important;
  border-color: transparent !important;
  box-shadow: 0 6px 20px var(--glass-accent-glow) !important;
}
body.cv-theme-glass .btn.primary:hover,
body.cv-theme-glass .btn.success:hover,
body.cv-theme-glass .action-btn.primary:hover {
  background: #4f46e5 !important;
  color: white !important;
}
body.cv-theme-glass .btn.danger,
body.cv-theme-glass .action-btn.danger {
  color: var(--glass-danger) !important;
  border-color: rgba(239,68,68,0.4) !important;
}
body.cv-theme-glass .btn.danger:hover,
body.cv-theme-glass .action-btn.danger:hover {
  background: var(--glass-danger) !important;
  color: white !important;
  border-color: transparent !important;
}

/* Form controls */
body.cv-theme-glass input[type="text"],
body.cv-theme-glass input[type="number"],
body.cv-theme-glass input[type="date"],
body.cv-theme-glass input[type="email"],
body.cv-theme-glass input[type="tel"],
body.cv-theme-glass input[type="search"],
body.cv-theme-glass input[type="password"],
body.cv-theme-glass select,
body.cv-theme-glass textarea {
  background: rgba(255,255,255,0.7) !important;
  color: var(--glass-ink) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: 12px !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  box-shadow: inset 0 1px 3px rgba(15,23,42,0.05) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
body.cv-theme-glass input:focus,
body.cv-theme-glass select:focus,
body.cv-theme-glass textarea:focus {
  outline: none !important;
  border-color: var(--glass-accent) !important;
  background: white !important;
  box-shadow: 0 0 0 3px var(--glass-accent-soft) !important;
}

/* Tables */
body.cv-theme-glass table {
  background: var(--glass-panel) !important;
  color: var(--glass-ink) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--glass-radius) !important;
  overflow: hidden;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-collapse: separate; border-spacing: 0;
}
body.cv-theme-glass th {
  background: rgba(99,102,241,0.08) !important;
  color: var(--glass-accent) !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0.06em;
  border-bottom: 1px solid var(--glass-border) !important;
}
body.cv-theme-glass td {
  border-bottom: 1px solid rgba(15,23,42,0.06) !important;
}
body.cv-theme-glass tr:hover td {
  background: rgba(99,102,241,0.05) !important;
}

/* Headers */
body.cv-theme-glass .header:not(.cv-header-legacy),
body.cv-theme-glass .top-bar,
body.cv-theme-glass .app-header,
body.cv-theme-glass .dashboard-header {
  background: var(--glass-panel-solid) !important;
  color: var(--glass-ink) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--glass-radius) !important;
  box-shadow: var(--glass-shadow) !important;
  backdrop-filter: blur(20px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
}

/* Links */
body.cv-theme-glass a { color: var(--glass-accent); text-decoration: none; }
body.cv-theme-glass a:hover { color: #4f46e5; text-decoration: underline; }

/* Xray-container — keep it dark for image contrast even in glass mode */
body.cv-theme-glass .xray-container {
  background: #0f172a !important;
  border-radius: calc(var(--glass-radius) - 4px) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.3) !important;
}

/* Modals */
body.cv-theme-glass .modal,
body.cv-theme-glass .dialog,
body.cv-theme-glass .modal-content,
body.cv-theme-glass .dialog-content {
  background: var(--glass-panel-solid) !important;
  color: var(--glass-ink) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--glass-radius) !important;
  box-shadow: 0 24px 80px rgba(15,23,42,0.25),
              inset 0 1px 0 rgba(255,255,255,0.9) !important;
  backdrop-filter: blur(30px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(180%) !important;
}

/* Nav */
body.cv-theme-glass .cv-nav-tabs,
body.cv-theme-glass .cv-nav-menu {
  background: var(--glass-panel) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--glass-radius) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
body.cv-theme-glass .cv-nav-tabs a,
body.cv-theme-glass .cv-nav-menu a {
  color: var(--glass-ink) !important;
  border-radius: 100px !important;
}
body.cv-theme-glass .cv-nav-tabs a:hover,
body.cv-theme-glass .cv-nav-tabs a.active,
body.cv-theme-glass .cv-nav-menu a:hover {
  background: var(--glass-accent-soft) !important;
  color: var(--glass-accent) !important;
}

/* Print — flatten glass */
@media print {
  body.cv-theme-glass::before { display: none !important; }
  body.cv-theme-glass .card,
  body.cv-theme-glass .panel,
  body.cv-theme-glass .section {
    background: white !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    border-color: #cbd5e1 !important;
  }
}
