/* ════════════════════════════════════════════════════════════════
   BUFO FORMS v2.0.0 — Multi-Theme Form Engine
   5 Themes: OSINT Terminal | Cyberpunk Synthwave | Glassmorphism
             Corporate Professional | Midnight Aurora
   ════════════════════════════════════════════════════════════════ */

/* ── Theme: OSINT Terminal (Default) ── */
[data-bf-theme="osint"], .bf:not([data-bf-theme]) {
  --bf-primary: 34, 197, 94;
  --bf-accent: 34, 197, 94;
  --bf-bg-start: rgba(5, 8, 10, 0.95);
  --bf-bg-end: rgba(2, 4, 6, 0.98);
  --bf-surface: rgba(0, 0, 0, 0.40);
  --bf-text: 255, 255, 255;
  --bf-error: 239, 68, 68;
  --bf-radius: 16px;
  --bf-radius-sm: 10px;
  --bf-radius-compact: 12px;
  --bf-font: var(--bufo-mono, 'JetBrains Mono', 'Fira Code', 'SF Mono', monospace);
  --bf-glow: 1;
  --bf-scanlines: 1;
  --bf-border-opacity: 0.15;
  --bf-gradient-angle: 180deg;
  --bf-head-gradient: rgba(var(--bf-primary), 0.04);
  --bf-radial: radial-gradient(600px 300px at 10% 0%, rgba(var(--bf-primary), 0.06), transparent 55%);
  --bf-anim-pulse: bf-pulse;
  --bf-letter-spacing: 0.14em;
  --bf-label-size: 10px;
  --bf-input-size: 13px;
  --bf-btn-size: 12px;
}

/* ── Theme: Cyberpunk Synthwave ── */
[data-bf-theme="synthwave"] {
  --bf-primary: 236, 72, 153;
  --bf-accent: 6, 182, 212;
  --bf-bg-start: rgba(15, 3, 30, 0.97);
  --bf-bg-end: rgba(8, 1, 18, 0.99);
  --bf-surface: rgba(20, 5, 40, 0.60);
  --bf-text: 255, 255, 255;
  --bf-error: 251, 146, 60;
  --bf-radius: 4px;
  --bf-radius-sm: 4px;
  --bf-radius-compact: 4px;
  --bf-font: var(--bufo-mono, 'Orbitron', 'Rajdhani', 'Share Tech Mono', monospace);
  --bf-glow: 1;
  --bf-scanlines: 1;
  --bf-border-opacity: 0.30;
  --bf-gradient-angle: 135deg;
  --bf-head-gradient: rgba(var(--bf-primary), 0.08);
  --bf-radial: radial-gradient(400px 400px at 0% 0%, rgba(var(--bf-primary), 0.12), transparent 50%), radial-gradient(400px 400px at 100% 100%, rgba(var(--bf-accent), 0.08), transparent 50%);
  --bf-anim-pulse: bf-pulse-synth;
  --bf-letter-spacing: 0.20em;
  --bf-label-size: 10px;
  --bf-input-size: 13px;
  --bf-btn-size: 12px;
}

/* ── Theme: Glassmorphism ── */
[data-bf-theme="glassmorphism"] {
  --bf-primary: 139, 92, 246;
  --bf-accent: 244, 114, 182;
  --bf-bg-start: rgba(255, 255, 255, 0.08);
  --bf-bg-end: rgba(255, 255, 255, 0.04);
  --bf-surface: rgba(255, 255, 255, 0.06);
  --bf-text: 255, 255, 255;
  --bf-error: 239, 68, 68;
  --bf-radius: 20px;
  --bf-radius-sm: 12px;
  --bf-radius-compact: 16px;
  --bf-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --bf-glow: 0;
  --bf-scanlines: 0;
  --bf-border-opacity: 0.18;
  --bf-gradient-angle: 135deg;
  --bf-head-gradient: rgba(var(--bf-primary), 0.05);
  --bf-radial: radial-gradient(600px 300px at 30% -10%, rgba(var(--bf-primary), 0.10), transparent 60%), radial-gradient(400px 400px at 80% 100%, rgba(var(--bf-accent), 0.06), transparent 50%);
  --bf-anim-pulse: bf-pulse;
  --bf-letter-spacing: 0.06em;
  --bf-label-size: 11px;
  --bf-input-size: 14px;
  --bf-btn-size: 13px;
}

