/* ============================================================
   Pip-Boy 3000 — Fallout phosphor CRT terminal
   Theme id: fallout
   ============================================================ */

html[data-theme="fallout"] {
  --fo-bg: #0c140c;
  --fo-panel: #0f1a0f;
  --fo-green: #1fff0f;
  --fo-green-bright: #00ff00;
  --fo-green-dim: #1a6b14;
  --fo-green-mid: #152815;
  --fo-out: #1a381a;
  --fo-ink: #1fff0f;
  --fo-amber: #c8ff9a;

  --bg: var(--fo-bg);
  --panel: var(--fo-panel);
  --ink: var(--fo-ink);
  --muted: var(--fo-green-dim);
  --line: var(--fo-green-dim);
  --accent: var(--fo-green-bright);
  --accent-2: var(--fo-amber);
  --accent-dark: #00cc00;
  --accent-soft: #142814;
  --bubble-in: var(--fo-green-mid);
  --bubble-out: var(--fo-out);
  --bubble-out-ink: var(--fo-green-bright);
  --shadow: none;
  --chat-bg-top: #0c140c;
  --chat-bg-bot: #0a120a;
  --glow: 0 0 10px rgba(31, 255, 15, 0.35);
  --glow-strong: 0 0 16px rgba(0, 255, 0, 0.45);
  --input-glow: transparent;
  --danger: #ff4444;
  --radius-bubble: 0;
  --chip-pressed: #1a381a;
  --select-fill: #1a381a;
  --online: #66ff44;
  --font: "VT323", "Share Tech Mono", "Courier New", monospace;
  --neon-spread: 0.45;
  --sidebar-texture: none;
}

html[data-theme="fallout"] body {
  font-family: "VT323", "Courier New", monospace !important;
  font-size: calc(1.22rem * var(--font-scale, 1));
  letter-spacing: 0.06em;
  background: var(--fo-bg) !important;
  color: var(--fo-green);
  text-shadow: 0 0 6px rgba(31, 255, 15, 0.45);
}

html[data-theme="fallout"],
html[data-theme="fallout"] body {
  overflow: hidden !important;
  height: 100% !important;
  max-height: 100dvh !important;
}

/* CRT scanlines + vignette + faint grid */
html[data-theme="fallout"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9998;
  background:
    radial-gradient(ellipse at center, transparent 40%, rgba(0, 0, 0, 0.55) 100%),
    linear-gradient(rgba(18, 32, 18, 0.15) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 32, 18, 0.12) 1px, transparent 1px);
  background-size: 100% 100%, 28px 28px, 28px 28px;
  opacity: 0.85;
}
html[data-theme="fallout"] body::after {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  background: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 2px,
    rgba(0, 0, 0, 0.22) 2px,
    rgba(0, 0, 0, 0.22) 3px
  );
  opacity: 0.55;
  animation: fo-crt-flicker 6s steps(2, end) infinite;
}
@keyframes fo-crt-flicker {
  0%, 92%, 100% { opacity: 0.55; }
  93% { opacity: 0.4; }
  94% { opacity: 0.62; }
}

html[data-theme="fallout"] .app-shell {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  max-height: calc(100dvh - 12px) !important;
  gap: 0.4rem;
  padding: 0.4rem;
}

html[data-theme="fallout"] .sidebar,
html[data-theme="fallout"] .chat-pane,
html[data-theme="fallout"] .auth-card,
html[data-theme="fallout"] .card,
html[data-theme="fallout"] .console-nav,
html[data-theme="fallout"] .console-main,
html[data-theme="fallout"] .ui-dialog,
html[data-theme="fallout"] .info-panel,
html[data-theme="fallout"] .me-chip,
html[data-theme="fallout"] .composer,
html[data-theme="fallout"] .new-menu,
html[data-theme="fallout"] .emoji-panel,
html[data-theme="fallout"] .msg-ctx,
html[data-theme="fallout"] .send-menu,
html[data-theme="fallout"] .pinned-bar {
  border-radius: 0 !important;
  background: var(--fo-panel) !important;
  border: 1px solid var(--fo-green) !important;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.8),
    0 0 14px rgba(31, 255, 15, 0.18) !important;
  backdrop-filter: none !important;
  color: var(--fo-green);
}

