/* ========================================
   RemedyFungus — neon-on-black mushroom theme
   Calmer revision: dimmed defaults, full neon reserved for active states.
   ======================================== */

:root {
  /* Surfaces */
  --bg:        #080908;
  --panel:     #121312;
  --panel-2:   #181918;
  --void:      #000000;

  /* Lime: dim by default, full only for active/primary */
  --lime:      #9cff1a;
  --lime-dim:  #6fbf16;
  --lime-soft: rgba(156, 255, 26, 0.35);
  --lime-glow: rgba(156, 255, 26, 0.25);

  /* Earth */
  --cap:       #b77a49;
  --cap-dk:    #8c5738;
  --cream:     #e7dcc4;
  --cream-dk:  #c79b73;
  --rust:      #d08a5c;
  --moss:      #4a6b2a;

  /* Text roles */
  --text:      var(--cream);
  --text-mute: var(--cream-dk);

  /* Legacy aliases so older class refs still resolve */
  --pink: var(--cream); --hot: var(--lime); --yellow: var(--cap);
  --blue: var(--cream); --purple: var(--lime); --green: var(--lime-dim);
  --teal: var(--lime-dim); --dark: var(--void); --shadow: var(--void);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  font-family: 'VT323', monospace;
  background:
    radial-gradient(ellipse at top, #161616 0%, var(--bg) 70%),
    var(--bg);
  color: var(--text);
  min-height: 100vh;
  font-size: 18px;
  line-height: 1.5;
  image-rendering: pixelated;
  -webkit-font-smoothing: antialiased;
}

/* Reserve pixel font for display surfaces only */
h1, h2, h3, .pixel-btn, .tab-btn, label, .logo, .title,
.post-summary, .post-summary-date, .post-summary-prompt, .post-summary-arrow,
.post-author-badge, .daily-date, .daily-prompt-text, .daily-empty,
.daily-response-meta, .daily-history h3, .queue-title, .user-display,
.subtitle, .error, .loading, .prompt-row label {
  font-family: 'Press Start 2P', monospace;
  letter-spacing: 0.04em;
}

.hidden { display: none !important; }

/* ---------- Pixel borders ---------- */
.pixel-border {
  background: var(--panel);
  border: 3px solid var(--lime-dim);
  box-shadow:
    4px 4px 0 var(--void),
    0 0 6px var(--lime-glow);
  border-radius: 0;
}

/* ---------- Buttons ---------- */
.pixel-btn {
  font-size: 11px;
  padding: 12px 18px;
  background: var(--lime);
  color: var(--void);
  border: 3px solid var(--void);
  box-shadow: 4px 4px 0 var(--void);
  cursor: pointer;
  text-transform: uppercase;
  transition: transform 0.05s, box-shadow 0.05s, background 0.1s;
}
.pixel-btn:hover { background: var(--rust); color: var(--cream); }
.pixel-btn:active {
  transform: translate(4px, 4px);
  box-shadow: 0 0 0 var(--void);
}
.pixel-btn.small { font-size: 9px; padding: 8px 12px; box-shadow: 2px 2px 0 var(--void); }
.pixel-btn:disabled { background: #555; color: var(--cream-dk); cursor: not-allowed; }

/* ---------- Inputs ---------- */
input, textarea, select {
  font-family: 'VT323', monospace;
  font-size: 18px;
  line-height: 1.5;
  width: 100%;
  padding: 12px 14px;
  border: 3px solid var(--lime-dim);
  background: #101110;
  color: var(--text);
  margin: 6px 0 14px;
  outline: none;
}
input:focus, textarea:focus, select:focus {
  border-color: var(--lime);
  box-shadow: 0 0 6px var(--lime-soft);
}
textarea { min-height: 90px; resize: vertical; line-height: 1.5; }
::placeholder { color: var(--text-mute); opacity: 0.85; }

/* ---------- Login ---------- */
.login-screen {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  position: relative;
  overflow: hidden;
}
.login-card {
  padding: 32px 28px;
  max-width: 420px;
  width: 100%;
  text-align: center;
  z-index: 1;
}
.title {
  color: var(--lime);
  font-size: 18px;
  margin: 0 0 12px;
  text-shadow: 2px 2px 0 var(--void), 0 0 3px var(--lime-soft);
}
.subtitle { font-size: 9px; margin-bottom: 24px; color: var(--cap); }
.login-card label { display: block; text-align: left; font-size: 9px; margin-top: 14px; color: var(--text-mute); }

.hearts-bg {
  position: absolute; inset: 0; pointer-events: none;
  display: flex; flex-wrap: wrap; justify-content: space-around; align-items: space-around;
}
.hearts-bg span {
  font-size: 60px; opacity: 0.12;
  animation: float 6s ease-in-out infinite;
}
.hearts-bg span:nth-child(2) { animation-delay: 1s; opacity: 0.08; }
.hearts-bg span:nth-child(3) { animation-delay: 2s; opacity: 0.10; }
.hearts-bg span:nth-child(4) { animation-delay: 3s; opacity: 0.08; }
.hearts-bg span:nth-child(5) { animation-delay: 4s; opacity: 0.06; }
@keyframes float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-30px); }
}

