/* ══════════════════════════════════════════════════════
   Institutional Noir — Design System Token Layer
   ══════════════════════════════════════════════════════ */

:root {
  /* ── Noir Surfaces ── */
  --noir-surface:                  #131313;
  --noir-surface-dim:              #131313;
  --noir-surface-bright:           #3a3939;
  --noir-surface-container-lowest: #0e0e0e;
  --noir-surface-container-low:    #1c1b1b;
  --noir-surface-container:        #201f1f;
  --noir-surface-container-high:   #2a2a2a;
  --noir-surface-container-highest:#353534;
  --noir-on-surface:               #e5e2e1;
  --noir-on-surface-variant:       #d3c1cd;
  --noir-inverse-surface:          #e5e2e1;
  --noir-inverse-on-surface:       #313030;
  --noir-outline:                  #9c8c97;
  --noir-outline-variant:          #50434d;

  /* ── Primary (deep blue) ── */
  --noir-primary:                  #003b73;
  --noir-on-primary:               #e5e2e1;
  --noir-primary-container:        #003b73;
  --noir-on-primary-container:     #8ec5ff;
  --noir-surface-tint:             #8ec5ff;

  /* ── Secondary (gold) ── */
  --noir-secondary:                #ffde5b;
  --noir-on-secondary:             #3a3000;
  --noir-secondary-container:      #e6c100;
  --noir-on-secondary-container:   #604f00;

  /* ── Tertiary (steel blue) ── */
  --noir-tertiary:                 #afcadf;
  --noir-on-tertiary:              #183344;
  --noir-tertiary-container:       #0c2939;
  --noir-on-tertiary-container:    #7691a4;

  /* ── Error ── */
  --noir-error:                    #ffb4ab;
  --noir-on-error:                 #690005;
  --noir-error-container:          #93000a;
  --noir-on-error-container:       #ffdad6;

  /* ── Semantic aliases ── */
  --noir-success:                  #4ade80;
  --noir-warning:                  #ffde5b;

  /* ══ Bulma v1 Theme Overrides ══ */
  --bulma-scheme-main:             var(--noir-surface);
  --bulma-scheme-main-bis:         var(--noir-surface-container-low);
  --bulma-scheme-main-ter:         var(--noir-surface-container);
  --bulma-background:              var(--noir-surface);
  --bulma-text:                    var(--noir-on-surface);
  --bulma-text-strong:             var(--noir-on-surface);
  --bulma-text-weak:               var(--noir-on-surface-variant);
  --bulma-text-light:              var(--noir-on-surface-variant);
  --bulma-border:                  var(--noir-outline-variant);
  --bulma-border-weak:             var(--noir-surface-container-highest);
  --bulma-link:                    var(--noir-secondary);
  --bulma-link-hover:              var(--noir-secondary-container);
  --bulma-link-text:               var(--noir-secondary);
  --bulma-link-text-hover:         var(--noir-secondary-container);
  --bulma-primary:                 var(--noir-primary);
  --bulma-primary-invert:          var(--noir-on-primary);
  --bulma-info:                    var(--noir-tertiary);
  --bulma-info-invert:             var(--noir-on-tertiary);
  --bulma-success:                 var(--noir-success);
  --bulma-warning:                 var(--noir-secondary);
  --bulma-danger:                  var(--noir-error);
  --bulma-danger-invert:           var(--noir-on-error);
  --bulma-family-primary:          'Public Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --bulma-family-secondary:        'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --bulma-body-background-color:   var(--noir-surface);
  --bulma-body-color:              var(--noir-on-surface);
  --bulma-body-font-size:          14px;
  --bulma-body-line-height:        1.5;
  --bulma-radius:                  0;
  --bulma-radius-small:            0;
  --bulma-radius-medium:           0;
  --bulma-radius-large:            0;
  --bulma-radius-rounded:          0;
  --bulma-shadow:                  none;
  --bulma-input-shadow:            none;
  --bulma-input-background-color:  var(--noir-surface-container-low);
  --bulma-input-border-color:      var(--noir-outline-variant);
  --bulma-input-color:             var(--noir-on-surface);
  --bulma-input-placeholder-color: var(--noir-outline);
  --bulma-input-focus-border-color:var(--noir-secondary);
  --bulma-card-background-color:   var(--noir-surface-container);
  --bulma-card-color:              var(--noir-on-surface);
  --bulma-card-header-color:       var(--noir-on-surface);
  --bulma-box-background-color:    var(--noir-surface-container);
  --bulma-box-color:               var(--noir-on-surface);
  --bulma-box-shadow:              none;
  --bulma-footer-background-color: var(--noir-surface-container-lowest);
  --bulma-navbar-background-color: var(--noir-surface-container-low);
  --bulma-tag-background-color:    var(--noir-surface-container-high);
  --bulma-tag-color:               var(--noir-on-surface);
  --bulma-table-background-color:  var(--noir-surface-container);
  --bulma-table-color:             var(--noir-on-surface);
  --bulma-table-head-cell-color:   var(--noir-on-surface-variant);
  --bulma-table-cell-border-color: var(--noir-outline-variant);
  --bulma-modal-background-background-color: rgba(14, 14, 14, 0.86);
  --bulma-dropdown-content-background-color: var(--noir-surface-container-high);
  --bulma-menu-item-color:         var(--noir-on-surface-variant);
  --bulma-menu-item-hover-color:   var(--noir-on-surface);
  --bulma-menu-item-hover-background-color: var(--noir-surface-container-high);
  --bulma-menu-item-active-color:  var(--noir-secondary);
  --bulma-menu-item-active-background-color: var(--noir-surface-container-high);
  --bulma-tabs-link-color:         var(--noir-on-surface-variant);
  --bulma-tabs-link-active-color:  var(--noir-secondary);
  --bulma-tabs-link-active-border-bottom-color: var(--noir-secondary);

  /* ══ Legacy Token Remapping ══ */
  /* room-schedule.css consumers */
  --rs-bg:             var(--noir-surface);
  --rs-panel:          var(--noir-surface-container);
  --rs-line:           var(--noir-outline-variant);
  --rs-line-light:     var(--noir-surface-container-high);
  --rs-text:           var(--noir-on-surface);
  --rs-muted:          var(--noir-on-surface-variant);
  --rs-blue:           var(--noir-secondary);
  --rs-blue-soft:      var(--noir-surface-container-high);
  --rs-blue-bg:        var(--noir-surface-container-high);
  --rs-service:        var(--noir-secondary-container);
  --rs-service-soft:   var(--noir-surface-container-high);
  --rs-vc:             var(--noir-tertiary);
  --rs-vc-soft:        var(--noir-tertiary-container);
  --rs-location-bg:    var(--noir-surface-container-high);
  --rs-hour-highlight: var(--noir-surface-container-low);

  /* dashboard.css consumers */
  --dash-sidebar-w:    240px;
  --dash-topbar-h:     56px;
  --dash-radius:       0;
  --dash-radius-sm:    0;
  --dash-gray-50:      var(--noir-surface-container-highest);
  --dash-gray-100:     var(--noir-surface-container-high);
  --dash-gray-200:     var(--noir-outline-variant);
  --dash-gray-300:     var(--noir-outline);
  --dash-gray-400:     var(--noir-outline);
  --dash-gray-500:     var(--noir-on-surface-variant);
  --dash-gray-600:     var(--noir-on-surface-variant);
  --dash-gray-700:     var(--noir-on-surface);
  --dash-gray-800:     var(--noir-surface-container-highest);
  --dash-gray-900:     var(--noir-on-surface);
  --dash-blue:         var(--noir-secondary);
  --dash-blue-light:   var(--noir-surface-container-high);
  --dash-red:          var(--noir-error);
  --dash-orange:       var(--noir-secondary);
  --dash-green:        var(--noir-success);

  /* recurring-booking.css consumers */
  --rb-bg:             var(--noir-surface);
  --rb-panel:          var(--noir-surface-container);
  --rb-line:           var(--noir-outline-variant);
  --rb-line-light:     var(--noir-surface-container-high);
  --rb-text:           var(--noir-on-surface);
  --rb-muted:          var(--noir-on-surface-variant);
  --rb-blue:           var(--noir-secondary);
  --rb-blue-soft:      var(--noir-surface-container-high);
  --rb-blue-bg:        var(--noir-surface-container-high);
  --rb-green:          var(--noir-success);
  --rb-green-soft:     #1a3a1a;
  --rb-red:            var(--noir-error);
  --rb-red-soft:       #3a1a1a;
  --rb-red-bg:         #2a1010;
  --rb-orange:         var(--noir-secondary);
  --rb-orange-soft:    #3a3000;
  --rb-radius:         0;
  --rb-radius-sm:      0;
}