/* Pip-Boy corner brackets on main panes */
html[data-theme="fallout"] .sidebar,
html[data-theme="fallout"] .chat-pane {
  position: relative;
}
html[data-theme="fallout"] .sidebar::before,
html[data-theme="fallout"] .sidebar::after {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  pointer-events: none;
  z-index: 4;
  border-color: var(--fo-green-bright);
  border-style: solid;
  opacity: 0.85;
  box-shadow: 0 0 6px rgba(0, 255, 0, 0.4);
}
html[data-theme="fallout"] .sidebar::before {
  top: 4px;
  left: 4px;
  border-width: 2px 0 0 2px;
}
html[data-theme="fallout"] .sidebar::after {
  top: 4px;
  right: 4px;
  border-width: 2px 2px 0 0;
}

html[data-theme="fallout"] .chat-pane {
  display: grid !important;
  grid-template-rows: auto 1fr auto auto !important;
  min-height: 0;
}

html[data-theme="fallout"] .messages-stage {
  min-height: 0;
  overflow: hidden;
  position: relative;
  background:
    linear-gradient(rgba(31, 255, 15, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31, 255, 15, 0.035) 1px, transparent 1px),
    #050a05;
  background-size: 24px 24px, 24px 24px, auto;
}
html[data-theme="fallout"] .messages-stage::before {
  display: none;
}
html[data-theme="fallout"] .messages-stage.has-fallout-art::before,
html[data-theme="fallout"] .messages-stage.has-fallout-art::after {
  display: none;
}
html[data-theme="fallout"] .messages-stage > .messages {
  position: relative;
  z-index: 1;
}
html[data-theme="fallout"] .messages-stage > .fallout-art {
  position: absolute !important;
  z-index: 0;
}
html[data-theme="fallout"] .messages-stage > .btn-jump-bottom {
  position: absolute !important;
  z-index: 40;
}
html[data-theme="fallout"] .composer-wrap {
  background: transparent;
  flex-shrink: 0;
}