/* ── Theme: Corporate Professional ── */
[data-bf-theme="corporate"] {
  --bf-primary: 59, 130, 246;
  --bf-accent: 16, 185, 129;
  --bf-bg-start: rgba(255, 255, 255, 0.98);
  --bf-bg-end: rgba(249, 250, 251, 0.99);
  --bf-surface: rgba(249, 250, 251, 1);
  --bf-text: 17, 24, 39;
  --bf-error: 220, 38, 38;
  --bf-radius: 12px;
  --bf-radius-sm: 8px;
  --bf-radius-compact: 10px;
  --bf-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --bf-glow: 0;
  --bf-scanlines: 0;
  --bf-border-opacity: 0.15;
  --bf-gradient-angle: 180deg;
  --bf-head-gradient: rgba(var(--bf-primary), 0.03);
  --bf-radial: none;
  --bf-anim-pulse: bf-pulse;
  --bf-letter-spacing: 0.04em;
  --bf-label-size: 12px;
  --bf-input-size: 14px;
  --bf-btn-size: 13px;
}

/* ── Theme: Midnight Aurora ── */
[data-bf-theme="midnight"] {
  --bf-primary: 99, 102, 241;
  --bf-accent: 52, 211, 153;
  --bf-bg-start: rgba(3, 7, 18, 0.97);
  --bf-bg-end: rgba(1, 3, 9, 0.99);
  --bf-surface: rgba(15, 23, 42, 0.60);
  --bf-text: 255, 255, 255;
  --bf-error: 248, 113, 113;
  --bf-radius: 16px;
  --bf-radius-sm: 10px;
  --bf-radius-compact: 12px;
  --bf-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --bf-glow: 1;
  --bf-scanlines: 0;
  --bf-border-opacity: 0.12;
  --bf-gradient-angle: 135deg;
  --bf-head-gradient: rgba(var(--bf-primary), 0.06);
  --bf-radial: radial-gradient(500px 500px at 20% 0%, rgba(var(--bf-primary), 0.10), transparent 50%), radial-gradient(400px 400px at 80% 80%, rgba(var(--bf-accent), 0.08), transparent 50%);
  --bf-anim-pulse: bf-pulse-aurora;
  --bf-letter-spacing: 0.04em;
  --bf-label-size: 11px;
  --bf-input-size: 14px;
  --bf-btn-size: 13px;
}

/* ════════════════════════════════════════════════════════════════
   CORE STYLES (Theme-Aware)
   ════════════════════════════════════════════════════════════════ */

/* ── Container ── */
.bf {
  position: relative;
  border-radius: var(--bf-radius);
  border: 1px solid rgba(var(--bf-primary), var(--bf-border-opacity));
  background: var(--bf-radial), linear-gradient(var(--bf-gradient-angle), var(--bf-bg-start), var(--bf-bg-end));
  overflow: hidden;
  font-family: var(--bf-font);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.bf--compact { border-radius: var(--bf-radius-compact); }
.bf--compact .bf__head { padding: 10px 16px; }
.bf--compact .bf__form { padding: 16px; }

/* ── Head ── */
.bf__head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(var(--bf-primary), 0.10);
  background: linear-gradient(180deg, var(--bf-head-gradient), transparent 80%);
}
.bf__dot {
  width: 6px;
  height: 6px;
  border-radius: 99px;
  background: rgba(var(--bf-primary), 1);
  box-shadow: 0 0 8px rgba(var(--bf-primary), 0.5);
  animation: var(--bf-anim-pulse) 2s ease-in-out infinite;
}
@keyframes bf-pulse {
  0%, 100% { opacity: 1; box-shadow: 0 0 8px rgba(var(--bf-primary), 0.5); }
  50% { opacity: 0.6; box-shadow: 0 0 4px rgba(var(--bf-primary), 0.3); }
}
@keyframes bf-pulse-synth {
  0%   { opacity: 1; box-shadow: 0 0 8px rgba(236, 72, 153, 0.8), 0 0 20px rgba(6, 182, 212, 0.3); }
  33%  { opacity: 0.8; box-shadow: 0 0 12px rgba(6, 182, 212, 0.6), 0 0 25px rgba(236, 72, 153, 0.2); }
  66%  { opacity: 0.6; box-shadow: 0 0 6px rgba(236, 72, 153, 0.4); }
  100% { opacity: 1; box-shadow: 0 0 8px rgba(236, 72, 153, 0.8), 0 0 20px rgba(6, 182, 212, 0.3); }
}
@keyframes bf-pulse-aurora {
  0%, 100% { opacity: 1; box-shadow: 0 0 8px rgba(99, 102, 241, 0.5), 0 0 16px rgba(52, 211, 153, 0.2); }
  50% { opacity: 0.7; box-shadow: 0 0 12px rgba(52, 211, 153, 0.5), 0 0 20px rgba(99, 102, 241, 0.2); }
}