.error { color: var(--rust); font-size: 9px; min-height: 14px; margin-top: 10px; text-shadow: none; }
.loading { color: var(--text-mute); font-size: 9px; text-shadow: none; }

/* ---------- App layout ---------- */
.app { max-width: 960px; margin: 0 auto; padding: 18px; }

.header {
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background:
    radial-gradient(circle at 25% 30%, var(--lime-glow), transparent 14%),
    radial-gradient(circle at 70% 35%, rgba(156,255,26,0.18), transparent 16%),
    radial-gradient(circle at 45% 75%, rgba(156,255,26,0.14), transparent 12%),
    linear-gradient(180deg, var(--cap) 0%, var(--cap-dk) 100%);
  border: 3px solid var(--void);
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 18px;
}
.logo {
  font-size: 14px;
  color: var(--lime);
  margin: 0;
  text-shadow: 2px 2px 0 var(--void), 0 0 3px var(--lime-soft);
  background: rgba(0,0,0,0.20);
  padding: 4px 8px;
}
.header-right { display: flex; align-items: center; gap: 14px; }
.user-display { font-size: 9px; color: var(--cream); }

/* ---------- Tabs ---------- */
.tabs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 0 0 22px;
}
.tab-btn {
  font-size: 9px;
  padding: 12px 6px;
  background: #d8cdb3;
  color: var(--void);
  border: 3px solid var(--void);
  box-shadow: 3px 3px 0 var(--void);
  cursor: pointer;
  opacity: 0.85;
  transition: opacity 0.1s, background 0.1s;
}
.tab-btn:hover { opacity: 1; }
.tab-btn.active {
  background: var(--lime);
  color: var(--void);
  opacity: 1;
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--void), 0 0 6px var(--lime-soft);
}

.tab-panel { display: none; }
.tab-panel.active { display: block; }

.panel {
  padding: 22px 20px;
  margin-bottom: 18px;
  background: var(--panel);
  border: 3px solid var(--lime-dim);
  box-shadow: 4px 4px 0 var(--void);
}
.panel h2 {
  font-size: 13px;
  margin: 0 0 18px;
  color: var(--lime);
  text-shadow:
    2px 2px 0 var(--void),
    0 0 3px var(--lime-soft);
}

/* ---------- Posts (collapsible <details>) ---------- */
.posts-list { display: flex; flex-direction: column; gap: 12px; }

.post {
  background: var(--panel);
  border: 3px solid var(--lime-dim);
  box-shadow: 4px 4px 0 var(--void);
  overflow: hidden;
}
.post[open] {
  border-color: var(--lime);
  box-shadow: 4px 4px 0 var(--void), 0 0 6px var(--lime-soft);
}

.post-summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 10px;
  color: var(--text);
}
.post-summary::-webkit-details-marker { display: none; }
.post-summary::marker { display: none; content: ''; }

.post[open] .post-summary { border-bottom: 2px solid var(--lime-dim); background: var(--panel-2); }