/* STAT-style headers — tabs below brand row (do not overlap actions) */
html[data-theme="fallout"] .sidebar-header,
html[data-theme="fallout"] .chat-header {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  background: #061006 !important;
  color: var(--fo-green-bright) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--fo-green) !important;
  border-radius: 0 !important;
  box-shadow: inset 0 -1px 0 rgba(31, 255, 15, 0.25) !important;
  gap: 0.35rem 0.5rem;
  position: relative;
  z-index: 2;
}
html[data-theme="fallout"] .sidebar-header .brand-lockup {
  flex: 1 1 auto;
  min-width: 0;
  max-width: calc(100% - 6.5rem);
  position: relative;
  z-index: 1;
}
html[data-theme="fallout"] .sidebar-header .brand {
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
html[data-theme="fallout"] .sidebar-header .sidebar-actions {
  flex: 0 0 auto;
  margin-left: auto;
  position: relative;
  z-index: 3;
  display: flex;
  gap: 0.35rem;
}
html[data-theme="fallout"] .sidebar-header::after,
html[data-theme="fallout"] .chat-header::after {
  content: '[ STAT ]  INV  DATA  MAP';
  display: block;
  flex: 0 0 100%;
  order: 10;
  width: 100%;
  margin-top: 0.15rem;
  padding-top: 0.2rem;
  border-top: 1px solid rgba(31, 255, 15, 0.25);
  font-size: 0.85rem;
  letter-spacing: 0.14em;
  color: var(--fo-green-dim);
  text-shadow: none;
  opacity: 0.85;
}
html[data-theme="fallout"] .chat-header::after {
  content: '[ DATA ]  STAT  INV  RADIO';
}
html[data-theme="fallout"] .chat-header .chat-header-left {
  flex: 1 1 auto;
  min-width: 0;
}
html[data-theme="fallout"] .chat-header .chat-header-right {
  flex: 0 0 auto;
  margin-left: auto;
  z-index: 3;
}

html[data-theme="fallout"] .brand,
html[data-theme="fallout"] #chat-title,
html[data-theme="fallout"] .boot-splash-brand,
html[data-theme="fallout"] .auth-card h1,
html[data-theme="fallout"] h3 {
  font-family: "VT323", monospace !important;
  color: var(--fo-green-bright) !important;
  text-shadow: 0 0 10px rgba(0, 255, 0, 0.55) !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
html[data-theme="fallout"] .sidebar-header .brand::before {
  content: '☢ ';
  opacity: 0.9;
}
html[data-theme="fallout"] .chat-subtitle {
  color: var(--fo-green) !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
html[data-theme="fallout"] .me-chip-text strong {
  color: var(--fo-green-bright) !important;
  text-transform: uppercase;
}
html[data-theme="fallout"] #me-user,
html[data-theme="fallout"] .me-chip-text .muted {
  color: var(--fo-green) !important;
  text-transform: none !important;
}
html[data-theme="fallout"] #me-user::before {
  content: '● ';
  color: var(--online);
  text-shadow: 0 0 8px rgba(102, 255, 68, 0.9);
}

html[data-theme="fallout"] input,
html[data-theme="fallout"] textarea,
html[data-theme="fallout"] select,
html[data-theme="fallout"] .search-wrap input,
html[data-theme="fallout"] #message-input {
  border-radius: 0 !important;
  background: #050a05 !important;
  border: 1px solid var(--fo-green-dim) !important;
  box-shadow: inset 0 0 12px rgba(31, 255, 15, 0.06) !important;
  color: var(--fo-green-bright) !important;
  font-family: "VT323", monospace !important;
  text-transform: none;
  caret-color: var(--fo-green-bright);
  text-shadow: 0 0 4px rgba(31, 255, 15, 0.35);
}
html[data-theme="fallout"] input::placeholder,
html[data-theme="fallout"] #message-input::placeholder {
  color: var(--fo-green-dim) !important;
  text-transform: uppercase;
  opacity: 0.85;
}

html[data-theme="fallout"] .btn-primary,
html[data-theme="fallout"] .btn-ghost,
html[data-theme="fallout"] .icon-btn,
html[data-theme="fallout"] .send-btn,
html[data-theme="fallout"] .chip,
html[data-theme="fallout"] .tab,
html[data-theme="fallout"] .theme-opt,
html[data-theme="fallout"] .info-action {
  border-radius: 0 !important;
  background: #050a05 !important;
  color: var(--fo-green) !important;
  border: 1px solid var(--fo-green) !important;
  box-shadow: 0 0 8px rgba(31, 255, 15, 0.2) !important;
  font-family: "VT323", monospace !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
html[data-theme="fallout"] .btn-primary,
html[data-theme="fallout"] .send-btn.has-text,
html[data-theme="fallout"] .chip.active,
html[data-theme="fallout"] .tab.active,
html[data-theme="fallout"] .theme-opt.active {
  background: var(--fo-green-bright) !important;
  color: #031003 !important;
  border-color: #b8ff9a !important;
  text-shadow: none !important;
  box-shadow: 0 0 14px rgba(0, 255, 0, 0.45) !important;
}
html[data-theme="fallout"] .send-btn {
  width: auto !important;
  height: auto !important;
  padding: 0.45rem 0.9rem !important;
  white-space: nowrap;
}
html[data-theme="fallout"] .send-btn .send-ico-default { display: none !important; }
html[data-theme="fallout"] .send-btn .send-label-pixel {
  display: inline !important;
  font-family: "VT323", monospace !important;
}
html[data-theme="fallout"] .send-btn .send-label-pixel::before {
  content: '▶ ';
}

html[data-theme="fallout"] .chat-list li button {
  border-radius: 0 !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--fo-green) !important;
}
html[data-theme="fallout"] .chat-list li button:hover {
  background: #0f1f0f !important;
  border-color: var(--fo-green-dim) !important;
}
html[data-theme="fallout"] .chat-list li button.active {
  background: #142814 !important;
  border-color: var(--fo-green-bright) !important;
  box-shadow: inset 3px 0 0 var(--fo-green-bright) !important;
}
html[data-theme="fallout"] .chat-list li button strong {
  color: var(--fo-green-bright) !important;
  text-shadow: 0 0 8px rgba(0, 255, 0, 0.4) !important;
  font-size: 1.15rem !important;
  text-transform: uppercase;
  font-weight: 400;
}
html[data-theme="fallout"] .chat-list li button .preview,
html[data-theme="fallout"] .chat-item-meta {
  color: var(--fo-green-dim) !important;
}
html[data-theme="fallout"] .chat-unread-badge {
  border-radius: 0 !important;
  background: var(--fo-green-bright) !important;
  color: #031003 !important;
  border: 1px solid #b8ff9a !important;
  box-shadow: 0 0 10px rgba(0, 255, 0, 0.5) !important;
}
html[data-theme="fallout"] .chat-unread-badge::before {
  content: '☢';
  margin-right: 0.15em;
}
html[data-theme="fallout"] .lock-pill::before {
  content: '⚙ ';
}