.bf__title {
  font-family: var(--bf-font);
  font-size: var(--bf-label-size);
  font-weight: 800;
  letter-spacing: var(--bf-letter-spacing);
  text-transform: uppercase;
  color: rgba(var(--bf-primary), 0.85);
  flex: 1;
}
.bf__sub {
  font-family: var(--bf-font);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.10em;
  padding: 2px 8px;
  border-radius: 99px;
  border: 1px solid rgba(var(--bf-primary), 0.20);
  color: rgba(var(--bf-primary), 0.65);
  background: rgba(var(--bf-primary), 0.06);
}

/* ── Form body ── */
.bf__form { padding: 24px 20px; }

/* ── Fields grid ── */
.bf__fields { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 20px; }
.bf__field { flex: 1 1 100%; min-width: 0; }
.bf__field--half { flex: 1 1 calc(50% - 8px); min-width: 200px; }
@media (max-width: 480px) { .bf__field--half { flex: 1 1 100%; } }

/* ── Label ── */
.bf__label {
  display: block;
  font-family: var(--bf-font);
  font-size: var(--bf-label-size);
  font-weight: 700;
  letter-spacing: var(--bf-letter-spacing);
  text-transform: uppercase;
  color: rgba(var(--bf-text), 0.45);
  margin-bottom: 6px;
}
.bf__req { color: rgba(var(--bf-primary), 0.70); }

/* ── Inputs ── */
.bf__input {
  width: 100%;
  padding: 12px 14px;
  border-radius: var(--bf-radius-sm);
  border: 1px solid rgba(var(--bf-primary), 0.12);
  background: var(--bf-surface);
  font-family: var(--bf-font);
  font-size: var(--bf-input-size);
  color: rgba(var(--bf-text), 0.90);
  outline: none;
  transition: border-color 0.20s ease, box-shadow 0.20s ease;
  box-sizing: border-box;
}
.bf__input::placeholder {
  color: rgba(var(--bf-text), 0.18);
  font-weight: 400;
}
.bf__input:focus {
  border-color: rgba(var(--bf-primary), 0.40);
  box-shadow: 0 0 0 3px rgba(var(--bf-primary), 0.06);
}
.bf__input:hover:not(:focus) {
  border-color: rgba(var(--bf-primary), 0.20);
}

/* Invalid state */
.bf__input:invalid:not(:placeholder-shown):not(:focus) {
  border-color: rgba(var(--bf-error), 0.30);
}
.bf--tried .bf__input:invalid {
  border-color: rgba(var(--bf-error), 0.40);
  box-shadow: 0 0 0 3px rgba(var(--bf-error), 0.06);
}

/* ── Textarea ── */
.bf__textarea { resize: vertical; min-height: 100px; line-height: 1.6; }

/* ── Select ── */
.bf__selectWrap { position: relative; }
.bf__select { appearance: none; padding-right: 36px; cursor: pointer; }
.bf__selectArr {
  position: absolute; right: 12px; top: 50%;
  transform: translateY(-50%);
  color: rgba(var(--bf-primary), 0.40);
  pointer-events: none;
  transition: color 0.18s;
}
.bf__selectWrap:hover .bf__selectArr { color: rgba(var(--bf-primary), 0.70); }