/* ══ Global Overrides ══ */

*, *::before, *::after {
  border-radius: 0 !important;
  box-shadow: none !important;
}

html {
  background: var(--noir-surface);
}

body {
  background: var(--noir-surface);
  color: var(--noir-on-surface);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* ── Typography ── */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Public Sans', 'Inter', sans-serif;
  color: var(--noir-on-surface);
}

a {
  color: var(--noir-secondary);
}

a:hover {
  color: var(--noir-secondary-container);
}

/* ── Form elements ── */
input, select, textarea {
  background: var(--noir-surface-container-low) !important;
  color: var(--noir-on-surface) !important;
  border: 1px solid var(--noir-outline-variant) !important;
}

input:focus, select:focus, textarea:focus {
  border-color: var(--noir-secondary) !important;
  outline: none;
}

input::placeholder, textarea::placeholder {
  color: var(--noir-outline) !important;
}

/* ── Buttons ── */
button, .button {
  border-radius: 0 !important;
}

/* ── Scrollbar (webkit) ── */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: var(--noir-surface-container-lowest);
}

::-webkit-scrollbar-thumb {
  background: var(--noir-surface-container-highest);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--noir-outline-variant);
}

/* ── SVG defaults ── */
.gc-schedule-body svg,
.gc-admin-page svg {
  stroke: var(--noir-on-surface);
}

