/* Housing Vault — unified security-first theme system.
   Theme choice is presentation-only and never contains vault data. */

:root {
  --bg:#f3f4f6; --bg-elevated:#fff; --panel:rgba(255,255,255,.98);
  --text:#20252b; --text-muted:#66717d; --accent:#59636e; --accent-bright:#20252b;
  --accent-dim:#3f4851; --border:#d5d9de; --border-strong:#8b949e;
  --danger:#b42318; --warn:#9a6700; --input-bg:#fff;
  --shadow:rgba(32,37,43,.10); --rain-color:transparent; --rain-opacity:0;
  --logo-glow:#7b8794; --font-main:"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Cascadia Code","Consolas",monospace;
}

/* Dark security-oriented themes */
[data-theme="forest"] {
  --bg:#0c1a12; --bg-elevated:#142820; --panel:rgba(16,40,28,.96);
  --text:#e8f5ec; --text-muted:#8fb89a; --accent:#4caf70; --accent-bright:#7ddea0;
  --accent-dim:#2e7a4a; --border:#2d4f3a; --border-strong:#4caf70;
  --danger:#f07178; --warn:#e0b040; --input-bg:#0a1610;
  --shadow:rgba(76,175,112,.18); --rain-color:#3d9b5f; --rain-opacity:.35;
  --logo-glow:#7ddea0;
  --font-main:"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Cascadia Code","Consolas",monospace;
}
[data-theme="professional"] {
  --bg:#eef1f5; --bg-elevated:#fff; --panel:rgba(255,255,255,.98);
  --text:#15202b; --text-muted:#4a5c6e; --accent:#1a5f8f; --accent-bright:#2477b0;
  --accent-dim:#134666; --border:#c5d0dc; --border-strong:#1a5f8f;
  --danger:#c0392b; --warn:#8a6500; --input-bg:#fff;
  --shadow:rgba(26,95,143,.10); --rain-color:transparent; --rain-opacity:0; --logo-glow:#1a5f8f;
  --font-main:"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Cascadia Code","Consolas",monospace;
}
[data-theme="console"] {
  --bg:#e9edf1; --bg-elevated:#f8fafc; --panel:rgba(248,250,252,.98);
  --text:#17212b; --text-muted:#526170; --accent:#334e68; --accent-bright:#486581;
  --accent-dim:#243b53; --border:#bcccdc; --border-strong:#486581;
  --danger:#b42318; --warn:#8a6500; --input-bg:#fff;
  --shadow:rgba(36,59,83,.12); --rain-color:transparent; --rain-opacity:0; --logo-glow:#486581;
  --font-main:"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Cascadia Code","Consolas",monospace;
}
[data-theme="calm"] {
  --bg:#edf5f2; --bg-elevated:#f9fcfb; --panel:rgba(249,252,251,.98);
  --text:#18332b; --text-muted:#5f766e; --accent:#357a6e; --accent-bright:#4f9d90;
  --accent-dim:#286257; --border:#c5ddd7; --border-strong:#357a6e;
  --danger:#b54747; --warn:#80671d; --input-bg:#fff;
  --shadow:rgba(53,122,110,.12); --rain-color:transparent; --rain-opacity:0; --logo-glow:#66b7a9;
  --font-main:"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Cascadia Code","Consolas",monospace;
}
[data-theme="midnight"] {
  --bg:#0d1117; --bg-elevated:#161b22; --panel:rgba(22,27,34,.97);
  --text:#e6edf3; --text-muted:#8b949e; --accent:#58a6ff; --accent-bright:#79c0ff;
  --accent-dim:#1f6feb; --border:#30363d; --border-strong:#58a6ff;
  --danger:#f85149; --warn:#d29922; --input-bg:#0d1117;
  --shadow:rgba(88,166,255,.14); --rain-color:#388bfd; --rain-opacity:.22; --logo-glow:#79c0ff;
  --font-main:"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Cascadia Code","Consolas",monospace;
}
[data-theme="terminal"] {
  --bg:#0c0c0c; --bg-elevated:#121212; --panel:rgba(18,18,18,.98);
  --text:#33ff33; --text-muted:#22aa22; --accent:#33ff33; --accent-bright:#99ff99;
  --accent-dim:#1a991a; --border:#1a5c1a; --border-strong:#33ff33;
  --danger:#ff4444; --warn:#cccc00; --input-bg:#000;
  --shadow:rgba(51,255,51,.15); --rain-color:#22cc22; --rain-opacity:.25; --logo-glow:#66ff66;
  --font-main:"Cascadia Code","Fira Code","Consolas","Courier New",monospace;
}
[data-theme="matrix"] {
  --bg:#000; --bg-elevated:#001400; --panel:rgba(0,12,0,.82);
  --text:#b8ffc8; --text-muted:#3dcc66; --accent:#22c55e; --accent-bright:#86efac;
  --accent-dim:#16a34a; --border:#14532d; --border-strong:#22c55e;
  --danger:#f43f5e; --warn:#eab308; --input-bg:#000;
  --shadow:rgba(34,197,94,.20); --rain-color:#22c55e; --rain-opacity:.92; --logo-glow:#86efac;
  --font-main:"Cascadia Code","Fira Code","Consolas",monospace;
  --font-mono:"Cascadia Code","Fira Code","Consolas",monospace;
}
[data-theme="cyberpunk"] {
  --bg:#0b0015; --bg-elevated:#160028; --panel:rgba(22,0,42,.96);
  --text:#f0e6ff; --text-muted:#b89ae0; --accent:#d946ef; --accent-bright:#f0abfc;
  --accent-dim:#a21caf; --border:#5b21b6; --border-strong:#d946ef;
  --danger:#fb7185; --warn:#fbbf24; --input-bg:#0d001a;
  --shadow:rgba(217,70,239,.22); --rain-color:#c026d3; --rain-opacity:.28; --logo-glow:#f0abfc;
  --font-main:"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Cascadia Code","Consolas",monospace;
}
[data-theme="amber"] {
  --bg:#1a1208; --bg-elevated:#241a0e; --panel:rgba(36,26,14,.96);
  --text:#ffe0a0; --text-muted:#c4a06a; --accent:#e8a838; --accent-bright:#ffd078;
  --accent-dim:#a87220; --border:#5c4420; --border-strong:#e8a838;
  --danger:#ff6b5a; --warn:#ffcc44; --input-bg:#120c06;
  --shadow:rgba(232,168,56,.18); --rain-color:#c4892a; --rain-opacity:.24; --logo-glow:#ffd078;
  --font-main:"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Cascadia Code","Consolas",monospace;
}
[data-theme="high-contrast"] {
  --bg:#000; --bg-elevated:#050505; --panel:#000; --text:#fff; --text-muted:#f0f0f0;
  --accent:#00ffff; --accent-bright:#fff; --accent-dim:#00b8b8; --border:#fff;
  --border-strong:#00ffff; --danger:#ff4d4d; --warn:#ffff00; --input-bg:#000;
  --shadow:rgba(0,255,255,.25); --rain-color:transparent; --rain-opacity:0; --logo-glow:#00ffff;
  --font-main:Arial,sans-serif; --font-mono:monospace;
}
[data-theme="neutral"] {
  --bg:#f3f4f6; --bg-elevated:#fff; --panel:rgba(255,255,255,.98);
  --text:#20252b; --text-muted:#66717d; --accent:#59636e; --accent-bright:#20252b;
  --accent-dim:#3f4851; --border:#d5d9de; --border-strong:#8b949e;
  --danger:#b42318; --warn:#9a6700; --input-bg:#fff;
  --shadow:rgba(32,37,43,.10); --rain-color:transparent; --rain-opacity:0; --logo-glow:#7b8794;
  --font-main:"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Cascadia Code","Consolas",monospace;
}