/* ── File upload ── */
.bf__fileWrap { position: relative; cursor: pointer; }
.bf__fileInput { position: absolute; inset: 0; opacity: 0; cursor: pointer; z-index: 2; }
.bf__filePlaceholder {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px;
  border-radius: var(--bf-radius-sm);
  border: 1px dashed rgba(var(--bf-primary), 0.18);
  background: rgba(var(--bf-primary), 0.02);
  color: rgba(var(--bf-text), 0.35);
  font-family: var(--bf-font);
  font-size: 12px;
  transition: all 0.18s;
}
.bf__fileWrap:hover .bf__filePlaceholder {
  border-color: rgba(var(--bf-primary), 0.35);
  background: rgba(var(--bf-primary), 0.04);
  color: rgba(var(--bf-primary), 0.70);
}
.bf__filePlaceholder svg { color: rgba(var(--bf-primary), 0.40); }

/* ── Radio ── */
.bf__field--radio { flex: 1 1 100%; }
.bf__radioGroup { display: flex; flex-wrap: wrap; gap: 8px; }
.bf__radioLabel {
  display: flex; align-items: center; gap: 8px; cursor: pointer;
  padding: 8px 14px;
  border-radius: var(--bf-radius-sm);
  border: 1px solid rgba(var(--bf-primary), 0.12);
  background: var(--bf-surface);
  transition: all 0.18s;
  font-size: var(--bf-input-size);
  color: rgba(var(--bf-text), 0.70);
}
.bf__radioLabel:hover { border-color: rgba(var(--bf-primary), 0.30); background: rgba(var(--bf-primary), 0.04); }
.bf__radioInput { position: absolute; opacity: 0; width: 0; height: 0; }
.bf__radioDot {
  flex-shrink: 0; width: 16px; height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(var(--bf-primary), 0.25);
  position: relative;
  transition: all 0.18s;
}
.bf__radioDot::after {
  content: ''; position: absolute; top: 3px; left: 3px;
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(var(--bf-primary), 0.90);
  opacity: 0; transition: opacity 0.15s;
}
.bf__radioInput:checked ~ .bf__radioDot { border-color: rgba(var(--bf-primary), 0.80); }
.bf__radioInput:checked ~ .bf__radioDot::after { opacity: 1; }
.bf__radioInput:checked ~ .bf__radioText { color: rgba(var(--bf-primary), 0.90); }

/* ── Checkbox ── */
.bf__field--check { flex: 1 1 100%; }
.bf__checkLabel { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.bf__checkInput { position: absolute; opacity: 0; width: 0; height: 0; }
.bf__checkBox {
  flex-shrink: 0; width: 18px; height: 18px;
  border-radius: 4px;
  border: 1px solid rgba(var(--bf-primary), 0.20);
  background: var(--bf-surface);
  display: flex; align-items: center; justify-content: center;
  transition: all 0.18s; margin-top: 1px;
}
.bf__checkBox svg { opacity: 0; color: rgba(5, 8, 10, 0.95); transition: opacity 0.15s; }
.bf__checkInput:checked + .bf__checkBox {
  background: rgba(var(--bf-primary), 0.90);
  border-color: rgba(var(--bf-primary), 0.90);
  box-shadow: 0 0 8px rgba(var(--bf-primary), 0.20);
}
.bf__checkInput:checked + .bf__checkBox svg { opacity: 1; }
.bf__checkInput:focus + .bf__checkBox { box-shadow: 0 0 0 3px rgba(var(--bf-primary), 0.10); }
.bf__checkText { font-size: 12px; color: rgba(var(--bf-text), 0.50); line-height: 1.5; }

/* ── Submit button ── */
.bf__submit {
  display: flex; align-items: center; justify-content: center;
  gap: 10px; width: 100%;
  padding: 14px 24px;
  border-radius: var(--bf-radius-sm);
  border: 1px solid rgba(var(--bf-primary), 0.30);
  background: linear-gradient(135deg, rgba(var(--bf-primary), 0.15), rgba(var(--bf-primary), 0.06));
  font-family: var(--bf-font);
  font-size: var(--bf-btn-size);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--bf-primary), 0.95);
  cursor: pointer;
  transition: all 0.22s ease;
  position: relative; overflow: hidden;
}
.bf__submit::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(var(--bf-primary), 0.90), rgba(var(--bf-primary), 0.70));
  opacity: 0;
  transition: opacity 0.22s;
}
.bf__submit:hover::before { opacity: 1; }
.bf__submit:hover {
  color: rgba(5, 8, 10, 0.95);
  box-shadow: 0 0 30px -6px rgba(var(--bf-primary), 0.20);
  transform: translateY(-1px);
}
.bf__submit:hover svg, .bf__submit:hover span { position: relative; z-index: 1; }
.bf__submit svg, .bf__submitText { position: relative; z-index: 1; }
.bf__submit:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.bf__submit:disabled::before { opacity: 0; }

