/* ============================================================
   Hotel Map Admin Panel — Apple Design System
   ============================================================ */

:root {
  --color-bg: #f5f5f7;
  --color-surface: #ffffff;
  --color-text: #1d1d1f;
  --color-text-secondary: #86868b;
  --color-text-tertiary: #aeaeb2;
  --color-accent: #0071e3;
  --color-separator: #d2d2d7;
  --color-separator-subtle: #e5e5ea;
  --color-danger: #ff3b30;
  --font-display: 'Inter Tight', 'Noto Sans TC', sans-serif;
  --font-body: 'Inter', 'Noto Sans TC', sans-serif;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-pill: 980px;
  --nav-height: 52px;
}

.hidden { display: none !important; }

/* --- Admin App Wrapper — fix height chain for map --- */
.admin-app {
  height: 100%;
}

/* --- Login Screen --- */
.login-screen {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  background: var(--color-bg);
}

.login-card {
  background: var(--color-surface);
  border-radius: 20px;
  padding: 48px 40px;
  width: 360px;
  text-align: center;
  box-shadow: 0 2px 16px rgba(0,0,0,0.06);
}

.login-icon { font-size: 40px; margin-bottom: 16px; }
.login-title { font-family: var(--font-display); font-size: 22px; font-weight: 700; margin-bottom: 4px; }
.login-subtitle { font-size: 13px; color: var(--color-text-secondary); margin-bottom: 24px; }

.login-input {
  width: 100%;
  height: 44px;
  padding: 0 16px;
  font-size: 15px;
  border: 1px solid var(--color-separator);
  border-radius: var(--radius-md);
  outline: none;
  margin-bottom: 12px;
  text-align: center;
  letter-spacing: 0.3em;
}
.login-input:focus { border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(0,113,227,0.15); }

.login-btn {
  width: 100%;
  height: 44px;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  background: var(--color-accent);
  border-radius: var(--radius-md);
  transition: opacity 0.15s;
}
.login-btn:hover { opacity: 0.9; }

.login-error { font-size: 12px; color: var(--color-danger); margin-top: 8px; }

/* --- Admin Nav Bar --- */
.admin-nav {
  position: relative;
  z-index: 300;
  height: var(--nav-height);
  background: rgba(255,255,255,0.72);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid var(--color-separator-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  flex-shrink: 0;
}

.admin-nav-left { display: flex; align-items: center; gap: 10px; }
.admin-nav-title { font-family: var(--font-display); font-size: 16px; font-weight: 700; }
.admin-nav-badge { font-size: 10px; font-weight: 500; background: var(--color-bg); padding: 3px 8px; border-radius: var(--radius-pill); color: var(--color-text-secondary); }
.admin-nav-right { display: flex; align-items: center; gap: 8px; }

/* ── Unified Nav Pill Item ── */
.admin-nav-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 32px;
  padding: 0 12px;
  font-size: 12px;
  font-weight: 600;
  font-family: var(--font-body);
  color: var(--color-text);
  background: rgba(0,0,0,0.04);
  border: 1px solid var(--color-separator-subtle);
  border-radius: var(--radius-pill);
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.15s;
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  user-select: none;
  line-height: 1;
}
.admin-nav-item:hover {
  background: rgba(0,0,0,0.08);
  border-color: var(--color-separator);
  color: var(--color-text);
}

/* ── Color Variants ── */
.admin-nav-item.accent-green {
  background: rgba(52,199,89,0.12);
  border-color: rgba(52,199,89,0.25);
  color: #1a7a36;
}
.admin-nav-item.accent-green:hover {
  background: rgba(52,199,89,0.22);
  border-color: rgba(52,199,89,0.4);
}

.admin-nav-item.accent-blue {
  background: rgba(0,113,227,0.08);
  border-color: rgba(0,113,227,0.2);
  color: var(--color-accent);
}
.admin-nav-item.accent-blue:hover {
  background: rgba(0,113,227,0.16);
  border-color: rgba(0,113,227,0.35);
}

.admin-nav-item.subtle {
  background: transparent;
  border-color: transparent;
  color: var(--color-text-secondary);
}
.admin-nav-item.subtle:hover {
  background: rgba(0,0,0,0.04);
  border-color: var(--color-separator-subtle);
  color: var(--color-text);
}

/* Stats Pill in Admin Nav */
.admin-stats-pill {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text);
  padding: 5px 14px;
  border-radius: var(--radius-pill);
  background: rgba(0,0,0,0.04);
  border: 1px solid var(--color-separator-subtle);
  cursor: pointer;
  transition: all 0.15s;
  -webkit-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}
.admin-stats-pill:hover {
  background: rgba(0,0,0,0.08);
  border-color: var(--color-separator);
}
.admin-stats-icon { font-size: 13px; line-height: 1; }
.admin-stats-today { color: var(--color-accent); font-weight: 700; }
.admin-stats-divider { color: var(--color-text-tertiary); font-weight: 400; }
.admin-stats-total { color: var(--color-text-secondary); }
.admin-stats-pill.loading { opacity: 0.5; pointer-events: none; }

/* Stats Detail Panel (dropdown/popover) */
.admin-stats-detail {
  display: none;
  position: absolute;
  top: calc(var(--nav-height) - 4px);
  right: 180px;
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: 0 4px 24px rgba(0,0,0,0.12);
  border: 1px solid var(--color-separator-subtle);
  padding: 20px;
  min-width: 260px;
  z-index: 1000;
}
.admin-stats-detail.open { display: block; }
.admin-stats-detail h4 {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 14px 0;
  color: var(--color-text);
}
.admin-stats-row {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 13px;
  border-bottom: 1px solid var(--color-separator-subtle);
}
.admin-stats-row:last-child { border-bottom: none; }
.admin-stats-row-label { color: var(--color-text-secondary); }
.admin-stats-row-value { font-weight: 600; color: var(--color-text); }
.admin-stats-row-value.highlight { color: var(--color-accent); }
.admin-stats-updated {
  font-size: 10px;
  color: var(--color-text-tertiary);
  margin-top: 12px;
}

/* --- Admin Sidebar Overrides --- */
/* Make room for the note editor at the bottom */
.admin-app .sidebar {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.admin-app .hotel-list {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

/* --- Edit Panel --- */
.edit-panel {
  flex-shrink: 0;
  border-top: 1px solid var(--color-separator);
  background: var(--color-surface);
  transition: max-height 0.3s ease;
  max-height: 520px;
  overflow-y: auto;
}

.edit-panel-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 20px;
  text-align: center;
  color: var(--color-text-secondary);
  gap: 6px;
}
.edit-panel-empty-icon { font-size: 32px; margin-bottom: 4px; }
.edit-panel-empty-title { font-size: 14px; font-weight: 600; color: var(--color-text); }
.edit-panel-empty-desc { font-size: 12px; }

.edit-panel-form { padding: 0; }

/* Form header */
.edit-form-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--color-separator-subtle);
}
.edit-form-building-name {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  margin: 0;
  flex: 1;
  line-height: 1.3;
  word-break: break-word;
}
.edit-form-building-id {
  font-size: 10px;
  font-weight: 500;
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  background: var(--color-bg);
  color: var(--color-text-secondary);
  white-space: nowrap;
  flex-shrink: 0;
}

/* Form body */
.edit-form-body {
  padding: 0 16px;
  max-height: 360px;
  overflow-y: auto;
}

.edit-form-section {
  padding: 12px 0;
  border-bottom: 1px solid var(--color-separator-subtle);
}
.edit-form-section:last-child { border-bottom: none; }

.edit-form-section-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.edit-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 10px;
}
.edit-form-grid > .full-width { grid-column: 1 / -1; }

.edit-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.edit-label {
  font-size: 11px;
  font-weight: 500;
  color: var(--color-text-tertiary);
}
.edit-input {
  width: 100%;
  height: 34px;
  padding: 0 10px;
  font-size: 13px;
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  outline: none;
  transition: all var(--transition-fast);
}
.edit-input:focus {
  border-color: var(--color-accent);
  background: var(--color-surface);
  box-shadow: 0 0 0 3px rgba(0,113,227,0.1);
}
.edit-input::placeholder { color: var(--color-text-tertiary); }
.edit-input:read-only { color: var(--color-text-secondary); background: #f5f5f7; }

.edit-input-mono {
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
  font-size: 12px;
}

.edit-select {
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2386868b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 28px;
}

.edit-textarea {
  height: auto;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.5;
  resize: vertical;
  min-height: 48px;
}

/* Color dots in edit form */
.edit-colors {
  display: flex;
  gap: 8px;
  padding-top: 6px;
}

.color-dot {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
}
.color-dot:hover { transform: scale(1.15); }
.color-dot.active { border-color: var(--color-text); box-shadow: 0 0 0 3px rgba(0,0,0,0.1); }

/* Edit badge (for KV overrides) */
.edit-badge {
  font-size: 10px;
  font-weight: 600;
  color: #0071e3;
  background: rgba(0,113,227,0.1);
  padding: 2px 6px;
  border-radius: 4px;
  margin-left: 6px;
  vertical-align: middle;
}
.edit-badge.hidden { display: none; }

/* Copy coords button */
.edit-form-copy-coords {
  font-size: 11px;
  font-weight: 500;
  color: var(--color-accent);
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  transition: all var(--transition-fast);
}
.edit-form-copy-coords:hover {
  background: rgba(0,113,227,0.08);
}

/* Override info */
.edit-override-info {
  font-size: 11px;
  color: var(--color-text-tertiary);
  background: rgba(230,168,23,0.08);
  border-left: 3px solid #e6a817;
  padding: 6px 10px;
  border-radius: 0 6px 6px 0;
}

/* Form footer */
.edit-form-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid var(--color-separator-subtle);
  position: sticky;
  bottom: 0;
  background: var(--color-surface);
  z-index: 2;
}

