/* =========================================================================
 * Vantage - Platform Admin Console
 *
 * All console styles. Loaded after css/vantage.css so cascade order
 * places console rules last. Scoped to #console-view (or the console
 * shell when reached via data-view="console") so nothing here can bleed
 * into the main app, auth view, or demo view.
 *
 * Color scheme (Option A from _brand/BRAND.md):
 *   - Sidebar: #0E0E0E (near-black)
 *   - Content: #F4F3F0 (off-white)
 *   - Cards:   #FFFFFF on light bg
 *   - Accent:  #1A2E26 / #9EFF9E
 *
 * Section comment markers (per CLAUDE.md non-negotiable):
 *   /* === CONSOLE: <section name> === *\/
 * ========================================================================= */


/* === CONSOLE: SHELL + VIEW ROUTING === */

/* View routing - data-view="console" reveals #console-view; everything
   else stays hidden. Mirrors the pattern in vantage.css for auth /
   authed / demo views. */
#app[data-view="console"] #console-view { display: flex; }

#console-view {
  display: none;
  position: fixed;
  inset: 0;
  background: #F4F3F0;
  color: #1A1A1A;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.45;
  overflow: hidden;
}


/* === CONSOLE: SIDEBAR === */

.console-sidebar {
  width: 220px;
  flex: 0 0 220px;
  background: #0E0E0E;
  color: #D0D0D0;
  display: flex;
  flex-direction: column;
  border-right: 0.5px solid #222;
}

.console-sidebar-brand {
  padding: 18px 20px 14px 20px;
  border-bottom: 0.5px solid #222;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.console-sidebar-brand .brand-mark {
  font-family: Georgia, serif;
  font-weight: 400;
  letter-spacing: -0.03em;
  font-size: 20px;
  color: #FAFAF8;
}
.console-sidebar-brand .brand-tag {
  font-family: -apple-system, sans-serif;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #9EFF9E;
}

.console-nav {
  list-style: none;
  margin: 12px 0 0 0;
  padding: 0;
  flex: 1 1 auto;
  overflow-y: auto;
}
.console-nav li {
  margin: 0;
}
.console-nav button {
  width: 100%;
  text-align: left;
  background: transparent;
  color: #B0B8C1;
  border: none;
  padding: 9px 20px;
  font-size: 13px;
  font-family: inherit;
  letter-spacing: 0.01em;
  cursor: pointer;
  border-left: 2px solid transparent;
  transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}
.console-nav button:hover {
  background: #161616;
  color: #FAFAF8;
}
.console-nav button.active {
  background: #1A2E26;
  color: #9EFF9E;
  border-left-color: #4CAF7D;
}

.console-sidebar-footer {
  border-top: 0.5px solid #222;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.console-sidebar-footer .console-back-link {
  font-size: 12px;
  color: #9EFF9E;
  text-decoration: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 6px 4px;
  text-align: left;
}
.console-sidebar-footer .console-back-link:hover {
  text-decoration: underline;
}
.console-sidebar-user {
  font-size: 11px;
  color: #888;
  padding: 4px;
  word-break: break-word;
}
.console-sidebar-user strong {
  color: #D0D0D0;
  font-weight: 500;
  display: block;
}


/* === CONSOLE: MAIN AREA === */

.console-main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}

.console-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 28px;
  border-bottom: 0.5px solid #E0DDD8;
  background: #FFFFFF;
}
.console-topbar h1 {
  margin: 0;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 20px;
  letter-spacing: -0.02em;
}
.console-topbar-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.console-content {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 24px 28px;
}


/* === CONSOLE: ACCESS DENIED === */

.console-access-denied {
  margin: 80px auto;
  max-width: 480px;
  padding: 28px 32px;
  background: #FFFFFF;
  border: 0.5px solid #E0DDD8;
  border-radius: 10px;
  text-align: center;
}
.console-access-denied h2 {
  margin: 0 0 6px 0;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 20px;
}
.console-access-denied p {
  margin: 6px 0 0 0;
  color: #6B7280;
  font-size: 13px;
}


/* === CONSOLE: SHARED CARDS === */

.console-card {
  background: #FFFFFF;
  border: 0.5px solid #E0DDD8;
  border-radius: 10px;
  padding: 18px 20px;
}
.console-card + .console-card {
  margin-top: 16px;
}
.console-card h3 {
  margin: 0 0 12px 0;
  font-family: -apple-system, sans-serif;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6B7280;
}

