/* =========================================================
   V17.2 SIDEBAR + BUNDLE + MULTI-ROLE UI
   ========================================================= */

.sidebar-v172{
    width:292px;
    --sidebar-wide:292px;
    transition:
        transform .24s ease,
        width .22s ease;
}

.sidebar-v172 .sidebar-brand{
    min-height:88px;
    padding:0 15px 0 18px;
}

.sidebar-v172 .brand-copy{
    min-width:0;
    flex:1;
}

.sidebar-compact-toggle{
    width:36px;
    height:36px;
    flex:0 0 auto;
    border:1px solid #e1e6ee;
    border-radius:10px;
    background:#fff;
    color:#657287;
    display:grid;
    place-items:center;
    font-size:16px;
    transition:.16s ease;
}

.sidebar-compact-toggle:hover{
    color:#5b5ce2;
    border-color:#cac9ff;
    background:#f7f7ff;
}

.sidebar-v172 .sidebar-nav{
    padding:13px 12px 22px;
}

.sidebar-v172 .nav-label{
    padding:12px 13px 8px;
    color:#98a2b3;
    font-size:10.5px;
    font-weight:900;
    letter-spacing:.08em;
}

.sidebar-v172 .nav-link-item,
.sidebar-group-toggle{
    width:100%;
    min-height:51px;
    margin:3px 0;
    padding:0 13px;
    border:0;
    border-radius:13px;
    color:#52617a;
    background:transparent;
    display:flex;
    align-items:center;
    gap:12px;
    font-size:14px;
    font-weight:760;
    text-align:left;
    transition:
        background .16s ease,
        color .16s ease,
        transform .16s ease;
}

.sidebar-v172 .nav-link-item:hover,
.sidebar-group-toggle:hover{
    color:#27344a;
    background:#f4f6f9;
}