.edit-form-btn {
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 600;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.15s;
  border: none;
  font-family: var(--font-body);
}
.edit-form-btn.primary { color: #fff; background: var(--color-accent); }
.edit-form-btn.primary:hover { opacity: 0.9; }
.edit-form-btn.danger { color: var(--color-danger); background: none; }
.edit-form-btn.danger:hover { background: rgba(255,59,48,0.06); }
.edit-form-btn.secondary { color: var(--color-text-secondary); background: var(--color-bg); }
.edit-form-btn.secondary:hover { background: var(--color-separator-subtle); }

/* Save status toast */
.save-status {
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: 500;
  background: #34c759;
  color: #fff;
  position: absolute;
  bottom: 8px;
  right: 16px;
  transition: opacity 0.3s;
  pointer-events: none;
}

/* --- Export Button --- */
.btn-export {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 500;
  color: var(--color-accent);
  padding: 4px 12px;
  border-radius: var(--radius-pill);
  transition: all var(--transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.btn-export:hover {
  background: rgba(0, 113, 227, 0.08);
}
.btn-export svg {
  flex-shrink: 0;
}

/* --- Edit Panel Toggle (always visible) --- */
.edit-panel-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 9px 14px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text-secondary);
  background: none;
  border: none;
  border-bottom: 1px solid var(--color-separator-subtle);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  font-family: var(--font-body);
}
.edit-panel-toggle:hover { background: var(--color-bg); }
.edit-panel-toggle svg {
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

/* Edit panel collapsed (desktop + mobile) */
.edit-panel.collapsed {
  max-height: 41px;
  overflow: hidden;
}
.edit-panel.collapsed .edit-panel-empty,
.edit-panel.collapsed .edit-panel-form {
  display: none;
}
.edit-panel.collapsed .edit-panel-toggle svg {
  transform: rotate(180deg);
}

/* --- Responsive --- */
@media (max-width: 768px) {
  .admin-nav { padding: 0 14px; }
  .admin-nav-title { font-size: 14px; }
  .admin-nav-right { gap: 6px; }
  .admin-nav-item { font-size: 11px; padding: 0 10px; height: 28px; }

  .edit-panel {
    max-height: 50vh;
    padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px));
  }
  .edit-form-body { max-height: 30vh; }
  .edit-form-header { padding: 10px 12px 8px; }
  .edit-form-body { padding: 0 12px; }
  .edit-form-footer { padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)); }

  .edit-form-building-name { font-size: 14px; }

  .login-card { width: 300px; padding: 36px 28px; }

  /* Hide edit panel when sidebar collapsed */
  .admin-app .sidebar.collapsed .edit-panel {
    display: none;
  }
}