/* Loading spinner */
.bf__submitLoad { display: none; }
.bf__submit.is-loading .bf__submitText { display: none; }
.bf__submit.is-loading .bf__submitLoad { display: inline-flex; }
.bf__spinner { animation: bf-spin 0.8s linear infinite; }
@keyframes bf-spin { to { transform: rotate(360deg); } }

/* ── Message box ── */
.bf__msg {
  display: none;
  margin-top: 16px;
  padding: 12px 16px;
  border-radius: var(--bf-radius-sm);
  font-family: var(--bf-font);
  font-size: 12px;
  line-height: 1.5;
  animation: bf-fadeIn 0.3s ease;
}
@keyframes bf-fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
.bf__msg--ok {
  display: block;
  background: rgba(var(--bf-primary), 0.08);
  border: 1px solid rgba(var(--bf-primary), 0.20);
  color: rgba(var(--bf-primary), 0.90);
}
.bf__msg--error {
  display: block;
  background: rgba(var(--bf-error), 0.08);
  border: 1px solid rgba(var(--bf-error), 0.20);
  color: rgba(var(--bf-error), 0.85);
}

/* ════════════════════════════════════════════════════════════════
   THEME-SPECIFIC OVERRIDES
   ════════════════════════════════════════════════════════════════ */

/* ── Synthwave: Neon borders + glow effects ── */
[data-bf-theme="synthwave"] .bf__head {
  border-bottom: 1px solid rgba(var(--bf-primary), 0.20);
  background: linear-gradient(135deg, rgba(var(--bf-primary), 0.06), rgba(var(--bf-accent), 0.04));
}
[data-bf-theme="synthwave"] .bf__input:focus {
  border-color: rgba(var(--bf-accent), 0.50);
  box-shadow: 0 0 0 3px rgba(var(--bf-accent), 0.08), 0 0 15px rgba(var(--bf-primary), 0.06);
}
[data-bf-theme="synthwave"] .bf__submit {
  background: linear-gradient(135deg, rgba(var(--bf-primary), 0.20), rgba(var(--bf-accent), 0.10));
  border-color: rgba(var(--bf-primary), 0.40);
  text-shadow: 0 0 10px rgba(var(--bf-primary), 0.30);
}
[data-bf-theme="synthwave"] .bf__submit::before {
  background: linear-gradient(135deg, rgba(var(--bf-primary), 0.85), rgba(var(--bf-accent), 0.85));
}
[data-bf-theme="synthwave"] .bf__submit:hover {
  box-shadow: 0 0 30px rgba(var(--bf-primary), 0.30), 0 0 60px rgba(var(--bf-accent), 0.10);
}
[data-bf-theme="synthwave"] .bf__sub {
  border-color: rgba(var(--bf-accent), 0.30);
  color: rgba(var(--bf-accent), 0.80);
  background: rgba(var(--bf-accent), 0.08);
}
[data-bf-theme="synthwave"] .bf__title {
  background: linear-gradient(90deg, rgba(var(--bf-primary), 0.90), rgba(var(--bf-accent), 0.80));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
[data-bf-theme="synthwave"]::after {
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 2px, rgba(236, 72, 153, 0.015) 2px, rgba(236, 72, 153, 0.015) 3px);
}