html[data-theme="fallout"] .messages .row .bubble:not(.deleted) {
  border-radius: 0 !important;
  background: var(--fo-green-mid) !important;
  color: var(--fo-ink) !important;
  border: 1px solid var(--fo-green) !important;
  box-shadow: 0 0 10px rgba(31, 255, 15, 0.15) !important;
  filter: none !important;
  text-shadow: 0 0 4px rgba(31, 255, 15, 0.3);
}
html[data-theme="fallout"] .messages .row.mine .bubble:not(.deleted) {
  background: var(--fo-out) !important;
  border-color: var(--fo-green-bright) !important;
  color: var(--fo-green-bright) !important;
  box-shadow: 0 0 14px rgba(0, 255, 0, 0.22) !important;
}
html[data-theme="fallout"] .messages .row .sender-name,
html[data-theme="fallout"] .messages .row.mine .sender-name {
  color: var(--neon, var(--fo-green-bright)) !important;
  text-shadow: none !important;
  text-transform: uppercase;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  font-size: 1.05rem !important;
}
html[data-theme="fallout"] .messages .row .sender-name::before {
  content: '› ';
  opacity: 0.7;
}
html[data-theme="fallout"] .day-sep {
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--fo-green-dim) !important;
  border: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  text-transform: uppercase;
  letter-spacing: 0.2em;
}
html[data-theme="fallout"] .day-sep::before,
html[data-theme="fallout"] .day-sep::after {
  content: ' ▾▾▾ ';
  opacity: 0.5;
}

html[data-theme="fallout"] .avatar,
html[data-theme="fallout"] .avatar-wrap,
html[data-theme="fallout"] .avatar-img { border-radius: 0 !important; }
html[data-theme="fallout"] .avatar:not(.has-img) {
  background-image: none !important;
  background-color: var(--av, #0f1f0f) !important;
  color: #0f1f0f;
  text-shadow: none !important;
  border: 1px solid var(--fo-green);
}
html[data-theme="fallout"] .avatar:not(.has-img)::after { display: none !important; }
html[data-theme="fallout"] .avatar-wrap::after,
html[data-theme="fallout"] #chat-avatar-wrap::after {
  border-radius: 0 !important;
  box-shadow: 0 0 0 1px var(--fo-green), 0 0 8px rgba(31, 255, 15, 0.35) !important;
}
html[data-theme="fallout"] .status-dot {
  border-radius: 0 !important;
  border: 1px solid #000 !important;
  width: 12px !important;
  height: 12px !important;
  box-shadow: none !important;
}
html[data-theme="fallout"] .status-dot.online {
  background: #66ff44 !important;
  box-shadow: 0 0 12px rgba(102, 255, 68, 1) !important;
}