/* Current-use filter state: selected and unselected must be visually distinct. */
.admin-app .attr-check-pill:not(.active) {
  color: #7b858e;
  background: #fff;
  border-color: #cbd3da;
  opacity: .78;
}
.admin-app .attr-check-pill.active {
  color: #fff;
  font-weight: 700;
  box-shadow: inset 0 -3px 0 var(--series-gold-400), 0 3px 8px rgba(22,43,84,.16);
}
.admin-app .attr-check-pill.active[data-attr="hotel"] { color: #fff !important; background: var(--series-navy-800); border-color: var(--series-navy-800); }
.admin-app .attr-check-pill.active[data-attr="guesthouse"] { color: #fff !important; background: #b56a00; border-color: #b56a00; }
.admin-app .attr-check-pill.active[data-attr="serviced"] { color: #fff !important; background: #a23f55; border-color: #a23f55; }
.admin-app .attr-check-pill.active[data-attr="student"] { color: #fff !important; background: #397254; border-color: #397254; }
.admin-app .attr-check-pill.active .attr-pill-dot { background: #fff; }
.admin-app .attr-check-pill:not(.active) .attr-pill-dot { opacity: .45; }

/* --- HADLA Sync Progress --- */
.hadla-sync-progress {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-separator-subtle);
  padding: 10px 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--font-body);
  font-size: 13px;
}
.hadla-sync-bar {
  flex: 0 0 200px;
  height: 6px;
  background: var(--color-separator-subtle);
  border-radius: 3px;
  overflow: hidden;
}
.hadla-sync-fill {
  height: 100%;
  width: 0%;
  background: var(--color-accent);
  border-radius: 3px;
  transition: width 0.3s ease;
}
.hadla-sync-text {
  color: var(--color-text-secondary);
  white-space: nowrap;
}
.hadla-sync-stats {
  color: var(--color-text);
  font-weight: 500;
  margin-left: auto;
}
.hadla-sync-progress.success .hadla-sync-fill {
  background: #34c759;
}
.hadla-sync-progress.error .hadla-sync-fill {
  background: var(--color-danger);
}

/* --- CSV Import Modal --- */
.csv-import-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.4);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.csv-import-card {
  background: var(--color-surface);
  border-radius: 20px;
  padding: 28px;
  max-width: 480px;
  width: 90vw;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}
.csv-import-card h3 {
  margin: 0 0 8px;
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 600;
}
.csv-import-desc {
  margin: 0 0 20px;
  font-size: 14px;
  color: var(--color-text-secondary);
  line-height: 1.5;
}
.csv-import-modes {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
}
.csv-import-radio {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1.5px solid var(--color-separator);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: border-color 0.15s;
}
.csv-import-radio:hover {
  border-color: var(--color-accent);
}
.csv-import-radio input[type="radio"] {
  margin-top: 2px;
  accent-color: var(--color-accent);
}
.csv-import-radio-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.csv-import-radio-label strong {
  font-size: 14px;
  font-weight: 600;
}
.csv-import-radio-label small {
  font-size: 12px;
  color: var(--color-text-secondary);
  line-height: 1.4;
}
.csv-import-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.csv-import-actions button {
  padding: 8px 20px;
  border-radius: var(--radius-pill);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  border: none;
  transition: opacity 0.15s;
}
.csv-import-actions button:hover {
  opacity: 0.85;
}
.csv-import-actions .btn-cancel {
  background: var(--color-separator-subtle);
  color: var(--color-text);
}
.csv-import-actions .btn-upload {
  background: var(--color-accent);
  color: #fff;
}
.csv-import-result {
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  line-height: 1.6;
}
.csv-import-result.success {
  background: #e8f8ed;
  color: #1a7a36;
}
.csv-import-result.error {
  background: #ffeaea;
  color: #c0392b;
}

/* ============================================================
   Project 2 visual system — shared blue / gold / black / white
   ============================================================ */
:root {
  --color-bg: #eef2f5;
  --color-surface: #fffefb;
  --color-text: #17202a;
  --color-text-secondary: #5e6b77;
  --color-text-tertiary: #89949f;
  --color-accent: #164f86;
  --color-accent-hover: #103b66;
  --color-gold: #c49a4a;
  --color-gold-soft: #f6eddc;
  --color-blue-soft: #e8f1f9;
  --color-separator: #cbd5dd;
  --color-separator-subtle: #e1e7eb;
  --color-danger: #a83838;
  --color-shadow: rgba(26, 43, 57, .11);
  --color-shadow-strong: rgba(26, 43, 57, .19);
  --sidebar-width: 432px;
  --nav-height: 64px;
  --transition-fast: .18s cubic-bezier(.2,.75,.25,1);
  --transition-smooth: .42s cubic-bezier(.2,.75,.25,1);
}

html, body { background: #eef2f5; color: var(--color-text); }
::selection { color: #fff; background: var(--color-accent); }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(196,154,74,.58);
  outline-offset: 2px;
}
button:active:not(:disabled) { transform: translateY(1px); }

/* Login: make the access point feel like the same product. */
.login-screen {
  position: relative;
  overflow: hidden;
  background: #eef2f5;
}
.login-screen::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: var(--color-gold);
}
.login-card {
  position: relative;
  width: 392px;
  padding: 40px 40px 36px;
  background: var(--color-surface);
  border: 1px solid #d7e0e7;
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(26,43,57,.12), 0 2px 4px rgba(26,43,57,.05);
}
.login-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 32px;
  right: 32px;
  height: 3px;
  background: var(--color-accent);
  border-radius: 0 0 4px 4px;
}
.login-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  margin: 0 auto 20px;
  color: var(--color-accent);
  background: var(--color-gold-soft);
  border: 1px solid #e1c989;
  border-radius: 12px;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .08em;
}
.login-title { color: var(--color-text); font-size: 22px; letter-spacing: 0; }
.login-subtitle { color: var(--color-text-secondary); margin-bottom: 24px; }
.login-input {
  height: 46px;
  background: #f4f7fa;
  border: 1px solid #cbd5dd;
  border-radius: 8px;
  color: var(--color-text);
  letter-spacing: .22em;
}
.login-input:focus { border-color: var(--color-accent); background: #fff; box-shadow: 0 0 0 3px rgba(22,79,134,.12); }
.login-btn {
  height: 46px;
  background: var(--color-accent);
  border: 1px solid var(--color-accent-hover);
  border-bottom: 3px solid var(--color-gold);
  border-radius: 8px;
  box-shadow: 0 5px 12px rgba(22,79,134,.18);
  transition: transform var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}
.login-btn:hover { opacity: 1; background: var(--color-accent-hover); box-shadow: 0 8px 16px rgba(22,79,134,.22); transform: translateY(-1px); }

/* Admin navigation and command hierarchy. */
.admin-nav {
  position: relative;
  height: var(--nav-height);
  padding: 0 24px;
  background: rgba(255,254,251,.96);
  border-bottom: 1px solid #d2dce3;
  box-shadow: 0 4px 18px rgba(26,43,57,.06);
}
.admin-nav::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--color-gold);
}
.admin-nav-left { gap: 12px; min-width: 0; }
.admin-nav-title {
  display: flex;
  align-items: baseline;
  gap: 12px;
  color: var(--color-text);
  font-size: 17px;
  letter-spacing: 0;
  white-space: nowrap;
}
.admin-nav-title span { color: var(--color-accent) !important; letter-spacing: .045em; }
.admin-nav-title b { font-weight: 700; }
.admin-nav-badge {
  color: var(--color-accent);
  background: var(--color-blue-soft);
  border: 1px solid #b6cadc;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.admin-nav-right { gap: 8px; }
.admin-nav-item {
  min-height: 34px;
  padding: 0 12px;
  color: #2a3b4b;
  background: #f8fafb;
  border: 1px solid #cbd6de;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(255,255,255,.9);
  transition: transform var(--transition-fast), color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.admin-nav-item:hover { color: var(--color-accent); background: #fff; border-color: #9db1c1; box-shadow: 0 4px 10px rgba(26,43,57,.08); transform: translateY(-1px); }
.admin-nav-item.accent-green { color: #5c471b; background: var(--color-gold-soft); border-color: #e0c785; }
.admin-nav-item.accent-green:hover { color: #3c2e12; background: #f9f1df; border-color: #c49a4a; }
.admin-nav-item.accent-blue { color: var(--color-accent); background: var(--color-blue-soft); border-color: #b5c9db; }
.admin-nav-item.accent-blue:hover { color: #fff; background: var(--color-accent); border-color: var(--color-accent); }
.admin-nav-item.subtle { color: var(--color-text-secondary); background: transparent; border-color: transparent; box-shadow: none; }
.admin-nav-item.subtle:hover { color: var(--color-danger); background: #fbefef; border-color: #e3bcbc; }
.admin-stats-pill {
  min-height: 34px;
  padding: 5px 12px;
  color: var(--color-text);
  background: #fff;
  border: 1px solid #d0dbe3;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(255,255,255,.9);
  transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.admin-stats-pill:hover { border-color: #9db1c1; box-shadow: 0 4px 10px rgba(26,43,57,.08); transform: translateY(-1px); }
.admin-stats-icon { color: var(--color-gold); font-size: 16px; }
.admin-stats-today { color: var(--color-accent); }
.admin-stats-detail { top: calc(var(--nav-height) - 4px); right: 180px; background: #fffefb; border-color: #cbd6de; box-shadow: 0 14px 30px rgba(26,43,57,.16); }

/* Shared map / data panel treatment. */
.admin-app .main-container { background: #dce4e9; }
.admin-app .sidebar { background: var(--color-surface); border-right: 1px solid #ccd7df; box-shadow: 10px 0 28px rgba(26,43,57,.08); }
.admin-app .search-container { padding: 18px 20px 10px; }
.admin-app .search-input { height: 44px; background: #f4f7fa; border: 1px solid #d7e0e7; box-shadow: inset 0 1px 0 rgba(255,255,255,.9); }
.admin-app .search-input:focus { background: #fff; border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(22,79,134,.12); }
.admin-app .filters-container { padding: 0 20px 13px; }
.admin-app .usage-filter { padding: 12px 13px 11px; background: #f7f9fa; border: 1px solid #dce4e9; border-radius: 12px; }
.admin-app .usage-filter-label { color: #2a3b4b; letter-spacing: .045em; }
.admin-app .usage-filter-row-label { color: #7a8792; }
.admin-app .usage-pill, .admin-app .attr-check-pill { min-height: 29px; padding: 4px 10px; color: #667482; background: #fff; border-color: #cbd6de; }
.admin-app .usage-pill.active { color: #fff; background: #202d3a; border-color: #202d3a; }
.admin-app .usage-pill:hover { color: var(--color-accent); border-color: #90a5b7; }
.admin-app .attr-check-pill.active[data-attr="hotel"] { color: var(--color-accent); border-color: #8eacca; background: var(--color-blue-soft); }
.admin-app .attr-check-pill.active[data-attr="guesthouse"] { color: #8d6b24; border-color: #dbc17f; background: var(--color-gold-soft); }
.admin-app .attr-check-pill.active[data-attr="serviced"] { color: #2d4765; border-color: #a6b7c9; background: #edf3f8; }
.admin-app .attr-check-pill.active[data-attr="student"] { color: #5e6470; border-color: #bfc2c8; background: #f1f2f4; }
.admin-app .results-summary { padding: 13px 20px; background: #fbfcfc; border-top: 1px solid #e0e6ea; border-bottom: 1px solid #d6dfe5; }
.admin-app .results-count { color: #344454; font-size: 12px; }
.admin-app .btn-export { color: var(--color-accent); min-height: 30px; padding: 4px 10px; border: 1px solid #b7c9d8; border-radius: 8px; background: var(--color-blue-soft) !important; transition: transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); }
.admin-app .btn-export:hover { color: #fff !important; background: var(--color-accent) !important; border-color: var(--color-accent) !important; transform: translateY(-1px); }
.admin-app .btn-reset { color: var(--color-accent); border: 1px solid #b7c9d8; border-radius: 8px; padding: 5px 10px; }
.admin-app .btn-reset:hover { color: #fff; background: var(--color-accent); }
.admin-app .hotel-list { background: #f1f4f6; padding: 7px 10px 22px; }
.admin-app .hotel-card { margin: 5px 0; padding: 14px 13px 13px; background: rgba(255,254,251,.95); border: 1px solid #dbe3e8; border-radius: 10px; box-shadow: 0 1px 0 rgba(255,255,255,.9); transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast); }
.admin-app .hotel-card:hover { background: #fff; border-color: #aebfcd; box-shadow: 0 7px 16px rgba(26,43,57,.09); transform: translateY(-1px); }
.admin-app .hotel-card.active { padding-left: 13px; background: #f4f8fb; border-color: rgba(22,79,134,.55); box-shadow: 0 6px 16px rgba(22,79,134,.11); }
.admin-app .hotel-card.active::before { content: ""; position: absolute; top: 9px; bottom: 9px; left: 0; width: 3px; border-radius: 0 3px 3px 0; background: var(--color-gold); }
.admin-app .hotel-type-badge.hotel { color: var(--color-accent); background: var(--color-blue-soft); }
.admin-app .hotel-type-badge.guesthouse { color: #8d6b24; background: var(--color-gold-soft); }
.admin-app .hotel-type-badge.serviced { color: #2d4765; background: #edf3f8; }
.admin-app .hotel-type-badge.student { color: #5e6470; background: #f1f2f4; }
.admin-app .hotel-room-count { color: var(--color-accent); }
.admin-app .hotel-district-tag { background: #e7edf1; color: #61717d; }
.admin-app .map-container { background: #cbd6dc; }
.admin-app .leaflet-control-zoom a { color: #314556 !important; background: rgba(255,254,251,.94) !important; border-color: #cbd6de !important; }
.admin-app .leaflet-control-zoom a:hover { color: var(--color-accent) !important; background: #fff !important; }
.admin-app .layer-switch { right: 18px; bottom: 18px; padding: 4px; gap: 3px; background: rgba(23,32,42,.92); border: 1px solid rgba(255,255,255,.18); border-radius: 10px; box-shadow: 0 10px 24px rgba(26,43,57,.22); }
.admin-app .layer-btn { padding: 8px 11px; color: #c5d0d8; border-radius: 7px; }
.admin-app .layer-btn:hover { color: #fff; background: rgba(255,255,255,.11); }
.admin-app .layer-btn.active { color: #fff; background: var(--color-accent); }
.admin-app .sidebar-toggle-btn { background: #fffefb; border-color: #cbd6de; color: #5d6b76; box-shadow: 0 5px 16px rgba(26,43,57,.16); }
.admin-app .sidebar-toggle-btn:hover { color: var(--color-accent); border-color: #9db1c1; background: #fff; }

/* Editor: blue for action, gold for the current/important state. */
.edit-panel { background: #fffefb; border-top: 2px solid var(--color-gold); box-shadow: 0 -4px 14px rgba(26,43,57,.04); }
.edit-panel-toggle { color: var(--color-accent); background: #f7f3ea; border-bottom-color: #e6d7b5; letter-spacing: .02em; transition: background var(--transition-fast), color var(--transition-fast); }
.edit-panel-toggle:hover { color: #0f3b65; background: var(--color-gold-soft); }
.edit-panel-empty { padding: 24px 20px; }
.edit-panel-empty-icon { width: 44px; height: 44px; display: grid; place-items: center; margin-bottom: 8px; color: #fff; background: var(--color-accent); border-radius: 10px; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.edit-panel-empty-title { color: var(--color-text); }
.edit-form-header { padding: 14px 16px 10px; background: #f7f9fa; border-bottom-color: #dfe6eb; }
.edit-form-building-name { color: var(--color-text); }
.edit-form-building-id { color: var(--color-accent); background: var(--color-blue-soft); border: 1px solid #b6cadc; }
.edit-form-section { padding: 16px 0; border-bottom-color: #e3e9ed; }
.edit-form-section-title { color: var(--color-accent); font-size: 11px; letter-spacing: .08em; }
.edit-label { color: #71808d; font-size: 10px; letter-spacing: .025em; }
.edit-input { height: 36px; color: var(--color-text); background: #f4f7fa; border: 1px solid #d6e0e7; border-radius: 8px; transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast); }
.edit-input:focus { background: #fff; border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(22,79,134,.12); }
.edit-input:read-only { color: #647482; background: #edf1f4; }
.edit-badge { color: #806222; background: var(--color-gold-soft); border: 1px solid #e1c989; }
.edit-form-copy-coords { color: var(--color-accent); padding: 4px 8px; border: 1px solid #b7c9d8; border-radius: 8px; background: var(--color-blue-soft); transition: transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast); }
.edit-form-copy-coords:hover { color: #fff; background: var(--color-accent); transform: translateY(-1px); }
.license-row { background: #f4f7fa; border-color: #d6e0e7; }
.license-add-btn { margin-top: 8px; color: var(--color-accent); background: var(--color-blue-soft); border-color: #9eb8ce; border-radius: 8px; }
.license-add-btn:hover { color: #fff; background: var(--color-accent); border-color: var(--color-accent); }
.edit-colors { gap: 8px; }
.color-dot { width: 26px; height: 26px; border-radius: 8px; border: 2px solid transparent; transition: transform var(--transition-fast), box-shadow var(--transition-fast); }
.color-dot:hover { transform: translateY(-2px) scale(1.08); }
.color-dot.active { border-color: var(--color-gold); box-shadow: 0 0 0 3px rgba(196,154,74,.24); }
.edit-override-info { color: #735a27; background: var(--color-gold-soft); border-left-color: var(--color-gold); }
.edit-form-footer { padding: 12px 16px; background: #fffefb; border-top-color: #dfe6eb; }
.edit-form-btn { min-height: 36px; padding: 8px 16px; border-radius: 8px; transition: transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast); }
.edit-form-btn.primary { color: #fff; background: var(--color-accent); border: 1px solid var(--color-accent-hover); border-bottom: 3px solid var(--color-gold); box-shadow: 0 4px 10px rgba(22,79,134,.16); }
.edit-form-btn.primary:hover { opacity: 1; background: var(--color-accent-hover); transform: translateY(-1px); }
.edit-form-btn.secondary { color: #4f6170; background: #eef2f5; border: 1px solid #cbd6de; }
.edit-form-btn.secondary:hover { color: var(--color-accent); background: var(--color-blue-soft); border-color: #9db1c1; transform: translateY(-1px); }
.edit-form-btn.danger { color: var(--color-danger); border: 1px solid #e2bcbc; background: #fff7f7; }
.edit-form-btn.danger:hover { background: #fbecec; border-color: #c77d7d; transform: translateY(-1px); }
.save-status { background: var(--color-accent); border: 1px solid var(--color-gold); box-shadow: 0 6px 14px rgba(22,79,134,.18); }

/* Approval and import surfaces follow the same command hierarchy. */
.hadla-sync-progress { background: #fffefb; border-bottom-color: #e1d3b1; }
.hadla-sync-fill { background: var(--color-accent); transition: width var(--transition-smooth); }
.hadla-sync-progress.success .hadla-sync-fill { background: #667d57; }
.hadla-sync-progress.error .hadla-sync-fill { background: var(--color-danger); }
.csv-import-modal { background: rgba(23,32,42,.52); }
.csv-import-card { max-width: 520px; border: 1px solid #cbd6de; border-radius: 16px; background: #fffefb; box-shadow: 0 20px 60px rgba(23,32,42,.22); }
.csv-import-radio { border-color: #cbd6de; border-radius: 8px; transition: border-color var(--transition-fast), background var(--transition-fast); }
.csv-import-radio:hover { background: var(--color-blue-soft); border-color: #90a5b7; }
.csv-import-radio input[type="radio"] { accent-color: var(--color-accent); }
.csv-import-actions button { min-height: 36px; padding: 8px 16px; border-radius: 8px; transition: transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast); }
.csv-import-actions button:hover { opacity: 1; transform: translateY(-1px); }
.csv-import-actions .btn-cancel { color: #4f6170; background: #eef2f5; border: 1px solid #cbd6de; }
.csv-import-actions .btn-upload { color: #fff; background: var(--color-accent); border: 1px solid var(--color-accent-hover); border-bottom: 3px solid var(--color-gold); }
.hadla-diff-panel { background: #eef2f5; }
.hadla-diff-header { background: #fffefb; border-bottom-color: #cbd6de; box-shadow: 0 4px 14px rgba(26,43,57,.06); }
.hadla-diff-header h3 { color: var(--color-text); }
.diff-action-btn { min-height: 34px; padding: 6px 14px; color: #304352; background: #fff; border-color: #cbd6de; border-radius: 8px; transition: transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); }
.diff-action-btn:hover { opacity: 1; transform: translateY(-1px); border-color: #9db1c1; }
.diff-action-btn.approve-all { color: #6c531f; background: var(--color-gold-soft); border-color: #e0c785; }
.diff-action-btn.reject-all { color: var(--color-danger); background: #fff7f7; border-color: #e2bcbc; }
.diff-action-btn.apply { color: #fff; background: var(--color-accent) !important; border-color: var(--color-accent-hover); border-bottom: 3px solid var(--color-gold); }
.diff-item { background: #fffefb; border-color: #d3dde4; border-radius: 10px; box-shadow: 0 2px 6px rgba(26,43,57,.05); }
.diff-item.approved { border-color: #a8b99a; background: #f3f7f1; }
.diff-item.rejected { border-color: #d7a2a2; background: #fff7f7; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (max-width: 768px) {
  .admin-nav { height: 56px; padding: 0 12px; }
  .admin-nav-title { gap: 8px; font-size: 14px; overflow: hidden; }
  .admin-nav-title span { max-width: 142px; overflow: hidden; text-overflow: ellipsis; }
  .admin-nav-title b { overflow: hidden; text-overflow: ellipsis; }
  .admin-nav-badge { display: none; }
  .admin-nav-right { gap: 4px; overflow-x: auto; max-width: 56vw; scrollbar-width: none; }
  .admin-nav-right::-webkit-scrollbar { display: none; }
  .admin-nav-item, .admin-stats-pill { min-height: 30px; padding: 0 9px; font-size: 11px; }
  .admin-stats-pill { gap: 4px; }
  .admin-stats-icon { font-size: 14px; }
  .admin-stats-divider, .admin-stats-total { display: none; }
  .admin-app .search-container { padding: 11px 14px 8px; }
  .admin-app .filters-container { padding: 0 14px 9px; }
  .admin-app .results-summary { padding: 10px 14px; flex-wrap: wrap; gap: 6px; }
  .admin-app .hotel-list { padding: 5px 9px 20px; }
  .admin-app .hotel-card { margin: 4px 0; padding: 12px 11px; }
  .edit-panel { max-height: 50vh; padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px)); }
  .edit-form-body { max-height: 30vh; }
  .edit-form-footer { padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)); }
  .edit-form-btn { padding: 8px 12px; font-size: 12px; }
  .login-card { width: min(392px, calc(100vw - 32px)); padding: 36px 24px 32px; }
}

/* Final current-use colors: white text must win over legacy per-attribute rules. */
.admin-app .attr-check-pill.active[data-attr="hotel"],
.admin-app .attr-check-pill.active[data-attr="guesthouse"],
.admin-app .attr-check-pill.active[data-attr="serviced"],
.admin-app .attr-check-pill.active[data-attr="student"] { color: #fff !important; }

/* Keep current-use state visible after the page's responsive/theme overrides. */
.admin-app .attr-check-pill:not(.active) { color: #7b858e; background: #fff; border-color: #cbd3da; opacity: .78; }
.admin-app .attr-check-pill.active { color: #fff !important; font-weight: 700; box-shadow: inset 0 -3px 0 var(--series-gold-400), 0 3px 8px rgba(22,43,84,.16); }
.admin-app .attr-check-pill.active[data-attr="hotel"] { background: var(--series-navy-800); border-color: var(--series-navy-800); }
.admin-app .attr-check-pill.active[data-attr="guesthouse"] { background: #b56a00; border-color: #b56a00; }
.admin-app .attr-check-pill.active[data-attr="serviced"] { background: #a23f55; border-color: #a23f55; }
.admin-app .attr-check-pill.active[data-attr="student"] { background: #397254; border-color: #397254; }
.admin-app .attr-check-pill.active .attr-pill-dot { background: #fff; }
.admin-app .attr-check-pill:not(.active) .attr-pill-dot { opacity: .45; }

/* Desktop: detach the building editor from the sidebar and let it float over the map. */
@media (min-width: 769px) {
  .admin-app .edit-panel {
    position: fixed;
    top: 80px;
    left: 456px;
    width: min(432px, calc(100vw - 32px));
    max-height: calc(100vh - 96px);
    z-index: 1500;
    flex-shrink: 0;
    overflow: hidden;
    border: 1px solid #c9d4dc;
    border-top: 3px solid var(--series-gold-500);
    border-radius: 12px;
    box-shadow: 0 18px 44px rgba(15, 30, 61, .24), 0 2px 8px rgba(15, 30, 61, .12);
  }
  .admin-app .edit-panel.is-dragging {
    user-select: none;
    box-shadow: 0 22px 52px rgba(15, 30, 61, .3), 0 4px 12px rgba(15, 30, 61, .16);
  }
  .admin-app .edit-panel-toggle {
    min-height: 43px;
    cursor: grab;
    touch-action: none;
    user-select: none;
  }
  .admin-app .edit-panel-toggle:active {
    cursor: grabbing;
    transform: none !important;
  }
  .admin-app .edit-panel-toggle > span::before {
    content: "⠿";
    display: inline-block;
    margin-right: 8px;
    color: var(--series-gold-600);
    font-size: 16px;
    line-height: 1;
    vertical-align: -1px;
  }
  .admin-app .edit-panel-form {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 142px);
  }
  .admin-app .edit-form-body {
    flex: 1;
    max-height: none;
    min-height: 0;
    overflow-y: auto;
  }
  .admin-app .edit-panel.collapsed {
    max-height: 46px;
  }
}

/* Series type scale: readable body copy with a consistent 14px floor. */
body, body * { font-size: 14px !important; }
.admin-logo-mark { font-size: 12px !important; }
.admin-nav-title, .admin-nav-title * { font-size: 17px !important; }
.admin-app .marker-cluster div, .admin-app .marker-cluster span { font-size: 14px !important; }

/* Last cascade: the series reference owns the visible admin shell. */
html, body { background: var(--series-warm-50); color: var(--series-warm-800); }
.login-screen { background: var(--series-navy-950); }
.login-screen::before { background: var(--series-gold-500); }
.login-card { background: #fff; border-color: rgba(255,255,255,.12); border-radius: 8px; box-shadow: 0 20px 32px rgba(0,0,0,.22), 0 6px 14px rgba(0,0,0,.10); }
.login-card::before { background: var(--series-gold-500); }
.login-icon { color: var(--series-navy-950); background: var(--series-gold-500); border-color: var(--series-gold-400); border-radius: 4px; }
.login-input { border-color: var(--series-warm-200); border-radius: 4px; }
.login-input:focus { border-color: var(--series-gold-500); box-shadow: 0 0 0 3px rgba(184,150,62,.16); }
.login-btn { color: #fff; background: var(--series-navy-800); border-color: var(--series-navy-800); border-bottom-color: var(--series-gold-500); border-radius: 4px; }
.login-btn:hover { background: var(--series-navy-700); }
.admin-nav { background: var(--series-navy-900) !important; border-bottom-color: rgba(255,255,255,.08); box-shadow: 0 2px 20px rgba(15,30,61,.24); }
.admin-nav::before { background: var(--series-gold-500); }
.admin-logo-mark { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--series-navy-950); background: var(--series-gold-500); border: 1px solid var(--series-gold-400); border-radius: 4px; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.admin-nav-title { color: #fff !important; }
.admin-nav-title span { color: #fff !important; }
.admin-nav-title b { color: rgba(255,255,255,.74); }
.admin-nav-badge { color: var(--series-gold-200); background: rgba(255,255,255,.08); border-color: rgba(204,174,92,.42); }
.admin-nav-item { color: rgba(255,255,255,.78); background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); border-radius: 4px; box-shadow: none; }
.admin-nav-item:hover { color: #fff; background: rgba(255,255,255,.12); border-color: rgba(204,174,92,.55); box-shadow: none; }
.admin-nav-item.accent-green { color: var(--series-gold-200); background: rgba(184,150,62,.14); border-color: rgba(204,174,92,.48); }
.admin-nav-item.accent-blue { color: #d6e4f5; background: rgba(45,91,163,.25); border-color: rgba(143,174,215,.46); }
.admin-nav-item.subtle { color: rgba(255,255,255,.66); }
.admin-stats-pill { color: rgba(255,255,255,.82); background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); border-radius: 4px; box-shadow: none; }
.admin-stats-icon { color: var(--series-gold-400); }
.admin-stats-today { color: var(--series-gold-200); }
.admin-stats-total, .admin-stats-divider { color: rgba(255,255,255,.52); }
.admin-app .main-container { background: #e5e7ec; }
.admin-app .sidebar { background: #fff; border-right-color: var(--series-warm-150); box-shadow: 8px 0 20px rgba(15,30,61,.08); }
.admin-app .search-input { background: #fff; border-color: var(--series-warm-200); border-radius: 4px; }
.admin-app .search-input:focus { border-color: var(--series-gold-500); box-shadow: 0 0 0 3px rgba(184,150,62,.16); }
.admin-app .usage-filter { background: var(--series-warm-50); border-color: var(--series-warm-150); border-radius: 8px; }
.admin-app .usage-pill, .admin-app .attr-check-pill { color: var(--series-warm-600); background: #fff; border-color: var(--series-gold-200); border-radius: 4px; }
.admin-app .usage-pill.active { color: #fff; background: var(--series-navy-800); border-color: var(--series-gold-500); box-shadow: inset 0 -2px 0 var(--series-gold-500); }
.admin-app .attr-check-pill.active[data-attr="hotel"] { color: var(--series-navy-800); background: var(--series-navy-50); border-color: #9bb4d4; }
.admin-app .attr-check-pill.active[data-attr="guesthouse"] { color: var(--series-gold-600); background: var(--series-gold-50); border-color: var(--series-gold-400); }
.admin-app .attr-check-pill.active[data-attr="serviced"], .admin-app .attr-check-pill.active[data-attr="student"] { color: var(--series-warm-600); background: var(--series-warm-50); border-color: var(--series-warm-200); }
.admin-app .results-summary { background: #fff; border-color: var(--series-warm-150); }
.admin-app .btn-export { color: var(--series-navy-800) !important; background: #fff !important; border-color: var(--series-gold-200); border-radius: 4px; }
.admin-app .btn-export:hover { color: #fff !important; background: var(--series-navy-800) !important; border-color: var(--series-gold-500) !important; }
.admin-app .hotel-list { background: var(--series-warm-50); }
.admin-app .hotel-card { background: #fff; border-color: var(--series-warm-150); border-radius: 8px; box-shadow: 0 1px 2px rgba(15,30,61,.04); }
.admin-app .hotel-card:hover { background: var(--series-navy-50); border-color: transparent; box-shadow: 0 10px 20px rgba(15,30,61,.10), inset 4px 0 0 var(--series-gold-500); }
.admin-app .hotel-card.active { background: var(--series-navy-50); border-color: #c6d3e5; box-shadow: 0 6px 16px rgba(22,43,84,.12), inset 4px 0 0 var(--series-gold-500); }
.admin-app .hotel-card.active::before { display: none; }
.admin-app .hotel-type-badge { border-radius: 4px; }
.admin-app .hotel-type-badge.hotel { color: var(--series-navy-800); background: var(--series-navy-100); }
.admin-app .hotel-type-badge.guesthouse { color: var(--series-gold-600); background: var(--series-gold-100); }
.admin-app .hotel-type-badge.serviced, .admin-app .hotel-type-badge.student { color: var(--series-warm-600); background: var(--series-warm-100); }
.admin-app .layer-switch { background: rgba(15,30,61,.96); border-color: rgba(204,174,92,.42); border-radius: 4px; }
.admin-app .layer-btn.active { background: var(--series-navy-700); box-shadow: inset 0 -2px 0 var(--series-gold-500); }
.admin-app .sidebar-toggle-btn { color: var(--series-navy-800); background: #fff; border-color: var(--series-warm-200); border-radius: 4px; }
.admin-app .sidebar-toggle-btn:hover { color: var(--series-gold-600); background: var(--series-gold-50); border-color: var(--series-gold-400); }
.edit-panel { background: #fff; border-top-color: var(--series-gold-500); }
.edit-panel-toggle { color: var(--series-navy-800); background: var(--series-gold-50); border-bottom-color: var(--series-gold-200); }
.edit-panel-toggle:hover { color: var(--series-navy-900); background: var(--series-gold-100); }
.edit-panel-empty-icon { color: var(--series-navy-950); background: var(--series-gold-500); border-radius: 4px; }
.edit-form-section-title { color: var(--series-navy-800); }
.edit-input { background: #fff; border-color: var(--series-warm-200); border-radius: 4px; }
.edit-input:focus { border-color: var(--series-gold-500); box-shadow: 0 0 0 3px rgba(184,150,62,.16); }
.edit-form-btn { border-radius: 4px; }
.edit-form-btn.primary { background: var(--series-navy-800); border-color: var(--series-navy-800); border-bottom-color: var(--series-gold-500); }
.edit-form-btn.primary:hover { background: var(--series-navy-700); }
.edit-form-btn.secondary { color: var(--series-warm-600); background: #fff; border-color: var(--series-warm-200); }
.edit-form-btn.secondary:hover { color: var(--series-navy-800); background: var(--series-navy-50); border-color: #9bb4d4; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--series-gold-500); outline-offset: 2px; border-radius: 2px; }
@media (max-width: 768px) { .admin-logo-mark { width: 32px; height: 32px; font-size: 11px; } }

@media (max-width: 768px) {
  /* Compact command bar: the full labels remain available as desktop actions and tooltips. */
  .admin-nav { padding: 0 10px; }
  .admin-nav-left { flex: 1; min-width: 0; }
  .admin-nav-title { gap: 0; font-size: 12px; }
  .admin-nav-title span { max-width: 118px; }
  .admin-nav-title b { display: none; }
  .admin-nav-right { flex-shrink: 0; max-width: none; overflow: visible; }
  .admin-nav-right > a, .admin-nav-right #adminStatsPill, .admin-nav-right #logoutBtn { display: none; }
  .admin-nav-right #addNewBuildingBtn,
  .admin-nav-right #hadlaSyncBtn,
  .admin-nav-right #importCsvBtn {
    width: 34px;
    min-width: 34px;
    height: 32px;
    min-height: 32px;
    padding: 0;
    justify-content: center;
    font-size: 0;
  }
  .admin-nav-right #addNewBuildingBtn::after { content: "+"; font-size: 20px; font-weight: 500; line-height: 1; }
  .admin-nav-right #hadlaSyncBtn::after { content: "↻"; font-size: 19px; line-height: 1; }
  .admin-nav-right #importCsvBtn::after { content: "CSV"; font-size: 9px; font-weight: 800; letter-spacing: .03em; line-height: 1; }
}

/* Future-series reference: match the portfolio's navy / warm-neutral / gold language. */
:root {
  --series-navy-950: #0a1628;
  --series-navy-900: #0f1e3d;
  --series-navy-800: #162b54;
  --series-navy-700: #1d3a6f;
  --series-navy-100: #e3eaf5;
  --series-navy-50: #f0f4fa;
  --series-warm-800: #2c2e36;
  --series-warm-600: #51545e;
  --series-warm-400: #9295a0;
  --series-warm-200: #d7d9e0;
  --series-warm-150: #e5e7ec;
  --series-warm-100: #f0f1f4;
  --series-warm-50: #f7f8f9;
  --series-gold-600: #9a7c3a;
  --series-gold-500: #b8963e;
  --series-gold-400: #ccae5c;
  --series-gold-200: #e8d9a8;
  --series-gold-100: #f5efdb;
  --series-gold-50: #fbf8f0;
  --color-bg: var(--series-warm-50);
  --color-surface: #fff;
  --color-text: var(--series-warm-800);
  --color-text-secondary: var(--series-warm-600);
  --color-text-tertiary: var(--series-warm-400);
  --color-accent: var(--series-navy-800);
  --color-accent-hover: var(--series-navy-700);
  --color-gold: var(--series-gold-500);
  --color-separator: var(--series-warm-200);
  --color-separator-subtle: var(--series-warm-150);
}
html, body { background: var(--series-warm-50); color: var(--series-warm-800); }
::selection { background: var(--series-navy-800); color: #e3eaf5; }
.login-screen { background: var(--series-navy-950); }
.login-screen::before { background: var(--series-gold-500); }
.login-card { background: #fff; border-color: rgba(255,255,255,.12); border-radius: 8px; box-shadow: 0 20px 32px rgba(0,0,0,.22), 0 6px 14px rgba(0,0,0,.10); }
.login-card::before { background: var(--series-gold-500); }
.login-icon { color: var(--series-navy-950); background: var(--series-gold-500); border-color: var(--series-gold-400); border-radius: 4px; }
.login-title { color: var(--series-warm-800); }
.login-input { border-color: var(--series-warm-200); border-radius: 4px; }
.login-input:focus { border-color: var(--series-gold-500); box-shadow: 0 0 0 3px rgba(184,150,62,.16); }
.login-btn { color: #fff; background: var(--series-navy-800); border-color: var(--series-navy-800); border-bottom-color: var(--series-gold-500); border-radius: 4px; box-shadow: 0 6px 16px rgba(22,43,84,.20); }
.login-btn:hover { background: var(--series-navy-700); box-shadow: 0 10px 20px rgba(22,43,84,.28); }
.admin-nav { background: var(--series-navy-900); border-bottom-color: rgba(255,255,255,.08); box-shadow: 0 2px 20px rgba(15,30,61,.24); }
.admin-nav::before { background: var(--series-gold-500); }
.admin-logo-mark { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--series-navy-950); background: var(--series-gold-500); border: 1px solid var(--series-gold-400); border-radius: 4px; font-size: 12px; font-weight: 800; letter-spacing: .08em; box-shadow: 0 2px 8px rgba(184,150,62,.25); }
.admin-nav-title { color: #fff; }
.admin-nav-title span { color: #fff !important; }
.admin-nav-title b { color: rgba(255,255,255,.74); }
.admin-nav-badge { color: var(--series-gold-200); background: rgba(255,255,255,.08); border-color: rgba(204,174,92,.42); }
.admin-nav-item { color: rgba(255,255,255,.78); background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); border-radius: 4px; box-shadow: none; }
.admin-nav-item:hover { color: #fff; background: rgba(255,255,255,.12); border-color: rgba(204,174,92,.55); box-shadow: none; }
.admin-nav-item.accent-green { color: var(--series-gold-200); background: rgba(184,150,62,.14); border-color: rgba(204,174,92,.48); }
.admin-nav-item.accent-green:hover { color: #fff; background: rgba(184,150,62,.24); border-color: var(--series-gold-400); }
.admin-nav-item.accent-blue { color: #d6e4f5; background: rgba(45,91,163,.25); border-color: rgba(143,174,215,.46); }
.admin-nav-item.accent-blue:hover { color: #fff; background: var(--series-navy-700); border-color: var(--series-gold-400); }
.admin-nav-item.subtle { color: rgba(255,255,255,.66); }
.admin-nav-item.subtle:hover { color: #fff; background: rgba(220,38,38,.18); border-color: rgba(220,38,38,.46); }
.admin-stats-pill { color: rgba(255,255,255,.82); background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); border-radius: 4px; box-shadow: none; }
.admin-stats-pill:hover { border-color: rgba(204,174,92,.55); box-shadow: none; }
.admin-stats-icon { color: var(--series-gold-400); }
.admin-stats-today { color: var(--series-gold-200); }
.admin-stats-total, .admin-stats-divider { color: rgba(255,255,255,.52); }
.admin-stats-detail { background: #fff; border-color: var(--series-warm-150); border-radius: 8px; box-shadow: 0 10px 20px rgba(15,30,61,.16); }
.admin-app .main-container { background: #e5e7ec; }
.admin-app .sidebar { background: #fff; border-right-color: var(--series-warm-150); box-shadow: 8px 0 20px rgba(15,30,61,.08); }
.admin-app .search-input { background: #fff; border-color: var(--series-warm-200); border-radius: 4px; }
.admin-app .search-input:focus { border-color: var(--series-gold-500); box-shadow: 0 0 0 3px rgba(184,150,62,.16); }
.admin-app .usage-filter { background: var(--series-warm-50); border-color: var(--series-warm-150); border-radius: 8px; }
.admin-app .usage-pill, .admin-app .attr-check-pill { color: var(--series-warm-600); background: #fff; border-color: var(--series-gold-200); border-radius: 4px; }
.admin-app .usage-pill:hover, .admin-app .attr-check-pill:hover { color: var(--series-navy-700); background: var(--series-gold-50); border-color: var(--series-gold-400); }
.admin-app .usage-pill.active { color: #fff; background: var(--series-navy-800); border-color: var(--series-gold-500); box-shadow: inset 0 -2px 0 var(--series-gold-500); }
.admin-app .attr-check-pill.active[data-attr="hotel"] { color: var(--series-navy-800); background: var(--series-navy-50); border-color: #9bb4d4; }
.admin-app .attr-check-pill.active[data-attr="guesthouse"] { color: var(--series-gold-600); background: var(--series-gold-50); border-color: var(--series-gold-400); }
.admin-app .attr-check-pill.active[data-attr="serviced"], .admin-app .attr-check-pill.active[data-attr="student"] { color: var(--series-warm-600); background: var(--series-warm-50); border-color: var(--series-warm-200); }
.admin-app .results-summary { background: #fff; border-color: var(--series-warm-150); }
.admin-app .btn-export { color: var(--series-navy-800) !important; background: #fff !important; border-color: var(--series-gold-200); border-radius: 4px; }
.admin-app .btn-export:hover { color: #fff !important; background: var(--series-navy-800) !important; border-color: var(--series-gold-500) !important; }
.admin-app .hotel-list { background: var(--series-warm-50); }
.admin-app .hotel-card { background: #fff; border-color: var(--series-warm-150); border-radius: 8px; box-shadow: 0 1px 2px rgba(15,30,61,.04); }
.admin-app .hotel-card:hover { background: var(--series-navy-50); border-color: transparent; box-shadow: 0 10px 20px rgba(15,30,61,.10), inset 4px 0 0 var(--series-gold-500); }
.admin-app .hotel-card.active { background: var(--series-navy-50); border-color: #c6d3e5; box-shadow: 0 6px 16px rgba(22,43,84,.12), inset 4px 0 0 var(--series-gold-500); }
.admin-app .hotel-card.active::before { display: none; }
.admin-app .hotel-type-badge { border-radius: 4px; }
.admin-app .hotel-type-badge.hotel { color: var(--series-navy-800); background: var(--series-navy-100); }
.admin-app .hotel-type-badge.guesthouse { color: var(--series-gold-600); background: var(--series-gold-100); }
.admin-app .hotel-type-badge.serviced, .admin-app .hotel-type-badge.student { color: var(--series-warm-600); background: var(--series-warm-100); }
.admin-app .layer-switch { background: rgba(15,30,61,.96); border-color: rgba(204,174,92,.42); border-radius: 4px; }
.admin-app .layer-btn.active { background: var(--series-navy-700); box-shadow: inset 0 -2px 0 var(--series-gold-500); }
.admin-app .sidebar-toggle-btn { color: var(--series-navy-800); background: #fff; border-color: var(--series-warm-200); border-radius: 4px; }
.admin-app .sidebar-toggle-btn:hover { color: var(--series-gold-600); background: var(--series-gold-50); border-color: var(--series-gold-400); }
.edit-panel { background: #fff; border-top-color: var(--series-gold-500); }
.edit-panel-toggle { color: var(--series-navy-800); background: var(--series-gold-50); border-bottom-color: var(--series-gold-200); }
.edit-panel-toggle:hover { color: var(--series-navy-900); background: var(--series-gold-100); }
.edit-panel-empty-icon { color: var(--series-navy-950); background: var(--series-gold-500); border-radius: 4px; }
.edit-form-header { background: var(--series-warm-50); border-bottom-color: var(--series-warm-150); }
.edit-form-building-id { color: var(--series-navy-800); background: var(--series-navy-100); border-color: #b7c9df; border-radius: 4px; }
.edit-form-section-title { color: var(--series-navy-800); }
.edit-input { background: #fff; border-color: var(--series-warm-200); border-radius: 4px; }
.edit-input:focus { border-color: var(--series-gold-500); box-shadow: 0 0 0 3px rgba(184,150,62,.16); }
.edit-form-copy-coords { color: var(--series-navy-800); background: var(--series-navy-50); border-color: var(--series-navy-100); border-radius: 4px; }
.edit-form-copy-coords:hover { color: #fff; background: var(--series-navy-800); border-color: var(--series-gold-500); }
.license-add-btn { color: var(--series-navy-800); background: var(--series-navy-50); border-color: #b7c9df; border-radius: 4px; }
.license-add-btn:hover { color: #fff; background: var(--series-navy-800); border-color: var(--series-gold-500); }
.edit-form-btn { border-radius: 4px; }
.edit-form-btn.primary { background: var(--series-navy-800); border-color: var(--series-navy-800); border-bottom-color: var(--series-gold-500); }
.edit-form-btn.primary:hover { background: var(--series-navy-700); }
.edit-form-btn.secondary { color: var(--series-warm-600); background: #fff; border-color: var(--series-warm-200); }
.edit-form-btn.secondary:hover { color: var(--series-navy-800); background: var(--series-navy-50); border-color: #9bb4d4; }
.edit-form-btn.danger { color: #b91c1c; background: #fff; border-color: #fecaca; }
.save-status { background: var(--series-navy-800); border-color: var(--series-gold-500); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--series-gold-500); outline-offset: 2px; border-radius: 2px; }
@media (max-width: 768px) {
  .admin-logo-mark { width: 32px; height: 32px; font-size: 11px; }
  .admin-nav-title span { color: #fff !important; }
}

/* --- HADLA Diff Approval Panel --- */
.hadla-diff-panel {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  background: #f5f5f7;
  overflow-y: auto;
}
.hadla-diff-header {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #fff;
  border-bottom: 1px solid var(--color-separator);
  padding: 20px 24px;
}
.hadla-diff-header h3 {
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 600;
}
.hadla-diff-summary {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  font-size: 13px;
}
.hadla-diff-summary .diff-stat {
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  font-weight: 600;
}
.diff-stat.new {
  background: #e8f8ed;
  color: #1a7a36;
}
.diff-stat.updated {
  background: #e8f0fe;
  color: #1a56db;
}
.diff-stat.expired {
  background: #ffeaea;
  color: #c0392b;
}
.hadla-diff-actions {
  display: flex;
  gap: 8px;
}
.diff-action-btn {
  padding: 6px 16px;
  border-radius: var(--radius-pill);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid var(--color-separator);
  background: #fff;
  color: var(--color-text);
  transition: opacity 0.15s;
}
.diff-action-btn:hover {
  opacity: 0.85;
}
.hadla-diff-list {
  padding: 16px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.diff-item {
  background: #fff;
  border: 1px solid var(--color-separator);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  transition: border-color 0.15s;
}
.diff-item.approved {
  border-color: #34c759;
  background: #f0fff4;
}
.diff-item.rejected {
  border-color: var(--color-danger);
  background: #fff5f5;
  opacity: 0.6;
}
.diff-item-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.diff-item-type {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  text-transform: uppercase;
}
.diff-item-type.new { background: #e8f8ed; color: #1a7a36; }
.diff-item-type.updated { background: #e8f0fe; color: #1a56db; }
.diff-item-type.expired { background: #ffeaea; color: #c0392b; }
.diff-item-licence {
  font-size: 12px;
  color: var(--color-text-secondary);
  font-family: monospace;
}
.diff-item-name {
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 8px;
}
.diff-item-details {
  font-size: 12px;
  line-height: 1.6;
}
.diff-field {
  display: flex;
  gap: 8px;
  padding: 2px 0;
}
.diff-field-label {
  color: var(--color-text-secondary);
  min-width: 60px;
  flex-shrink: 0;
}
.diff-field-old {
  color: var(--color-danger);
  text-decoration: line-through;
}
.diff-field-arrow {
  color: var(--color-text-tertiary);
}
.diff-field-new {
  color: #1a7a36;
  font-weight: 500;
}
.diff-item-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  justify-content: flex-end;
}
.diff-item-actions button {
  padding: 4px 14px;
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid var(--color-separator);
  background: #fff;
  transition: opacity 0.15s;
}

/* Final cascade: the legacy admin rules above remain available, but this last
   layer owns the visible product surface and prevents old colors leaking back. */
:root {
  --color-bg: #eef2f5;
  --color-surface: #fffefb;
  --color-text: #17202a;
  --color-text-secondary: #5e6b77;
  --color-text-tertiary: #89949f;
  --color-accent: #164f86;
  --color-accent-hover: #103b66;
  --color-gold: #c49a4a;
  --color-gold-soft: #f6eddc;
  --color-blue-soft: #e8f1f9;
  --color-separator: #cbd5dd;
  --color-separator-subtle: #e1e7eb;
  --color-danger: #a83838;
  --sidebar-width: 432px;
  --nav-height: 64px;
  --transition-fast: .18s cubic-bezier(.2,.75,.25,1);
}
html, body { background: #eef2f5; color: var(--color-text); }
::selection { color: #fff; background: var(--color-accent); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(196,154,74,.58); outline-offset: 2px; }
button:active:not(:disabled) { transform: translateY(1px); }
button:disabled { opacity: .45; cursor: not-allowed; transform: none !important; }

.admin-nav { position: relative; height: var(--nav-height); padding: 0 24px; background: rgba(255,254,251,.96); border-bottom: 1px solid #d2dce3; box-shadow: 0 4px 18px rgba(26,43,57,.06); }
.admin-nav::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--color-gold); }
.admin-nav-title { display: flex; align-items: baseline; gap: 12px; color: var(--color-text); font-size: 17px; letter-spacing: 0; white-space: nowrap; }
.admin-nav-title span { color: var(--color-accent) !important; letter-spacing: .045em; }
.admin-nav-title b { font-weight: 700; }
.admin-nav-badge { color: var(--color-accent); background: var(--color-blue-soft); border: 1px solid #b6cadc; letter-spacing: .06em; text-transform: uppercase; }
.admin-nav-right { gap: 8px; }
.admin-nav-item { min-height: 34px; padding: 0 12px; color: #2a3b4b; background: #f8fafb; border: 1px solid #cbd6de; border-radius: 8px; box-shadow: 0 1px 0 rgba(255,255,255,.9); transition: transform var(--transition-fast), color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast); }
.admin-nav-item:hover { color: var(--color-accent); background: #fff; border-color: #9db1c1; box-shadow: 0 4px 10px rgba(26,43,57,.08); transform: translateY(-1px); }
.admin-nav-item.accent-green { color: #5c471b; background: var(--color-gold-soft); border-color: #e0c785; }
.admin-nav-item.accent-green:hover { color: #3c2e12; background: #f9f1df; border-color: var(--color-gold); }
.admin-nav-item.accent-blue { color: var(--color-accent); background: var(--color-blue-soft); border-color: #b5c9db; }
.admin-nav-item.accent-blue:hover { color: #fff; background: var(--color-accent); border-color: var(--color-accent); }
.admin-nav-item.subtle { color: var(--color-text-secondary); background: transparent; border-color: transparent; box-shadow: none; }
.admin-nav-item.subtle:hover { color: var(--color-danger); background: #fbefef; border-color: #e3bcbc; }
.admin-stats-pill { min-height: 34px; padding: 5px 12px; color: var(--color-text); background: #fff; border: 1px solid #d0dbe3; border-radius: 8px; box-shadow: 0 1px 0 rgba(255,255,255,.9); transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast); }
.admin-stats-pill:hover { border-color: #9db1c1; box-shadow: 0 4px 10px rgba(26,43,57,.08); transform: translateY(-1px); }
.admin-stats-icon { color: var(--color-gold); font-size: 16px; }
.admin-stats-today { color: var(--color-accent); }

.admin-app .main-container { background: #dce4e9; }
.admin-app .sidebar { background: var(--color-surface); border-right: 1px solid #ccd7df; box-shadow: 10px 0 28px rgba(26,43,57,.08); }
.admin-app .search-container { padding: 18px 20px 10px; }
.admin-app .search-input { height: 44px; background: #f4f7fa; border: 1px solid #d7e0e7; }
.admin-app .search-input:focus { background: #fff; border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(22,79,134,.12); }
.admin-app .filters-container { padding: 0 20px 13px; }
.admin-app .usage-filter { padding: 12px 13px 11px; background: #f7f9fa; border: 1px solid #dce4e9; border-radius: 12px; }
.admin-app .usage-filter-label { color: #2a3b4b; letter-spacing: .045em; }
.admin-app .usage-filter-row-label { color: #7a8792; }
.admin-app .usage-pill, .admin-app .attr-check-pill { min-height: 29px; padding: 4px 10px; color: #667482; background: #fff; border-color: #cbd6de; }
.admin-app .usage-pill.active { color: #fff; background: #202d3a; border-color: #202d3a; }
.admin-app .attr-check-pill.active[data-attr="hotel"] { color: var(--color-accent); border-color: #8eacca; background: var(--color-blue-soft); }
.admin-app .attr-check-pill.active[data-attr="guesthouse"] { color: #8d6b24; border-color: #dbc17f; background: var(--color-gold-soft); }
.admin-app .attr-check-pill.active[data-attr="serviced"] { color: #2d4765; border-color: #a6b7c9; background: #edf3f8; }
.admin-app .attr-check-pill.active[data-attr="student"] { color: #5e6470; border-color: #bfc2c8; background: #f1f2f4; }
.admin-app .results-summary { padding: 13px 20px; background: #fbfcfc; border-top: 1px solid #e0e6ea; border-bottom: 1px solid #d6dfe5; }
.admin-app .results-count { color: #344454; }
.admin-app .btn-export { min-height: 30px; padding: 4px 10px; color: var(--color-accent) !important; background: var(--color-blue-soft) !important; border: 1px solid #b7c9d8; border-radius: 8px; transition: transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); }
.admin-app .btn-export:hover { color: #fff !important; background: var(--color-accent) !important; border-color: var(--color-accent) !important; transform: translateY(-1px); }
.admin-app .btn-reset { color: var(--color-accent); border: 1px solid #b7c9d8; border-radius: 8px; }
.admin-app .hotel-list { background: #f1f4f6; padding: 7px 10px 22px; }
.admin-app .hotel-card { margin: 5px 0; padding: 14px 13px 13px; background: rgba(255,254,251,.95); border: 1px solid #dbe3e8; border-radius: 10px; box-shadow: 0 1px 0 rgba(255,255,255,.9); transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast); }
.admin-app .hotel-card:hover { background: #fff; border-color: #aebfcd; box-shadow: 0 7px 16px rgba(26,43,57,.09); transform: translateY(-1px); }
.admin-app .hotel-card.active { padding-left: 13px; background: #f4f8fb; border-color: rgba(22,79,134,.55); }
.admin-app .hotel-card.active::before { content: ""; position: absolute; top: 9px; bottom: 9px; left: 0; width: 3px; border-radius: 0 3px 3px 0; background: var(--color-gold); }
.admin-app .hotel-type-badge.hotel { color: var(--color-accent); background: var(--color-blue-soft); }
.admin-app .hotel-type-badge.guesthouse { color: #8d6b24; background: var(--color-gold-soft); }
.admin-app .hotel-type-badge.serviced { color: #2d4765; background: #edf3f8; }
.admin-app .hotel-type-badge.student { color: #5e6470; background: #f1f2f4; }
.admin-app .hotel-room-count { color: var(--color-accent); }
.admin-app .map-container { background: #cbd6dc; }
.admin-app .layer-switch { right: 18px; bottom: 18px; padding: 4px; gap: 3px; background: rgba(23,32,42,.92); border: 1px solid rgba(255,255,255,.18); border-radius: 10px; box-shadow: 0 10px 24px rgba(26,43,57,.22); }
.admin-app .layer-btn { padding: 8px 11px; color: #c5d0d8; border-radius: 7px; }
.admin-app .layer-btn.active { color: #fff; background: var(--color-accent); }
.admin-app .sidebar-toggle-btn { background: #fffefb; border-color: #cbd6de; color: #5d6b76; }
.admin-app .sidebar-toggle-btn:hover { color: var(--color-accent); border-color: #9db1c1; background: #fff; }

.edit-panel { background: #fffefb; border-top: 2px solid var(--color-gold); }
.edit-panel-toggle { color: var(--color-accent); background: #f7f3ea; border-bottom-color: #e6d7b5; }
.edit-panel-toggle:hover { color: #0f3b65; background: var(--color-gold-soft); }
.edit-panel-empty-icon { width: 44px; height: 44px; display: grid; place-items: center; margin-bottom: 8px; color: #fff; background: var(--color-accent); border-radius: 10px; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.edit-form-header { background: #f7f9fa; border-bottom-color: #dfe6eb; }
.edit-form-building-id { color: var(--color-accent); background: var(--color-blue-soft); border: 1px solid #b6cadc; }
.edit-form-section { border-bottom-color: #e3e9ed; }
.edit-form-section-title { color: var(--color-accent); font-size: 11px; letter-spacing: .08em; }
.edit-label { color: #71808d; }
.edit-input { color: var(--color-text); background: #f4f7fa; border: 1px solid #d6e0e7; border-radius: 8px; }
.edit-input:focus { background: #fff; border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(22,79,134,.12); }
.edit-input:read-only { color: #647482; background: #edf1f4; }
.edit-form-copy-coords { color: var(--color-accent); padding: 4px 8px; border: 1px solid #b7c9d8; border-radius: 8px; background: var(--color-blue-soft); }
.edit-form-copy-coords:hover { color: #fff; background: var(--color-accent); }
.license-row { background: #f4f7fa; border-color: #d6e0e7; }
.license-add-btn { color: var(--color-accent); background: var(--color-blue-soft); border-color: #9eb8ce; border-radius: 8px; }
.license-add-btn:hover { color: #fff; background: var(--color-accent); border-color: var(--color-accent); }
.color-dot { border-radius: 8px; }
.color-dot.active { border-color: var(--color-gold); box-shadow: 0 0 0 3px rgba(196,154,74,.24); }
.edit-form-footer { background: #fffefb; border-top-color: #dfe6eb; }
.edit-form-btn { min-height: 36px; border-radius: 8px; transition: transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); }
.edit-form-btn.primary { color: #fff; background: var(--color-accent); border: 1px solid var(--color-accent-hover); border-bottom: 3px solid var(--color-gold); }
.edit-form-btn.primary:hover { opacity: 1; background: var(--color-accent-hover); transform: translateY(-1px); }
.edit-form-btn.secondary { color: #4f6170; background: #eef2f5; border: 1px solid #cbd6de; }
.edit-form-btn.secondary:hover { color: var(--color-accent); background: var(--color-blue-soft); border-color: #9db1c1; transform: translateY(-1px); }
.edit-form-btn.danger { color: var(--color-danger); background: #fff7f7; border: 1px solid #e2bcbc; }
.edit-form-btn.danger:hover { background: #fbecec; border-color: #c77d7d; transform: translateY(-1px); }
.save-status { background: var(--color-accent); border: 1px solid var(--color-gold); }
.diff-action-btn { min-height: 34px; padding: 6px 14px; color: #304352; background: #fff; border-color: #cbd6de; border-radius: 8px; transition: transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); }
.diff-action-btn:hover { opacity: 1; transform: translateY(-1px); }
.diff-action-btn.approve-all { color: #6c531f; background: var(--color-gold-soft); border-color: #e0c785; }
.diff-action-btn.reject-all { color: var(--color-danger); background: #fff7f7; border-color: #e2bcbc; }
.diff-action-btn.apply { color: #fff; background: var(--color-accent) !important; border-color: var(--color-accent-hover); border-bottom: 3px solid var(--color-gold); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
@media (max-width: 768px) {
  .admin-nav { height: 56px; padding: 0 12px; }
  .admin-nav-title { gap: 8px; font-size: 14px; overflow: hidden; }
  .admin-nav-title span { max-width: 142px; overflow: hidden; text-overflow: ellipsis; }
  .admin-nav-title b { overflow: hidden; text-overflow: ellipsis; }
  .admin-nav-badge { display: none; }
  .admin-nav-right { gap: 4px; overflow-x: auto; max-width: 56vw; scrollbar-width: none; }
  .admin-nav-right::-webkit-scrollbar { display: none; }
  .admin-nav-item, .admin-stats-pill { min-height: 30px; padding: 0 9px; font-size: 11px; }
  .admin-stats-divider, .admin-stats-total { display: none; }
  .admin-app .search-container { padding: 11px 14px 8px; }
  .admin-app .filters-container { padding: 0 14px 9px; }
  .admin-app .results-summary { padding: 10px 14px; flex-wrap: wrap; gap: 6px; }
  .admin-app .hotel-list { padding: 5px 9px 20px; }
  .admin-app .hotel-card { margin: 4px 0; padding: 12px 11px; }
  .edit-panel { max-height: 50vh; padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px)); }
  .edit-form-body { max-height: 30vh; }
  .edit-form-footer { padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)); }
  .login-card { width: min(392px, calc(100vw - 32px)); padding: 36px 24px 32px; }
}

/* Keep current-use state visible after the page's responsive/theme overrides. */
.admin-app .attr-check-pill:not(.active) { color: #7b858e; background: #fff; border-color: #cbd3da; opacity: .78; }
.admin-app .attr-check-pill.active { color: #fff !important; font-weight: 700; box-shadow: inset 0 -3px 0 var(--series-gold-400), 0 3px 8px rgba(22,43,84,.16); }
.admin-app .attr-check-pill.active[data-attr="hotel"] { background: var(--series-navy-800); border-color: var(--series-navy-800); }
.admin-app .attr-check-pill.active[data-attr="guesthouse"] { background: #b56a00; border-color: #b56a00; }
.admin-app .attr-check-pill.active[data-attr="serviced"] { background: #a23f55; border-color: #a23f55; }
.admin-app .attr-check-pill.active[data-attr="student"] { background: #397254; border-color: #397254; }
.admin-app .attr-check-pill.active .attr-pill-dot { background: #fff; }
.admin-app .attr-check-pill:not(.active) .attr-pill-dot { opacity: .45; }