.console-metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.console-metric {
  background: #FFFFFF;
  border: 0.5px solid #E0DDD8;
  border-radius: 10px;
  padding: 14px 16px;
}
.console-metric .label {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6B7280;
  margin: 0 0 6px 0;
}
.console-metric .value {
  font-family: -apple-system, sans-serif;
  font-weight: 500;
  font-size: 22px;
  color: #1A1A1A;
  margin: 0;
  letter-spacing: -0.01em;
}
.console-metric a.value {
  color: #1A2E26;
  text-decoration: none;
  font-size: 14px;
  display: inline-block;
  padding: 4px 0;
  border-bottom: 1px solid #4CAF7D;
}


/* === CONSOLE: DATE RANGE CONTROLS === */

.console-daterange {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  background: #FFFFFF;
  border: 0.5px solid #E0DDD8;
  border-radius: 10px;
  padding: 10px 14px;
}
.console-daterange label {
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6B7280;
  margin-right: 4px;
}
.console-daterange select,
.console-daterange input[type="date"] {
  font-family: inherit;
  font-size: 13px;
  padding: 5px 8px;
  border: 0.5px solid #E0DDD8;
  border-radius: 6px;
  background: #FAFAF8;
  color: #1A1A1A;
  min-width: 130px;
}
.console-daterange-custom {
  display: flex;
  gap: 6px;
  align-items: center;
}


/* === CONSOLE: CHARTS === */

.console-chart-card {
  background: #FFFFFF;
  border: 0.5px solid #E0DDD8;
  border-radius: 10px;
  padding: 18px 20px;
  margin-bottom: 18px;
}
.console-chart-card h3 {
  margin: 0 0 12px 0;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6B7280;
  font-weight: 500;
}
.console-chart-canvas-wrap {
  position: relative;
  height: 260px;
}


/* === CONSOLE: TABLES === */

.console-table-wrap {
  background: #FFFFFF;
  border: 0.5px solid #E0DDD8;
  border-radius: 10px;
  overflow: hidden;
}
.console-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 10px 14px;
  border-bottom: 0.5px solid #E0DDD8;
  background: #FAFAF8;
}
.console-table-toolbar input[type="search"],
.console-table-toolbar input[type="text"],
.console-table-toolbar select {
  font-family: inherit;
  font-size: 13px;
  padding: 6px 10px;
  border: 0.5px solid #E0DDD8;
  border-radius: 6px;
  background: #FFFFFF;
  min-width: 180px;
}
.console-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.console-table thead th {
  text-align: left;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6B7280;
  padding: 10px 14px;
  border-bottom: 0.5px solid #E0DDD8;
  font-weight: 500;
  background: #FAFAF8;
}
.console-table tbody td {
  padding: 10px 14px;
  border-bottom: 0.5px solid #F0EEEA;
  vertical-align: middle;
  color: #1A1A1A;
}
.console-table tbody tr:last-child td {
  border-bottom: none;
}
.console-table tbody tr:hover {
  background: #FAFAF8;
}
.console-table .num,
.console-table .right {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.console-table .muted {
  color: #6B7280;
}
.console-table-pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  border-top: 0.5px solid #E0DDD8;
  background: #FAFAF8;
  font-size: 12px;
  color: #6B7280;
}
.console-table-pagination button {
  padding: 5px 10px;
  border: 0.5px solid #E0DDD8;
  border-radius: 6px;
  background: #FFFFFF;
  font-size: 12px;
  cursor: pointer;
  color: #1A1A1A;
}
.console-table-pagination button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Filter chips - All / Active / Frozen / Deleted etc. */
.console-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.console-chip {
  padding: 4px 10px;
  font-size: 12px;
  border: 0.5px solid #E0DDD8;
  border-radius: 999px;
  background: #FFFFFF;
  cursor: pointer;
  color: #6B7280;
}
.console-chip.active {
  background: #1A2E26;
  border-color: #1A2E26;
  color: #9EFF9E;
}