html[data-theme="fallout"] .composer-prompt {
  display: inline-block !important;
  color: var(--fo-green-bright);
  font-size: 1.2rem;
  text-shadow: 0 0 8px rgba(0, 255, 0, 0.5);
}
html[data-theme="fallout"] .composer-hints,
html[data-theme="fallout"] .pixel-rpg-hud { display: none !important; }
html[data-theme="fallout"] #message-input {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html[data-theme="fallout"] .composer::after {
  content: 'HP ████████░░  AP ██████░░░░  RAD ░░░░░░░░░░';
  display: block;
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 0.15rem;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  color: var(--fo-green-dim);
  text-shadow: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html[data-theme="fallout"] .console-screen,
html[data-theme="fallout"] #settings-screen,
html[data-theme="fallout"] #admin-screen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10060 !important;
  background: var(--fo-bg) !important;
  overflow: auto !important;
}
html[data-theme="fallout"] .console-back,
html[data-theme="fallout"] .console-item,
html[data-theme="fallout"] .console-signed,
html[data-theme="fallout"] .console-main,
html[data-theme="fallout"] .console-main .muted,
html[data-theme="fallout"] .console-main p {
  color: var(--fo-green) !important;
}
html[data-theme="fallout"] .console-item {
  border-radius: 0 !important;
}
html[data-theme="fallout"] .console-item.active {
  background: #142814 !important;
  color: var(--fo-green-bright) !important;
  box-shadow: inset 3px 0 0 var(--fo-green-bright) !important;
}
html[data-theme="fallout"] .console-brand {
  border-bottom: 1px solid var(--fo-green);
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  background: #061006 !important;
}
html[data-theme="fallout"] .console-brand h2 {
  color: var(--fo-green-bright) !important;
}
html[data-theme="fallout"] .console-brand h2::before {
  content: '☢ ';
}

html[data-theme="fallout"] .auth-screen,
html[data-theme="fallout"] .boot-splash,
html[data-theme="fallout"] .console-screen {
  background: var(--fo-bg) !important;
}
html[data-theme="fallout"] .boot-splash-brand::after {
  content: 'PLEASE STAND BY';
  display: block;
  margin-top: 0.75rem;
  font-size: 0.95rem;
  letter-spacing: 0.2em;
  color: var(--fo-green-dim);
}
html[data-theme="fallout"] .ui-toast {
  border-radius: 0 !important;
  background: #0f1f0f !important;
  color: var(--fo-green) !important;
  border: 1px solid var(--fo-green) !important;
  box-shadow: 0 0 12px rgba(31, 255, 15, 0.25) !important;
}
html[data-theme="fallout"] .btn-jump-bottom {
  position: absolute !important;
  right: 0.85rem !important;
  left: auto !important;
  bottom: 0.85rem !important;
  z-index: 40 !important;
  border-radius: 0 !important;
  background: #050a05 !important;
  color: var(--fo-green) !important;
  border: 1px solid var(--fo-green) !important;
  box-shadow: 0 0 10px rgba(31, 255, 15, 0.3) !important;
}
html[data-theme="fallout"] .empty-chat {
  color: var(--fo-green);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
html[data-theme="fallout"] .empty-chat::before {
  content: 'PLEASE STAND BY\A';
  white-space: pre;
  display: block;
  margin-bottom: 0.5rem;
  color: var(--fo-green-bright);
  text-shadow: 0 0 10px rgba(0, 255, 0, 0.5);
}
html[data-theme="fallout"] .empty-chat::after {
  display: none;
}
html[data-theme="fallout"] .lock-pill {
  background: #050a05;
  border-radius: 0;
  border: 1px solid var(--fo-green);
  color: var(--fo-green);
}
