:root {
  --bg-start:     #0a192f;
  --bg-end:       #0c2a4a;
  --accent:       #4cc9f0;
  --accent-blue:  #4361ee;
  --glass-bg:     rgba(255,255,255,0.05);
  --glass-border: rgba(255,255,255,0.10);
  --text:         #e2e8f0;
  --text-muted:   #94a3b8;
  --radius-card:  24px;
  --radius-btn:   8px;
  --danger:       #ef4444;
  --warning:      #f59e0b;
  --success:      #22c55e;
  --entry-fact:   #4cc9f0;
  --entry-note:   #f59e0b;
  --entry-prompt: #4361ee;
  --entry-ai:     #a855f7;
  --entry-system: #94a3b8;
}

/* High-visibility / night-use mode — higher contrast for outdoor bright-light use */
body.hv-mode {
  --bg-start:     #000000;
  --bg-end:       #080f1a;
  --glass-bg:     rgba(255,255,255,0.10);
  --glass-border: rgba(255,255,255,0.28);
  --text:         #ffffff;
  --text-muted:   #c8d5e0;
  --danger:       #ff5252;
  --warning:      #ffb300;
  --success:      #4caf50;
  --accent:       #40e0ff;
  --entry-fact:   #40e0ff;
  --entry-note:   #ffb300;
  --entry-system: #c8d5e0;
}
body.hv-mode .card { border-width: 1px; border-color: rgba(255,255,255,0.22); }
body.hv-mode .btn-secondary { border-color: rgba(255,255,255,0.25); }
body.hv-mode .form-input { border-color: rgba(255,255,255,0.25); background: rgba(255,255,255,0.08); }
body.hv-mode .badge { letter-spacing: 0.06em; }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  height: 100%;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: linear-gradient(135deg, var(--bg-start) 0%, var(--bg-end) 100%);
  background-attachment: fixed;
  color: var(--text);
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

.view-root {
  padding: 16px 16px 88px; /* bottom clearance for nav */
  min-height: 100vh;
  max-width: 680px;
  margin: 0 auto;
}

/* Disclaimer banner */
.disclaimer-banner {
  background: rgba(245,158,11,0.12);
  border-bottom: 1px solid rgba(245,158,11,0.3);
  color: #fcd34d;
  font-size: 0.75rem;
  padding: 8px 52px 8px 12px; /* right padding clears the fixed HV button */
  display: flex;
  gap: 8px;
  align-items: flex-start;
  line-height: 1.4;
}
.disclaimer-icon { font-size: 1rem; flex-shrink: 0; margin-top: 1px; }
.disclaimer-close {
  background: none; border: none; color: #fcd34d; cursor: pointer;
  font-size: 1.2rem; line-height: 1; margin-left: auto; flex-shrink: 0; padding: 0 4px;
}

/* Demo banner */
.demo-banner {
  background: rgba(168,85,247,0.2);
  border-bottom: 2px solid #a855f7;
  color: #e9d5ff;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 6px;
  letter-spacing: 0.05em;
}

/* View headings */
.view-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-top: 12px;
}
.view-title { font-size: 1.4rem; font-weight: 700; color: var(--text); }
.view-subtitle { font-size: 0.85rem; color: var(--text-muted); margin-top: 2px; }
