:root {
    --dsa-black: #0b0b0b;
    --dsa-black-soft: #1a1a1a;
    --dsa-gold: #f2b705;
    --dsa-gold-strong: #d99f00;
    --dsa-gold-soft: rgba(242, 183, 5, 0.16);
    --dsa-canvas: #f4f5f7;
    --dsa-surface: #ffffff;
    --dsa-border: #e2e5e9;
    --bs-primary: #171717;
    --bs-primary-rgb: 23, 23, 23;
    --bs-link-color: #765700;
    --bs-link-hover-color: #4d3900;
}

html,
body.bg-gray {
    background: var(--dsa-canvas) !important;
}

nav,
nav.navbar-dark,
.navbar.navbar-dark,
nav#sidebarMenu .navbar,
#offcanvasLeft,
#offcanvasLeft .offcanvas-body {
    background: var(--dsa-black) !important;
}

.navbar-brand {
    background: var(--dsa-black) !important;
    box-shadow: none !important;
}

.dsa-brand-mark {
    align-items: center;
    background: var(--dsa-gold);
    border-radius: 0.65rem;
    color: var(--dsa-black);
    display: inline-flex;
    height: 2.25rem;
    justify-content: center;
    width: 2.25rem;
}

.dsa-brand-logo {
    display: block;
    flex: 0 0 auto;
    height: 2.7rem;
    object-fit: contain;
    width: 2.7rem;
}

.dsa-brand-name {
    color: var(--dsa-gold);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1;
    white-space: nowrap;
}

.dsa-dashboard-feature-icon {
    align-items: center;
    aspect-ratio: 1 / 1;
    border-radius: 50% !important;
    color: var(--dsa-black);
    display: inline-flex;
    flex: 0 0 3rem;
    height: 3rem;
    justify-content: center;
    padding: 0 !important;
    width: 3rem;
}

.dsa-nav-section { margin: 0.45rem 0; }
.dsa-nav-section summary { align-items: center; color: #aaa; cursor: pointer; display: flex; font-size: 0.74rem; justify-content: space-between; letter-spacing: 0.08em; list-style: none; padding: 0.55rem 1rem; text-transform: uppercase; }
.dsa-nav-section summary::-webkit-details-marker { display: none; }
.dsa-nav-section summary i { font-size: 0.65rem; transition: transform 160ms ease; }
.dsa-nav-section[open] summary i { transform: rotate(180deg); }
.dsa-nav-section summary:hover { color: var(--dsa-gold); }

nav#sidebarMenu .nav-link {
    border-left: 3px solid transparent;
    border-radius: 0 0.5rem 0.5rem 0;
    color: #d7d7d7;
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

nav#sidebarMenu .nav-link:hover {
    background: rgba(255, 255, 255, 0.07);
    color: #ffffff !important;
}

nav#sidebarMenu .nav-item.active {
    background: var(--dsa-gold-soft) !important;
}

nav#sidebarMenu .nav-item.active > a {
    border-left-color: var(--dsa-gold);
    color: var(--dsa-gold) !important;
    font-weight: 600;
}

.pageHeaderContainer,
footer.fixed-bottom {
    background: var(--dsa-surface) !important;
    border-color: var(--dsa-border) !important;
}

.pageHeaderContainer h1,
main#main-container {
    color: var(--dsa-black-soft) !important;
}

.card,
.modal-content,
.dropdown-menu {
    border-color: var(--dsa-border);
    border-radius: 0.85rem;
}

.btn-primary {
    background: var(--dsa-black);
    border-color: var(--dsa-black);
    color: #ffffff;
}

.btn-primary:hover,
.btn-primary:focus {
    background: var(--dsa-black-soft);
    border-color: var(--dsa-gold);
    color: var(--dsa-gold);
}

.btn-warning,
.dsa-highlight-action {
    background: var(--dsa-gold);
    border-color: var(--dsa-gold);
    color: var(--dsa-black);
    font-weight: 600;
}

