/* POGIL Admin Portal — modern sidebar & shell */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Manrope:wght@400;500;600;700;800&display=swap');

body.admin-portal {
    font-family: "Manrope", sans-serif !important;
    font-feature-settings: "liga" 0, "dlig" 0, "calt" 0;
    font-variant-ligatures: none;
    background: #f3f1f9 !important;
    --ap-primary: #4A2D9F;
    --ap-primary-dark: #29166F;
    --ap-primary-light: #6E52C7;
    --ap-muted: #6b7280;
    --ap-border: rgba(74, 45, 159, 0.1);
}

body.admin-portal .loader-bg { background: #29166F; }
body.admin-portal .loader-fill { background: #6E52C7; }

/* Stable expanded sidebar */
body.admin-portal .pcoded-navbar,
body.admin-portal .pcoded-navbar.navbar-collapsed,
body.admin-portal .pcoded-navbar.navbar-collapsed:hover,
body.admin-portal .pcoded-navbar.navbar-image-4,
body.admin-portal .pcoded-navbar.navbar-image-4.navbar-collapsed {
    width: 272px !important;
    background: #160d36 !important;
    background-image: none !important;
    box-shadow: 8px 0 32px rgba(22, 13, 54, 0.22) !important;
    border-right: 0 !important;
}

body.admin-portal .pcoded-navbar ~ .pcoded-header,
body.admin-portal .pcoded-navbar.navbar-collapsed ~ .pcoded-header,
body.admin-portal .pcoded-navbar.navbar-collapsed:hover ~ .pcoded-header {
    margin-left: 272px !important;
    width: calc(100% - 272px) !important;
}

body.admin-portal .pcoded-navbar ~ .pcoded-main-container,
body.admin-portal .pcoded-navbar.navbar-collapsed ~ .pcoded-main-container,
body.admin-portal .pcoded-navbar.navbar-collapsed:hover ~ .pcoded-main-container {
    margin-left: 272px !important;
}

/* Brand */
body.admin-portal .pcoded-navbar .header-logo {
    width: 272px !important;
    height: 82px !important;
    min-height: 82px !important;
    background: transparent !important;
    border-bottom: 1px solid rgba(255,255,255,.1) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    float: none !important;
    padding: .9rem 1.05rem !important;
}

body.admin-portal .pcoded-navbar .header-logo .b-brand {
    display: inline-flex !important;
    align-items: center !important;
    gap: .75rem !important;
    color: #fff !important;
    text-decoration: none !important;
}

body.admin-portal .pcoded-navbar .header-logo .logo,
body.admin-portal .pcoded-navbar .header-logo img {
    width: 46px !important;
    height: 46px !important;
    max-width: 46px !important;
    object-fit: contain !important;
    border-radius: 0 !important;
    background: transparent !important;
    margin: 0 !important;
    opacity: 1 !important;
    transform: none !important;
}

body.admin-portal .ap-brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}
body.admin-portal .ap-brand-text strong {
    font-family: "Fraunces", serif;
    font-feature-settings: "liga" 0, "dlig" 0, "calt" 0, "ss01" 0;
    font-variant-ligatures: none;
    font-size: .98rem;
    color: #fff;
}
body.admin-portal .ap-brand-text span {
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #ddd6fe;
    margin-top: .15rem;
}

body.admin-portal .pcoded-navbar .mobile-menu { display: none !important; }

body.admin-portal .pcoded-navbar .scroll-div.navbar-content,
body.admin-portal .pcoded-navbar .navbar-content {
    height: calc(100vh - 82px) !important;
    float: none !important;
    display: block !important;
    padding: .45rem .7rem 1.6rem !important;
}

body.admin-portal .pcoded-navbar .pcoded-inner-navbar {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    width: 100% !important;
}

body.admin-portal .visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Sidebar menu search */
body.admin-portal .ap-nav-search {
    position: sticky;
    top: 0;
    z-index: 5;
    padding: .55rem .55rem .7rem;
    margin: 0 0 .15rem;
    background: linear-gradient(180deg, rgba(24, 14, 58, .98) 70%, rgba(24, 14, 58, 0));
}

body.admin-portal .ap-nav-search__field {
    position: relative;
    display: flex;
    align-items: center;
}

body.admin-portal .ap-nav-search__field > i.fa-search {
    position: absolute;
    left: .85rem;
    color: rgba(221, 214, 254, .55);
    font-size: .78rem;
    pointer-events: none;
}

body.admin-portal .ap-nav-search__input {
    width: 100%;
    min-height: 2.35rem;
    border: 1px solid rgba(221, 214, 254, .16);
    border-radius: 12px;
    background: rgba(255, 255, 255, .07);
    color: #fff;
    font: inherit;
    font-size: .82rem;
    font-weight: 600;
    padding: 0 2.2rem 0 2.2rem;
    outline: 0;
}

body.admin-portal .ap-nav-search__input::placeholder {
    color: rgba(221, 214, 254, .45);
    font-weight: 550;
}

body.admin-portal .ap-nav-search__input:focus {
    border-color: rgba(221, 214, 254, .42);
    background: rgba(255, 255, 255, .11);
    box-shadow: 0 0 0 .15rem rgba(167, 139, 250, .18);
}

body.admin-portal .ap-nav-search__clear {
    position: absolute;
    right: .35rem;
    width: 1.7rem;
    height: 1.7rem;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: rgba(221, 214, 254, .7);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

body.admin-portal .ap-nav-search__clear:hover {
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

body.admin-portal .ap-nav-search__empty {
    margin-top: .55rem;
    padding: .55rem .7rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, .06);
    color: rgba(221, 214, 254, .7);
    font-size: .78rem;
    font-weight: 650;
    text-align: center;
}

body.admin-portal .pcoded-navbar .pcoded-inner-navbar .ap-nav-search-hidden {
    display: none !important;
}

body.admin-portal .pcoded-navbar.navbar-collapsed .ap-nav-search,
body.admin-portal .pcoded-navbar.menu-hide .ap-nav-search {
    display: none;
}

/* Section labels */
body.admin-portal .ap-nav-label,
body.admin-portal .pcoded-navbar .pcoded-inner-navbar > li.ap-nav-label {
    display: block !important;
    padding: 1rem .7rem .3rem !important;
    margin: 0 !important;
    font-size: .62rem !important;
    font-weight: 800 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: rgba(221, 214, 254, 0.45) !important;
    pointer-events: none;
}

body.admin-portal .pcoded-navbar .pcoded-inner-navbar > li {
    width: 100% !important;
}

/* Top-level links */
body.admin-portal .pcoded-navbar .pcoded-inner-navbar > li > a {
    display: flex !important;
    align-items: center !important;
    gap: .7rem !important;
    width: 100% !important;
    margin: .1rem 0 !important;
    padding: .68rem .75rem !important;
    border-radius: 12px !important;
    color: rgba(255,255,255,.88) !important;
    font-weight: 650 !important;
    font-size: .86rem !important;
    line-height: 1.2 !important;
    text-align: left !important;
    position: relative !important;
    background: transparent !important;
    box-sizing: border-box !important;
}

body.admin-portal .pcoded-navbar .pcoded-inner-navbar > li > a:hover {
    background: rgba(255,255,255,.09) !important;
    color: #fff !important;
}

body.admin-portal .pcoded-navbar .pcoded-inner-navbar > li.active > a,
body.admin-portal .pcoded-navbar .pcoded-inner-navbar > li.pcoded-trigger > a {
    background: linear-gradient(135deg, #6E52C7, #4A2D9F) !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(0,0,0,.22) !important;
}

/* Icons */
body.admin-portal .pcoded-navbar .pcoded-inner-navbar li > a > .pcoded-micon,
body.admin-portal .pcoded-navbar .pcoded-micon {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 32px !important;
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 9px !important;
    background: rgba(255,255,255,.1) !important;
    color: #ddd6fe !important;
    font-size: .86rem !important;
}

body.admin-portal .pcoded-navbar .pcoded-inner-navbar > li.active > a > .pcoded-micon,
body.admin-portal .pcoded-navbar .pcoded-inner-navbar > li.pcoded-trigger > a > .pcoded-micon {
    background: rgba(255,255,255,.18) !important;
    color: #fff !important;
}

body.admin-portal .pcoded-navbar .pcoded-micon i {
    margin: 0 !important;
    width: auto !important;
    font-size: .86rem !important;
}

/* Kill absolute text from theme */
body.admin-portal .pcoded-navbar .pcoded-inner-navbar li > a > .pcoded-micon + .pcoded-mtext,
body.admin-portal .pcoded-navbar .pcoded-inner-navbar li > a .pcoded-mtext,
body.admin-portal .pcoded-navbar.navbar-collapsed .pcoded-inner-navbar > li > a > .pcoded-mtext,
body.admin-portal .pcoded-navbar.navbar-collapsed:hover .pcoded-inner-navbar > li > a > .pcoded-mtext {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    opacity: 1 !important;
    display: inline-block !important;
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    color: inherit !important;
    vertical-align: middle !important;
}

/* Chevron for expandable items */
body.admin-portal .pcoded-navbar .pcoded-hasmenu > a:after {
    position: static !important;
    margin-left: auto !important;
    color: rgba(255,255,255,.55) !important;
    font-size: .7rem !important;
    opacity: 1 !important;
}

/* Submenus */
body.admin-portal .pcoded-navbar .pcoded-submenu {
    background: transparent !important;
    padding: .15rem 0 .35rem .55rem !important;
    margin: 0 0 .2rem .85rem !important;
    border-left: 1px solid rgba(255,255,255,.12) !important;
}

body.admin-portal .pcoded-navbar .pcoded-submenu li > a {
    display: flex !important;
    align-items: center !important;
    gap: .45rem !important;
    padding: .48rem .7rem !important;
    margin: .08rem 0 !important;
    border-radius: 9px !important;
    color: rgba(255,255,255,.72) !important;
    font-size: .8rem !important;
    font-weight: 650 !important;
    background: transparent !important;
    position: relative !important;
}

body.admin-portal .pcoded-navbar .pcoded-submenu li > a,
body.admin-portal .pcoded-navbar .pcoded-submenu li > a .pcoded-mtext {
    color: rgba(255,255,255,.88) !important;
    opacity: 1 !important;
    visibility: visible !important;
    -webkit-text-fill-color: currentColor !important;
}

body.admin-portal .pcoded-navbar .pcoded-submenu li > a:hover {
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
}

body.admin-portal .pcoded-navbar .pcoded-submenu li.active > a,
body.admin-portal .pcoded-navbar .pcoded-submenu li.pcoded-trigger > a {
    background: rgba(110, 82, 199, 0.28) !important;
    color: #fff !important;
}

body.admin-portal .pcoded-navbar .pcoded-submenu .pcoded-submenu {
    margin-left: .55rem !important;
    border-left-color: rgba(255,255,255,.08) !important;
}

/* Cookie may still set navbar-collapsed while admin CSS keeps sidebar wide —
   theme then hides submenu link text (color: transparent). Force labels visible. */
body.admin-portal .pcoded-navbar.navbar-collapsed .pcoded-inner-navbar > li.pcoded-trigger .pcoded-submenu li > a,
body.admin-portal .pcoded-navbar.navbar-collapsed .pcoded-inner-navbar li.pcoded-hasmenu .pcoded-submenu li > a,
body.admin-portal .pcoded-navbar.navbar-collapsed .pcoded-inner-navbar li.pcoded-hasmenu .pcoded-submenu li > a .pcoded-mtext {
    color: rgba(255, 255, 255, 0.88) !important;
    opacity: 1 !important;
    visibility: visible !important;
    -webkit-text-fill-color: currentColor !important;
}

body.admin-portal .pcoded-navbar.navbar-collapsed .pcoded-inner-navbar > li.pcoded-trigger .pcoded-submenu li.active > a,
body.admin-portal .pcoded-navbar.navbar-collapsed .pcoded-inner-navbar > li.pcoded-trigger .pcoded-submenu li.pcoded-trigger > a,
body.admin-portal .pcoded-navbar.navbar-collapsed .pcoded-inner-navbar li.pcoded-hasmenu .pcoded-submenu li.active > a,
body.admin-portal .pcoded-navbar.navbar-collapsed .pcoded-inner-navbar li.pcoded-hasmenu .pcoded-submenu li.pcoded-trigger > a {
    color: #fff !important;
}

body.admin-portal .pcoded-navbar .pcoded-inner-navbar li.pcoded-hasmenu.pcoded-trigger > .pcoded-submenu,
body.admin-portal .pcoded-navbar .pcoded-inner-navbar li.pcoded-hasmenu.pcoded-trigger.active > .pcoded-submenu {
    display: block !important;
}

/* Reset theme submenu bullets/icons — they clash with compact admin padding */
body.admin-portal .pcoded-navbar[class*="menu-item-icon-style"] .pcoded-inner-navbar li.pcoded-hasmenu .pcoded-submenu li > a:before,
body.admin-portal .pcoded-navbar .pcoded-inner-navbar li.pcoded-hasmenu .pcoded-submenu li > a:before {
    display: none !important;
    content: none !important;
}

body.admin-portal .pcoded-navbar .pcoded-submenu li.pcoded-hasmenu > a .pcoded-mtext {
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

body.admin-portal .pcoded-navbar .badge {
    border-radius: 999px !important;
    font-weight: 800 !important;
    font-size: .65rem !important;
    padding: .2rem .45rem !important;
}

/* Header */
body.admin-portal .pcoded-header {
    background: rgba(255,255,255,.94) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--ap-border) !important;
    box-shadow: none !important;
}

body.admin-portal .pcoded-header .topbar-title {
    font-family: "Fraunces", serif;
    font-feature-settings: "liga" 0, "dlig" 0, "calt" 0, "ss01" 0;
    font-variant-ligatures: none;
    font-size: 1.05rem;
    color: var(--ap-primary-dark) !important;
    margin: 0;
}

body.admin-portal .pcoded-header .navbar-nav > li > a,
body.admin-portal .pcoded-header .dropdown-toggle {
    color: var(--ap-primary-dark) !important;
    font-weight: 700 !important;
}

body.admin-portal .pcoded-header .m-header .logo,
body.admin-portal .pcoded-header .m-header img {
    width: 40px !important;
    height: 40px !important;
    object-fit: contain !important;
    background: transparent !important;
    border-radius: 0 !important;
}

body.admin-portal .pcoded-header .drp-user .pro-head {
    background: linear-gradient(135deg, var(--ap-primary-light), var(--ap-primary-dark)) !important;
}

body.admin-portal .pcoded-main-container {
    background: #f3f1f9 !important;
}

body.admin-portal .pcoded-content {
    padding: 1rem 1.25rem 2rem !important;
}

body.admin-portal .page-header-title h4,
body.admin-portal .page-header h4 {
    font-family: "Fraunces", serif;
    font-feature-settings: "liga" 0, "dlig" 0, "calt" 0, "ss01" 0;
    font-variant-ligatures: none;
    color: var(--ap-primary-dark) !important;
}

body.admin-portal .ap-support-badge {
    display: none;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    margin-left: auto;
    border-radius: 999px;
    background: #dc2626;
    color: #fff !important;
    font-size: .68rem;
    font-weight: 800;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
body.admin-portal .ap-support-badge.is-on { display: inline-flex !important; }
body.admin-portal .pcoded-navbar .pcoded-inner-navbar > li > a .ap-support-badge {
    flex: 0 0 auto !important;
    position: static !important;
}

body.admin-portal .ap-support-top {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #f5f3ff;
    color: #4A2D9F !important;
    text-decoration: none !important;
}
body.admin-portal .ap-support-top .ap-support-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    margin: 0;
}

/* Mobile */
@media (max-width: 991px) {
    body.admin-portal .pcoded-navbar,
    body.admin-portal .pcoded-navbar.navbar-collapsed,
    body.admin-portal .pcoded-navbar.navbar-collapsed:hover {
        margin-left: -290px !important;
        width: 280px !important;
        z-index: 1080 !important;
        box-shadow: none !important;
    }
    body.admin-portal .pcoded-navbar.mob-open,
    body.admin-portal .pcoded-navbar.navbar-collapsed.mob-open {
        margin-left: 0 !important;
        box-shadow: 12px 0 40px rgba(16, 8, 32, 0.35) !important;
    }
    body.admin-portal .pcoded-navbar ~ .pcoded-header,
    body.admin-portal .pcoded-navbar ~ .pcoded-main-container,
    body.admin-portal .pcoded-navbar.navbar-collapsed ~ .pcoded-header,
    body.admin-portal .pcoded-navbar.navbar-collapsed ~ .pcoded-main-container {
        margin-left: 0 !important;
        width: 100% !important;
    }

    body.admin-portal .pcoded-navbar .mobile-menu { display: none !important; }
    body.admin-portal .ap-brand-text { display: flex !important; }

    body.admin-portal .pcoded-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 1060 !important;
        display: block !important;
        padding: 0 !important;
        min-height: 0 !important;
        background: rgba(255,255,255,.96) !important;
        border-bottom: 1px solid var(--ap-border) !important;
        box-shadow: 0 8px 24px rgba(41,22,111,.06) !important;
    }

    body.admin-portal .pcoded-header .m-header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: .65rem !important;
        width: 100% !important;
        height: 64px !important;
        padding: 0 .85rem !important;
        background: transparent !important;
    }

    body.admin-portal .pcoded-header .m-header .mobile-menu {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 42px !important;
        height: 42px !important;
        border-radius: 12px !important;
        background: linear-gradient(135deg, #6E52C7, #29166F) !important;
        color: #fff !important;
        box-shadow: 0 8px 18px rgba(74,45,159,.25) !important;
        flex: 0 0 auto !important;
    }
    body.admin-portal .pcoded-header .m-header .mobile-menu span,
    body.admin-portal .pcoded-header .m-header .mobile-menu span:before,
    body.admin-portal .pcoded-header .m-header .mobile-menu span:after {
        background: #fff !important;
    }

    body.admin-portal .pcoded-header .m-header .b-brand {
        display: inline-flex !important;
        align-items: center !important;
        gap: .55rem !important;
        margin: 0 !important;
        text-decoration: none !important;
    }
    body.admin-portal .ap-mobile-title {
        display: flex;
        flex-direction: column;
        line-height: 1.1;
    }
    body.admin-portal .ap-mobile-title strong {
        font-family: "Fraunces", serif;
        font-feature-settings: "liga" 0, "dlig" 0, "calt" 0, "ss01" 0;
        font-variant-ligatures: none;
        font-size: .92rem;
        color: var(--ap-primary-dark);
    }
    body.admin-portal .ap-mobile-title span {
        font-size: .65rem;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
        color: var(--ap-primary-light);
    }

    body.admin-portal .pcoded-header .collapse.navbar-collapse {
        display: none !important;
    }
}
