/* Option 1 is the existing custom.css palette, unchanged. Only the selector is
   shared. Option 2 overrides presentation, never operational status meanings. */
.nsp-colour-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 40px;
    min-height: 40px;
    padding: 8px 12px !important;
    border: 1px solid var(--nsp-border);
    border-radius: 8px;
    background: #fff;
    color: var(--nsp-blue-dark) !important;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.nsp-colour-toggle:hover,
.nsp-colour-toggle[aria-expanded="true"] { background: var(--nsp-blue-soft); }
.nsp-colour-dropdown {
    width: 310px;
    max-width: calc(100vw - 24px);
    padding: 8px;
    border: 1px solid var(--nsp-border);
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(35, 20, 30, .16);
}
.nsp-colour-dropdown .dropdown-header { padding: 8px; color: var(--nsp-ink); font-size: 15px; font-weight: 700; }
.nsp-colour-choice {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 68px;
    padding: 10px 8px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: #fff;
    color: var(--nsp-ink);
    white-space: normal;
}
.nsp-colour-choice:hover,
.nsp-colour-choice:focus,
.nsp-colour-choice[aria-checked="true"] { border-color: var(--nsp-blue); background: var(--nsp-blue-soft); color: var(--nsp-ink); }
.nsp-colour-choice strong { display: block; font-size: 15px; line-height: 1.3; }
.nsp-colour-choice small { display: block; margin-top: 3px; color: #655c68; font-size: 13px; }
.nsp-colour-swatch { width: 34px; height: 38px; flex: 0 0 34px; border: 1px solid #d5c4cc; border-radius: 7px; }
.nsp-colour-swatch--classic { background: linear-gradient(90deg, #0a315f 38%, #f4f7fb 38%); }
.nsp-colour-swatch--rose { background: linear-gradient(90deg, #b80b56 38%, #fff0f6 38%); }
.nsp-colour-check { margin-left: auto; color: var(--nsp-blue); visibility: hidden; }
.nsp-colour-choice[aria-checked="true"] .nsp-colour-check { visibility: visible; }
.nsp-colour-note { margin: 9px 8px 3px; color: #655c68; font-size: 12px; line-height: 1.4; }
.nsp-colour-toggle:focus-visible,
.nsp-colour-choice:focus-visible { outline: 2px solid var(--nsp-blue); outline-offset: 2px; }
@media (max-width: 767.98px) {
    .nsp-colour-toggle-label { display: none; }
    .nsp-colour-toggle { padding: 8px !important; }
    .nsp-colour-menu { position: static; }
    .nsp-colour-dropdown { right: 12px; left: auto; }
}

html[data-admin-theme="rose"] {
    --nsp-blue: #ad1457;
    --nsp-blue-dark: #7c1040;
    --nsp-blue-soft: #fff0f6;
    --nsp-cyan: #0b718f;
    --nsp-red: #c42b3b;
    --nsp-orange: #a54b08;
    --nsp-success: #08745b;
    --nsp-ink: #30212d;
    --nsp-muted: #71616c;
    --nsp-border: #ead5df;
    --nsp-surface: #fff;
    --nsp-page: #fff0f6;
    --nsp-shadow: 0 8px 24px rgba(116, 20, 66, .06);
    --nsp-theme-focus: rgba(173, 20, 87, .19);
    --nsp-theme-sidebar: #b80b56;
    --nsp-theme-sidebar-active: #88103f;
    color-scheme: light;
}
html[data-admin-theme="rose"] body { color: var(--nsp-ink); }
html[data-admin-theme="rose"] .nsp-sidebar {
    background: var(--nsp-theme-sidebar);
    box-shadow: 6px 0 24px rgba(124, 16, 64, .14);
}
html[data-admin-theme="rose"] .nsp-brand-link { border-bottom-color: var(--nsp-border) !important; }
html[data-admin-theme="rose"] .nsp-brand-link .brand-text { color: var(--nsp-blue); }
html[data-admin-theme="rose"] .nav-sidebar .nav-link,
html[data-admin-theme="rose"] .nav-sidebar .nav-icon { color: #fff !important; }
html[data-admin-theme="rose"] .nav-sidebar .nav-link:hover,
html[data-admin-theme="rose"] .nav-sidebar .menu-open > .nav-link { background: #9e0c49; }
html[data-admin-theme="rose"] .nav-sidebar .nav-link.active {
    background: var(--nsp-theme-sidebar-active) !important;
    box-shadow: inset 3px 0 0 #ffd0e2;
}
html[data-admin-theme="rose"] .nsp-sidebar-footer,
html[data-admin-theme="rose"] .nsp-menu-filter-empty { color: #ffe2ee; }
html[data-admin-theme="rose"] .nsp-menu-filter-control .form-control,
html[data-admin-theme="rose"] .sidebar .select2-selection--single { background: #a10d4c; border-color: #df80a9; color: #fff; }
html[data-admin-theme="rose"] .nsp-menu-filter-control .form-control::placeholder,
html[data-admin-theme="rose"] .sidebar .select2-selection__placeholder { color: #ffe5ef !important; opacity: 1; }
html[data-admin-theme="rose"] .nsp-menu-filter-control .form-control:focus { border-color: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.22); }
html[data-admin-theme="rose"] .nsp-main-header,
html[data-admin-theme="rose"] .main-footer { background: #fff; border-color: var(--nsp-border); }
html[data-admin-theme="rose"] .nsp-admin .content-wrapper { background: var(--nsp-page); }
html[data-admin-theme="rose"] .nsp-command-header { background: linear-gradient(120deg, #fff, #fff7fa 65%, #ffe1ed); border-color: var(--nsp-border); box-shadow: var(--nsp-shadow); }
html[data-admin-theme="rose"] .nsp-auth-page { background: radial-gradient(ellipse at top left, #ffd2e4, transparent 65%), #fff0f6; }

/* Keep primary actions, native controls and plugin states in the same palette. */
html[data-admin-theme="rose"] :where(.content-wrapper, .modal, .main-footer) a:not(.btn):not(.badge):not(.nav-link):not([class*="nsp-"]) { color: var(--nsp-blue); }
html[data-admin-theme="rose"] .btn-primary,
html[data-admin-theme="rose"] .btn-info { background: var(--nsp-blue); border-color: var(--nsp-blue); color: #fff; }
html[data-admin-theme="rose"] .btn-primary:hover,
html[data-admin-theme="rose"] .btn-primary:focus,
html[data-admin-theme="rose"] .btn-primary:not(:disabled):not(.disabled):active,
html[data-admin-theme="rose"] .btn-info:hover,
html[data-admin-theme="rose"] .btn-info:focus,
html[data-admin-theme="rose"] .btn-info:not(:disabled):not(.disabled):active { background: var(--nsp-blue-dark); border-color: var(--nsp-blue-dark); color: #fff; }
html[data-admin-theme="rose"] .btn-outline-primary { border-color: var(--nsp-blue); color: var(--nsp-blue); }
html[data-admin-theme="rose"] .btn-outline-primary:hover,
html[data-admin-theme="rose"] .btn-outline-primary:not(:disabled):not(.disabled):active { background: var(--nsp-blue); border-color: var(--nsp-blue); color: #fff; }
html[data-admin-theme="rose"] .btn-success:hover,
html[data-admin-theme="rose"] .btn-success:focus { background: #085c74; border-color: #085c74; }
html[data-admin-theme="rose"] .btn-warning:hover,
html[data-admin-theme="rose"] .btn-warning:focus { background: #843b06; border-color: #843b06; }
html[data-admin-theme="rose"] .text-primary,
html[data-admin-theme="rose"] .text-info { color: var(--nsp-blue) !important; }
html[data-admin-theme="rose"] .text-muted { color: var(--nsp-muted) !important; }
html[data-admin-theme="rose"] .text-danger { color: #b42332 !important; }
html[data-admin-theme="rose"] .text-success { color: #08745b !important; }
html[data-admin-theme="rose"] .badge-primary,
html[data-admin-theme="rose"] .badge-info,
html[data-admin-theme="rose"] .bg-primary,
html[data-admin-theme="rose"] .bg-info { background-color: var(--nsp-blue) !important; color: #fff !important; }
html[data-admin-theme="rose"] .badge-success { background: #08745b; color: #fff; }
html[data-admin-theme="rose"] .badge-danger { background: #b42332; color: #fff; }
html[data-admin-theme="rose"] .badge-warning { background: #fff0bd; color: #704a00; }
html[data-admin-theme="rose"] .nav-tabs .nav-link { color: var(--nsp-blue); }
html[data-admin-theme="rose"] .nav-tabs .nav-link.active { color: var(--nsp-ink); border-color: var(--nsp-border) var(--nsp-border) #fff; }
html[data-admin-theme="rose"] .nav-pills:not(.nav-sidebar) .nav-link.active { background: var(--nsp-blue); color: #fff; }
html[data-admin-theme="rose"] .page-link { color: var(--nsp-blue); border-color: var(--nsp-border); }
html[data-admin-theme="rose"] .page-item.active .page-link { background: var(--nsp-blue); border-color: var(--nsp-blue); color: #fff; }
html[data-admin-theme="rose"] input[type="checkbox"],
html[data-admin-theme="rose"] input[type="radio"] { accent-color: var(--nsp-blue); }
html[data-admin-theme="rose"] :where(.content-wrapper, .modal, .login-box) .form-control,
html[data-admin-theme="rose"] :where(.content-wrapper, .modal, .login-box) .custom-select,
html[data-admin-theme="rose"] .select2-container--default .select2-selection { border-color: var(--nsp-border); color: var(--nsp-ink); }
html[data-admin-theme="rose"] .form-control::placeholder { color: var(--nsp-muted); opacity: 1; }
html[data-admin-theme="rose"] .form-control:focus,
html[data-admin-theme="rose"] .custom-select:focus,
html[data-admin-theme="rose"] .select2-container--focus .select2-selection,
html[data-admin-theme="rose"] .select2-container--open .select2-selection { border-color: var(--nsp-blue); box-shadow: 0 0 0 3px var(--nsp-theme-focus); }
html[data-admin-theme="rose"] .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--nsp-blue); color: #fff; }
html[data-admin-theme="rose"] .select2-container--default .select2-selection--multiple .select2-selection__choice { background: var(--nsp-blue-soft); border-color: var(--nsp-border); color: var(--nsp-blue-dark); }
html[data-admin-theme="rose"] .custom-control-input:checked ~ .custom-control-label::before { background: var(--nsp-blue); border-color: var(--nsp-blue); }
html[data-admin-theme="rose"] .icheck-primary > input:first-child:checked + label::before,
html[data-admin-theme="rose"] .icheck-primary > input:first-child:checked + input[type="hidden"] + label::before { background: var(--nsp-blue); border-color: var(--nsp-blue); }
html[data-admin-theme="rose"] .input-group-text { color: var(--nsp-blue-dark); background: var(--nsp-blue-soft); border-color: var(--nsp-border); }
html[data-admin-theme="rose"] .btn:focus-visible,
html[data-admin-theme="rose"] a:focus-visible { outline: 2px solid var(--nsp-blue); outline-offset: 3px; }
html[data-admin-theme="rose"] .nsp-sidebar a:focus-visible { outline-color: #fff; }

/* Soft table surfaces, rather than saturated fills behind dense records. */
html[data-admin-theme="rose"] .table thead th,
html[data-admin-theme="rose"] table.dataTable thead th { background: #fff5f9; color: var(--nsp-blue-dark); border-color: var(--nsp-border); }
html[data-admin-theme="rose"] .table-bordered td,
html[data-admin-theme="rose"] .table-bordered th { border-color: var(--nsp-border); }
html[data-admin-theme="rose"] .table-striped tbody tr:nth-of-type(odd) { background: #fffbfd; }
html[data-admin-theme="rose"] .table-hover tbody tr:hover,
html[data-admin-theme="rose"] table.dataTable tbody tr:hover { background: var(--nsp-blue-soft); }
html[data-admin-theme="rose"] table.dataTable tbody tr.selected,
html[data-admin-theme="rose"] table.dataTable tbody tr.selected td { background: #f8d8e7 !important; color: var(--nsp-ink) !important; }
html[data-admin-theme="rose"] .nsp-column-filter-row input,
html[data-admin-theme="rose"] .dataTables_filter input { border-color: var(--nsp-border); color: var(--nsp-ink); }
html[data-admin-theme="rose"] .nsp-filter-chip,
html[data-admin-theme="rose"] #customer-context .nsp-booking-recent-link { background: var(--nsp-blue-soft); color: var(--nsp-blue-dark); border-color: var(--nsp-border); }
html[data-admin-theme="rose"] .nsp-schedule-toolbar,
html[data-admin-theme="rose"] .nsp-schedule-controls,
html[data-admin-theme="rose"] .nsp-command-search .form-control { background: #fff7fa; border-color: var(--nsp-border); }
html[data-admin-theme="rose"] .nsp-filter-pills button.active,
html[data-admin-theme="rose"] .nsp-segmented-control button.active { background: var(--nsp-blue-soft); color: var(--nsp-blue-dark); border-color: var(--nsp-border); }

/* Product availability keeps green / red / amber status semantics. */
html[data-admin-theme="rose"] .product-calendar,
html[data-admin-theme="rose"] .admin-product-calendar {
    --pc-brand: var(--nsp-blue);
    --pc-ink: var(--nsp-ink);
    --pc-muted: var(--nsp-muted);
    --pc-line: var(--nsp-border);
    --pc-soft: var(--nsp-blue-soft);
}
html[data-admin-theme="rose"] .calendar-mode-switch__button.is-active { border-color: var(--nsp-blue); background: var(--nsp-blue-soft); color: var(--nsp-blue-dark); box-shadow: 0 0 0 3px var(--nsp-theme-focus); }
html[data-admin-theme="rose"] .calendar-mode-switch__button > i { background: var(--nsp-blue-soft); color: var(--nsp-blue); }