/* ── Hardcoded white overrides ── */
.gc-schedule-sidebar,
.dash-topbar,
.gc-schedule-content,
.gc-schedule-main-area {
  background: var(--noir-surface) !important;
}

/* ── Consistent content spacing ── */
.gc-schedule-content {
  padding: 1.5rem 2.5rem 3rem !important;
}

.gc-admin-page,
.gc-svc-page,
.gc-kanban-page {
  max-width: 1440px;
  margin: 0 auto;
}

.dash-topbar {
  background: var(--noir-surface-container-low) !important;
  border-bottom: 1px solid var(--noir-outline-variant) !important;
  color: var(--noir-on-surface);
}

.dash-topbar-brand {
  color: var(--noir-on-surface) !important;
}

.dash-topbar-tabs a {
  color: var(--noir-on-surface-variant) !important;
}

.dash-topbar-tabs a.is-active {
  color: var(--noir-secondary) !important;
  border-color: var(--noir-secondary) !important;
}

.dash-search-box {
  background: var(--noir-surface-container) !important;
  border-color: var(--noir-outline-variant) !important;
}

.dash-search-box input {
  color: var(--noir-on-surface) !important;
}

.dash-icon-btn {
  color: var(--noir-on-surface-variant) !important;
}

.dash-icon-btn:hover {
  color: var(--noir-on-surface) !important;
  background: var(--noir-surface-container-high) !important;
}

.dash-avatar {
  background: var(--noir-primary-container) !important;
  color: var(--noir-on-primary) !important;
}

/* ── Sidebar ── */
.gc-schedule-sidebar {
  background: var(--noir-surface-container-lowest) !important;
  border-right: 1px solid var(--noir-outline-variant) !important;
  color: var(--noir-on-surface);
}

.gc-schedule-sidebar-brand a {
  color: var(--noir-on-surface) !important;
}

.gc-schedule-sidebar-brand span {
  color: var(--noir-on-surface-variant) !important;
}

.gc-schedule-sidebar-nav a {
  color: var(--noir-on-surface-variant) !important;
}

.gc-schedule-sidebar-nav a:hover {
  background: var(--noir-surface-container-high) !important;
  color: var(--noir-on-surface) !important;
}

.gc-schedule-sidebar-nav a.is-active {
  background: var(--noir-surface-container-high) !important;
  color: var(--noir-secondary) !important;
}