.sidebar-v172 .nav-link-item.active{
    color:#fff;
    background:linear-gradient(135deg,#625cf1,#554fdf);
    box-shadow:0 8px 18px rgba(91,92,226,.17);
}

.sidebar-v172 .nav-link-item>i,
.sidebar-group-icon{
    width:24px;
    height:24px;
    flex:0 0 auto;
    display:grid;
    place-items:center;
    color:#8996aa;
    font-size:18px;
}

.sidebar-v172 .nav-link-item.active>i{
    color:#fff;
}

.sidebar-group{
    margin:2px 0;
}

.sidebar-group-toggle{
    cursor:pointer;
}

.sidebar-group.active-group>.sidebar-group-toggle{
    color:#2f46b9;
    background:#edf3ff;
}

.sidebar-group.active-group>.sidebar-group-toggle .sidebar-group-icon{
    color:#2481ff;
}

.sidebar-group-chevron{
    margin-left:auto;
    color:#8491a5;
    font-size:12px;
    transition:transform .18s ease;
}

.sidebar-group.open .sidebar-group-chevron{
    transform:rotate(180deg);
}

.sidebar-submenu{
    display:block;
    max-height:0;
    overflow:hidden;
    opacity:0;
    transition:
        max-height .24s ease,
        opacity .16s ease;
}

.sidebar-group.open .sidebar-submenu{
    max-height:560px;
    opacity:1;
}

.sidebar-submenu a{
    position:relative;
    min-height:42px;
    padding:0 14px 0 52px;
    border-radius:10px;
    color:#58667e;
    display:flex;
    align-items:center;
    gap:9px;
    font-size:13.5px;
    font-weight:690;
    text-decoration:none;
    transition:.15s ease;
}

.sidebar-submenu a>span{
    position:absolute;
    left:30px;
    width:6px;
    height:6px;
    border-radius:50%;
    background:#a4afc1;
}

.sidebar-submenu a:hover{
    color:#26344c;
    background:#f6f8fb;
}

.sidebar-submenu a.active{
    color:#2780f7;
    font-weight:820;
    background:#f4f8ff;
}

.sidebar-submenu a.active>span{
    background:#2780f7;
}

.sidebar-v172 .sidebar-account{
    min-height:78px;
}

.sidebar-account-copy{
    min-width:0;
}

.sidebar-account-copy strong{
    max-width:150px;
    font-size:11.5px;
}

.sidebar-account-copy small{
    max-width:150px;
    font-size:9.5px;
}

body:not(.admin-sidebar-compact) .app-main{
    width:calc(100% - 292px);
    margin-left:292px;
}

body.admin-sidebar-compact .sidebar-v172{
    width:86px;
}

body.admin-sidebar-compact .app-main{
    width:calc(100% - 86px);
    margin-left:86px;
}

body.admin-sidebar-compact .sidebar-v172 .brand-copy,
body.admin-sidebar-compact .sidebar-v172 .nav-label,
body.admin-sidebar-compact .sidebar-v172 .nav-text,
body.admin-sidebar-compact .sidebar-v172 .sidebar-group-chevron,
body.admin-sidebar-compact .sidebar-v172 .sidebar-submenu,
body.admin-sidebar-compact .sidebar-v172 .sidebar-account-copy,
body.admin-sidebar-compact .sidebar-v172 .sidebar-account-form{
    display:none!important;
}

body.admin-sidebar-compact .sidebar-v172 .sidebar-brand{
    padding:0;
    justify-content:center;
    flex-wrap:wrap;
    align-content:center;
    gap:3px;
}

body.admin-sidebar-compact .sidebar-v172 .brand-icon{
    width:42px;
    height:42px;
}

body.admin-sidebar-compact .sidebar-compact-toggle{
    position:absolute;
    top:68px;
    width:26px;
    height:26px;
    border-radius:50%;
    z-index:4;
}

body.admin-sidebar-compact .sidebar-v172 .nav-link-item,
body.admin-sidebar-compact .sidebar-v172 .sidebar-group-toggle{
    width:56px;
    min-height:50px;
    margin:4px auto;
    padding:0;
    justify-content:center;
}

body.admin-sidebar-compact .sidebar-v172 .nav-link-item>i,
body.admin-sidebar-compact .sidebar-v172 .sidebar-group-icon{
    width:auto;
    color:#657287;
}

body.admin-sidebar-compact .sidebar-v172 .sidebar-account{
    justify-content:center;
}

body.admin-sidebar-compact .sidebar-v172 .sidebar-account-avatar{
    margin:0;
}

/* V17.2 page utilities */
.v172-page{
    max-width:1580px;
    margin:0 auto;
}

.v172-head{
    margin-bottom:18px;
    padding:20px 22px;
    border:1px solid #e1e6ee;
    border-radius:18px;
    background:
        radial-gradient(circle at 92% 10%,rgba(91,92,226,.12),transparent 34%),
        #fff;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    box-shadow:0 7px 24px rgba(15,23,42,.035);
}

.v172-head h1{
    margin:0;
    color:#172033;
    font:800 30px/1.2 Poppins,Inter,sans-serif;
    letter-spacing:-.03em;
}

.v172-head p{
    max-width:860px;
    margin:7px 0 0;
    color:#667085;
    font-size:14px;
    line-height:1.65;
}

.v172-kicker{
    margin-bottom:5px;
    color:#5b5ce2;
    display:block;
    font-size:10.5px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.v172-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.v172-btn{
    min-height:44px;
    padding:0 15px;
    border:1px solid #dce2eb;
    border-radius:11px;
    background:#fff;
    color:#42506a;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    font-size:13px;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
}

.v172-btn.primary{
    color:#fff;
    border-color:#5b5ce2;
    background:linear-gradient(135deg,#6862f0,#5754df);
}

.v172-btn.danger{
    color:#b42318;
    border-color:#f0cecb;
    background:#fff8f7;
}

.v172-card{
    border:1px solid #e1e6ee;
    border-radius:16px;
    background:#fff;
    box-shadow:0 6px 20px rgba(15,23,42,.03);
}

.v172-card-head{
    min-height:70px;
    padding:14px 17px;
    border-bottom:1px solid #edf0f4;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.v172-card-head h2,
.v172-card-head h3{
    margin:0;
    color:#27344a;
    font-size:17px;
    font-weight:850;
}

.v172-card-head p{
    margin:4px 0 0;
    color:#7a8799;
    font-size:11px;
}

.v172-filter{
    margin-bottom:14px;
    padding:13px;
    border:1px solid #e1e6ee;
    border-radius:14px;
    background:#fff;
}

.v172-filter-grid{
    display:grid;
    grid-template-columns:minmax(260px,1.4fr) repeat(2,minmax(160px,.7fr)) auto;
    gap:10px;
    align-items:end;
}

.v172-stat-grid{
    margin-bottom:14px;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
}

.v172-stat{
    min-height:108px;
    padding:15px;
    border:1px solid #e2e7ef;
    border-radius:15px;
    background:#fff;
    display:grid;
    grid-template-columns:45px minmax(0,1fr);
    gap:11px;
    align-items:center;
}

.v172-stat>span{
    width:45px;
    height:45px;
    border-radius:12px;
    color:#5b5ce2;
    background:#efedff;
    display:grid;
    place-items:center;
    font-size:19px;
}

.v172-stat small{
    display:block;
    color:#7b8798;
    font-size:10.5px;
    font-weight:750;
}

.v172-stat strong{
    display:block;
    margin-top:4px;
    color:#172033;
    font-size:25px;
    font-weight:900;
}

.bundle-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.bundle-card{
    overflow:hidden;
    border:1px solid #e2e7ef;
    border-radius:17px;
    background:#fff;
    box-shadow:0 7px 22px rgba(15,23,42,.035);
}

.bundle-card-image{
    height:190px;
    position:relative;
    overflow:hidden;
    background:linear-gradient(135deg,#eef0ff,#f7f9fc);
    display:grid;
    place-items:center;
    color:#9aa6b8;
    font-size:42px;
}

.bundle-card-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.bundle-card-price{
    position:absolute;
    right:10px;
    bottom:10px;
    min-height:31px;
    padding:0 10px;
    border-radius:999px;
    color:#fff;
    background:rgba(27,34,51,.88);
    display:flex;
    align-items:center;
    font-size:11px;
    font-weight:900;
}

.bundle-card-body{
    padding:14px;
}

.bundle-card-body h3{
    margin:0;
    color:#24324a;
    font-size:16px;
    font-weight:850;
}

.bundle-card-body p{
    min-height:42px;
    margin:6px 0;
    color:#6e7b8f;
    font-size:11.5px;
    line-height:1.6;
}

.bundle-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    color:#7e899a;
    font-size:10px;
}


.bundle-detail-hero-grid{
    display:grid;
    grid-template-columns:260px minmax(0,1fr) 330px;
    gap:26px;
    align-items:start;
}

.bundle-form-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) 390px;
    gap:14px;
    align-items:start;
}

.bundle-form-main,
.bundle-form-side{
    display:grid;
    gap:13px;
}

.bundle-form-side{
    position:sticky;
    top:96px;
}

.v172-section{
    padding:16px;
    border:1px solid #e2e7ef;
    border-radius:15px;
    background:#fff;
}

.v172-section-title{
    margin-bottom:13px;
    display:flex;
    align-items:center;
    gap:10px;
}

.v172-section-title span{
    width:40px;
    height:40px;
    border-radius:11px;
    color:#5b5ce2;
    background:#efedff;
    display:grid;
    place-items:center;
    font-size:17px;
}

.v172-section-title strong{
    display:block;
    color:#334155;
    font-size:14px;
    font-weight:850;
}

.v172-section-title small{
    display:block;
    margin-top:2px;
    color:#7b8799;
    font-size:10px;
}

.v172-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.v172-form-grid .full{
    grid-column:1/-1;
}

.bundle-preview{
    min-height:220px;
    border:1px dashed #cfd7e4;
    border-radius:13px;
    background:#f8fafc;
    overflow:hidden;
    display:grid;
    place-items:center;
    color:#98a2b3;
    font-size:40px;
}

.bundle-preview img{
    width:100%;
    height:100%;
    max-height:320px;
    object-fit:cover;
}

.role-login-body{
    min-height:100vh;
    padding:24px;
    background:
        radial-gradient(circle at 85% 12%,rgba(99,102,241,.18),transparent 30%),
        linear-gradient(135deg,#f8f9ff,#eef1ff);
    display:grid;
    place-items:center;
}

.role-login-shell{
    width:min(1040px,100%);
    display:grid;
    grid-template-columns:minmax(0,1fr) 470px;
    border:1px solid #dfe5ee;
    border-radius:24px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 28px 70px rgba(15,23,42,.13);
}

.role-login-intro{
    padding:42px;
    color:#fff;
    background:
        linear-gradient(145deg,rgba(37,45,109,.98),rgba(91,92,226,.96));
}

.role-login-intro h1{
    margin:18px 0 8px;
    font:800 35px/1.18 Poppins,Inter,sans-serif;
}

.role-login-intro p{
    margin:0;
    color:rgba(255,255,255,.78);
    font-size:13px;
    line-height:1.75;
}

.role-login-types{
    margin-top:28px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.role-login-type{
    min-height:68px;
    padding:10px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:12px;
    background:rgba(255,255,255,.07);
    display:flex;
    align-items:center;
    gap:9px;
}

.role-login-type i{
    width:34px;
    height:34px;
    border-radius:9px;
    background:rgba(255,255,255,.12);
    display:grid;
    place-items:center;
}

.role-login-type strong{
    display:block;
    font-size:11.5px;
}

.role-login-type small{
    display:block;
    margin-top:2px;
    color:rgba(255,255,255,.66);
    font-size:9px;
}

.role-login-form{
    padding:38px;
}

.role-login-form h2{
    margin:0 0 6px;
    color:#172033;
    font:800 27px/1.2 Poppins,Inter,sans-serif;
}

.role-login-form>p{
    margin:0 0 20px;
    color:#778398;
    font-size:12px;
}

.role-select-grid{
    margin-bottom:17px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
}

.role-select-card{
    min-height:62px;
    padding:7px;
    border:1px solid #e1e6ee;
    border-radius:11px;
    background:#fff;
    cursor:pointer;
    text-align:center;
}

.role-select-card input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.role-select-card i{
    display:block;
    color:#8895aa;
    font-size:17px;
}

.role-select-card strong{
    display:block;
    margin-top:4px;
    color:#5b687e;
    font-size:9.5px;
}

.role-select-card:has(input:checked){
    border-color:#8e8bf5;
    background:#f0efff;
    box-shadow:0 0 0 2px rgba(91,92,226,.08);
}

.role-select-card:has(input:checked) i,
.role-select-card:has(input:checked) strong{
    color:#5b5ce2;
}

.role-portal-body{
    min-height:100vh;
    padding:24px;
    background:#f6f8fc;
}

.role-portal-shell{
    max-width:1180px;
    margin:0 auto;
}

.role-portal-topbar{
    margin-bottom:18px;
    padding:14px 16px;
    border:1px solid #e1e6ee;
    border-radius:15px;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.role-portal-brand{
    display:flex;
    align-items:center;
    gap:10px;
}

.role-portal-brand span{
    width:43px;
    height:43px;
    border-radius:12px;
    color:#fff;
    background:#5b5ce2;
    display:grid;
    place-items:center;
    font-size:19px;
}

.role-portal-hero{
    padding:24px;
    border-radius:18px;
    color:#fff;
    background:linear-gradient(135deg,#263167,#5b5ce2);
}

.role-portal-hero h1{
    margin:0;
    font:800 30px/1.2 Poppins,Inter,sans-serif;
}

.role-portal-hero p{
    margin:7px 0 0;
    color:rgba(255,255,255,.75);
    font-size:13px;
}

@media(max-width:1200px){
    .v172-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .bundle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .bundle-form-grid{grid-template-columns:1fr}
    .bundle-form-side{position:static}
    .bundle-detail-hero-grid{
        grid-template-columns:220px minmax(0,1fr);
    }
    .bundle-detail-hero-grid>aside{
        grid-column:1/-1;
    }
}

@media(max-width:1000px){
    body:not(.admin-sidebar-compact) .app-main,
    body.admin-sidebar-compact .app-main{
        width:100%;
        margin-left:0;
    }

    .sidebar-v172{
        width:min(310px,88vw)!important;
    }

    body.admin-sidebar-compact .sidebar-v172 .brand-copy,
    body.admin-sidebar-compact .sidebar-v172 .nav-label,
    body.admin-sidebar-compact .sidebar-v172 .nav-text,
    body.admin-sidebar-compact .sidebar-v172 .sidebar-group-chevron,
    body.admin-sidebar-compact .sidebar-v172 .sidebar-account-copy,
    body.admin-sidebar-compact .sidebar-v172 .sidebar-account-form{
        display:initial!important;
    }

    body.admin-sidebar-compact .sidebar-v172 .sidebar-submenu{
        display:block!important;
    }

    .sidebar-compact-toggle{
        display:none;
    }
}

@media(max-width:760px){
    .v172-head{
        flex-direction:column;
    }

    .v172-head h1{
        font-size:25px;
    }

    .v172-filter-grid,
    .v172-stat-grid,
    .bundle-grid,
    .v172-form-grid{
        grid-template-columns:1fr!important;
    }

    .bundle-detail-hero-grid{
        grid-template-columns:1fr;
    }

    .bundle-detail-hero-grid>div:first-child{
        max-width:260px;
        width:100%;
        margin:0 auto;
    }

    .bundle-detail-hero-grid>aside{
        grid-column:auto;
    }

    .v172-form-grid .full{
        grid-column:auto;
    }

    .role-login-shell{
        grid-template-columns:1fr;
    }

    .role-login-intro{
        display:none;
    }

    .role-login-form{
        padding:28px 20px;
    }
}

@media(max-width:520px){
    .role-select-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .sidebar-submenu a{
        min-height:44px;
        font-size:14px;
    }
}