/* Status pills inside a row. */
.console-status {
  display: inline-block;
  padding: 2px 8px;
  font-size: 11px;
  border-radius: 999px;
  background: #F0EEEA;
  color: #1A1A1A;
}
.console-status.active   { background: #E5F4EA; color: #2D4A3E; }
.console-status.frozen   { background: #FFF3E0; color: #B36A00; }
.console-status.deleted  { background: #FBE3E3; color: #B43030; }
.console-status.admin    { background: #1A2E26; color: #9EFF9E; }


/* === CONSOLE: BUTTONS === */

.console-btn {
  font-family: inherit;
  font-size: 13px;
  padding: 7px 14px;
  border: 0.5px solid #E0DDD8;
  border-radius: 6px;
  background: #FFFFFF;
  color: #1A1A1A;
  cursor: pointer;
}
.console-btn:hover {
  background: #FAFAF8;
}
.console-btn-primary {
  background: #1A2E26;
  color: #9EFF9E;
  border-color: #1A2E26;
}
.console-btn-primary:hover {
  background: #2D4A3E;
  color: #C8FFD4;
}
.console-btn-danger {
  background: #D94F4F;
  color: #FFFFFF;
  border-color: #D94F4F;
}
.console-btn-danger:hover {
  background: #B43030;
}
.console-btn-ghost {
  background: transparent;
  border-color: transparent;
  color: #6B7280;
}
.console-btn-ghost:hover {
  background: #F0EEEA;
  color: #1A1A1A;
}
.console-btn-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}


/* === CONSOLE: ROW ACTIONS MENU === */

.console-row-actions {
  position: relative;
  display: inline-block;
}
.console-row-actions-btn {
  background: transparent;
  border: none;
  font-size: 16px;
  cursor: pointer;
  color: #6B7280;
  padding: 4px 8px;
  border-radius: 6px;
}
.console-row-actions-btn:hover {
  background: #F0EEEA;
  color: #1A1A1A;
}
.console-row-actions-menu {
  position: absolute;
  right: 0;
  top: 100%;
  background: #FFFFFF;
  border: 0.5px solid #E0DDD8;
  border-radius: 8px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.1);
  min-width: 200px;
  z-index: 50;
  padding: 4px;
  display: none;
}
.console-row-actions-menu.open {
  display: block;
}
.console-row-actions-menu button {
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  padding: 7px 12px;
  font-size: 13px;
  font-family: inherit;
  color: #1A1A1A;
  cursor: pointer;
  border-radius: 4px;
}
.console-row-actions-menu button:hover {
  background: #F0EEEA;
}
.console-row-actions-menu button.danger {
  color: #B43030;
}


/* === CONSOLE: USERS MAP === */

.console-map-overlay {
  position: fixed;
  inset: 0;
  background: rgba(14, 14, 14, 0.55);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 250;
}
.console-map-overlay.open {
  display: flex;
}
.console-map-modal {
  width: 92vw;
  max-width: 1100px;
  height: 80vh;
  background: #FFFFFF;
  border-radius: 10px;
  border: 0.5px solid #E0DDD8;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.console-map-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 0.5px solid #E0DDD8;
  background: #FAFAF8;
  flex: 0 0 auto;
}
.console-map-header h2 {
  margin: 0;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 16px;
}
.console-map-toggle {
  display: inline-flex;
  border: 0.5px solid #E0DDD8;
  border-radius: 999px;
  overflow: hidden;
  background: #FFFFFF;
}
.console-map-toggle button {
  background: transparent;
  border: none;
  padding: 5px 12px;
  font-size: 12px;
  cursor: pointer;
  color: #6B7280;
  font-family: inherit;
}
.console-map-toggle button.active {
  background: #1A2E26;
  color: #9EFF9E;
}
.console-map-close {
  background: transparent;
  border: none;
  font-size: 22px;
  cursor: pointer;
  color: #6B7280;
  padding: 0 6px;
  line-height: 1;
}
.console-map-body {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  display: block;
}
#console-map {
  width: 100%;
  height: 100%;
  display: block;
}


/* === CONSOLE: GENERIC MODAL === */

.console-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(14, 14, 14, 0.55);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 260;
}
.console-modal-overlay.open {
  display: flex;
}
.console-modal {
  width: 92vw;
  max-width: 520px;
  background: #FFFFFF;
  border-radius: 10px;
  border: 0.5px solid #E0DDD8;
  display: flex;
  flex-direction: column;
  max-height: 80vh;
  overflow: hidden;
}
.console-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 0.5px solid #E0DDD8;
  background: #FAFAF8;
  position: sticky;
  top: 0;
}
.console-modal-header h2 {
  margin: 0;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 17px;
}
.console-modal-close {
  background: transparent;
  border: none;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  color: #6B7280;
  padding: 0 6px;
}
.console-modal-body {
  padding: 16px 18px;
  overflow-y: auto;
  flex: 1 1 0;
  min-height: 0;
}
.console-modal-footer {
  padding: 12px 18px;
  border-top: 0.5px solid #E0DDD8;
  background: #FAFAF8;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.console-form-row {
  margin-bottom: 12px;
}
.console-form-row label {
  display: block;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6B7280;
  margin-bottom: 4px;
}
.console-form-row input[type="text"],
.console-form-row input[type="email"],
.console-form-row input[type="search"],
.console-form-row select,
.console-form-row textarea {
  width: 100%;
  font-family: inherit;
  font-size: 13px;
  padding: 8px 10px;
  border: 0.5px solid #E0DDD8;
  border-radius: 6px;
  background: #FAFAF8;
  color: #1A1A1A;
  box-sizing: border-box;
}
.console-form-row textarea {
  min-height: 160px;
  resize: vertical;
}
.console-form-row-inline {
  display: flex;
  align-items: center;
  gap: 8px;
}
.console-form-help {
  font-size: 11px;
  color: #6B7280;
  margin: 4px 0 0 0;
}