/* ── Glassmorphism: Frosted glass + blur ── */
[data-bf-theme="glassmorphism"] {
  backdrop-filter: blur(20px) saturate(1.5);
  -webkit-backdrop-filter: blur(20px) saturate(1.5);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.10);
}
[data-bf-theme="glassmorphism"] .bf__head {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
[data-bf-theme="glassmorphism"] .bf__input {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(10px);
}
[data-bf-theme="glassmorphism"] .bf__input:focus {
  background: rgba(255, 255, 255, 0.10);
  border-color: rgba(var(--bf-primary), 0.40);
  box-shadow: 0 0 0 3px rgba(var(--bf-primary), 0.08);
}
[data-bf-theme="glassmorphism"] .bf__submit {
  background: rgba(var(--bf-primary), 0.12);
  border: 1px solid rgba(var(--bf-primary), 0.25);
  backdrop-filter: blur(10px);
}
[data-bf-theme="glassmorphism"] .bf__submit::before {
  background: linear-gradient(135deg, rgba(var(--bf-primary), 0.80), rgba(var(--bf-accent), 0.70));
}
[data-bf-theme="glassmorphism"] .bf__title {
  letter-spacing: 0.06em;
  font-weight: 600;
}
[data-bf-theme="glassmorphism"] .bf__label {
  text-transform: none;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(var(--bf-text), 0.55);
}
[data-bf-theme="glassmorphism"] .bf__checkBox {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.20);
}
[data-bf-theme="glassmorphism"]::after { display: none; }

/* ── Corporate: Light theme with clean design ── */
[data-bf-theme="corporate"] {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.08);
}
[data-bf-theme="corporate"] .bf__head {
  background: rgba(var(--bf-primary), 0.03);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
[data-bf-theme="corporate"] .bf__dot {
  box-shadow: none;
}
[data-bf-theme="corporate"] .bf__title {
  text-transform: none;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(var(--bf-text), 0.85);
}
[data-bf-theme="corporate"] .bf__sub {
  font-size: 10px;
  border-radius: 4px;
  background: rgba(var(--bf-primary), 0.08);
  border-color: rgba(var(--bf-primary), 0.15);
  color: rgba(var(--bf-primary), 1);
}
[data-bf-theme="corporate"] .bf__label {
  text-transform: none;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: normal;
  color: rgba(var(--bf-text), 0.70);
}
[data-bf-theme="corporate"] .bf__input {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.12);
  font-family: var(--bf-font);
}
[data-bf-theme="corporate"] .bf__input::placeholder {
  color: rgba(var(--bf-text), 0.30);
}
[data-bf-theme="corporate"] .bf__input:focus {
  border-color: rgba(var(--bf-primary), 0.50);
  box-shadow: 0 0 0 3px rgba(var(--bf-primary), 0.08);
}
[data-bf-theme="corporate"] .bf__submit {
  background: rgba(var(--bf-primary), 1);
  border: none;
  color: #fff;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0.02em;
  border-radius: var(--bf-radius-sm);
}
[data-bf-theme="corporate"] .bf__submit::before {
  background: linear-gradient(135deg, rgba(var(--bf-primary), 1), rgba(21, 94, 199, 1));
}
[data-bf-theme="corporate"] .bf__submit:hover {
  color: #fff;
  box-shadow: 0 4px 14px rgba(var(--bf-primary), 0.25);
}
[data-bf-theme="corporate"] .bf__checkBox {
  background: #fff;
  border-color: rgba(0, 0, 0, 0.15);
}
[data-bf-theme="corporate"] .bf__checkInput:checked + .bf__checkBox {
  box-shadow: none;
}
[data-bf-theme="corporate"] .bf__checkText {
  color: rgba(var(--bf-text), 0.60);
}
[data-bf-theme="corporate"] .bf__filePlaceholder {
  background: #fff;
  border-color: rgba(0, 0, 0, 0.12);
  color: rgba(var(--bf-text), 0.40);
}
[data-bf-theme="corporate"] .bf__msg--ok {
  background: rgba(16, 185, 129, 0.06);
  border-color: rgba(16, 185, 129, 0.20);
  color: rgb(5, 150, 105);
}
[data-bf-theme="corporate"]::after { display: none; }

