/* ═══════════════════════════════════════════════════════════
   Nautilus 2.0 — Future Edition Spezialeffekte
   Nur aktiv bei body.theme-future
   ═══════════════════════════════════════════════════════════ */

/* Grid-Hintergrund */
body.theme-future::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image:
    linear-gradient(var(--future-grid-color) 1px, transparent 1px),
    linear-gradient(90deg, var(--future-grid-color) 1px, transparent 1px);
  background-size: var(--future-grid-size) var(--future-grid-size);
  pointer-events: none;
  z-index: 0;
}

/* Scan-Lines Overlay */
body.theme-future::after {
  content: '';
  position: fixed;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    #ffffff01 3px,
    #ffffff01 4px
  );
  pointer-events: none;
  z-index: 1;
}

/* Wandernde Scan-Line */
body.theme-future .scan-line {
  display: block;
  position: fixed;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--future-scanline-color), transparent);
  animation: scanDown var(--future-scanline-speed) linear infinite;
  pointer-events: none;
  z-index: 2;
}

body:not(.theme-future) .scan-line {
  display: none;
}

@keyframes scanDown {
  0% { top: -2px; }
  100% { top: 100%; }
}

/* Corner-Brackets für Karten */
body.theme-future .card-bracketed,
body.theme-future .nbl-tile,
body.theme-future .tk-card,
body.theme-future .tk-item,
body.theme-future .tk-stat,
body.theme-future .proj-card,
body.theme-future .dashboard-widget {
  position: relative;
}
body.theme-future .card-bracketed::before,
body.theme-future .nbl-tile::before,
body.theme-future .tk-card::before,
body.theme-future .dashboard-widget::before {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  border-color: var(--future-corner-bracket-color);
  border-style: solid;
  border-width: 1px 0 0 1px;
  top: 6px;
  left: 6px;
  pointer-events: none;
}
body.theme-future .card-bracketed::after,
body.theme-future .nbl-tile::after,
body.theme-future .tk-card::after,
body.theme-future .dashboard-widget::after {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  border-color: var(--future-corner-bracket-color);
  border-style: solid;
  border-width: 1px 1px 0 0;
  top: 6px;
  right: 6px;
  pointer-events: none;
}

/* Glow-Text */
body.theme-future .glow-text {
  text-shadow: 0 0 20px currentColor;
}

/* Orbitron für Überschriften */
body.theme-future h1,
body.theme-future h2,
body.theme-future .display-heading,
body.theme-future .tk-title,
body.theme-future .nbl-section-header__title {
  font-family: var(--future-font-display);
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* Monospace-Daten */
body.theme-future .data-value,
body.theme-future .tk-nr,
body.theme-future .tk-stat-val,
body.theme-future .tk-item-nr,
body.theme-future .nbl-tile__id,
body.theme-future code {
  font-family: var(--future-font-data);
  letter-spacing: 1px;
}

/* Pulsierender Glow für Kevin-Alerts */
body.theme-future .kevin-attention {
  animation: kevinPulse 2s ease infinite;
}
@keyframes kevinPulse {
  0%, 100% { box-shadow: 0 0 0 0 var(--accent-soft); }
  50% { box-shadow: 0 0 20px 4px var(--accent-soft); }
}

/* Future-Buttons: Subtiler Glow */
body.theme-future .nbe-btn-primary,
body.theme-future .nbl-btn--primary,
body.theme-future .tk-btn--primary,
body.theme-future .login-submit {
  box-shadow: 0 0 12px var(--accent-soft);
}
body.theme-future .nbe-btn-primary:hover,
body.theme-future .nbl-btn--primary:hover,
body.theme-future .tk-btn--primary:hover {
  box-shadow: 0 0 24px var(--accent-mid);
}

/* Future: Status-Badges mit Glow */
body.theme-future .tk-status--erledigt,
body.theme-future .tk-status--abgenommen {
  box-shadow: 0 0 8px var(--success-soft);
}
body.theme-future .tk-status--abgelehnt {
  box-shadow: 0 0 8px var(--danger-soft);
}

/* Performance: Effekte bei prefers-reduced-motion abschalten */
@media (prefers-reduced-motion: reduce) {
  body.theme-future::before,
  body.theme-future::after,
  body.theme-future .scan-line {
    display: none;
  }
  body.theme-future .kevin-attention {
    animation: none;
  }
}

/* ═══════════════════════════════════════════════════════════
   HOLORAUM — Hyperspace Command Interface
   Nur aktiv bei body.theme-holoraum
   ═══════════════════════════════════════════════════════════ */

/* Holographisches Grid */
body.theme-holoraum::before {
  content: '';
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(var(--holo-grid-color) 1px, transparent 1px),
    linear-gradient(90deg, var(--holo-grid-color) 1px, transparent 1px);
  background-size: var(--holo-grid-size) var(--holo-grid-size);
}

/* Subtile Scanlines */
body.theme-holoraum::after {
  content: '';
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(0,0,0,.08) 3px,
    rgba(0,0,0,.08) 4px
  );
}