.gc-schedule-sidebar-nav a.is-active svg {
  stroke: var(--noir-secondary) !important;
}

.gc-schedule-sidebar-cta {
  background: var(--noir-primary-container) !important;
  color: var(--noir-on-primary) !important;
  border: none !important;
}

/* ── Admin page overrides ── */
.gc-admin-btn-discard {
  background: var(--noir-surface-container-highest) !important;
  color: var(--noir-on-surface) !important;
  border: 1px solid var(--noir-outline-variant) !important;
}

.gc-admin-btn-save {
  background: var(--noir-primary-container) !important;
  border-color: var(--noir-primary-container) !important;
  color: var(--noir-on-primary) !important;
}

/* ── Building card overrides ── */
.gc-admin-card {
  background: var(--noir-surface-container) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-admin-card-stats {
  background: var(--noir-surface-container-high) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-admin-card-stats div + div {
  border-color: var(--noir-outline-variant) !important;
}

.gc-admin-badge {
  background: var(--noir-surface-container-high) !important;
  color: var(--noir-on-surface) !important;
}

.gc-admin-card-status {
  color: var(--noir-success) !important;
}

.gc-admin-card-link {
  color: var(--noir-secondary) !important;
}

/* ── Service page overrides ── */
.gc-svc-panel {
  background: var(--noir-surface-container) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-svc-table {
  background: var(--noir-surface-container) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-svc-table-head {
  border-color: var(--noir-outline-variant) !important;
}

.gc-svc-table-row {
  border-color: var(--noir-surface-container-high) !important;
}

.gc-svc-add-btn {
  background: var(--noir-primary-container) !important;
  color: var(--noir-on-primary) !important;
}

.gc-svc-tree-toggle,
.gc-svc-tree-leaf {
  color: var(--noir-on-surface-variant) !important;
}

.gc-svc-tree-toggle:hover,
.gc-svc-tree-leaf:hover {
  background: transparent !important;
  color: var(--noir-on-surface-variant) !important;
}

.gc-svc-tree-leaf.is-selected,
.gc-svc-tree-toggle.is-selected {
  background: var(--noir-surface-container-high) !important;
  color: var(--noir-secondary) !important;
}

/* ── Kanban overrides ── */
.gc-kanban-lane {
  background: var(--noir-surface-container-low) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-kanban-card {
  background: var(--noir-surface-container) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-kanban-priority-high {
  background: var(--noir-error-container) !important;
  color: var(--noir-error) !important;
}

.gc-kanban-priority-medium {
  background: var(--noir-on-secondary) !important;
  color: var(--noir-secondary) !important;
}

.gc-kanban-priority-low {
  background: var(--noir-tertiary-container) !important;
  color: var(--noir-tertiary) !important;
}

/* ── Chat/task pane overrides ── */
.gc-chat-sidebar,
.gc-task-pane {
  background: var(--noir-surface-container-low) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-chat-header {
  border-color: var(--noir-outline-variant) !important;
}

.gc-chat-message.is-self .gc-chat-message-bubble {
  background: var(--noir-primary-container) !important;
  color: var(--noir-on-primary) !important;
}

.gc-chat-message.is-other .gc-chat-message-bubble {
  background: var(--noir-surface-container-high) !important;
  color: var(--noir-on-surface) !important;
}

.gc-chat-send-btn,
.gc-chat-create-task-btn {
  background: var(--noir-primary-container) !important;
  color: var(--noir-on-primary) !important;
  border: none !important;
}

.gc-svc-panel-label {
  color: var(--noir-on-surface) !important;
}

/* ── Dynamic property text: Space Grotesk treatment ── */
.gc-admin-breadcrumb strong,
.gc-admin-card-link,
.gc-admin-add-inline,
.gc-admin-calendar-remove,
.gc-admin-section-action,
.gc-admin-floor-action,
.gc-admin-floor-link,
.gc-svc-meta-link,
.gc-svc-config-header p strong,
.gc-svc-filter-btn,
.gc-admin-calendar-sync,
.gc-admin-edit-path strong,
.gc-kanban-card-comments,
.gc-task-context-chip {
  font-family: 'Space Grotesk', 'Public Sans', sans-serif !important;
  color: var(--noir-on-surface) !important;
  letter-spacing: -0.01em;
}

.gc-task-context-chip {
  background: var(--noir-surface-container-high) !important;
  color: var(--noir-secondary) !important;
  border: 1px solid var(--noir-outline-variant) !important;
}

/* ── Edit form overrides ── */
.gc-admin-section-panel,
.gc-admin-edit-card {
  background: var(--noir-surface-container) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-admin-map-placeholder {
  background: var(--noir-surface-container-high) !important;
}

.gc-admin-floor-item {
  background: var(--noir-surface-container-low) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-admin-hours-seg {
  background: var(--noir-surface-container-high) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-admin-hours-seg-btn.is-active {
  background: var(--noir-surface-container) !important;
  color: var(--noir-on-surface) !important;
}

.gc-admin-hours-badge.is-active {
  color: var(--noir-success) !important;
}

.gc-admin-timezone-inline {
  background: var(--noir-surface-container-high) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-admin-calendar-row {
  background: var(--noir-surface-container-low) !important;
  border-color: var(--noir-outline-variant) !important;
}

/* ── Status colors ── */
.gc-admin-status-dot,
.gc-svc-status-dot {
  background: var(--noir-success) !important;
}

.gc-svc-status,
.gc-admin-card-status {
  color: var(--noir-success) !important;
}

/* ── Category badges ── */
.gc-svc-category-badge {
  background: var(--noir-surface-container-high) !important;
  border-color: var(--noir-outline-variant) !important;
  color: var(--noir-on-surface) !important;
}

/* ── Inventory badges ── */
.gc-svc-inventory-badge {
  background: var(--noir-surface-container-high) !important;
  color: var(--noir-secondary) !important;
}

/* ── Login page ── */
.login-body {
  background: var(--noir-surface) !important;
  color: var(--noir-on-surface) !important;
}

.login-topbar {
  background: var(--noir-surface-container-low) !important;
  border-color: var(--noir-outline-variant) !important;
}

.login-card {
  background: var(--noir-surface-container) !important;
  border-color: var(--noir-outline-variant) !important;
}

.login-hero {
  background: var(--noir-surface-container-low) !important;
}

.login-footer {
  background: var(--noir-surface-container-lowest) !important;
  border-color: var(--noir-outline-variant) !important;
}

/* ── Dashboard cards (home page) ── */
.dash-booking-card,
.dash-stat-card,
.dash-location-card,
.dash-activity-row {
  background: var(--noir-surface-container) !important;
  border-color: var(--noir-outline-variant) !important;
  color: var(--noir-on-surface);
}

.dash-booking-card:hover,
.dash-stat-card:hover {
  background: var(--noir-surface-container-high) !important;
}

/* ── Checkout/reservation overrides ── */
.checkout-summary-card {
  background: var(--noir-surface-container) !important;
  color: var(--noir-on-surface) !important;
}

.reservation-sidebar {
  background: var(--noir-surface-container-lowest) !important;
  border-color: var(--noir-outline-variant) !important;
}

/* ── App/marketing page overrides ── */
.gc-app-body {
  background: var(--noir-surface) !important;
  color: var(--noir-on-surface) !important;
}

.gc-hero-bg {
  background: var(--noir-surface-container-lowest) !important;
}

/* ── Public page links ── */
.gc-admin-footer-nav a,
.gc-admin-breadcrumb a {
  color: var(--noir-on-surface-variant) !important;
}

.gc-admin-breadcrumb strong {
  color: var(--noir-secondary) !important;
}

/* ── Section separator lines ── */
.gc-admin-section-row {
  border-color: var(--noir-outline-variant) !important;
}

.gc-admin-edit-headline {
  border-color: var(--noir-outline-variant) !important;
}

/* ── Add inline and filter buttons ── */
.gc-admin-add-inline,
.gc-svc-filter-btn,
.gc-admin-calendar-sync {
  color: var(--noir-secondary) !important;
  border-color: var(--noir-outline-variant) !important;
}

.gc-admin-floor-action {
  color: var(--noir-secondary) !important;
  border-color: var(--noir-outline-variant) !important;
  background: var(--noir-surface-container) !important;
}