/* ── Midnight Aurora: Gradient borders + aurora effects ── */
[data-bf-theme="midnight"] .bf__head {
  background: linear-gradient(180deg, rgba(var(--bf-primary), 0.06), transparent);
  border-bottom: 1px solid rgba(var(--bf-primary), 0.08);
}
[data-bf-theme="midnight"] .bf__title {
  background: linear-gradient(90deg, rgba(var(--bf-primary), 0.85), rgba(var(--bf-accent), 0.85));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
[data-bf-theme="midnight"] .bf__sub {
  border-color: rgba(var(--bf-accent), 0.25);
  color: rgba(var(--bf-accent), 0.70);
  background: rgba(var(--bf-accent), 0.06);
}
[data-bf-theme="midnight"] .bf__input:focus {
  border-color: rgba(var(--bf-accent), 0.40);
  box-shadow: 0 0 0 3px rgba(var(--bf-accent), 0.06);
}
[data-bf-theme="midnight"] .bf__submit {
  background: linear-gradient(135deg, rgba(var(--bf-primary), 0.15), rgba(var(--bf-accent), 0.10));
  border-color: rgba(var(--bf-primary), 0.25);
}
[data-bf-theme="midnight"] .bf__submit::before {
  background: linear-gradient(135deg, rgba(var(--bf-primary), 0.85), rgba(var(--bf-accent), 0.85));
}
[data-bf-theme="midnight"] .bf__submit:hover {
  box-shadow: 0 0 30px rgba(var(--bf-primary), 0.15), 0 0 60px rgba(var(--bf-accent), 0.08);
}
[data-bf-theme="midnight"]::after { display: none; }

/* ════════════════════════════════════════════════════════════════
   SCANLINE OVERLAY
   ════════════════════════════════════════════════════════════════ */

.bf::after {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg,
    transparent 0px, transparent 3px,
    rgba(255, 255, 255, 0.008) 3px, rgba(255, 255, 255, 0.008) 4px
  );
  pointer-events: none;
  border-radius: var(--bf-radius);
}
.bf--compact::after { border-radius: var(--bf-radius-compact); }

/* ── Focus glow ── */
.bf:focus-within {
  border-color: rgba(var(--bf-primary), 0.22);
  box-shadow: 0 0 40px -12px rgba(var(--bf-primary), 0.08);
}
[data-bf-theme="corporate"]:focus-within {
  border-color: rgba(var(--bf-primary), 0.30);
  box-shadow: 0 0 0 3px rgba(var(--bf-primary), 0.06);
}

/* ════════════════════════════════════════════════════════════════
   PERFORMANCE & ACCESSIBILITY
   ════════════════════════════════════════════════════════════════ */

.perf-tier-3 .bf::after { display: none; }
.perf-tier-3 .bf__submit::before { transition: none; }

@media (prefers-reduced-motion: reduce) {
  .bf__dot, .bf__spinner { animation: none; }
  .bf__msg, .bf__submit { transition: none; }
}

/* ════════════════════════════════════════════════════════════════
   THEME SWITCHER WIDGET
   ════════════════════════════════════════════════════════════════ */

.bf-theme-switcher {
  display: flex;
  gap: 6px;
  padding: 8px 12px;
  margin-bottom: 12px;
  justify-content: center;
}
.bf-theme-switcher__btn {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.15);
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
}
.bf-theme-switcher__btn:hover {
  transform: scale(1.15);
  border-color: rgba(255, 255, 255, 0.40);
}
.bf-theme-switcher__btn.is-active {
  border-color: #fff;
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
}
.bf-theme-switcher__btn[data-theme="osint"] { background: linear-gradient(135deg, #22c55e, #15803d); }
.bf-theme-switcher__btn[data-theme="synthwave"] { background: linear-gradient(135deg, #ec4899, #06b6d4); }
.bf-theme-switcher__btn[data-theme="glassmorphism"] { background: linear-gradient(135deg, #8b5cf6, #f472b6); }
.bf-theme-switcher__btn[data-theme="corporate"] { background: linear-gradient(135deg, #3b82f6, #10b981); }
.bf-theme-switcher__btn[data-theme="midnight"] { background: linear-gradient(135deg, #6366f1, #34d399); }