.post-author-badge {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 30px; height: 30px;
  background: var(--lime); color: var(--void);
  border: 2px solid var(--void);
  font-size: 11px;
  flex-shrink: 0;
}
.post-summary-meta { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.post-summary-date { color: var(--cap); font-size: 8px; }
.post-summary-prompt { color: var(--lime-dim); font-size: 8px; }
.post-summary-arrow { font-size: 10px; color: var(--lime-dim); transition: transform 0.15s; }
.post[open] .post-summary-arrow { transform: rotate(90deg); color: var(--lime); }

.post-body {
  padding: 16px;
  font-family: 'VT323', monospace;
  font-size: 19px;
  line-height: 1.65;
  letter-spacing: 0.02em;
  word-wrap: break-word;
  white-space: pre-wrap;
  color: var(--text);
}

/* ---------- Prompt picker chip on the post form ---------- */
.prompt-row {
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
  margin-bottom: 12px;
}
.prompt-row label {
  font-size: 9px;
  color: var(--text-mute);
  margin: 0;
}

/* ---------- Daily Prompt tab ---------- */
.daily-card {
  padding: 22px 20px;
  background:
    radial-gradient(circle at 25% 30%, rgba(156,255,26,0.16), transparent 14%),
    radial-gradient(circle at 70% 35%, rgba(156,255,26,0.12), transparent 16%),
    radial-gradient(circle at 50% 80%, rgba(156,255,26,0.10), transparent 12%),
    linear-gradient(180deg, var(--cap), var(--cap-dk));
  border: 3px solid var(--lime-dim);
  box-shadow: 4px 4px 0 var(--void), 0 0 6px var(--lime-glow);
  margin-bottom: 22px;
  position: relative;
  overflow: hidden;
}
.daily-date {
  font-size: 9px; color: var(--cream);
  background: rgba(0,0,0,0.22);
  display: inline-block;
  padding: 4px 8px;
}
.daily-prompt-text {
  font-size: clamp(14px, 4vw, 18px);
  line-height: 1.45;
  margin: 14px 0 6px;
  color: var(--lime);
  text-shadow: 2px 2px 0 var(--void), 0 0 3px var(--lime-soft);
  background: rgba(0,0,0,0.22);
  display: inline-block;
  padding: 6px 10px;
}
.daily-responses { display: flex; flex-direction: column; gap: 12px; }
.daily-response {
  padding: 14px 16px;
  background: var(--panel-2);
  border: 2px solid var(--lime-dim);
  color: var(--text);
}
.daily-response-meta {
  font-size: 9px;
  color: var(--cap);
  margin-bottom: 8px;
}
.daily-response-body {
  font-family: 'VT323', monospace;
  font-size: 19px;
  line-height: 1.65;
  letter-spacing: 0.02em;
  white-space: pre-wrap;
  word-wrap: break-word;
  color: var(--text);
}
.daily-empty { font-size: 9px; color: var(--text-mute); padding: 8px 0; }
.daily-history h3 {
  font-size: 11px;
  color: var(--lime);
  margin: 22px 0 12px;
  text-shadow:
    2px 2px 0 var(--void),
    0 0 3px var(--lime-soft);
}

/* ---------- Photo grid ---------- */
.photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
}
.photo-tile {
  position: relative;
  aspect-ratio: 1 / 1;
  border: 3px solid var(--lime-dim);
  box-shadow: 4px 4px 0 var(--void);
  background: var(--panel-2);
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.1s;
}
.photo-tile:hover { border-color: var(--lime); }
.photo-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- Lightbox ---------- */
.lightbox {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.88);
  display: flex; align-items: center; justify-content: center;
  z-index: 1000;
  padding: 20px;
}
.lightbox img { max-width: 100%; max-height: 90vh; border: 3px solid var(--lime-dim); }
.lightbox-close {
  position: absolute; top: 16px; right: 16px;
  background: var(--lime); color: var(--void);
}

/* ---------- Watch Queue ---------- */
.queue-list { display: flex; flex-direction: column; gap: 12px; }
.queue-item {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px;
  background: var(--panel);
  border: 3px solid var(--lime-dim);
  box-shadow: 4px 4px 0 var(--void);
}
.queue-item.watched { background: #1a2310; border-color: var(--moss); opacity: 0.85; }
.queue-item.watched .queue-title { text-decoration: line-through; color: var(--text-mute); }
.queue-info { flex: 1; min-width: 0; }
.queue-title { font-size: 11px; color: var(--lime); }
.queue-notes {
  font-family: 'VT323', monospace;
  font-size: 18px;
  line-height: 1.5;
  color: var(--text);
  margin-top: 6px;
}
.queue-actions { display: flex; gap: 8px; flex-direction: column; }

/* ---------- Mobile ---------- */
@media (max-width: 600px) {
  body { font-size: 17px; }
  .app { padding: 12px; }
  .logo { font-size: 11px; }
  .title { font-size: 14px; }
  .header { padding: 12px 14px; margin-bottom: 14px; }
  .tabs { grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 18px; }
  .tab-btn { font-size: 9px; padding: 11px 4px; }
  .pixel-btn { font-size: 10px; padding: 11px 14px; }
  .pixel-btn.small { font-size: 8px; padding: 7px 10px; }
  .panel { padding: 18px 16px; margin-bottom: 14px; }
  .panel h2 { font-size: 11px; margin-bottom: 14px; }
  .post-summary { font-size: 9px; padding: 12px 14px; gap: 10px; }
  .post-author-badge { width: 26px; height: 26px; font-size: 10px; }
  .post-body { font-size: 17px; padding: 14px; }
  .photo-grid { grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 8px; }
  .photo-tile { border-width: 2px; box-shadow: 3px 3px 0 var(--void); }
  .daily-card { padding: 18px 16px; margin-bottom: 18px; }
  .daily-prompt-text { font-size: 13px; }
  .daily-response-body { font-size: 17px; }
  .queue-title { font-size: 10px; }
  .queue-notes { font-size: 17px; }
  .user-display { font-size: 8px; }
  input, textarea, select { font-size: 17px; padding: 11px 12px; }
}

@media (max-width: 380px) {
  .tab-btn { font-size: 8px; }
  .logo { font-size: 10px; }
}