/* === CONSOLE: STACK GRID === */

.console-stack-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.console-stack-card {
  background: #FFFFFF;
  border: 0.5px solid #E0DDD8;
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.console-stack-card-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.console-stack-card h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
}
.console-stack-status {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #B0B8C1;
}
.console-stack-status.up      { background: #4CAF7D; }
.console-stack-status.down    { background: #D94F4F; }
.console-stack-status.unknown { background: #B0B8C1; }
.console-stack-desc {
  font-size: 12px;
  color: #6B7280;
  margin: 0;
}
.console-stack-card a.console-btn {
  align-self: flex-start;
  margin-top: 6px;
  text-decoration: none;
  display: inline-block;
}


/* === CONSOLE: COMMS COMPOSE === */

.console-comms-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
}
.console-comms-preview {
  background: #FAFAF8;
  border: 0.5px solid #E0DDD8;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 12px;
  color: #6B7280;
}
.console-comms-preview strong {
  color: #1A1A1A;
  font-weight: 500;
}

/* v1.14.3 recipient picker - name+email dropdown that stores UUID in a
   hidden field so the operator never types or sees the raw UUID. */
.console-recipient-picker {
  position: relative;
  width: 100%;
}
.console-recipient-picker input[type="search"] {
  width: 100%;
}
.console-recipient-results {
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  right: 0;
  z-index: 50;
  max-height: 240px;
  overflow-y: auto;
  background: #FFFFFF;
  border: 0.5px solid #E0DDD8;
  border-radius: 6px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}
.console-recipient-result {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 8px 10px;
  background: transparent;
  border: none;
  border-bottom: 0.5px solid #F0EEEA;
  cursor: pointer;
  text-align: left;
}
.console-recipient-result:last-child {
  border-bottom: none;
}
.console-recipient-result:hover,
.console-recipient-result:focus {
  background: #F4F3F0;
  outline: none;
}
.console-recipient-name {
  font-size: 13px;
  color: #1A1A1A;
}
.console-recipient-sub {
  font-size: 11px;
  color: #6B7280;
  margin-top: 2px;
}
.console-recipient-empty {
  padding: 8px 10px;
  font-size: 12px;
  color: #6B7280;
}
.console-recipient-chosen {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px 4px 10px;
  background: #E5F4EA;
  color: #2D4A3E;
  border-radius: 999px;
  font-size: 12px;
  max-width: 100%;
}
.console-recipient-chosen-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 320px;
}
.console-recipient-clear {
  background: transparent;
  border: none;
  cursor: pointer;
  color: #2D4A3E;
  font-size: 14px;
  line-height: 1;
  padding: 0 2px;
}


/* === CONSOLE: SETTINGS === */

.console-settings-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 0.5px solid #F0EEEA;
  gap: 16px;
}
.console-settings-row:last-child {
  border-bottom: none;
}
.console-settings-row-info {
  flex: 1 1 0;
  min-width: 0;
}
.console-settings-row-info h4 {
  margin: 0 0 2px 0;
  font-size: 14px;
  font-weight: 500;
}
.console-settings-row-info p {
  margin: 0;
  font-size: 12px;
  color: #6B7280;
}
/* v1.14.3 - extra note line under a settings row value. Slightly muted,
   slightly smaller, with a small top margin so it visually trails the
   main value text without crowding. */
