/* ============================================================================
   /apps/admin — AesthetIQ Admin theme.
   Brand primary: #6D2E46 (deep wine). Built as tokens over Bootstrap 5.3's
   CSS-variable API so components inherit the brand consistently.
   Mobile-first; wide content scrolls inside its own container.
============================================================================ */
:root {
    --aq-primary: #6D2E46;
    --aq-primary-dark: #58253a;
    --aq-primary-darker: #431c2c;
    --aq-primary-ink: #2e131f;
    --aq-primary-soft: #8a4a63;
    --aq-tint: #f8f0f3;
    --aq-tint-2: #efdfe6;
    --aq-bg: #f6f4f6;
    --aq-surface: #ffffff;
    --aq-ink: #231a20;
    --aq-muted: #7c7280;
    --aq-border: #eae3e7;
    --aq-shadow-sm: 0 1px 2px rgba(46, 19, 31, .06);
    --aq-shadow: 0 1px 2px rgba(46, 19, 31, .05), 0 10px 30px -18px rgba(109, 46, 70, .25);
    --aq-radius: .75rem;

    /* Bootstrap re-branding */
    --bs-primary: var(--aq-primary);
    --bs-primary-rgb: 109, 46, 70;
    --bs-link-color: var(--aq-primary);
    --bs-link-hover-color: var(--aq-primary-dark);
    --bs-body-color: var(--aq-ink);
    --bs-body-bg: var(--aq-bg);
    --bs-border-radius: .55rem;
}

html {
    font-size: 15px;
}

body {
    background: var(--aq-bg);
    font-family: "Inter", -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: var(--aq-ink);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, .modal-title {
    font-weight: 600;
    letter-spacing: -.01em;
}

a { color: var(--aq-primary); }
a:hover { color: var(--aq-primary-dark); }

/* ---- buttons ------------------------------------------------------------- */
.btn { font-weight: 500; }

.btn-primary {
    --bs-btn-bg: var(--aq-primary);
    --bs-btn-border-color: var(--aq-primary);
    --bs-btn-hover-bg: var(--aq-primary-dark);
    --bs-btn-hover-border-color: var(--aq-primary-dark);
    --bs-btn-active-bg: var(--aq-primary-darker);
    --bs-btn-active-border-color: var(--aq-primary-darker);
    --bs-btn-disabled-bg: var(--aq-primary-soft);
    --bs-btn-disabled-border-color: var(--aq-primary-soft);
    --bs-btn-focus-shadow-rgb: 109, 46, 70;
    box-shadow: 0 1px 2px rgba(67, 28, 44, .35);
}

.btn-outline-primary {
    --bs-btn-color: var(--aq-primary);
    --bs-btn-border-color: var(--aq-tint-2);
    --bs-btn-hover-bg: var(--aq-tint);
    --bs-btn-hover-color: var(--aq-primary-dark);
    --bs-btn-hover-border-color: var(--aq-tint-2);
    --bs-btn-active-bg: var(--aq-tint-2);
    --bs-btn-active-color: var(--aq-primary-dark);
    --bs-btn-active-border-color: var(--aq-tint-2);
    --bs-btn-focus-shadow-rgb: 109, 46, 70;
}

.btn-outline-secondary {
    --bs-btn-color: #5c5260;
    --bs-btn-border-color: var(--aq-border);
    --bs-btn-hover-bg: #f2eef1;
    --bs-btn-hover-color: var(--aq-ink);
    --bs-btn-hover-border-color: var(--aq-border);
    --bs-btn-active-bg: var(--aq-tint-2);
    --bs-btn-active-color: var(--aq-ink);
    --bs-btn-active-border-color: var(--aq-border);
}

/* ---- forms --------------------------------------------------------------- */
.form-control, .form-select {
    border-color: var(--aq-border);
}

.form-control:focus, .form-select:focus {
    border-color: var(--aq-primary-soft);
    box-shadow: 0 0 0 .2rem rgba(109, 46, 70, .12);
}

.form-check-input:checked {
    background-color: var(--aq-primary);
    border-color: var(--aq-primary);
}

.form-check-input:focus {
    border-color: var(--aq-primary-soft);
    box-shadow: 0 0 0 .2rem rgba(109, 46, 70, .12);
}

.form-label {
    font-size: .8rem;
    font-weight: 600;
    color: #554952;
    margin-bottom: .3rem;
}

/* ---- sidebar ------------------------------------------------------------- */
.aq-sidebar {
    width: 256px;
    min-height: 100vh;
    max-height: 100vh;
    overflow-y: auto;
    background: linear-gradient(180deg, var(--aq-primary-ink) 0%, var(--aq-primary-darker) 55%, #4c2033 100%);
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .18) transparent;
}

.aq-brand {
    color: #fff;
    font-weight: 700;
    letter-spacing: .01em;
    display: inline-flex;
    align-items: center;
}

.aq-brand .aq-brand-mark {
    width: 34px;
    height: 34px;
    border-radius: .6rem;
    background: linear-gradient(135deg, var(--aq-primary-soft), var(--aq-primary));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: .6rem;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}

.aq-nav-group {
    color: rgba(255, 255, 255, .38);
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin: 1.1rem 0 .3rem .65rem;
}

.aq-sidebar .nav-link {
    color: rgba(255, 255, 255, .72);
    border-radius: .55rem;
    font-size: .92rem;
    padding: .42rem .65rem;
    transition: background .15s ease, color .15s ease;
}

.aq-sidebar .nav-link i {
    opacity: .75;
}

.aq-sidebar .nav-link:hover {
    color: #fff;
    background: rgba(255, 255, 255, .07);
}

.aq-sidebar .nav-link.active {
    color: #fff;
    background: rgba(255, 255, 255, .13);
    box-shadow: inset 2px 0 0 #d9a5bb;
}

.aq-sidebar hr {
    border-color: rgba(255, 255, 255, .12);
    opacity: 1;
}

.aq-sidebar .btn-outline-light {
    --bs-btn-color: rgba(255, 255, 255, .85);
    --bs-btn-border-color: rgba(255, 255, 255, .25);
    --bs-btn-hover-bg: rgba(255, 255, 255, .12);
    --bs-btn-hover-border-color: rgba(255, 255, 255, .35);
    --bs-btn-hover-color: #fff;
}

@media (max-width: 991.98px) {
    .aq-sidebar {
        min-height: auto;
        width: 288px;
    }
}

/* ---- header / breadcrumb / avatar ---------------------------------------- */
.aq-main {
    min-width: 0;
}

.aq-main > header {
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--aq-border);
    min-height: 56px;
}