.form-control:focus,
.form-select:focus,
.select2-container--focus .select2-selection {
    border-color: var(--dsa-gold-strong) !important;
    box-shadow: 0 0 0 0.2rem var(--dsa-gold-soft) !important;
}
.form-control::placeholder, textarea.form-control::placeholder { color: #a2a7ae !important; opacity: 1; }
.form-label, .form-text, .dsa-field-caption { color: #8a9098 !important; }
.select2-container--default .select2-selection--single .select2-selection__placeholder,
.select2-container--default .select2-search--dropdown .select2-search__field::placeholder { color: #a2a7ae !important; }
.form-control, .form-select { color: var(--dsa-black-soft); }

/* Standard dropdown: searchable Select2 control for long/configurable lists. */
.standard-dropdown + .select2-container { width: 100% !important; }
.standard-dropdown + .select2-container .select2-selection--single {
    align-items: center;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    display: flex;
    min-height: 38px;
}
.standard-dropdown + .select2-container .select2-selection__rendered { line-height: 36px; padding-left: 0.75rem; }
.standard-dropdown + .select2-container .select2-selection__arrow { height: 36px; }
.select2-container--open .select2-dropdown { border-color: var(--dsa-gold-strong); }
.select2-container .select2-search--dropdown .select2-search__field { border: 1px solid #adb5bd; border-radius: 0.25rem; padding: 0.5rem; }

.dsa-kpi-accent,
.badge-dsa-highlight {
    background: var(--dsa-gold-soft);
    color: #5f4600;
}

/* Shared CMS UI system primitives. New views should reuse these classes. */
.dsa-page-intro { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; margin: 1.5rem 0 1rem; }
.dsa-page-title { font-size: 1.55rem; font-weight: 700; margin: 0; }
.dsa-section-card-header,
.sales-dashboard-sections .card-header.bg-dark,
#saved-events-card > .card-header.bg-dark,
.amd-report > .card-header,
.report-card > .card-header {
    background: transparent !important;
    color: var(--dsa-gold-strong) !important;
    padding: 1rem 1.1rem;
}
.dsa-section-card-header > strong,
.sales-dashboard-sections .card-header > strong,
#saved-events-card > .card-header > strong,
.calendar-sections .card-header > strong,
.amd-report > .card-header > strong,
.report-card > .card-header {
    display: block;
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.2;
}
.sales-dashboard-sections .card-header + .card-body {
    background: transparent;
    padding: 0 1.1rem 1rem;
}
.sales-dashboard-sections .card-header:has(+ .card-body) {
    border-bottom: 0;
    padding-bottom: .3rem;
}
.sales-dashboard-sections .card-header + .card-body p { margin: 0; }
.service-form-group {
    border: 1px solid var(--dsa-border);
    border-radius: .375rem;
    margin: 0;
    padding: .75rem 1rem 1rem;
}
.service-form-group > legend {
    background: var(--dsa-surface);
    color: var(--bs-body-color);
    float: none;
    font-size: .875rem;
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 .45rem;
    padding: 0 .2rem;
    width: auto;
}
.service-form-subgroup {
    border-top: 1px solid var(--dsa-border);
    margin-top: .25rem;
    padding-top: 1rem;
}
.service-form-subgroup > h3 {
    font-size: .95rem;
    font-weight: 700;
    margin: 0 0 .85rem;
}
#saved-events-card > .card-header .small { color: var(--bs-secondary-color) !important; }
.calendar-sections .card-header,
div.card:has(> .card-body > #admin-custom-calendar) > .card-header {
    background: transparent !important;
    color: var(--dsa-gold-strong) !important;
}
.calendar-sections .card-header > strong,
div.card:has(> .card-body > #admin-custom-calendar) > .card-header > strong {
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.2;
}
.dashboard-heading h2,
.amd-section-title h2 {
    color: var(--dsa-gold-strong);
    font-size: 1.55rem !important;
    font-weight: 700;
}
.dsa-list-page-title { font-weight: 700 !important; }
.dsa-page-description { color: #6c757d; margin: .25rem 0 0; }
.dsa-page-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.dsa-standard-section { margin: 1.75rem 0; }
.dsa-standard-section > h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: .75rem; }
.dsa-guidance-panel, .dsa-validation-summary { align-items: flex-start; border-radius: .65rem; display: flex; gap: .75rem; margin: 1rem 0; padding: .9rem 1rem; }
.dsa-guidance-panel { background: #fff8dc; border-left: .35rem solid var(--dsa-gold-strong); color: var(--dsa-black-soft); }
.dsa-guidance-panel div { display: flex; flex-direction: column; }

/* Grouped form fields follow the same visual language as Activity cards. */
.dsa-form-group { background: var(--dsa-white, #fff); border: 1px solid #dce3ea; border-radius: .65rem; box-shadow: 0 .125rem .25rem rgba(0,0,0,.06); overflow: hidden; }
.dsa-form-group__header { background: #0b0b0b; color: #fff; display: block; font-size: .95rem; font-weight: 700; margin: 0; padding: .8rem 1rem; }
.dsa-form-group__body { padding: 1rem; }
.dsa-validation-summary { background: #fff0f1; border-left: .35rem solid #dc3545; color: #842029; }
.dsa-inline-message { align-items: flex-start; border-left: .35rem solid; border-radius: .65rem; display: flex; gap: .75rem; margin: 1rem 0; padding: .85rem 1rem; }
.dsa-inline-message--success { background: #edf8f0; border-color: #198754; color: #0f5132; }
.dsa-inline-message--error { background: #fff0f1; border-color: #dc3545; color: #842029; }
.dsa-inline-message--warning { background: #fff8dc; border-color: var(--dsa-gold-strong); color: #5f4600; }
.dsa-secondary-filters { border-top: 1px solid var(--dsa-border); margin-top: .75rem; padding-top: .75rem; }
.dsa-search-row { align-items: end; display: flex; flex-wrap: wrap; gap: .5rem; }
.dsa-search-field { flex: 1 1 15rem; min-width: 0; }
.dsa-search-field--wide { flex-grow: 1.6; }
.dsa-search-action { flex: 0 0 auto; }
.dsa-search-action .btn { white-space: nowrap; width: auto; }
.dsa-search-more { flex: 0 0 100%; width: 100%; }
@media (max-width: 767.98px) { .dsa-search-field, .dsa-search-action { flex-basis: 100%; } .dsa-search-action .btn { width: 100%; } }
.dsa-token-card { align-items: center; background: var(--dsa-surface); border: 1px solid var(--dsa-border); border-radius: .85rem; display: grid; gap: .35rem; padding: .8rem; }
.dsa-color-swatch { background: var(--swatch); border: 1px solid var(--dsa-border); border-radius: .5rem; display: block; height: 2.5rem; }
.dsa-token-card code { color: #6c757d; font-size: .75rem; }
.dsa-empty-state { align-items: center; color: #6c757d; display: flex; flex-direction: column; gap: .4rem; justify-content: center; min-height: 11rem; padding: 2rem; text-align: center; }
.dsa-empty-state i { color: var(--dsa-gold-strong); font-size: 2rem; }
.dsa-empty-state strong { color: var(--dsa-black-soft); }
.card > .card-header { background: var(--dsa-surface); border-color: var(--dsa-border); }
.modal-footer { gap: .5rem; }
@media (max-width: 575.98px) { .dsa-page-intro { flex-direction: column; } .dsa-page-actions { width: 100%; } }
.table th, .table td { text-align: left; vertical-align: top; }
.table > thead > tr > th { background-color: #000 !important; border-color: #292929 !important; color: #fff !important; }
.table > thead > tr > th a, .table > thead > tr > th .text-muted, .table > thead > tr > th small { color: #fff !important; }
.account-tabs .nav-link { border: 1px solid var(--dsa-border); color: var(--dsa-black-soft); }
.account-tabs .nav-link.active { background: var(--dsa-black-soft); border-color: var(--dsa-black-soft); color: var(--dsa-gold); }
.dsa-tab-shell { overflow: hidden; }
.dsa-tab-scroll { border-bottom: 1px solid var(--dsa-border); overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; }
.dsa-record-tabs { border: 0; flex-wrap: nowrap; min-width: max-content; padding: .75rem 1rem 0; }
.dsa-record-tabs .nav-link { border: 0; border-bottom: 3px solid transparent; color: #6c757d; white-space: nowrap; }
.dsa-record-tabs .nav-link.active { background: transparent; border-bottom-color: var(--dsa-gold); color: var(--dsa-black-soft); font-weight: 600; }
.dsa-record-tabs .badge { font-size: .68rem; margin-left: .25rem; vertical-align: text-top; }
.dsa-tab-heading { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; padding: 1.25rem; }
.dsa-tab-heading h4 { font-size: 1.05rem; font-weight: 700; margin: 0; }
.dsa-tab-heading p { color: #6c757d; margin: .2rem 0 0; }
@media (max-width: 575.98px) { .dsa-tab-heading { flex-direction: column; } .dsa-tab-heading .btn { width: 100%; } }
.dsa-calendar-card{overflow:hidden;border:0;border-radius:12px;background:#fff}.dsa-calendar-card>.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--dsa-border);background:#fff;color:#111;padding:1rem 1.1rem}.dsa-calendar-card>.card-header strong{font-size:1rem}.dsa-calendar-card>.card-body{padding:1rem}.dsa-calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem 1rem;color:#73777d;font-size:.8rem}.dsa-calendar-legend-item{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.dsa-calendar-legend-dot{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;background:var(--event-color,#111)}.dsa-calendar-surface{min-height:560px;background:#fff}.dsa-calendar-surface .fc .fc-toolbar{align-items:center;gap:.75rem;margin-bottom:1rem}.dsa-calendar-surface .fc .fc-toolbar-title{font-size:1.15rem;font-weight:700;color:#111}.dsa-calendar-surface .fc .fc-button{border-radius:4px;border-color:#111;background:#111;color:#fff;box-shadow:none;text-transform:capitalize}.dsa-calendar-surface .fc .fc-button:hover,.dsa-calendar-surface .fc .fc-button:focus{border-color:#2b2b2b;background:#2b2b2b}.dsa-calendar-surface .fc .fc-button-primary:not(:disabled).fc-button-active{border-color:#d49d00;background:#f2b705;color:#111}.dsa-calendar-surface .fc-theme-standard th{background:#f4f5f7;color:#5f646b;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.dsa-calendar-surface .fc-theme-standard td,.dsa-calendar-surface .fc-theme-standard th{border-color:#e2e5e9}.dsa-calendar-surface .fc-daygrid-day-number{color:#111;text-decoration:none}.dsa-calendar-surface .fc-event{border-radius:3px;padding:1px 3px;font-size:.76rem;cursor:pointer}.dsa-calendar-list{margin-top:1rem}.dsa-calendar-list .list-group-item{padding:1rem 1.1rem}.dsa-calendar-mini{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--dsa-border);border-top:1px solid var(--dsa-border)}.dsa-calendar-mini>div{min-height:72px;padding:.4rem;border-right:1px solid var(--dsa-border);border-bottom:1px solid var(--dsa-border);color:#73777d;font-size:.75rem}.dsa-calendar-mini .dsa-calendar-mini-event{display:block;margin-top:.35rem;border-radius:3px;background:#0d6efd;color:#fff;padding:.18rem .3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dsa-calendar-mini .dsa-calendar-mini-event--availability{background:#000;color:#f2b705}@media(max-width:767.98px){.dsa-calendar-card>.card-header{display:block}.dsa-calendar-legend{margin-top:.65rem}.dsa-calendar-surface{min-height:460px}.dsa-calendar-surface .fc .fc-toolbar{align-items:flex-start;flex-direction:column}.dsa-calendar-surface .fc .fc-toolbar-chunk{display:flex;flex-wrap:wrap}}
#admin-custom-calendar{min-height:560px;background:#fff}div.card:has(> .card-body > #admin-custom-calendar){overflow:hidden;border:0!important;border-radius:12px}div.card:has(> .card-body > #admin-custom-calendar)>.card-header{border-bottom:1px solid var(--dsa-border);background:#fff!important;padding:1rem 1.1rem}#admin-custom-calendar .fc-toolbar{gap:.75rem;margin-bottom:1rem}#admin-custom-calendar .fc-toolbar-title{font-size:1.15rem;font-weight:700;color:#111}#admin-custom-calendar .fc-button{border-radius:4px;border-color:#111;background:#111;color:#fff;box-shadow:none;text-transform:capitalize}#admin-custom-calendar .fc-button-primary:not(:disabled).fc-button-active{border-color:#d49d00;background:#f2b705;color:#111}#admin-custom-calendar .fc-theme-standard th{background:#f4f5f7;color:#5f646b;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}#saved-events-card{margin-top:1rem;border-radius:12px}#ams-filters-calendar .card{border-radius:12px}#ams-filters-calendar .card-body>.row{display:flex;align-items:flex-end;gap:.75rem}#ams-filters-calendar .card-body>.row>[class*=col-]{flex:1 1 190px;width:auto;max-width:none}
.dsa-calendar-surface.fc .fc-toolbar{align-items:center;gap:.75rem;margin-bottom:1rem}.dsa-calendar-surface.fc .fc-toolbar-title{font-size:1.15rem;font-weight:700;color:#111}.dsa-calendar-surface.fc .fc-button{border-radius:4px;border-color:#111;background:#111;color:#fff;box-shadow:none;text-transform:capitalize}.dsa-calendar-surface.fc .fc-button:hover,.dsa-calendar-surface.fc .fc-button:focus{border-color:#2b2b2b;background:#2b2b2b}.dsa-calendar-surface.fc .fc-button-primary:not(:disabled).fc-button-active{border-color:#d49d00;background:#f2b705;color:#111}.dsa-calendar-surface.fc.fc-theme-standard th{background:#f4f5f7;color:#5f646b;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.dsa-calendar-surface.fc.fc-theme-standard td,.dsa-calendar-surface.fc.fc-theme-standard th{border-color:#e2e5e9}.dsa-calendar-surface.fc .fc-daygrid-day-number{color:#111;text-decoration:none}.dsa-calendar-surface.fc .fc-event{border-radius:3px;padding:1px 3px;font-size:.76rem;cursor:pointer}
.ams-calendar-activity-toggle{padding:2px 4px 3px;line-height:1.2}.ams-calendar-activity-toggle .btn{font-size:.72rem;color:#111}.ams-calendar-activity-toggle .btn:hover{color:#b88700}

/* Dashboard and calendar section headings: title treatment without a filled band. */
.sales-dashboard-sections .card-header,
#saved-events-card > .card-header,
.calendar-sections .card-header,
.amd-report > .card-header,
.report-card > .card-header,
.dsa-calendar-card > .card-header,
div.card:has(> .card-body > #admin-custom-calendar) > .card-header {
    background: transparent !important;
    color: var(--dsa-gold-strong) !important;
}
.sales-dashboard-sections .card-header > strong,
#saved-events-card > .card-header > strong,
.calendar-sections .card-header > strong,
.amd-report > .card-header > strong,
.report-card > .card-header,
.dsa-calendar-card > .card-header strong,
div.card:has(> .card-body > #admin-custom-calendar) > .card-header > strong {
    font-size: 1.55rem !important;
    font-weight: 700;
    line-height: 1.2;
}