.console-settings-row-info p.console-settings-note {
  margin-top: 4px;
  font-size: 11px;
  color: #888888;
  font-style: italic;
}
.console-toggle {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 22px;
  flex-shrink: 0;
}
.console-toggle input { opacity: 0; width: 0; height: 0; }
.console-toggle-track {
  position: absolute;
  inset: 0;
  background: #B0B8C1;
  border-radius: 999px;
  transition: background 120ms ease;
  cursor: pointer;
}
.console-toggle-track::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  background: #FFFFFF;
  border-radius: 50%;
  transition: transform 120ms ease;
}
.console-toggle input:checked + .console-toggle-track {
  background: #1A2E26;
}
.console-toggle input:checked + .console-toggle-track::after {
  transform: translateX(16px);
}


/* === CONSOLE: TAB-NAV LINK (in main app) === */

/* v1.14.2: Surfaced as a fourth tab in #tab-nav alongside Portfolio /
   Companies / Valuation Tool. Visible only to platform_admin users
   (js/console.js inserts the element after a role check). Visually
   distinct from the regular .tab-btn rules:
     - Left separator (.tab-btn neighbours get a divider)
     - Leading gear glyph (operator-only semantic)
     - Forest-green accent text + border so it reads as "admin"
   The .tab-btn class is intentionally kept so its hover/focus + the
   tab-nav flex alignment still apply; we override colour + border to
   distinguish the button. */
.top-bar-console-link.tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 10px;
  padding-left: 16px;
  border-left: 1px solid rgba(0, 0, 0, 0.10);
  color: #1A2E26;
  font-weight: 500;
  letter-spacing: 0.01em;
  /* Cancel the .tab-btn default underline / active-state behaviour so
     this button never tries to mimic the active tab indicator — it's
     a route-switch, not a tab toggle. */
  border-bottom: none;
  position: relative;
}
.top-bar-console-link.tab-btn:hover {
  color: #4CAF7D;
}
.top-bar-console-link-glyph {
  font-size: 13px;
  line-height: 1;
  color: #4CAF7D;
}
.top-bar-console-link-text {
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}


/* v1.14.2: Defensive guard — keep the .feedback-trigger and any other
   `position: fixed` floater BELOW the .top-bar stacking context so a
   future CSS change can't accidentally float a badge into the wordmark
   region. .top-bar already sets z-index: 200; this just makes the
   ordering explicit so no future floater overlaps it. (Doesn't affect
   the feedback button itself — it sits at the bottom-left as designed
   and is well below the top-bar in viewport coordinates.) */
#authed-view .top-bar {
  isolation: isolate;
}


/* === CONSOLE: MAINTENANCE BANNER === */

/* Surfaced in the main app for all users when platform_settings.
   maintenance_mode = 'true'. Non-dismissible for non-platform_admin;
   platform_admin sees a smaller indicator with .compact. */
.maintenance-banner {
  display: none;
  background: #E8A020;
  color: #1A1A1A;
  text-align: center;
  font-size: 13px;
  padding: 8px 16px;
  font-weight: 500;
}
.maintenance-banner.active {
  display: block;
}
.maintenance-banner.compact {
  background: #1A2E26;
  color: #9EFF9E;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 16px;
}


/* === CONSOLE: EMPTY STATE === */

.console-empty {
  text-align: center;
  padding: 40px 20px;
  color: #6B7280;
  font-size: 13px;
}
.console-empty h3 {
  margin: 0 0 6px 0;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 18px;
  color: #1A1A1A;
  text-transform: none;
  letter-spacing: 0;
}


/* === CONSOLE: SECTION HEADER === */

.console-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.console-section-header h2 {
  margin: 0;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 22px;
  letter-spacing: -0.02em;
}
.console-section-header .console-section-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}


/* === CONSOLE: LEAFLET OVERRIDES === */

/* Leaflet ships its own CSS via cdnjs. We override only what's needed
   for the cluster count badge style so it matches the rest of the
   console rather than the default blue. */
.console-cluster {
  background: #1A2E26;
  color: #9EFF9E;
  border-radius: 999px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  font-size: 12px;
  border: 2px solid #C8FFD4;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}