/* Wandernde Scan-Linie */
body.theme-holoraum .scan-line {
  display: block;
  position: fixed; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--holo-scanline-color) 40%, rgba(48,168,255,.4) 50%, var(--holo-scanline-color) 60%, transparent 100%);
  box-shadow: 0 0 6px rgba(48,168,255,.15);
  animation: holoScanDown var(--holo-scanline-speed) linear infinite;
  pointer-events: none; z-index: 2;
}
body:not(.theme-holoraum) .scan-line { display: none; }

@keyframes holoScanDown {
  0%   { top: -2px; opacity: 0; }
  5%   { opacity: 1; }
  95%  { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}

/* Corner-Brackets für Karten */
body.theme-holoraum .card-bracketed,
body.theme-holoraum .nbl-tile,
body.theme-holoraum .tk-card,
body.theme-holoraum .dashboard-widget {
  position: relative;
}
body.theme-holoraum .card-bracketed::before,
body.theme-holoraum .nbl-tile::before,
body.theme-holoraum .tk-card::before,
body.theme-holoraum .dashboard-widget::before {
  content: '';
  position: absolute; top: 5px; left: 5px;
  width: 10px; height: 10px;
  border-top: 1px solid var(--holo-bracket-color);
  border-left: 1px solid var(--holo-bracket-color);
  pointer-events: none; z-index: 1;
}
body.theme-holoraum .card-bracketed::after,
body.theme-holoraum .nbl-tile::after,
body.theme-holoraum .tk-card::after,
body.theme-holoraum .dashboard-widget::after {
  content: '';
  position: absolute; top: 5px; right: 5px;
  width: 10px; height: 10px;
  border-top: 1px solid var(--holo-bracket-color);
  border-right: 1px solid var(--holo-bracket-color);
  pointer-events: none; z-index: 1;
}

/* Glow-Text */
body.theme-holoraum .glow-text {
  text-shadow: 0 0 16px currentColor;
}

/* Überschriften in Mono */
body.theme-holoraum h1,
body.theme-holoraum h2,
body.theme-holoraum .display-heading,
body.theme-holoraum .tk-title {
  letter-spacing: .06em;
}

/* Glow auf Statusbadges — NUR für Danger (Rot leuchtet) */
body.theme-holoraum .tk-status--abgelehnt,
body.theme-holoraum .badge-danger,
body.theme-holoraum .nbl-badge--danger {
  box-shadow: 0 0 8px rgba(255,16,64,.35);
}

/* Grün: ganz wenig neon */
body.theme-holoraum .tk-status--erledigt,
body.theme-holoraum .tk-status--abgenommen,
body.theme-holoraum .badge-success,
body.theme-holoraum .nbl-badge--success {
  box-shadow: 0 0 5px rgba(0,232,144,.18);
}

/* Buttons: subtiler Glow */
body.theme-holoraum .nbe-btn-primary,
body.theme-holoraum .nbl-btn--primary,
body.theme-holoraum .tk-btn--primary,
body.theme-holoraum .login-submit {
  box-shadow: 0 0 10px rgba(48,168,255,.18);
}
body.theme-holoraum .nbe-btn-primary:hover,
body.theme-holoraum .nbl-btn--primary:hover,
body.theme-holoraum .tk-btn--primary:hover {
  box-shadow: 0 0 20px rgba(48,168,255,.28);
}

/* Daten-Werte in Mono */
body.theme-holoraum .data-value,
body.theme-holoraum .tk-nr,
body.theme-holoraum .tk-stat-val,
body.theme-holoraum .nbl-tile__id,
body.theme-holoraum code {
  font-family: 'Share Tech Mono', monospace;
  letter-spacing: .05em;
}

/* Holoraum: Kein Kevin-Pulse mit Orange — stattdessen Blau */
body.theme-holoraum .kevin-attention {
  animation: holoPulse 2.5s ease infinite;
}
@keyframes holoPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(48,168,255,.1); }
  50%       { box-shadow: 0 0 16px 3px rgba(48,168,255,.18); }
}

/* Klassik: Share Tech Mono für Daten-Werte */
body.theme-klassik .data-value,
body.theme-klassik .tk-nr,
body.theme-klassik .tk-stat-val,
body.theme-klassik .nbl-tile__id,
body.theme-klassik code {
  font-family: 'Share Tech Mono', monospace;
  letter-spacing: .04em;
}

/* Performance: Effekte bei prefers-reduced-motion deaktivieren */
@media (prefers-reduced-motion: reduce) {
  body.theme-holoraum::before,
  body.theme-holoraum::after,
  body.theme-holoraum .scan-line { display: none; }
  body.theme-holoraum .kevin-attention { animation: none; }
}