.breadcrumb {
    --bs-breadcrumb-divider-color: #b9aeb6;
    font-size: .85rem;
}

.breadcrumb a {
    text-decoration: none;
    color: var(--aq-muted);
}

.breadcrumb-item.active {
    color: var(--aq-ink);
    font-weight: 600;
}

.aq-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--aq-tint-2);
    color: var(--aq-primary);
    font-size: .78rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ---- cards & tables ------------------------------------------------------ */
.card {
    border: 0;
    border-radius: var(--aq-radius);
    box-shadow: var(--aq-shadow-sm);
}

.table-responsive {
    background: var(--aq-surface);
    border-radius: var(--aq-radius);
    box-shadow: var(--aq-shadow);
}

.table {
    margin-bottom: 0;
    --bs-table-hover-bg: var(--aq-tint);
}

.table thead th {
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--aq-muted);
    background: #fbf9fb;
    border-bottom: 1px solid var(--aq-border);
    padding: .7rem .75rem;
    white-space: nowrap;
}

.table tbody td {
    padding: .65rem .75rem;
    border-color: #f1ecf0;
    font-size: .9rem;
    vertical-align: middle;
}

.badge {
    font-weight: 600;
    border-radius: 2rem;
    padding: .32em .7em;
}

/* soft, tinted badge palette (SaaS style) */
.badge.text-bg-success { background: #e5f4ec !important; color: #16794c !important; }
.badge.text-bg-info { background: var(--aq-tint) !important; color: var(--aq-primary) !important; }
.badge.text-bg-warning { background: #fdf1dd !important; color: #9a6a12 !important; }
.badge.text-bg-danger { background: #fde8e8 !important; color: #b4232e !important; }
.badge.text-bg-secondary { background: #efedf0 !important; color: #665c6b !important; }

/* ---- pagination ---------------------------------------------------------- */
.pagination {
    --bs-pagination-color: var(--aq-primary);
    --bs-pagination-hover-color: var(--aq-primary-dark);
    --bs-pagination-hover-bg: var(--aq-tint);
    --bs-pagination-focus-color: var(--aq-primary-dark);
    --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(109, 46, 70, .12);
    --bs-pagination-active-bg: var(--aq-primary);
    --bs-pagination-active-border-color: var(--aq-primary);
    --bs-pagination-border-color: var(--aq-border);
}

/* ---- modal --------------------------------------------------------------- */
.modal-content {
    border: 0;
    border-radius: var(--aq-radius);
    box-shadow: 0 24px 70px -20px rgba(46, 19, 31, .45);
}

.modal-header {
    border-bottom: 1px solid var(--aq-border);
    background: #fbf9fb;
    border-top-left-radius: var(--aq-radius);
    border-top-right-radius: var(--aq-radius);
}

.modal-footer {
    border-top: 1px solid var(--aq-border);
}

/* ---- smart combo (AQCombo) ----------------------------------------------- */
.aq-combo .aq-combo-menu {
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid var(--aq-border);
    border-radius: .55rem;
    box-shadow: var(--aq-shadow);
}

.aq-combo .dropdown-item.active,
.aq-combo .dropdown-item:active {
    background: var(--aq-tint);
    color: var(--aq-primary-dark);
}

.aq-combo .aq-combo-clear {
    position: absolute;
    right: .25rem;
    top: 50%;
    transform: translateY(-50%);
    color: #b3a7af;
    text-decoration: none;
    z-index: 5;
}

/* ---- loading overlay ------------------------------------------------------ */
.aq-loading {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(46, 19, 31, .38);
    backdrop-filter: blur(2px);
}

/* ---- login page ----------------------------------------------------------- */
.aq-login-body {
    min-height: 100vh;
    background:
        radial-gradient(1000px 500px at 85% -10%, rgba(138, 74, 99, .55), transparent 60%),
        radial-gradient(800px 420px at -10% 110%, rgba(109, 46, 70, .5), transparent 55%),
        linear-gradient(160deg, var(--aq-primary-ink) 0%, var(--aq-primary-darker) 60%, var(--aq-primary-dark) 100%);
}

.aq-login-card {
    width: 100%;
    max-width: 410px;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 30px 80px -20px rgba(20, 8, 13, .7);
}

.aq-login-brand {
    color: #fff;
    letter-spacing: .01em;
}

/* sortable grid headers */
th.aq-sortable {
    cursor: pointer;
    user-select: none;
}

th.aq-sortable:hover {
    color: var(--aq-primary);
}

/* sidebar record-count badges */
.aq-sidebar .aq-count {
    background: rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .75);
    font-size: .66rem;
    font-weight: 600;
}

/* global search results */
.aq-search-menu {
    max-height: 380px;
    overflow-y: auto;
    border: 1px solid var(--aq-border);
    border-radius: .55rem;
    box-shadow: var(--aq-shadow);
}

/* toasts above everything */
#toastHost { z-index: 2100; }
