/* Esper's Carpet Cleaning brand skin over DashLite.
   Palette from the logo: navy #032f60, mid blue #184888, gold #ba9666. */

:root {
    --esper-navy: #032f60;
    --esper-navy-dark: #02234a;
    --esper-blue: #184888;
    --esper-blue-light: #eaf1fa;
    --esper-gold: #ba9666;
    --esper-gold-dark: #a37f4e;
}

/* Buttons */
.btn-primary { background-color: var(--esper-navy); border-color: var(--esper-navy); }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):active { background-color: var(--esper-blue); border-color: var(--esper-blue); }
.btn-outline-primary { color: var(--esper-navy); border-color: var(--esper-navy); }
.btn-outline-primary:hover { background-color: var(--esper-navy); border-color: var(--esper-navy); color: #fff; }
.btn-gold { background-color: var(--esper-gold); border-color: var(--esper-gold); color: #fff; }
.btn-gold:hover { background-color: var(--esper-gold-dark); border-color: var(--esper-gold-dark); color: #fff; }

/* Links + text accents */
a { color: var(--esper-blue); }
a:hover { color: var(--esper-navy); }
.text-primary { color: var(--esper-navy) !important; }
.text-primary-alt { color: var(--esper-gold) !important; }
.bg-primary { background-color: var(--esper-navy) !important; }
.bg-primary-dim { background-color: var(--esper-blue-light) !important; }

/* Sidebar */
.nk-sidebar { background: var(--esper-navy); border-right: none; }
.nk-sidebar .nk-sidebar-head { background: var(--esper-navy-dark); }
.nk-sidebar .nk-menu-heading .overline-title { color: var(--esper-gold) !important; }
.nk-sidebar .nk-menu-link { color: #c7d4e6; }
.nk-sidebar .nk-menu-icon { color: #8fa6c4; }
.nk-sidebar .nk-menu-link:hover, .nk-sidebar .nk-menu-item.active > .nk-menu-link,
.nk-sidebar .nk-menu-item.current-page > .nk-menu-link { color: #fff; background: rgba(255, 255, 255, 0.06); }
.nk-sidebar .nk-menu-item.active > .nk-menu-link .nk-menu-icon,
.nk-sidebar .nk-menu-link:hover .nk-menu-icon { color: var(--esper-gold); }
.nk-sidebar .nk-nav-toggle, .nk-sidebar .nk-nav-compact { color: #c7d4e6; }
.nk-sidebar-brand .logo-badge { display: inline-flex; align-items: center; gap: 10px; }
.nk-sidebar-brand .logo-badge img { height: 44px; width: 44px; border-radius: 50%; background: #fff; padding: 2px; }
.nk-sidebar-brand .logo-badge .brand-text { color: #fff; font-weight: 700; font-size: 0.95rem; letter-spacing: 0.02em; line-height: 1.15; }
.nk-sidebar-brand .logo-badge .brand-text small { display: block; color: var(--esper-gold); font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; }

/* Header */
.nk-header.is-light { background: #fff; border-bottom: 1px solid #e5e9f2; }

/* Tabs + focus states — kill the stock DashLite purple */
.nav-tabs .nav-link { color: #5b6b83; }
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { color: var(--esper-navy); }
.nav-tabs .nav-link.active { color: var(--esper-navy); border-bottom-color: var(--esper-gold); }
.nav-tabs-s2 .nav-item .nav-link.active, .nav-tabs-s2 .nav-item .nav-link:hover { border-bottom-color: var(--esper-gold); color: var(--esper-navy); }
.form-control:focus, .form-select:focus { border-color: var(--esper-blue); box-shadow: 0 0 0 3px rgba(24, 72, 136, 0.12); }
.custom-control-input:checked ~ .custom-control-label::before { background-color: var(--esper-navy); border-color: var(--esper-navy); }

/* Cards, badges, misc accents */
.card-bordered { border-color: #dfe6f0; }
.badge-esper-gold { background: var(--esper-gold); color: #fff; }
.nk-menu-badge { background: var(--esper-gold); color: #fff; }
.page-title { color: var(--esper-navy); }

/* Status badges used across lists */
.badge-status-new { background: var(--esper-blue-light); color: var(--esper-blue); }
.badge-status-sent, .badge-status-viewed { background: #fff6e9; color: var(--esper-gold-dark); }
.badge-status-accepted, .badge-status-won, .badge-status-paid, .badge-status-completed { background: #e6f5ee; color: #0f8a54; }
.badge-status-expired, .badge-status-declined, .badge-status-lost, .badge-status-cancelled, .badge-status-failed { background: #fdeeee; color: #c04a4a; }
.badge-status-draft, .badge-status-archived, .badge-status-pending { background: #eef1f6; color: #5b6b83; }

/* Quote builder */
.service-tick-row { border: 1px solid #dfe6f0; border-radius: 6px; padding: 0.75rem 1rem; margin-bottom: 0.5rem; transition: border-color 0.15s, background 0.15s; }
.service-tick-row.is-selected { border-color: var(--esper-blue); background: var(--esper-blue-light); }
.service-tick-row .service-price { font-weight: 600; color: var(--esper-navy); }
.quote-total-bar { background: var(--esper-navy); color: #fff; border-radius: 8px; padding: 1rem 1.5rem; }
.quote-total-bar .total-amount { color: var(--esper-gold); font-size: 1.5rem; font-weight: 700; }

/* Copy-link box */
.copy-link-box input { background: #f7f9fc; }

/* Send-to-customer card */
.send-card .send-channel-btn { padding-top: 0.65rem; padding-bottom: 0.65rem; font-weight: 600; }
.send-card .send-channel-btn .icon { font-size: 1.05rem; }
.send-card .dropdown-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; background: none; border: 0; width: 100%; }
.send-card .dropdown-item:hover { background: #f5f7fb; }

/* Login page */
.esper-auth-logo img { height: 120px; }

/* Book-job slot picker */
.slot-btn { font-weight: 600; font-variant-numeric: tabular-nums; }
.slot-btn.is-chosen { background: var(--esper-navy); border-color: var(--esper-navy); color: #fff; }
.booking-confirm-box { background: var(--esper-blue-light); border-radius: 8px; padding: 1rem 1.25rem; }

/* Schedule diary */
.schedule-chip { background: var(--esper-blue-light); border-left: 3px solid var(--esper-navy); }
.schedule-chip.is-done { background: #f0f2f6; border-left-color: #9aa7ba; opacity: 0.75; }
.month-grid td.month-cell { width: 14.28%; height: 96px; vertical-align: top; padding: 4px 6px; border: 1px solid #e5e9f2; }
.month-grid td.is-out { background: #fafbfd; }
.month-grid td.is-out .month-day-number { color: #b6c2d4; }
.month-grid td.is-today { background: var(--esper-blue-light); }
.month-day-number { font-size: 12px; color: #5b6b83; margin-bottom: 2px; }
.month-chip { font-size: 11px; line-height: 1.35; padding: 1px 5px; margin-bottom: 2px; border-radius: 4px; background: var(--esper-blue-light); color: var(--esper-navy); border-left: 2px solid var(--esper-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.month-chip.is-done { background: #f0f2f6; color: #7a8aa0; border-left-color: #9aa7ba; }
.month-chip:hover { background: var(--esper-blue); color: #fff; }

/* Owed balance highlighting */
.balance-owed { color: #c04a4a; font-weight: 600; }

/* Availability paint grid (Meta ads scheduler style) */
.avail-grid { border-collapse: collapse; user-select: none; width: 100%; }
.avail-grid .hour-label { font-size: 10px; color: #8094ae; font-weight: 500; text-align: left; padding: 0 0 4px 1px; }
.avail-grid .day-label { font-size: 12px; color: #364a63; font-weight: 600; padding-right: 8px; text-align: right; white-space: nowrap; }
.avail-cell { width: 3.5%; height: 26px; border: 1px solid #e5e9f2; background: #f7f9fc; cursor: pointer; }
.avail-cell:hover { border-color: var(--esper-blue); }
.avail-cell.is-on { background: var(--esper-blue); border-color: var(--esper-navy); }