* { box-sizing:border-box; }
body { font-family:var(--font-main); color:var(--text); background:var(--bg); }
#dossier { font-family:var(--font-main); font-size:.95rem; line-height:1.6; letter-spacing:.01em; caret-color:var(--accent-bright); }
[data-theme="terminal"] #dossier,[data-theme="matrix"] #dossier { font-family:var(--font-mono); font-size:.9rem; }
#matrix-canvas { opacity:var(--rain-opacity); z-index:1; }
[data-theme="matrix"] #matrix-canvas { opacity:1; }
@media (prefers-reduced-motion:reduce) { #matrix-canvas { display:none !important; } }

/* Redact overlay */
#redact-overlay { display:none; position:fixed; inset:0; z-index:99999; background:#0a0a0a; cursor:pointer; flex-direction:column; align-items:center; justify-content:center; gap:1rem; user-select:none; }
#redact-overlay.active { display:flex; }
#redact-overlay .redact-msg { color:#777; font:700 .85rem system-ui,sans-serif; letter-spacing:.06em; }
#redact-overlay .redact-hint { color:#444; font-size:.72rem; }

/* Branding remains decorative only. */
.powered-by,.vault-branding { display:flex; align-items:center; justify-content:center; gap:.55rem; color:var(--text-muted); }
.powered-by { margin:1.15rem auto .4rem; font-size:.78rem; }
.powered-mark { display:inline-grid; place-items:center; width:28px; height:28px; border:1px solid var(--accent); border-radius:50%; color:var(--accent-bright); font:800 .72rem/1 var(--font-mono); }
.vault-branding { display:none; }
.status-chip {
  position: fixed;
  right: 12px;
  bottom: 12px;
  z-index: 40;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.2rem;
  max-width: min(280px, calc(100vw - 7.5rem));
  padding: 0.28rem 0.4rem 0.28rem 0.5rem;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 2px 10px var(--shadow);
  color: var(--text-muted);
  font-size: 0.68rem;
  line-height: 1.2;
  pointer-events: auto;
}
.status-chip-row { display:flex; align-items:center; gap:.35rem; }
.status-checks {
  list-style: none;
  margin: 0;
  padding: 0.2rem 0.15rem 0.2rem;
  border-top: 1px solid var(--border);
}
.status-checks li {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.1rem 0;
  color: var(--text);
}
.status-checks .pass { color: var(--accent); font-weight: 700; }
.status-checks .fail { color: var(--danger); font-weight: 700; }
.status-chip.minimized .footer-status-line,
.status-chip.minimized #btn-diagnostics,
.status-chip.minimized #btn-status-min,
.status-chip.minimized .status-checks { display: none; }
.status-chip.hidden-chip { display: none; }
.status-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--text-muted); flex: 0 0 auto;
}
.status-chip.ok .status-dot { background: var(--accent); }
.status-chip.warn .status-dot { background: var(--warn); }
.status-chip.bad .status-dot { background: var(--danger); }
.footer-status-line {
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.status-chip-btn {
  border: none !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  box-shadow: none !important;
  width: 22px; height: 22px;
  padding: 0 !important;
  font-size: 0.78rem !important;
  line-height: 1 !important;
  border-radius: 50% !important;
}
.status-chip-btn:hover { color: var(--text) !important; background: var(--bg-elevated) !important; }
@media (max-width: 720px) {
  .status-chip {
    right: 8px;
    bottom: 52px;
    max-width: calc(100vw - 1rem);
  }
  .safety-strip { z-index: 45; }
}
.save-indicator { font-size:.68rem; color:var(--text-muted); white-space:nowrap; }
.save-indicator.saving { color:var(--warn); }
.save-indicator.saved { color:var(--accent); }
.save-indicator.failed { color:var(--danger); font-weight:700; }
body.focus-mode .sidebar,body.focus-mode .top-left .nav-toggle { display:none !important; }
body.focus-mode .editor-pane { max-width:1100px; margin:0 auto; }
body.focus-mode .workspace { display:block; }

.theme-btn.active { border-color:var(--accent); color:var(--accent); }
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
