/* --- Views --- */
.view { display: none; }
.view.active { display: flex; }

/* ============================================================
   HOST DASHBOARD
   ============================================================ */

#host-view {
  position: fixed;
  top: var(--header-h);
  bottom: calc(var(--footer-h) + var(--music-h));
  left: 0; right: 0;
  display: none;
  flex-direction: row;
}

#host-view.active { display: flex; }

/* --- Zone B: Sidebar — leather-bound field journal index --- */
#zone-b {
  width: var(--sidebar-w);
  min-width: var(--sidebar-w);
  background: linear-gradient(180deg,
    rgba(18,26,14,0.99) 0%,
    rgba(14,20,10,0.99) 100%);
  border-right: 1px solid var(--gold-rule);
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  padding: 10px 10px;
  scrollbar-width: thin;
  scrollbar-color: var(--gold-dim) transparent;
  position: relative;
}

/* Gold ruled margin line — like a journal ledger */
#zone-b::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(180deg,
    transparent 0%,
    var(--gold-dim) 15%,
    var(--gold) 50%,
    var(--gold-dim) 85%,
    transparent 100%);
  opacity: 0.5;
  z-index: 1;
}

/* Section label — letterpress uppercase */
.ctrl-section-label {
  font-family: 'Libre Franklin', sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(200,150,42,0.5);
  padding: 14px 12px 4px;
  position: relative;
}

.ctrl-section-label::after {
  content: '';
  display: block;
  margin-top: 6px;
  height: 1px;
  background: linear-gradient(90deg,
    rgba(200,150,42,0.35) 0%,
    rgba(200,150,42,0.08) 80%,
    transparent 100%);
}

/* Control button — field guide entry row */
.ctrl-btn {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 10px 12px 10px 14px;
  border-radius: 3px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--cream);
  font-family: 'Libre Franklin', sans-serif;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.18s var(--ease-out),
              border-color 0.18s var(--ease-out),
              transform 0.18s var(--ease-out);
  text-align: left;
  width: 100%;
  margin-bottom: 2px;
  position: relative;
}

/* Accent bar on active/hover — like a journal bookmark */
.ctrl-btn::before {
  content: '';
  position: absolute;
  left: 0; top: 6px; bottom: 6px;
  width: 3px;
  border-radius: 0 2px 2px 0;
  background: var(--btn-accent, var(--gold));
  opacity: 0;
  transition: opacity 0.18s;
}

.ctrl-btn:hover {
  background: var(--gold-wash);
  border-color: var(--gold-rule);
  transform: translateX(2px);
}

.ctrl-btn:hover::before,
.ctrl-btn.active-btn::before { opacity: 1; }

.ctrl-btn.active-btn {
  background: var(--gold-ink);
  border-color: rgba(200,150,42,0.32);
  color: var(--parchment);
}

.ctrl-btn .btn-icon {
  font-size: 16px;
  flex-shrink: 0;
  width: 22px;
  text-align: center;
  margin-top: 1px;
  opacity: 0.8;
}

.ctrl-btn .btn-label {
  flex: 1;
  min-width: 0;
  line-height: 1.35;
  white-space: normal;
  word-break: break-word;
}

.ctrl-btn .btn-label small {
  display: block;
  font-size: 10px;
  font-weight: 400;
  color: rgba(237,224,192,0.45);
  margin-top: 2px;
  line-height: 1.4;
  white-space: normal;
}

/* Button color accents */
.btn-green  { --btn-accent: #52b878; }
.btn-blue   { --btn-accent: #5aaBcc; }
.btn-red    { --btn-accent: #c84a3a; }
.btn-orange { --btn-accent: #c86428; }
.btn-gold   { --btn-accent: var(--gold); }
.btn-teal   { --btn-accent: #4abfaa; }
.btn-dark   { --btn-accent: #8878b0; }

/* --- Zone A: Main Display --- */
#zone-a {
  flex: 1;
  position: relative;
  overflow: hidden;
  background: var(--forest);
}
