/* ============================================
   TourTrack - Custom Theme
   ============================================ */

/* ---- Fonts ---- */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;1,14..32,400&display=swap');

*,
*::before,
*::after {
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

/* ---- Sidebar: Dark theme (desktop) ---- */
.fi-sidebar {
    background-color: #1a2035 !important;
}

.fi-sidebar-header {
    background-color: #1a2035 !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}

.fi-sidebar-footer {
    background-color: #1a2035 !important;
    border-top: 1px solid rgba(255,255,255,0.06) !important;
}

/* Brand name */
.fi-sidebar-header .fi-brand-name,
.fi-brand-name {
    color: #ffffff !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
}

/* Navigation group labels — slate-400 on dark navy #1a2035 = ~4.6:1 ✓ WCAG AA */
.fi-sidebar-group-label {
    color: #94a3b8 !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
}

/* Inactive nav items — clearly muted so active item stands out */
.fi-sidebar-item-btn {
    background-color: transparent !important;
    color: #7986a0 !important;
}

.fi-sidebar-item-label {
    color: #7986a0 !important;
}

.fi-sidebar-item-icon {
    color: #5a6680 !important;
}

.fi-sidebar-item-btn:hover {
    background-color: rgba(255,255,255,0.06) !important;
    color: #c8d2e0 !important;
}

.fi-sidebar-item-btn:hover .fi-sidebar-item-icon,
.fi-sidebar-item-btn:hover .fi-sidebar-item-label {
    color: #c8d2e0 !important;
}

/* Active nav item — strong highlight, clearly different from inactive */
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
    background-color: rgba(59,130,246,0.18) !important;
    color: #ffffff !important;
}

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-label {
    color: #ffffff !important;
}

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-icon,
.fi-sidebar-item.fi-active > .fi-sidebar-item-icon {
    color: #93c5fd !important;
}

/* ---- Mobile sidebar: light theme ---- */
@media (max-width: 1023px) {
    /* Light mode */
    .fi-sidebar {
        background-color: #ffffff !important;
        border-right: 1px solid #e5e7eb !important;
    }
    .fi-sidebar-header {
        background-color: #f9fafb !important;
        border-bottom: 1px solid #e5e7eb !important;
    }
    .fi-sidebar-footer {
        background-color: #f9fafb !important;
        border-top: 1px solid #e5e7eb !important;
    }
    .fi-sidebar-header .fi-brand-name,
    .fi-brand-name { color: #111827 !important; }
    .fi-sidebar-group-label { color: #64748b !important; }
    .fi-sidebar-item-btn { color: #1e293b !important; }
    .fi-sidebar-item-label { color: #1e293b !important; }
    .fi-sidebar-item-icon { color: #475569 !important; }
    .fi-sidebar-item-btn:hover { background-color: #f1f5f9 !important; color: #0f172a !important; }
    .fi-sidebar-item.fi-active > .fi-sidebar-item-btn { background-color: #eff6ff !important; color: #1d4ed8 !important; }
    .fi-sidebar-item.fi-active > .fi-sidebar-item-icon { color: #1d4ed8 !important; }

    /* ---- Mobile topbar: light mode ---- */
    .fi-topbar { background-color: #ffffff !important; border-bottom-color: #e2e8f0 !important; }
    .fi-topbar .fi-icon-btn { color: #374151 !important; }

    /* ================================================================
       DARK MODE — mobile overrides MUST live inside this media query.
       Anything set with !important above will beat .dark rules defined
       outside the @media block, so we override them here explicitly.
       ================================================================ */
    .dark .fi-sidebar {
        background-color: #1a2035 !important;
        border-right-color: #334155 !important;
    }
    .dark .fi-sidebar-header {
        background-color: #1a2035 !important;
        border-bottom-color: #334155 !important;
    }
    .dark .fi-sidebar-footer {
        background-color: #1a2035 !important;
        border-top-color: #334155 !important;
    }
    .dark .fi-sidebar-header .fi-brand-name,
    .dark .fi-brand-name { color: #e2e8f0 !important; }
    .dark .fi-sidebar-group-label { color: #94a3b8 !important; }
    .dark .fi-sidebar-item-btn { background-color: transparent !important; color: #7986a0 !important; }
    .dark .fi-sidebar-item-label { color: #7986a0 !important; }
    .dark .fi-sidebar-item-icon { color: #5a6680 !important; }
    .dark .fi-sidebar-item-btn:hover {
        background-color: rgba(255,255,255,0.06) !important;
        color: #c8d2e0 !important;
    }
    .dark .fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
        background-color: rgba(59,130,246,0.18) !important;
        color: #ffffff !important;
    }
    .dark .fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-label { color: #ffffff !important; }
    .dark .fi-sidebar-item.fi-active > .fi-sidebar-item-icon { color: #93c5fd !important; }

    /* Dark topbar on mobile */
    .dark .fi-topbar {
        background-color: #1e293b !important;
        border-bottom-color: #334155 !important;
    }
    .dark .fi-topbar .fi-icon-btn { color: #94a3b8 !important; }
    .dark .fi-topbar .fi-icon-btn:hover { color: #e2e8f0 !important; }
    .dark .fi-topbar-item-btn { color: #e2e8f0 !important; }
    .dark .fi-topbar-item-label { color: #e2e8f0 !important; }
}

/* ---- Topbar ---- */
.fi-topbar {
    background-color: #ffffff !important;
    border-bottom: 1px solid #e2e8f0 !important;
}

/* Topbar nav items — fi-topbar-item-btn / fi-topbar-item-label are the real classes */
.fi-topbar-item-btn {
    color: #1e293b !important;
}

.fi-topbar-item-label {
    color: #1e293b !important;
    font-weight: 500 !important;
}

.fi-topbar-item-icon {
    color: #475569 !important;
}

.fi-topbar-item-btn:hover .fi-topbar-item-label,
.fi-topbar-item-btn:hover .fi-topbar-item-icon {
    color: #0f172a !important;
}

.fi-topbar-item.fi-active .fi-topbar-item-label {
    color: #2563eb !important;
    font-weight: 600 !important;
}

/* Icon buttons in topbar (sidebar toggle, etc.) */
.fi-topbar .fi-icon-btn {
    color: #374151 !important;
}

.fi-topbar .fi-icon-btn:hover {
    color: #111827 !important;
    background-color: #f1f5f9 !important;
}

/* User menu trigger */
.fi-user-menu .fi-user-avatar-name,
.fi-user-menu [class*="name"] {
    color: #1e293b !important;
    font-weight: 500 !important;
}

/* ---- Main content area ---- */
.fi-main {
    background-color: #f1f5f9 !important;
}

/* ---- Page / section headings ---- */
/* Real class is fi-header-heading (not fi-page-header-heading) */
.fi-header-heading,
.fi-section-header-heading {
    color: #111827 !important;
    font-weight: 700 !important;
}

.fi-header-subheading {
    color: #4b5563 !important;
}

/* Breadcrumbs */
.fi-breadcrumbs-item-label {
    color: #4b5563 !important;
}

/* Labels */
.fi-label,
label {
    color: #111827 !important;
    font-weight: 600 !important;
}

/* General body text in forms/tables */
.fi-section-content,
.fi-ta-cell,
.fi-fo-field-wrp {
    color: #1f2937 !important;
}

/* Inputs */
.fi-input,
input,
textarea,
select {
    color: #111827 !important;
}

/* Table headers */
.fi-ta-header-cell {
    color: #374151 !important;
    font-weight: 700 !important;
    font-size: 0.7rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    background-color: #f8fafc !important;
}

/* Table rows */
.fi-ta-row:hover {
    background-color: #f8fafc !important;
}

/* ---- Stat cards ---- */
.fi-wi-stats-overview-stat {
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 0.75rem !important;
}

.fi-wi-stats-overview-stat-value {
    color: #111827 !important;
    font-size: 2rem !important;
    font-weight: 700 !important;
}

.fi-wi-stats-overview-stat-label {
    color: #4b5563 !important;  /* gray-600: 7.4:1 on white ✓ WCAG AAA */
}

/* ---- Tables wrapper ---- */
.fi-ta-ctn {
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 0.75rem !important;
}

/* ---- Charts ---- */
.fi-wi-chart {
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 0.75rem !important;
}

/* ============================================
   DARK MODE — full override (mobile + desktop)
   ============================================ */

/* Layout */
.dark .fi-main   { background-color: #1a2535 !important; }
.dark .fi-topbar { background-color: #1e293b !important; border-bottom-color: #334155 !important; }

/* Dark topbar text — targeted, not wildcard * which causes SVG fill issues */
.dark .fi-topbar-item-btn      { color: #e2e8f0 !important; }
.dark .fi-topbar-item-label    { color: #e2e8f0 !important; }
.dark .fi-topbar-item-icon     { color: #94a3b8 !important; }
.dark .fi-topbar .fi-icon-btn  { color: #94a3b8 !important; }
.dark .fi-topbar .fi-icon-btn:hover { color: #e2e8f0 !important; background-color: rgba(255,255,255,0.06) !important; }
.dark .fi-topbar-item.fi-active .fi-topbar-item-label { color: #93c5fd !important; }

/* Dark sidebar */
.dark .fi-sidebar        { background-color: #1a2035 !important; }
.dark .fi-sidebar-header { background-color: #1a2035 !important; }
.dark .fi-sidebar-footer { background-color: #1a2035 !important; }
.dark .fi-sidebar-group-label  { color: #94a3b8 !important; }
.dark .fi-sidebar-item-btn     { background-color: transparent !important; color: #7986a0 !important; }
.dark .fi-sidebar-item-label   { color: #7986a0 !important; }
.dark .fi-sidebar-item-icon    { color: #5a6680 !important; }
.dark .fi-sidebar-item.fi-active > .fi-sidebar-item-btn { background-color: rgba(59,130,246,0.18) !important; color: #ffffff !important; }
.dark .fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-label { color: #ffffff !important; }
.dark .fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-icon,
.dark .fi-sidebar-item.fi-active > .fi-sidebar-item-icon { color: #93c5fd !important; }

/* Page / section headings — fi-header-heading is the real class */
.dark .fi-header-heading,
.dark .fi-section-header-heading,
.dark h1, .dark h2, .dark h3 {
    color: #f1f5f9 !important;
}

.dark .fi-header-subheading { color: #94a3b8 !important; }

/* Breadcrumbs */
.dark .fi-breadcrumbs-item-label { color: #94a3b8 !important; }
.dark .fi-breadcrumbs-item-separator { color: #475569 !important; }

/* User menu */
.dark .fi-user-menu-trigger-text { color: #e2e8f0 !important; }

/* Global search input */
.dark .fi-global-search .fi-input-wrapper {
    background-color: #1e293b !important;
    border-color: #475569 !important;
}
.dark .fi-global-search input,
.dark .fi-global-search .fi-input {
    background-color: #1e293b !important;
    color: #f1f5f9 !important;
}
.dark .fi-global-search .fi-input-wrp-prefix-icon,
.dark .fi-global-search svg {
    color: #64748b !important;
}

/* Icon buttons (sidebar toggle, etc.) — globally in dark mode */
.dark .fi-icon-btn { color: #94a3b8 !important; }
.dark .fi-icon-btn:hover { color: #e2e8f0 !important; background-color: rgba(255,255,255,0.06) !important; }

/* Main content container background */
.dark .fi-main-ctn { background-color: #1a2535 !important; }

/* Labels */
.dark .fi-label,
.dark label,
.dark .fi-fo-field-wrp label {
    color: #e2e8f0 !important;
    font-weight: 600 !important;
}

/* Hint / helper text */
.dark .fi-fo-field-wrp-hint,
.dark .fi-fo-helper-text {
    color: #94a3b8 !important;
}

/* Form inputs — background + text + border */
.dark .fi-input,
.dark .fi-select-input,
.dark input[type="text"],
.dark input[type="email"],
.dark input[type="number"],
.dark input[type="date"],
.dark input[type="password"],
.dark input[type="search"],
.dark input[type="tel"],
.dark textarea,
.dark select {
    background-color: #1e293b !important;
    color: #f1f5f9 !important;
    border-color: #475569 !important;
}

.dark .fi-input:focus,
.dark input:focus,
.dark textarea:focus,
.dark select:focus {
    border-color: #60a5fa !important;
    outline: none !important;
}

/* Input wrapper / field container */
.dark .fi-input-wrapper,
.dark .fi-fo-field-wrp-input {
    background-color: #1e293b !important;
    border-color: #475569 !important;
}

/* Select dropdown */
.dark .fi-select-option,
.dark .choices__list,
.dark .choices__item {
    background-color: #1e293b !important;
    color: #f1f5f9 !important;
}

/* Section containers */
.dark .fi-section {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

.dark .fi-section-content {
    color: #e2e8f0 !important;
}

.dark .fi-section-header {
    background-color: #1e293b !important;
    border-bottom-color: #334155 !important;
}

/* Cards / panels */
.dark .fi-card,
.dark .fi-wi-account-widget,
.dark .fi-page {
    background-color: #1e293b !important;
    color: #e2e8f0 !important;
}

/* Tables */
.dark .fi-ta-ctn {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

.dark .fi-ta-header-cell {
    background-color: #1a2535 !important;
    color: #94a3b8 !important;
    border-bottom-color: #334155 !important;
}

.dark .fi-ta-cell,
.dark .fi-ta-row td {
    color: #e2e8f0 !important;
    border-bottom-color: #1e293b !important;
}

.dark .fi-ta-row:hover {
    background-color: rgba(255,255,255,0.04) !important;
}

.dark .fi-ta-header-toolbar {
    background-color: #1e293b !important;
    border-bottom-color: #334155 !important;
}

/* Stat widgets */
.dark .fi-wi-stats-overview-stat {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

.dark .fi-wi-stats-overview-stat-value { color: #f1f5f9 !important; }
.dark .fi-wi-stats-overview-stat-label { color: #94a3b8 !important; }

/* Charts */
.dark .fi-wi-chart {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

/* Dropdown menus */
.dark .fi-dropdown-list,
.dark .fi-dropdown-panel {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

.dark .fi-dropdown-item,
.dark .fi-dropdown-item span {
    color: #e2e8f0 !important;
}

.dark .fi-dropdown-item:hover {
    background-color: #334155 !important;
}

/* Modals */
.dark .fi-modal-window {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

.dark .fi-modal-header,
.dark .fi-modal-footer {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

/* Avoid wildcard * — it breaks SVG currentColor and icon fills */
.dark .fi-modal-content { color: #e2e8f0 !important; }
.dark .fi-modal-header-heading { color: #f1f5f9 !important; }
.dark .fi-modal-description { color: #94a3b8 !important; }

/* Search input in tables */
.dark .fi-ta-search-input {
    background-color: #1e293b !important;
    color: #f1f5f9 !important;
    border-color: #475569 !important;
}

/* Buttons in dark mode */
.dark .fi-btn-color-gray {
    background-color: #334155 !important;
    color: #e2e8f0 !important;
    border-color: #475569 !important;
}

/* Placeholders */
.dark input::placeholder,
.dark textarea::placeholder {
    color: #64748b !important;
}

/* ---- Badges ---- */
.fi-badge-color-success { background-color: #dcfce7 !important; color: #15803d !important; }
.fi-badge-color-warning { background-color: #fef9c3 !important; color: #a16207 !important; }
.fi-badge-color-danger  { background-color: #fee2e2 !important; color: #dc2626 !important; }

/* ---- Buttons ---- */
.fi-btn-color-primary {
    background-color: #4f46e5 !important;
    color: #ffffff !important;
}

.fi-btn-color-primary:hover {
    background-color: #4338ca !important;
}

/* ---- Scrollbar (sidebar) ---- */
.fi-sidebar::-webkit-scrollbar { width: 4px; }
.fi-sidebar::-webkit-scrollbar-track { background: transparent; }
.fi-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 2px; }


/* ============================================
   Booking Calendar
   ============================================ */

.cal-page { display: flex; flex-direction: column; gap: 1.5rem; }

.cal-header-bar {
    display: flex; flex-wrap: wrap;
    align-items: center; justify-content: space-between; gap: 1rem;
}
.cal-nav { display: flex; align-items: center; gap: 0.75rem; }
.cal-nav-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2.25rem; height: 2.25rem;
    border-radius: 0.5rem; border: 1px solid #e2e8f0;
    background: #fff; color: #64748b; cursor: pointer; transition: background 0.15s;
}
.cal-nav-btn:hover { background: #f8fafc; color: #1e293b; }
.cal-nav-icon { width: 1rem; height: 1rem; }
.cal-month-title {
    min-width: 11rem; text-align: center;
    font-size: 1.2rem; font-weight: 700; color: #1e293b;
}
.cal-legend { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.cal-legend-item { display: flex; align-items: center; gap: 0.375rem; font-size: 0.75rem; font-weight: 500; color: #475569; }
.cal-dot { display: inline-block; width: 0.625rem; height: 0.625rem; border-radius: 0.15rem; }
.cal-dot-round { border-radius: 50%; }
.cal-dot-blue   { background: #3b82f6; }
.cal-dot-green  { background: #10b981; }
.cal-dot-amber  { background: #f59e0b; }
.cal-dot-orange { background: #f97316; }

.cal-card {
    background: #fff; border: 1px solid #e2e8f0;
    border-radius: 1rem; box-shadow: 0 1px 4px rgba(0,0,0,0.06); overflow: hidden;
}

.cal-dow-row {
    display: grid; grid-template-columns: repeat(7, 1fr);
    background: #f8fafc; border-bottom: 1px solid #e2e8f0;
}
.cal-dow-cell {
    padding: 0.625rem 0; text-align: center;
    font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em;
    text-transform: uppercase; color: #94a3b8;
}
.cal-dow-weekend { color: #f87171; }

.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); }

.cal-cell {
    min-height: 7rem; padding: 0.375rem;
    display: flex; flex-direction: column; gap: 0.15rem;
    border-right: 1px solid #f1f5f9; border-bottom: 1px solid #f1f5f9;
    box-sizing: border-box;
}
.cal-cell:nth-child(7n) { border-right: none; }
.cal-cell-in      { background: #fff; }
.cal-cell-out     { background: #fafafa; }
.cal-cell-weekend { background: rgba(254,226,226,0.12); }
.cal-cell-today   { box-shadow: inset 0 0 0 2px #f97316; }

.cal-cell-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.1rem; }
.cal-day-num {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.5rem; height: 1.5rem; border-radius: 50%;
    font-size: 0.75rem; font-weight: 600;
}
.cal-num-normal  { color: #374151; }
.cal-num-weekend { color: #ef4444; }
.cal-num-out     { color: #d1d5db; }
.cal-num-today   { background: #f97316; color: #fff; font-weight: 700; }
.cal-item-count  { font-size: 0.6rem; color: #cbd5e1; }

.cal-pill {
    display: flex; align-items: center; gap: 0.2rem;
    padding: 0.15rem 0.35rem; border-radius: 0.25rem; border: 1px solid transparent;
    font-size: 0.65rem; font-weight: 600;
    overflow: hidden; white-space: nowrap; cursor: default; text-decoration: none;
}
a.cal-pill { cursor: pointer; }
a.cal-pill:hover { opacity: 0.8; }

.cal-pill-dot { width: 0.35rem; height: 0.35rem; border-radius: 50%; flex-shrink: 0; }
.cal-pill-dot-blue   { background: #3b82f6; }
.cal-pill-dot-red    { background: #ef4444; }
.cal-pill-dot-green  { background: #10b981; }
.cal-pill-dot-amber  { background: #f59e0b; }
.cal-pill-dot-gray   { background: #9ca3af; }

.cal-pill-text { overflow: hidden; text-overflow: ellipsis; flex: 1; min-width: 0; }
.cal-pill-meta { margin-left: auto; flex-shrink: 0; font-size: 0.6rem; opacity: 0.7; }

.cal-pill-dep       { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }
.cal-pill-confirmed { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.cal-pill-pending   { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.cal-pill-other     { background: #f9fafb; border-color: #e5e7eb; color: #4b5563; }

.cal-stats {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem;
}
@media (max-width: 768px) { .cal-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .cal-stats { grid-template-columns: 1fr; } }

.cal-stat-card {
    display: flex; align-items: center; gap: 0.75rem;
    background: #fff; border: 1px solid #e2e8f0;
    border-radius: 0.75rem; padding: 1rem; box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.cal-stat-icon {
    width: 2.5rem; height: 2.5rem; border-radius: 0.5rem;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.cal-stat-icon-blue   { background: #eff6ff; }
.cal-stat-icon-green  { background: #ecfdf5; }
.cal-stat-icon-purple { background: #f5f3ff; }
.cal-stat-svg { width: 1.25rem; height: 1.25rem; }
.cal-stat-icon-blue   .cal-stat-svg { color: #3b82f6; }
.cal-stat-icon-green  .cal-stat-svg { color: #10b981; }
.cal-stat-icon-purple .cal-stat-svg { color: #8b5cf6; }
.cal-stat-label  { font-size: 0.72rem; font-weight: 500; color: #374151; }
.cal-stat-value  { font-size: 1.35rem; font-weight: 700; color: #111827; line-height: 1.4; }
.cal-stat-cancelled { font-size: 0.7rem; font-weight: 400; color: #ef4444; margin-left: 0.25rem; }

.cal-table-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; overflow: hidden; }
.cal-table-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 1rem 1.25rem; border-bottom: 1px solid #f1f5f9;
}
.cal-table-title {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.875rem; font-weight: 600; color: #111827;
}
.cal-table-title-icon { width: 1rem; height: 1rem; }
.cal-table-badge { font-size: 0.72rem; font-weight: 600; padding: 0.15rem 0.5rem; border-radius: 999px; }
.cal-table-badge-blue  { background: #eff6ff; color: #1d4ed8; }
.cal-table-badge-green { background: #ecfdf5; color: #065f46; }
.cal-table-scroll { overflow-x: auto; }
.cal-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.cal-th {
    padding: 0.625rem 1rem;
    text-align: left; font-size: 0.68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.07em;
    color: #6b7280; background: #f8fafc; border-bottom: 1px solid #f1f5f9; white-space: nowrap;
}
.cal-th-center { text-align: center; }
.cal-tr:hover { background: #f8fafc; }
.cal-td { padding: 0.75rem 1rem; border-bottom: 1px solid #f8fafc; vertical-align: middle; color: #374151; }
.cal-td-bold   { font-weight: 600; color: #111827; }
.cal-td-muted  { color: #4b5563; }
.cal-td-nowrap { white-space: nowrap; }
.cal-td-empty  { color: #cbd5e1; }

.cal-date-day   { font-weight: 700; color: #2563eb; }
.cal-date-mon   { font-size: 0.72rem; color: #6b7280; margin-left: 0.2rem; }
.cal-date-range { font-size: 0.72rem; color: #cbd5e1; }

.cal-link { font-weight: 600; color: #374151; text-decoration: none; }
.cal-link:hover { color: #2563eb; }

.cal-seats { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; }
.cal-seats-ok   { font-size: 0.72rem; font-weight: 600; color: #374151; }
.cal-seats-full { font-size: 0.72rem; font-weight: 600; color: #ef4444; }
.cal-bar-track  { width: 4rem; height: 0.35rem; border-radius: 999px; background: #f1f5f9; overflow: hidden; }
.cal-bar-fill   { height: 100%; border-radius: 999px; transition: width 0.3s; }
.cal-bar-green  { background: #10b981; }
.cal-bar-orange { background: #f97316; }
.cal-bar-red    { background: #ef4444; }

.cal-chips { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.cal-chip {
    display: inline-flex; align-items: center;
    font-size: 0.65rem; font-weight: 600;
    padding: 0.15rem 0.4rem; border-radius: 0.25rem; border: 1px solid;
    text-decoration: none; transition: opacity 0.15s;
}
.cal-chip:hover { opacity: 0.75; }
.cal-chip-green { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.cal-chip-amber { background: #fffbeb; border-color: #fde68a; color: #92400e; }

.cal-status {
    display: inline-flex; align-items: center;
    padding: 0.2rem 0.6rem; border-radius: 999px;
    font-size: 0.72rem; font-weight: 600; white-space: nowrap;
}
.cal-status-open      { background: #ecfdf5; color: #15803d; }
.cal-status-full      { background: #fee2e2; color: #dc2626; }
.cal-status-done      { background: #f1f5f9; color: #475569; }
.cal-status-cancelled { background: #fee2e2; color: #dc2626; }
.cal-status-other     { background: #fefce8; color: #92400e; }

.cal-pax {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.5rem; height: 1.5rem; border-radius: 50%;
    background: #f1f5f9; font-size: 0.72rem; font-weight: 600; color: #374151;
}

/* Dark mode overrides */
.dark .cal-nav-btn          { background: #1f2937; border-color: #374151; color: #9ca3af; }
.dark .cal-nav-btn:hover    { background: #374151; color: #f1f5f9; }
.dark .cal-month-title      { color: #f1f5f9; }
.dark .cal-legend-item      { color: #9ca3af; }
.dark .cal-card             { background: #1f2937; border-color: #374151; }
.dark .cal-dow-row          { background: rgba(31,41,55,0.5); border-bottom-color: #374151; }
.dark .cal-dow-cell         { color: #6b7280; }
.dark .cal-cell             { border-right-color: #374151; border-bottom-color: #374151; }
.dark .cal-cell-in          { background: #1f2937; }
.dark .cal-cell-out         { background: rgba(17,24,39,0.5); }
.dark .cal-num-normal       { color: #d1d5db; }
.dark .cal-stat-card        { background: #1f2937; border-color: #374151; }
.dark .cal-stat-value       { color: #f1f5f9; }
.dark .cal-table-card       { background: #1f2937; border-color: #374151; }
.dark .cal-table-header     { border-bottom-color: #374151; }
.dark .cal-table-title      { color: #f1f5f9; }
.dark .cal-th               { background: rgba(31,41,55,0.6); border-bottom-color: #374151; color: #6b7280; }
.dark .cal-td               { border-bottom-color: #374151; color: #d1d5db; }
.dark .cal-td-bold          { color: #f1f5f9; }
.dark .cal-td-muted         { color: #9ca3af; }
.dark .cal-tr:hover         { background: rgba(55,65,81,0.4); }
.dark .cal-bar-track        { background: #374151; }
.dark .cal-pax              { background: #374151; color: #d1d5db; }
