/**
 * The Petite - Application styles
 * Brand colours, layout (sidebar, top bar), and utilities
 */

/* ========== Brand colours ========== */
:root {
    --petite-purple: #6C0DC4;
    --petite-pink: #FF4392;
    --petite-yellow: #FFDE59;
    --petite-green: #C8DF67;
    --petite-lilac: #A68ED6;
    --petite-white: #ffffff;
    --petite-black: #000000;
    --bs-primary: var(--petite-purple);
    --bs-primary-rgb: 108, 13, 196;
    --bs-secondary: var(--petite-lilac);
    --bs-secondary-rgb: 166, 142, 214;
    --bs-success: var(--petite-green);
    --bs-success-rgb: 200, 223, 103;
    --bs-warning: var(--petite-yellow);
    --bs-warning-rgb: 255, 222, 89;
    --bs-info: var(--petite-pink);
    --bs-info-rgb: 255, 67, 146;
    --bs-body-bg: var(--petite-white);
    --bs-body-color: var(--petite-black);
}

.btn-primary { background-color: var(--petite-purple); border-color: var(--petite-purple); }
.btn-primary:hover { background-color: #5a0ba3; border-color: #5a0ba3; }
.btn-outline-primary { color: var(--petite-purple); border-color: var(--petite-purple); }
.btn-outline-primary:hover { background-color: var(--petite-purple); color: var(--petite-white); }
.text-primary { color: var(--petite-purple) !important; }
.bg-primary { background-color: var(--petite-purple) !important; }
.link-primary { color: var(--petite-purple) !important; }
.border-primary { border-color: var(--petite-purple) !important; }
.nav-link:hover { color: var(--petite-purple) !important; }

/* ========== Base ========== */
body {
    overflow-x: hidden;
    background-color: var(--petite-white);
    color: var(--petite-black);
}

/* ========== Sidebar layout ========== */
.sidebar {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 250px;
    background-color: var(--petite-white);
    border-right: 1px solid #dee2e6;
    padding-top: 60px;
    z-index: 1000;
    transition: transform 0.3s ease;
    overflow-y: auto;
}
.sidebar.collapsed {
    transform: translateX(-100%);
}
.sidebar-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 250px;
    height: 60px;
    background-color: var(--petite-white);
    border-bottom: 1px solid #dee2e6;
    display: flex;
    align-items: center;
    padding: 0 15px;
    z-index: 1001;
}
.brand-logo {
    max-height: 44px;
    width: auto;
    object-fit: contain;
}
.navbar .brand-logo {
    max-height: 40px;
}
.main-content {
    margin-left: 250px;
    transition: margin-left 0.3s ease;
    min-height: 100vh;
}
.main-content.sidebar-collapsed {
    margin-left: 0;
}
.top-bar {
    height: 60px;
    background-color: var(--petite-white);
    border-bottom: 1px solid #dee2e6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    position: sticky;
    top: 0;
    z-index: 999;
}
.sidebar-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}
.sidebar-menu li {
    border-bottom: 1px solid #e9ecef;
}
.sidebar-menu a {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    color: var(--petite-black);
    text-decoration: none;
    transition: all 0.2s;
}
.sidebar-menu a:hover {
    background-color: var(--petite-lilac);
    color: var(--petite-white);
}
.sidebar-menu a.active {
    background-color: var(--petite-purple);
    color: var(--petite-white);
}
.sidebar-menu a i {
    width: 20px;
    margin-right: 10px;
}

