/*
 * Booky Premium Theme — design tokens
 * Load after Bootstrap/SB Admin 2 and before components.css.
 * Scope: add `booky-premium` to the <body> element.
 */

.booky-premium {
    --bp-font-sans: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    --bp-ink: #172033;
    --bp-ink-soft: #414b61;
    --bp-muted: #718096;
    --bp-muted-light: #98a2b3;

    --bp-primary: #4f56d9;
    --bp-primary-dark: #343b9f;
    --bp-primary-light: #7378ed;
    --bp-primary-soft: #eeeeff;
    --bp-primary-faint: #f7f7ff;

    --bp-success: #169b72;
    --bp-success-dark: #08795b;
    --bp-success-soft: #e8f8f2;
    --bp-info: #2385aa;
    --bp-info-soft: #e7f6fb;
    --bp-warning: #c27a18;
    --bp-warning-soft: #fff4df;
    --bp-danger: #d64e60;
    --bp-danger-soft: #fff0f1;

    --bp-canvas: #f5f7fb;
    --bp-surface: #ffffff;
    --bp-surface-subtle: #f9fafc;
    --bp-border: #e5e9f1;
    --bp-border-strong: #d6dce8;

    --bp-sidebar-start: #171d42;
    --bp-sidebar-mid: #303ca5;
    --bp-sidebar-end: #5963df;

    --bp-radius-xs: 7px;
    --bp-radius-sm: 10px;
    --bp-radius-md: 14px;
    --bp-radius-lg: 18px;
    --bp-radius-xl: 22px;
    --bp-radius-pill: 999px;

    --bp-shadow-xs: 0 2px 8px rgba(33, 43, 70, .05);
    --bp-shadow-sm: 0 8px 24px rgba(33, 43, 70, .07);
    --bp-shadow-md: 0 12px 35px rgba(33, 43, 70, .09);
    --bp-shadow-lg: 0 22px 60px rgba(23, 32, 51, .18);
    --bp-focus: 0 0 0 .2rem rgba(79, 86, 217, .18);

    --bp-transition: 180ms ease;

    color: var(--bp-ink);
    background: var(--bp-canvas);
    font-family: var(--bp-font-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.booky-premium ::selection {
    color: var(--bp-primary-dark);
    background: #dfe1ff;
}

.booky-premium * {
    scrollbar-color: #c9cfdd transparent;
    scrollbar-width: thin;
}

.booky-premium *::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}

.booky-premium *::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: var(--bp-radius-pill);
    background: #c9cfdd;
    background-clip: padding-box;
}

.booky-premium *::-webkit-scrollbar-thumb:hover {
    background: #aeb6c8;
    background-clip: padding-box;
}

.booky-premium a {
    color: var(--bp-primary);
    transition: color var(--bp-transition), opacity var(--bp-transition);
}

.booky-premium a:hover {
    color: var(--bp-primary-dark);
}

.booky-premium :focus-visible {
    outline: 2px solid var(--bp-primary-light);
    outline-offset: 2px;
}

.booky-premium h1,
.booky-premium h2,
.booky-premium h3,
.booky-premium h4,
.booky-premium h5,
.booky-premium h6,
.booky-premium .h1,
.booky-premium .h2,
.booky-premium .h3,
.booky-premium .h4,
.booky-premium .h5,
.booky-premium .h6 {
    color: var(--bp-ink);
    font-weight: 800;
    letter-spacing: -.018em;
}

.booky-premium .text-gray-900 { color: var(--bp-ink) !important; }
.booky-premium .text-gray-800 { color: var(--bp-ink-soft) !important; }
.booky-premium .text-gray-700,
.booky-premium .text-gray-600 { color: var(--bp-muted) !important; }
.booky-premium .text-primary { color: var(--bp-primary) !important; }
.booky-premium .text-success { color: var(--bp-success) !important; }
.booky-premium .text-danger { color: var(--bp-danger) !important; }
.booky-premium .text-warning { color: var(--bp-warning) !important; }
.booky-premium .text-info { color: var(--bp-info) !important; }
.booky-premium .text-muted { color: var(--bp-muted) !important; }
.booky-premium .bg-light { background-color: var(--bp-surface-subtle) !important; }
.booky-premium .bg-white { background-color: var(--bp-surface) !important; }
.booky-premium .border,
.booky-premium .border-top,
.booky-premium .border-right,
.booky-premium .border-bottom,
.booky-premium .border-left { border-color: var(--bp-border) !important; }

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