/* ========== Super Admin sidebar (dark, coloured menu items) ========== */
.sidebar--superadmin,
.sidebar--superadmin .sidebar-header {
    --bs-primary: var(--petite-purple);
    background-color: var(--petite-purple);
    border-color: #1a1a1a;
}
.sidebar--superadmin .sidebar-menu li {
    border-color: #1a1a1a;
}
.sidebar--superadmin .sidebar-menu__dashboard {
    color: rgba(255, 255, 255, 0.85) !important;
}
.sidebar--superadmin .sidebar-menu__dashboard:hover {
    background-color: var(--petite-purple) !important;
    color: #fff !important;
}
.sidebar--superadmin .sidebar-menu__dashboard.active {
    background-color: var(--petite-purple) !important;
    color: #fff !important;
}
.sidebar--superadmin .sidebar-menu__item {
    border-left: 3px solid transparent;
    color: #ffffff !important;
}
.sidebar--superadmin .sidebar-menu__item:hover {
    background-color: var(--petite-purple) !important;
    color: #ffffff !important;
}
.sidebar--superadmin .sidebar-menu__item.active {
    background-color: var(--petite-purple) !important;
    color: #ffffff !important;
}
/*.sidebar--superadmin .sidebar-menu__item--venue { color: #e85d3a !important; }
.sidebar--superadmin .sidebar-menu__item--venue:hover,
.sidebar--superadmin .sidebar-menu__item--venue.active { background-color: rgba(232, 93, 58, 0.15) !important; border-left-color: #e85d3a; }
.sidebar--superadmin .sidebar-menu__item--classes { color: #e6b422 !important; }
.sidebar--superadmin .sidebar-menu__item--classes:hover,
.sidebar--superadmin .sidebar-menu__item--classes.active { background-color: rgba(230, 180, 34, 0.15) !important; border-left-color: #e6b422; }
.sidebar--superadmin .sidebar-menu__item--camps { color: #2b7dd6 !important; }
.sidebar--superadmin .sidebar-menu__item--camps:hover,
.sidebar--superadmin .sidebar-menu__item--camps.active { background-color: rgba(43, 125, 214, 0.15) !important; border-left-color: #2b7dd6; }
.sidebar--superadmin .sidebar-menu__item--schools { color: #c4952e !important; }
.sidebar--superadmin .sidebar-menu__item--schools:hover,
.sidebar--superadmin .sidebar-menu__item--schools.active { background-color: rgba(196, 149, 46, 0.15) !important; border-left-color: #c4952e; }
.sidebar--superadmin .sidebar-menu__item--term { color: #4a9b4a !important; }
.sidebar--superadmin .sidebar-menu__item--term:hover,
.sidebar--superadmin .sidebar-menu__item--term.active { background-color: rgba(74, 155, 74, 0.15) !important; border-left-color: #4a9b4a; }
.sidebar--superadmin .sidebar-menu__item--class-sessions { color: #9b6bb8 !important; }
.sidebar--superadmin .sidebar-menu__item--class-sessions:hover,
.sidebar--superadmin .sidebar-menu__item--class-sessions.active { background-color: rgba(155, 107, 184, 0.15) !important; border-left-color: #9b6bb8; }
.sidebar--superadmin .sidebar-menu__item--camp-sessions { color: #e67a9e !important; }
.sidebar--superadmin .sidebar-menu__item--camp-sessions:hover,
.sidebar--superadmin .sidebar-menu__item--camp-sessions.active { background-color: rgba(230, 122, 158, 0.15) !important; border-left-color: #e67a9e; }
.sidebar--superadmin .sidebar-menu__item--waitlist { color: #a52a3a !important; }
.sidebar--superadmin .sidebar-menu__item--waitlist:hover,
.sidebar--superadmin .sidebar-menu__item--waitlist.active { background-color: rgba(165, 42, 58, 0.15) !important; border-left-color: #a52a3a; }
*/
/* Super Admin: parent menu + sub-menus */
.sidebar-menu__parent {
    border-bottom: 1px solid #1a1a1a;
}
.sidebar-menu__parent:last-child { border-bottom: none; }
.sidebar--superadmin .sidebar-menu__label {
    color: rgba(255, 255, 255, 0.95) !important;
    font-weight: 600;
    display: flex;
    align-items: center;
}
.sidebar--superadmin .sidebar-menu__label:hover {
    background-color: var(--petite-purple) !important;
    color: #fff !important;
}
.sidebar--superadmin .sidebar-menu__label.active {
    background-color: var(--petite-purple) !important;
    color: #fff !important;
}
.sidebar-menu__chevron {
    font-size: 0.75rem;
    transition: transform 0.2s ease;
}
.sidebar-menu__label[aria-expanded="true"] .sidebar-menu__chevron {
    transform: rotate(180deg);
}
.sidebar-menu__sub {
    list-style: none;
    padding: 0;
    margin: 0;
    padding-left: 0;
    background-color: rgba(0, 0, 0, 0.2);
}
.sidebar-menu__sub li {
    border-bottom: none;
    border-left: 3px solid transparent;
}
.sidebar-menu__sub a {
    padding: 10px 20px 10px 28px;
    font-weight: 400;
}
.sidebar--superadmin .sidebar-menu__sub .sidebar-menu__item:not([class*="sidebar-menu__item--"]) {
    color: rgba(255, 255, 255, 0.85) !important;
}
.sidebar--superadmin .sidebar-menu__sub .sidebar-menu__item:not([class*="sidebar-menu__item--"]):hover,
.sidebar--superadmin .sidebar-menu__sub .sidebar-menu__item:not([class*="sidebar-menu__item--"]).active {
    background-color: rgba(255, 255, 255, 0.08) !important;
    border-left-color: rgba(255, 255, 255, 0.4);
}

.sidebar-toggle {
    display: none;
}

@media (max-width: 768px) {
    .sidebar {
        transform: translateX(-100%);
    }
    .sidebar.show {
        transform: translateX(0);
    }
    .main-content {
        margin-left: 0;
    }
    .sidebar-toggle {
        display: block;
    }
    .sidebar-header {
        width: 100%;
    }
}

/* ========== Utilities (replacing inline styles) ========== */
.navbar-brand-bg { background-color: var(--petite-white); }
.footer-brand { background-color: rgba(166, 142, 214, 0.15); color: var(--petite-black); }
.avatar-sm { width: 32px; height: 32px; object-fit: cover; }
.avatar-md { width: 40px; height: 40px; object-fit: cover; }
.avatar-lg { width: 80px; height: 80px; object-fit: cover; }
.avatar-xl { width: 120px; height: 120px; object-fit: cover; }
.sidebar-toggle-icon { font-size: 1.5rem; }
.brand-logo-sidebar { max-height: 44px; width: auto; object-fit: contain; }
.brand-logo-navbar { max-height: 40px; width: auto; object-fit: contain; }
.brand-logo-guest { max-height: 60px; width: auto; object-fit: contain; }
.brand-logo-welcome { max-height: 80px; width: auto; object-fit: contain; }
.guest-form-width { max-width: 400px; }
.nav-link-brand { color: var(--petite-black); }
