:root{
    --student-primary:#0f766e;
    --student-primary-dark:#115e59;
    --student-accent:#2563eb;
    --student-success:#16a34a;
    --student-warning:#f59e0b;
    --student-danger:#dc2626;
    --student-dark:#0f172a;
    --student-muted:#64748b;
    --student-line:#e2e8f0;
    --student-surface:#ffffff;
    --student-soft:#f8fafc;
    --student-shadow:0 18px 45px rgba(15,23,42,.08);
}

/* Final compact dashboard override. */
body.student-portal-dashboard-page{
    background:
        linear-gradient(90deg,rgba(2,20,16,.96),rgba(3,80,48,.12) 38%,rgba(248,250,252,.98) 70%),
        url("bg.png") center/cover fixed !important;
}

body.student-portal-dashboard-page .student-nav{
    min-height:54px;
    background:linear-gradient(90deg,rgba(1,34,25,.97),rgba(7,89,54,.9)) !important;
    border-bottom:1px solid rgba(74,222,128,.22);
}

body.student-portal-dashboard-page .student-dashboard{
    width:min(1100px,100%);
    padding:10px 10px 16px;
}

body.student-portal-dashboard-page .dashboard-hero{
    min-height:168px;
    padding:16px;
    border-radius:14px;
    background:
        linear-gradient(90deg,rgba(2,20,16,.97),rgba(3,80,48,.84) 58%,rgba(2,20,16,.88)),
        url("bg.png") center/cover !important;
    box-shadow:0 18px 42px rgba(1,34,25,.20);
}

body.student-portal-dashboard-page .dashboard-kicker{
    min-height:28px;
    margin-bottom:6px;
    padding:5px 9px;
    color:#e7fff4;
    background:rgba(255,255,255,.10);
}

body.student-portal-dashboard-page .dashboard-hero h1{
    font-size:clamp(22px,4vw,34px);
}

body.student-portal-dashboard-page .dashboard-hero p{
    max-width:620px;
    margin-top:5px;
    font-size:13px;
    line-height:1.38;
}

body.student-portal-dashboard-page .dashboard-hero-meta{
    gap:6px;
    margin-top:10px;
}

body.student-portal-dashboard-page .dashboard-hero-meta span{
    min-height:30px;
    padding:5px 9px;
    font-size:11px;
}

body.student-portal-dashboard-page .dashboard-hero-actions .btn{
    min-height:38px;
    padding:7px 12px;
    border-radius:10px;
}

body.student-portal-dashboard-page .dashboard-grid{
    gap:10px;
    margin-top:10px;
}

body.student-portal-dashboard-page .profile-panel,
body.student-portal-dashboard-page .metric-card,
body.student-portal-dashboard-page .student-workspace{
    border-radius:12px;
    box-shadow:0 14px 32px rgba(1,34,25,.08);
}

body.student-portal-dashboard-page .profile-panel{
    padding:11px;
}

body.student-portal-dashboard-page .student-passport{
    width:62px;
    height:62px;
    border-radius:14px;
}

body.student-portal-dashboard-page .profile-main{
    gap:10px;
}

body.student-portal-dashboard-page .profile-main h2{
    margin-bottom:5px;
    font-size:16px;
}

body.student-portal-dashboard-page .profile-list{
    gap:6px;
    margin-top:10px;
}

body.student-portal-dashboard-page .profile-list div{
    padding:8px;
    border-radius:10px;
}

body.student-portal-dashboard-page .metrics-grid{
    gap:8px;
}

body.student-portal-dashboard-page .metric-card{
    min-height:82px;
    gap:10px;
    padding:10px;
}

body.student-portal-dashboard-page .metric-card .metric-icon{
    width:36px;
    height:36px;
    border-radius:10px;
    font-size:16px;
}

body.student-portal-dashboard-page .metric-card strong{
    font-size:15px;
}

body.student-portal-dashboard-page .metric-card small{
    margin-top:3px;
    font-size:11px;
}

body.student-portal-dashboard-page .student-workspace{
    margin-top:10px;
    padding:10px;
}

body.student-portal-dashboard-page .workspace-heading{
    margin-bottom:8px;
}

body.student-portal-dashboard-page .workspace-heading h2{
    font-size:16px;
}

body.student-portal-dashboard-page .quick-actions{
    gap:6px;
}

body.student-portal-dashboard-page .quick-actions a{
    grid-template-columns:32px 1fr;
    min-height:64px;
    padding:8px;
    border-radius:11px;
}

body.student-portal-dashboard-page .quick-actions i{
    width:32px;
    height:32px;
    border-radius:10px;
    background:linear-gradient(135deg,#065f46,#16a34a);
    font-size:15px;
}

body.student-portal-dashboard-page .quick-actions span{
    font-size:12px;
}

body.student-portal-dashboard-page .quick-actions small{
    font-size:10px;
}

body.student-portal-dashboard-page .student-footer{
    margin:0 !important;
    padding:8px 0 !important;
    color:#e7fff4 !important;
    background:linear-gradient(90deg,rgba(1,34,25,.96),rgba(7,89,54,.88)) !important;
    border-top:1px solid rgba(74,222,128,.24);
    box-shadow:0 -12px 32px rgba(0,0,0,.14);
}

body.student-portal-dashboard-page .student-footer .portal-footer-inner{
    max-width:1100px;
    min-height:38px;
}

body.student-portal-dashboard-page .student-footer strong,
body.student-portal-dashboard-page .student-footer span,
body.student-portal-dashboard-page .student-footer a{
    color:#e7fff4 !important;
}

body.student-portal-dashboard-page .student-footer .portal-footer-mark{
    color:#065f46 !important;
    background:linear-gradient(135deg,#ecfdf5,#bbf7d0);
}

body.student-portal-dashboard-page .student-footer .portal-footer-links span,
body.student-portal-dashboard-page .student-footer .portal-footer-links a{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.16);
}

/* Student dashboard navbar repair: keep Bootstrap collapse behavior visible. */
body.student-portal-dashboard-page .student-nav{
    overflow:visible !important;
}

body.student-portal-dashboard-page .student-nav .container,
body.student-portal-dashboard-page .student-nav .container-fluid{
    overflow:visible !important;
}

body.student-portal-dashboard-page .student-nav .navbar-collapse.show,
body.student-portal-dashboard-page .student-nav .navbar-collapse.collapsing{
    display:block !important;
    height:auto !important;
    visibility:visible !important;
    opacity:1 !important;
    overflow:visible !important;
}

body.student-portal-dashboard-page .student-nav .dropdown-menu.show{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    z-index:1100;
}

@media (min-width:992px){
    body.student-portal-dashboard-page .student-nav .navbar-collapse{
        display:flex !important;
        flex-basis:auto;
        height:auto !important;
        visibility:visible !important;
        opacity:1 !important;
        overflow:visible !important;
    }

    body.student-portal-dashboard-page .student-nav .navbar-nav{
        display:flex !important;
        flex-direction:row;
        align-items:center;
        justify-content:flex-end;
    }
}

@media (max-width:991.98px){
    body.student-portal-dashboard-page .student-nav .navbar-collapse{
        width:100%;
        flex-basis:100%;
    }

    body.student-portal-dashboard-page .student-nav .navbar-collapse:not(.show):not(.collapsing){
        display:none !important;
    }

    body.student-portal-dashboard-page .student-nav .navbar-nav{
        display:grid !important;
        width:100%;
        gap:6px;
    }
}

@media (min-width:992px){
    body.student-portal-dashboard-page .student-dashboard{
        padding:12px 14px 16px;
    }

    body.student-portal-dashboard-page .dashboard-hero{
        min-height:176px;
        padding:18px;
    }

    body.student-portal-dashboard-page .dashboard-grid{
        grid-template-columns:292px 1fr;
    }

    body.student-portal-dashboard-page .metric-card{
        min-height:86px;
    }
}

@media (max-width:575px){
    body.student-portal-dashboard-page .student-dashboard{
        padding:8px 8px 14px;
    }

    body.student-portal-dashboard-page .dashboard-hero{
        min-height:0;
        padding:13px;
    }

    body.student-portal-dashboard-page .dashboard-hero h1{
        font-size:23px;
    }

    body.student-portal-dashboard-page .dashboard-hero-meta{
        display:none;
    }

    body.student-portal-dashboard-page .profile-list{
        grid-template-columns:1fr;
    }

    body.student-portal-dashboard-page .student-footer .portal-footer-inner{
        gap:8px;
    }
}

/* Last-pass dashboard card contrast: keep after all dashboard compact overrides. */
body.student-portal-dashboard-page .metrics-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

body.student-portal-dashboard-page .metric-card{
    isolation:isolate !important;
    position:relative !important;
    overflow:hidden !important;
    border:0 !important;
    color:#ffffff !important;
    box-shadow:0 18px 42px rgba(15,23,42,.14) !important;
}

body.student-portal-dashboard-page .metric-card::before{
    content:"" !important;
    position:absolute !important;
    inset:-35% -18% auto auto !important;
    width:8.5rem !important;
    height:8.5rem !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.16) !important;
    z-index:0 !important;
}

body.student-portal-dashboard-page .metric-card::after{
    content:"" !important;
    position:absolute !important;
    inset:auto auto -40% -18% !important;
    width:8rem !important;
    height:8rem !important;
    border-radius:999px !important;
    background:rgba(0,0,0,.10) !important;
    z-index:0 !important;
}

body.student-portal-dashboard-page .metric-card > *{
    position:relative !important;
    z-index:1 !important;
}

body.student-portal-dashboard-page .metric-card .metric-icon{
    color:#0f172a !important;
    background:rgba(255,255,255,.94) !important;
    box-shadow:0 12px 26px rgba(15,23,42,.18) !important;
}

body.student-portal-dashboard-page .metric-card span,
body.student-portal-dashboard-page .metric-card strong,
body.student-portal-dashboard-page .metric-card small,
body.student-portal-dashboard-page .metric-card div{
    color:#ffffff !important;
    text-shadow:0 1px 12px rgba(0,0,0,.18) !important;
}

body.student-portal-dashboard-page .metric-card span{
    opacity:.92 !important;
    font-size:.68rem !important;
    font-weight:950 !important;
    letter-spacing:.06em !important;
    text-transform:uppercase !important;
}

body.student-portal-dashboard-page .metric-card strong{
    display:block !important;
    color:#ffffff !important;
    font-size:clamp(1.05rem,2vw,1.35rem) !important;
    font-weight:950 !important;
    line-height:1.08 !important;
    margin:.12rem 0 !important;
}

body.student-portal-dashboard-page .metric-card small{
    display:block !important;
    color:rgba(255,255,255,.88) !important;
    font-size:.72rem !important;
    font-weight:800 !important;
    line-height:1.25 !important;
}

body.student-portal-dashboard-page .metric-payment{
    background:linear-gradient(135deg,#064e3b 0%,#047857 52%,#16a34a 100%) !important;
}

body.student-portal-dashboard-page .metric-course{
    background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 55%,#06b6d4 100%) !important;
}

body.student-portal-dashboard-page .metric-gpa{
    background:linear-gradient(135deg,#581c87 0%,#7c3aed 52%,#db2777 100%) !important;
}

body.student-portal-dashboard-page .metric-cgpa{
    background:linear-gradient(135deg,#92400e 0%,#d97706 48%,#f59e0b 100%) !important;
}

@media (max-width:991px){
    body.student-portal-dashboard-page .metrics-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}

@media (max-width:575px){
    body.student-portal-dashboard-page .metrics-grid{
        grid-template-columns:1fr !important;
    }
}

/* Shared student navigation visibility fix for all portal pages. */
body.student-portal-page .student-nav,
body.student-portal-dashboard-page .student-nav{
    position:sticky;
    top:0;
    z-index:1065;
    overflow:visible !important;
    background:linear-gradient(90deg,#022c22,#047857 58%,#0f766e) !important;
    border-bottom:1px solid rgba(255,255,255,.16);
    box-shadow:0 16px 38px rgba(15,23,42,.18);
}

body.student-portal-page .student-nav .navbar-brand,
body.student-portal-dashboard-page .student-nav .navbar-brand,
body.student-portal-page .student-nav .student-dashboard-brand,
body.student-portal-dashboard-page .student-nav .student-dashboard-brand{
    color:#f0fdf4 !important;
}

body.student-portal-page .student-nav .nav-link,
body.student-portal-dashboard-page .student-nav .nav-link{
    color:rgba(240,253,244,.94) !important;
    text-shadow:none !important;
}

body.student-portal-page .student-nav .nav-link:hover,
body.student-portal-page .student-nav .nav-link.active,
body.student-portal-page .student-nav .show > .nav-link,
body.student-portal-dashboard-page .student-nav .nav-link:hover,
body.student-portal-dashboard-page .student-nav .nav-link.active,
body.student-portal-dashboard-page .student-nav .show > .nav-link{
    color:#022c22 !important;
    background:#ecfdf5 !important;
}

body.student-portal-page .student-nav .navbar-collapse,
body.student-portal-dashboard-page .student-nav .navbar-collapse{
    overflow:visible !important;
}

body.student-portal-page .student-nav .navbar-collapse.show,
body.student-portal-page .student-nav .navbar-collapse.collapsing,
body.student-portal-dashboard-page .student-nav .navbar-collapse.show,
body.student-portal-dashboard-page .student-nav .navbar-collapse.collapsing{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    height:auto !important;
}

body.student-portal-page .student-nav .navbar-toggler-icon,
body.student-portal-dashboard-page .student-nav .navbar-toggler-icon{
    filter:none !important;
}

body.student-portal-page .student-nav .dropdown-menu,
body.student-portal-dashboard-page .student-nav .dropdown-menu{
    z-index:1070;
}

@media (min-width:992px){
    body.student-portal-page .student-nav .navbar-collapse,
    body.student-portal-dashboard-page .student-nav .navbar-collapse{
        display:flex !important;
        flex-basis:auto !important;
        align-items:center;
        justify-content:flex-end;
        height:auto !important;
        margin-top:0 !important;
        padding:0 !important;
        visibility:visible !important;
        opacity:1 !important;
        background:transparent !important;
        box-shadow:none !important;
    }

    body.student-portal-page .student-nav .navbar-nav,
    body.student-portal-dashboard-page .student-nav .navbar-nav{
        display:flex !important;
        flex-direction:row !important;
        align-items:center;
        gap:6px;
    }

    body.student-portal-page .student-nav .dropdown-menu,
    body.student-portal-dashboard-page .student-nav .dropdown-menu{
        position:absolute !important;
        width:auto !important;
        min-width:240px !important;
        margin-top:8px !important;
        box-shadow:0 22px 50px rgba(15,23,42,.16) !important;
    }
}

/* Student module motion system: accessible, modern, and portal-wide. */
@keyframes studentFadeLift{
    from{opacity:0;transform:translateY(16px);}
    to{opacity:1;transform:translateY(0);}
}

@keyframes studentSoftScale{
    from{opacity:0;transform:scale(.975);}
    to{opacity:1;transform:scale(1);}
}

@keyframes studentGlowSweep{
    from{transform:translateX(-120%) skewX(-18deg);}
    to{transform:translateX(180%) skewX(-18deg);}
}

@keyframes studentFloat{
    0%,100%{transform:translateY(0);}
    50%{transform:translateY(-7px);}
}

@keyframes studentPulseRing{
    0%{box-shadow:0 0 0 0 rgba(16,185,129,.34);}
    70%{box-shadow:0 0 0 12px rgba(16,185,129,0);}
    100%{box-shadow:0 0 0 0 rgba(16,185,129,0);}
}

body.student-portal-page .top-header,
body.student-portal-page .student-nav,
body.student-portal-page .navbar{
    animation:studentFadeLift .55s ease both;
}

body.student-portal-page .top-header{
    animation-delay:.02s;
}

body.student-portal-page .student-nav,
body.student-portal-page .navbar{
    animation-delay:.08s;
}

body.student-portal-page main,
body.student-portal-page .container.mt-4,
body.student-portal-page .container.my-4{
    animation:studentFadeLift .62s ease both;
    animation-delay:.12s;
}

body.student-portal-page .card,
body.student-portal-page .panel,
body.student-portal-page .filter-card,
body.student-portal-page .student-tailwind-card,
body.student-portal-page .alert{
    animation:studentSoftScale .48s ease both;
}

body.student-portal-page .card:nth-of-type(1){animation-delay:.06s;}
body.student-portal-page .card:nth-of-type(2){animation-delay:.1s;}
body.student-portal-page .card:nth-of-type(3){animation-delay:.14s;}
body.student-portal-page .card:nth-of-type(4){animation-delay:.18s;}

body.student-portal-page .btn,
body.student-portal-page .nav-link,
body.student-portal-page .dropdown-item,
body.student-portal-page .quick-actions a,
body.student-portal-page .metric-card,
body.student-portal-page .item-row{
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        background .22s ease,
        border-color .22s ease,
        color .22s ease;
}

body.student-portal-page .btn:hover,
body.student-portal-page .quick-actions a:hover,
body.student-portal-page .item-row:hover{
    transform:translateY(-2px);
}

body.student-portal-page .btn:active,
body.student-portal-page .quick-actions a:active{
    transform:translateY(0) scale(.985);
}

body.student-portal-page .student-dashboard-brand img,
body.student-portal-page .navbar-brand img,
body.student-portal-page .top-header img{
    animation:studentPulseRing 2.6s ease-out infinite;
}

body.student-portal-dashboard-page .dashboard-hero,
body.student-portal-dashboard-page .profile-panel,
body.student-portal-dashboard-page .student-workspace{
    animation:studentFadeLift .68s ease both;
}

body.student-portal-dashboard-page .dashboard-hero{
    animation-delay:.1s;
}

body.student-portal-dashboard-page .profile-panel{
    animation-delay:.18s;
}

body.student-portal-dashboard-page .student-workspace{
    animation-delay:.28s;
}

body.student-portal-dashboard-page .dashboard-hero::before,
body.student-portal-dashboard-page .dashboard-hero::after,
body.student-portal-dashboard-page .profile-panel-glow{
    animation:studentFloat 5.5s ease-in-out infinite;
}

body.student-portal-dashboard-page .metric-card{
    animation:studentFadeLift .58s ease both;
}

body.student-portal-dashboard-page .metric-card:nth-child(1){animation-delay:.18s;}
body.student-portal-dashboard-page .metric-card:nth-child(2){animation-delay:.24s;}
body.student-portal-dashboard-page .metric-card:nth-child(3){animation-delay:.30s;}
body.student-portal-dashboard-page .metric-card:nth-child(4){animation-delay:.36s;}

body.student-portal-dashboard-page .metric-card:hover{
    transform:translateY(-4px) scale(1.012);
    box-shadow:0 24px 52px rgba(15,23,42,.18) !important;
}

body.student-portal-dashboard-page .metric-card:before{
    transition:transform .35s ease, opacity .35s ease;
}

body.student-portal-dashboard-page .metric-card:hover:before{
    transform:scale(1.12);
    opacity:.95;
}

body.student-portal-dashboard-page .quick-actions a{
    animation:studentFadeLift .5s ease both;
}

body.student-portal-dashboard-page .quick-actions a:nth-child(1){animation-delay:.12s;}
body.student-portal-dashboard-page .quick-actions a:nth-child(2){animation-delay:.16s;}
body.student-portal-dashboard-page .quick-actions a:nth-child(3){animation-delay:.20s;}
body.student-portal-dashboard-page .quick-actions a:nth-child(4){animation-delay:.24s;}
body.student-portal-dashboard-page .quick-actions a:nth-child(5){animation-delay:.28s;}
body.student-portal-dashboard-page .quick-actions a:nth-child(6){animation-delay:.32s;}

body.student-portal-page .table-responsive{
    animation:studentFadeLift .5s ease both;
}

body.student-portal-page table tbody tr{
    transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}

body.student-portal-page table tbody tr:hover{
    background:#f0fdf4;
    transform:scale(1.002);
    box-shadow:0 8px 20px rgba(15,23,42,.05);
}

body.student-portal-page .btn-success,
body.student-portal-page .btn-primary,
body.student-portal-page .icon-btn,
body.student-portal-dashboard-page .dashboard-hero-actions .btn{
    position:relative;
    overflow:hidden;
}

body.student-portal-page .btn-success::after,
body.student-portal-page .btn-primary::after,
body.student-portal-page .icon-btn::after,
body.student-portal-dashboard-page .dashboard-hero-actions .btn::after{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:44%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);
    transform:translateX(-120%) skewX(-18deg);
    pointer-events:none;
}

body.student-portal-page .btn-success:hover::after,
body.student-portal-page .btn-primary:hover::after,
body.student-portal-page .icon-btn:hover::after,
body.student-portal-dashboard-page .dashboard-hero-actions .btn:hover::after{
    animation:studentGlowSweep .8s ease;
}

@media (prefers-reduced-motion:reduce){
    body.student-portal-page *,
    body.student-portal-page *::before,
    body.student-portal-page *::after{
        animation-duration:.001ms !important;
        animation-iteration-count:1 !important;
        scroll-behavior:auto !important;
        transition-duration:.001ms !important;
    }
}

/* Final dashboard metric contrast fix. Must remain at the end of the file. */
body.student-portal-dashboard-page .metrics-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

body.student-portal-dashboard-page .metric-card{
    isolation:isolate;
    position:relative;
    overflow:hidden;
    border:0 !important;
    color:#ffffff !important;
    background:#047857 !important;
    box-shadow:0 18px 42px rgba(15,23,42,.14) !important;
}

body.student-portal-dashboard-page .metric-card::before{
    content:"";
    position:absolute;
    inset:-35% -18% auto auto;
    width:8.5rem;
    height:8.5rem;
    border-radius:999px;
    background:rgba(255,255,255,.16);
    z-index:0;
}

body.student-portal-dashboard-page .metric-card::after{
    content:"";
    position:absolute;
    inset:auto auto -40% -18%;
    width:8rem;
    height:8rem;
    border-radius:999px;
    background:rgba(0,0,0,.10);
    z-index:0;
}

body.student-portal-dashboard-page .metric-card > *{
    position:relative;
    z-index:1;
}

body.student-portal-dashboard-page .metric-card .metric-icon{
    color:#0f172a !important;
    background:rgba(255,255,255,.92) !important;
    box-shadow:0 12px 26px rgba(15,23,42,.18) !important;
}

body.student-portal-dashboard-page .metric-card span,
body.student-portal-dashboard-page .metric-card strong,
body.student-portal-dashboard-page .metric-card small,
body.student-portal-dashboard-page .metric-card div{
    color:#ffffff !important;
    text-shadow:0 1px 12px rgba(0,0,0,.18);
}

body.student-portal-dashboard-page .metric-card span{
    opacity:.92;
    font-size:.68rem !important;
    font-weight:950 !important;
    letter-spacing:.06em;
    text-transform:uppercase;
}

body.student-portal-dashboard-page .metric-card strong{
    display:block;
    color:#ffffff !important;
    font-size:clamp(1.05rem,2vw,1.35rem) !important;
    font-weight:950 !important;
    line-height:1.08;
    margin:.12rem 0;
}

body.student-portal-dashboard-page .metric-card small{
    display:block;
    color:rgba(255,255,255,.86) !important;
    font-size:.72rem !important;
    font-weight:800 !important;
    line-height:1.25;
}

body.student-portal-dashboard-page .metric-payment{
    background:linear-gradient(135deg,#065f46 0%,#047857 52%,#16a34a 100%) !important;
}

body.student-portal-dashboard-page .metric-course{
    background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 55%,#06b6d4 100%) !important;
}

body.student-portal-dashboard-page .metric-gpa{
    background:linear-gradient(135deg,#581c87 0%,#7c3aed 52%,#db2777 100%) !important;
}

body.student-portal-dashboard-page .metric-cgpa{
    background:linear-gradient(135deg,#92400e 0%,#d97706 48%,#f59e0b 100%) !important;
}

@media (max-width:991px){
    body.student-portal-dashboard-page .metrics-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}

@media (max-width:575px){
    body.student-portal-dashboard-page .metrics-grid{
        grid-template-columns:1fr !important;
    }
}

/* World-class student portal shell. Keep last so it wins over legacy page styles. */
body.student-portal-page{
    --portal-ink:#0f172a;
    --portal-muted:#64748b;
    --portal-line:#dbeafe;
    --portal-green:#047857;
    --portal-green-2:#16a34a;
    --portal-blue:#2563eb;
    --portal-gold:#f59e0b;
    --portal-card:#ffffff;
    min-height:100vh;
    color:var(--portal-ink);
    background:
        radial-gradient(circle at top left,rgba(20,184,166,.18),transparent 32rem),
        radial-gradient(circle at top right,rgba(37,99,235,.12),transparent 28rem),
        linear-gradient(180deg,#f8fafc 0%,#eefdf6 46%,#f8fafc 100%) !important;
    font-family:"Inter","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
    letter-spacing:0;
}

body.student-portal-page .top-header{
    border-top:0 !important;
    background:rgba(255,255,255,.88) !important;
    border-bottom:1px solid rgba(15,118,110,.12);
    box-shadow:0 12px 36px rgba(15,23,42,.06);
    backdrop-filter:blur(18px);
}

body.student-portal-page .top-header .container{
    max-width:1180px;
    padding-top:.25rem;
    padding-bottom:.25rem;
}

body.student-portal-page .top-header img{
    width:48px !important;
    height:48px !important;
    flex:0 0 48px;
    object-fit:cover;
    border-radius:14px;
    padding:3px;
    background:#fff;
    border:1px solid rgba(15,118,110,.18);
    box-shadow:0 10px 28px rgba(4,120,87,.12);
}

body.student-portal-page .school-title{
    color:#064e3b !important;
    font-size:clamp(.95rem,2.3vw,1.12rem);
    font-weight:950;
    line-height:1.12;
    letter-spacing:0;
}

body.student-portal-page .top-header small{
    color:#64748b !important;
    font-size:.78rem;
    font-weight:700;
}

body.student-portal-page .student-nav,
body.student-portal-page .navbar{
    z-index:1030;
    background:linear-gradient(90deg,#022c22,#047857 58%,#0f766e) !important;
    border-bottom:1px solid rgba(255,255,255,.16);
    box-shadow:0 16px 38px rgba(4,120,87,.18);
}

body.student-portal-page .student-nav .container,
body.student-portal-page .student-nav .container-fluid,
body.student-portal-page .navbar .container,
body.student-portal-page .navbar .container-fluid{
    max-width:1180px;
}

body.student-portal-page .navbar-brand,
body.student-portal-page .student-dashboard-brand{
    display:flex;
    align-items:center;
    gap:.65rem;
    min-width:0;
    color:#ecfdf5 !important;
    font-weight:950;
    letter-spacing:0;
}

body.student-portal-page .student-dashboard-brand img,
body.student-portal-page .navbar-brand img{
    width:36px;
    height:36px;
    object-fit:cover;
    border-radius:11px;
    background:#fff;
    padding:2px;
}

body.student-portal-page .student-dashboard-brand span,
body.student-portal-page .navbar-brand span{
    max-width:min(54vw,520px);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

body.student-portal-page .navbar .nav-link{
    display:inline-flex;
    align-items:center;
    gap:.42rem;
    min-height:38px;
    padding:.45rem .72rem !important;
    border-radius:999px;
    color:rgba(236,253,245,.86) !important;
    font-size:.86rem;
    font-weight:850;
}

body.student-portal-page .navbar .nav-link:hover,
body.student-portal-page .navbar .nav-link.active,
body.student-portal-page .navbar .show > .nav-link{
    color:#022c22 !important;
    background:#ecfdf5;
}

body.student-portal-page .navbar-toggler,
body.student-portal-page .student-menu-toggle{
    border:1px solid rgba(255,255,255,.24) !important;
    border-radius:12px;
    padding:.4rem .55rem;
    box-shadow:none !important;
}

body.student-portal-page .dropdown-menu{
    border:1px solid rgba(15,118,110,.14);
    border-radius:16px;
    padding:.45rem;
    box-shadow:0 22px 55px rgba(15,23,42,.16);
}

body.student-portal-page .dropdown-item{
    display:flex;
    align-items:center;
    gap:.6rem;
    border-radius:12px;
    padding:.62rem .75rem;
    color:#0f172a;
    font-weight:750;
}

body.student-portal-page .dropdown-item:hover{
    background:#ecfdf5;
    color:#047857;
}

body.student-portal-page main,
body.student-portal-page .container:not(.portal-footer-inner):not(.top-header .container),
body.student-portal-page .content{
    max-width:1180px;
}

body.student-portal-page .container.mt-4,
body.student-portal-page .container.my-4,
body.student-portal-page main{
    margin-top:1rem !important;
}

body.student-portal-page .card,
body.student-portal-page .panel,
body.student-portal-page .filter-card,
body.student-portal-page .login-card,
body.student-portal-page .student-tailwind-card{
    border:1px solid rgba(15,118,110,.11) !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.94) !important;
    box-shadow:0 18px 44px rgba(15,23,42,.07) !important;
}

body.student-portal-page .card-body,
body.student-portal-page .card.p-4,
body.student-portal-page .card.p-3{
    padding:clamp(1rem,2.2vw,1.35rem) !important;
}

body.student-portal-page h1,
body.student-portal-page h2,
body.student-portal-page h3,
body.student-portal-page h4,
body.student-portal-page h5{
    color:#0f172a;
    font-weight:950;
    letter-spacing:0;
}

body.student-portal-page h3,
body.student-portal-page h4{
    font-size:clamp(1.1rem,2.8vw,1.45rem);
}

body.student-portal-page h5{
    font-size:1rem;
}

body.student-portal-page .table-responsive{
    border-radius:16px;
    border:1px solid rgba(15,118,110,.10);
    background:#fff;
}

body.student-portal-page table{
    margin-bottom:0;
    font-size:.86rem;
}

body.student-portal-page table thead th,
body.student-portal-page .table-success th,
body.student-portal-page .table-light th{
    background:linear-gradient(90deg,#047857,#0f766e) !important;
    color:#fff !important;
    border-color:rgba(255,255,255,.18) !important;
    font-size:.72rem;
    font-weight:950;
    letter-spacing:.035em;
    text-transform:uppercase;
    white-space:nowrap;
}

body.student-portal-page table td,
body.student-portal-page table th{
    padding:.62rem .7rem;
    vertical-align:middle;
}

body.student-portal-page .form-control,
body.student-portal-page .form-select,
body.student-portal-page input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.student-portal-page select,
body.student-portal-page textarea{
    min-height:42px;
    border-radius:13px !important;
    border:1px solid #cbd5e1 !important;
    background:#fff !important;
    color:#0f172a;
    font-weight:700;
}

body.student-portal-page .form-control:focus,
body.student-portal-page .form-select:focus,
body.student-portal-page input:focus,
body.student-portal-page select:focus,
body.student-portal-page textarea:focus{
    border-color:#10b981 !important;
    box-shadow:0 0 0 .2rem rgba(16,185,129,.16) !important;
}

body.student-portal-page .btn{
    border-radius:13px;
    font-weight:900;
    letter-spacing:0;
}

body.student-portal-page .btn-success,
body.student-portal-page .btn-primary,
body.student-portal-page .icon-btn{
    border-color:transparent !important;
    background:linear-gradient(135deg,#047857,#16a34a) !important;
    color:#fff !important;
    box-shadow:0 14px 28px rgba(4,120,87,.18);
}

body.student-portal-page .btn-outline-success{
    border-color:#10b981 !important;
    color:#047857 !important;
}

body.student-portal-page .btn-outline-success:hover{
    background:#047857 !important;
    color:#fff !important;
}

body.student-portal-page .alert{
    border:0;
    border-radius:16px;
    box-shadow:0 14px 30px rgba(15,23,42,.06);
    font-weight:750;
}

body.student-portal-page .badge{
    border-radius:999px;
    font-weight:900;
}

body.student-portal-page .portal-footer{
    margin-top:1.25rem !important;
    padding:.65rem 0 !important;
    color:#ecfdf5 !important;
    background:linear-gradient(90deg,#022c22,#047857) !important;
    border-top:1px solid rgba(255,255,255,.16);
    box-shadow:0 -12px 30px rgba(15,23,42,.10);
}

body.student-portal-page .portal-footer-inner{
    max-width:1180px;
    min-height:38px;
    gap:.75rem;
}

body.student-portal-page .portal-footer strong,
body.student-portal-page .portal-footer span,
body.student-portal-page .portal-footer a{
    color:#ecfdf5 !important;
}

body.student-portal-page .portal-footer-mark{
    color:#047857 !important;
    background:#ecfdf5 !important;
}

body.student-portal-dashboard-page .student-dashboard{
    width:min(1180px,100%);
}

body.student-portal-dashboard-page .dashboard-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:1.25rem;
    border:1px solid rgba(255,255,255,.18);
    background:
        linear-gradient(135deg,rgba(2,44,34,.98),rgba(4,120,87,.9) 52%,rgba(15,23,42,.9)),
        url("bg.png") center/cover !important;
    position:relative;
    overflow:hidden;
}

body.student-portal-dashboard-page .dashboard-hero:after{
    content:"";
    position:absolute;
    right:-5rem;
    top:-5rem;
    width:18rem;
    height:18rem;
    border-radius:999px;
    background:radial-gradient(circle,rgba(255,255,255,.18),transparent 66%);
}

body.student-portal-dashboard-page .dashboard-hero-copy,
body.student-portal-dashboard-page .dashboard-hero-actions{
    position:relative;
    z-index:1;
}

body.student-portal-dashboard-page .dashboard-hero h1{
    max-width:760px;
    color:#fff;
    text-wrap:balance;
}

body.student-portal-dashboard-page .dashboard-hero p{
    color:rgba(236,253,245,.86);
}

body.student-portal-dashboard-page .dashboard-hero-meta span{
    border:1px solid rgba(255,255,255,.16);
    background:rgba(255,255,255,.10);
    color:#ecfdf5;
    backdrop-filter:blur(10px);
}

body.student-portal-dashboard-page .dashboard-grid{
    grid-template-columns:320px 1fr;
}

body.student-portal-dashboard-page .metrics-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

body.student-portal-dashboard-page .metric-card{
    border:0 !important;
    color:#fff;
    background:#0f766e !important;
    position:relative;
    overflow:hidden;
}

body.student-portal-dashboard-page .metric-card:before{
    content:"";
    position:absolute;
    inset:auto -25% -45% auto;
    width:8rem;
    height:8rem;
    border-radius:999px;
    background:rgba(255,255,255,.16);
}

body.student-portal-dashboard-page .metric-card .metric-icon{
    color:#0f172a;
    background:rgba(255,255,255,.88);
}

body.student-portal-dashboard-page .metric-card span,
body.student-portal-dashboard-page .metric-card strong,
body.student-portal-dashboard-page .metric-card small{
    color:#fff !important;
}

body.student-portal-dashboard-page .metric-payment{background:linear-gradient(135deg,#047857,#16a34a) !important;}
body.student-portal-dashboard-page .metric-course{background:linear-gradient(135deg,#1d4ed8,#0ea5e9) !important;}
body.student-portal-dashboard-page .metric-gpa{background:linear-gradient(135deg,#7c3aed,#db2777) !important;}
body.student-portal-dashboard-page .metric-cgpa{background:linear-gradient(135deg,#b45309,#f59e0b) !important;}

@media (max-width:991px){
    body.student-portal-page .navbar-collapse{
        margin-top:.75rem;
        padding:.75rem;
        border-radius:18px;
        background:rgba(2,44,34,.96);
        border:1px solid rgba(255,255,255,.14);
    }

    body.student-portal-page .navbar .nav-link{
        display:flex;
        width:100%;
        justify-content:flex-start;
        border-radius:14px;
    }

    body.student-portal-page .dropdown-menu{
        margin:.4rem 0 .55rem;
        box-shadow:none;
    }

    body.student-portal-dashboard-page .dashboard-hero,
    body.student-portal-dashboard-page .dashboard-grid{
        grid-template-columns:1fr;
    }

    body.student-portal-dashboard-page .metrics-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:575px){
    body.student-portal-page .top-header .container{
        align-items:flex-start !important;
    }

    body.student-portal-page .top-header img{
        width:42px !important;
        height:42px !important;
        flex-basis:42px;
    }

    body.student-portal-page .school-title{
        font-size:.88rem;
    }

    body.student-portal-page .student-dashboard-brand span,
    body.student-portal-page .navbar-brand span{
        max-width:68vw;
    }

    body.student-portal-dashboard-page .metrics-grid,
    body.student-portal-dashboard-page .quick-actions{
        grid-template-columns:1fr;
    }

    body.student-portal-page table{
        font-size:.8rem;
    }
}

body.student-portal-dashboard-page .student-nav .student-dashboard-brand::before{
    display:none !important;
    content:none !important;
}

body.student-portal-dashboard-page .student-nav .student-dashboard-brand img{
    width:34px;
    height:34px;
    flex:0 0 34px;
    object-fit:cover;
    border-radius:10px;
    background:#fff;
    border:2px solid rgba(255,255,255,.76);
    box-shadow:0 10px 24px rgba(20,184,166,.20);
}

body.student-portal-dashboard-page .student-nav .student-dashboard-brand span{
    display:block;
    max-width:min(58vw,520px);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

@media (max-width:575px){
    body.student-portal-dashboard-page .student-nav .student-dashboard-brand span{
        max-width:62vw;
        font-size:12px;
    }
}

body.student-portal-dashboard-page .metrics-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}

body.student-portal-dashboard-page .metric-card{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    min-height:92px;
    display:grid;
    place-items:center;
    gap:7px;
    padding:10px 8px;
    text-align:center;
    border:1px solid rgba(226,232,240,.98);
    color:#0f172a !important;
    background:#fff;
    box-shadow:0 14px 30px rgba(15,23,42,.10);
}

body.student-portal-dashboard-page .metric-card::before,
body.student-portal-dashboard-page .metric-card::after{
    content:"";
    position:absolute;
    inset:auto auto -42px -34px;
    z-index:-1;
    width:118px;
    height:118px;
    border-radius:50%;
    background:var(--metric-accent-soft,rgba(15,118,110,.10));
    animation:studentMetricFloat 7s ease-in-out infinite;
}

body.student-portal-dashboard-page .metric-card::after{
    inset:-44px -32px auto auto;
    width:96px;
    height:96px;
    opacity:.72;
    animation-duration:8.5s;
    animation-direction:reverse;
}

body.student-portal-dashboard-page .metric-card > div:last-child{
    display:grid;
    justify-items:center;
    gap:3px;
    min-width:0;
}

body.student-portal-dashboard-page .metric-card .metric-icon{
    width:34px;
    height:34px;
    margin:0 auto;
    border-radius:12px;
    color:#fff;
    background:linear-gradient(135deg,var(--metric-accent,#0f766e),var(--metric-accent-2,#16a34a)) !important;
    box-shadow:0 8px 18px var(--metric-shadow,rgba(15,118,110,.18));
    backdrop-filter:blur(10px);
}

body.student-portal-dashboard-page .metric-card span{
    color:var(--metric-accent,#0f766e) !important;
    font-size:9px;
    font-weight:950;
    text-transform:uppercase;
}

body.student-portal-dashboard-page .metric-card strong{
    margin:0;
    color:#0f172a !important;
    font-size:clamp(14px,2vw,17px);
    line-height:1.08;
}

body.student-portal-dashboard-page .metric-card small{
    max-width:100%;
    margin:0;
    overflow:hidden;
    color:#475569 !important;
    font-size:10px;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}

body.student-portal-dashboard-page .metric-payment{
    --metric-accent:#047857;
    --metric-accent-2:#16a34a;
    --metric-accent-soft:rgba(4,120,87,.10);
    --metric-shadow:rgba(4,120,87,.20);
    background:linear-gradient(135deg,#ffffff,#f0fdf4);
}

body.student-portal-dashboard-page .metric-course{
    --metric-accent:#0e7490;
    --metric-accent-2:#14b8a6;
    --metric-accent-soft:rgba(14,116,144,.10);
    --metric-shadow:rgba(14,116,144,.20);
    background:linear-gradient(135deg,#ffffff,#ecfeff);
}

body.student-portal-dashboard-page .metric-gpa{
    --metric-accent:#1d4ed8;
    --metric-accent-2:#0284c7;
    --metric-accent-soft:rgba(29,78,216,.10);
    --metric-shadow:rgba(29,78,216,.20);
    background:linear-gradient(135deg,#ffffff,#eff6ff);
}

body.student-portal-dashboard-page .metric-cgpa{
    --metric-accent:#6d28d9;
    --metric-accent-2:#2563eb;
    --metric-accent-soft:rgba(109,40,217,.10);
    --metric-shadow:rgba(109,40,217,.20);
    background:linear-gradient(135deg,#ffffff,#f5f3ff);
}

@keyframes studentMetricFloat{
    0%,100%{transform:translate3d(0,0,0) scale(1);}
    50%{transform:translate3d(18px,-14px,0) scale(1.08);}
}

@media (min-width:992px){
    body.student-portal-dashboard-page .dashboard-grid{
        grid-template-columns:270px 1fr;
        align-items:stretch;
    }

    body.student-portal-dashboard-page .metrics-grid{
        grid-template-columns:repeat(4,minmax(0,1fr));
        align-content:stretch;
    }

    body.student-portal-dashboard-page .metric-card{
        min-height:118px;
        padding:12px 8px;
    }
}

@media (max-width:575px){
    body.student-portal-dashboard-page .metric-card{
        min-height:88px;
    }
}

body.student-portal-page .top-header{
    display:none !important;
}

body.student-portal-page .navbar{
    position:sticky;
    top:0;
    z-index:1030;
    min-height:54px;
    padding-top:6px !important;
    padding-bottom:6px !important;
    background:linear-gradient(90deg,rgba(1,34,25,.97),rgba(7,89,54,.9)) !important;
    border-bottom:1px solid rgba(74,222,128,.22);
    box-shadow:0 16px 38px rgba(15,23,42,.16);
    backdrop-filter:blur(18px);
}

body.student-portal-page .navbar .container,
body.student-portal-page .navbar .container-fluid{
    max-width:1100px;
}

body.student-portal-page .navbar-brand{
    display:inline-flex !important;
    align-items:center;
    gap:10px;
    min-width:0;
    max-width:min(58vw,560px);
    color:#fff !important;
    font-size:14px !important;
    font-weight:950 !important;
    letter-spacing:0 !important;
}

body.student-portal-page .navbar-brand::before{
    display:none !important;
    content:none !important;
}

body.student-portal-page .navbar-brand img{
    width:34px;
    height:34px;
    flex:0 0 34px;
    object-fit:cover;
    border-radius:10px;
    background:#fff;
    border:2px solid rgba(255,255,255,.76);
    box-shadow:0 10px 24px rgba(20,184,166,.20);
}

body.student-portal-page .navbar-brand span{
    display:block;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

body.student-portal-page .navbar-toggler{
    width:42px;
    height:42px;
    padding:0 !important;
    border:1px solid rgba(255,255,255,.22) !important;
    border-radius:12px !important;
    background:rgba(255,255,255,.08) !important;
    box-shadow:none !important;
}

body.student-portal-page .navbar-collapse{
    margin-top:10px;
    padding:10px;
    border:1px solid rgba(148,163,184,.18);
    border-radius:14px;
    background:rgba(15,23,42,.96);
    box-shadow:0 18px 45px rgba(2,6,23,.30);
}

body.student-portal-page .navbar-nav{
    gap:6px;
}

body.student-portal-page .navbar .nav-link{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:40px;
    padding:9px 11px !important;
    border-radius:10px;
    color:#dbeafe !important;
    font-size:13px;
    font-weight:850;
}

body.student-portal-page .navbar .nav-link:hover,
body.student-portal-page .navbar .nav-link.active,
body.student-portal-page .navbar .show > .nav-link{
    color:#fff !important;
    background:linear-gradient(135deg,rgba(20,184,166,.28),rgba(37,99,235,.24)) !important;
}

body.student-portal-page .navbar .dropdown-menu{
    padding:8px;
    border:1px solid rgba(148,163,184,.18);
    border-radius:12px;
    background:#fff;
}

body.student-portal-page .navbar .dropdown-item{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:38px;
    border-radius:9px;
    color:#0f172a;
    font-size:13px;
    font-weight:800;
}

body.student-portal-page .navbar .dropdown-item:hover{
    color:#0f766e;
    background:#ecfdf5;
}

body.student-portal-page > .container,
body.student-portal-page main.container,
body.student-portal-page .container.mt-4{
    max-width:1100px;
    margin-top:10px !important;
}

body.student-portal-page .card,
body.student-portal-page .table-responsive,
body.student-portal-page .alert{
    border-radius:12px !important;
}

body.student-portal-page .card{
    border:1px solid rgba(226,232,240,.92) !important;
    box-shadow:0 14px 32px rgba(1,34,25,.08) !important;
}

body.student-portal-page .portal-footer.student-footer{
    margin:0 !important;
    padding:8px 0 !important;
    color:#e7fff4 !important;
    background:linear-gradient(90deg,rgba(1,34,25,.96),rgba(7,89,54,.88)) !important;
    border-top:1px solid rgba(74,222,128,.24);
    box-shadow:0 -12px 32px rgba(0,0,0,.14);
}

body.student-portal-page .portal-footer.student-footer .portal-footer-inner{
    max-width:1100px;
    min-height:38px;
}

body.student-portal-page .portal-footer.student-footer strong,
body.student-portal-page .portal-footer.student-footer span,
body.student-portal-page .portal-footer.student-footer a{
    color:#e7fff4 !important;
}

body.student-portal-page .portal-footer.student-footer .portal-footer-mark{
    color:#065f46 !important;
    background:linear-gradient(135deg,#ecfdf5,#bbf7d0);
}

body.student-portal-page .portal-footer.student-footer .portal-footer-links span,
body.student-portal-page .portal-footer.student-footer .portal-footer-links a{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.16);
}

@media (min-width:992px){
    body.student-portal-page .navbar-collapse{
        margin-top:0;
        padding:0;
        border:0;
        border-radius:0;
        background:transparent;
        box-shadow:none;
    }

    body.student-portal-page .navbar .dropdown-menu{
        position:absolute !important;
        min-width:230px;
        box-shadow:0 24px 55px rgba(15,23,42,.16) !important;
    }
}

@media (max-width:575px){
    body.student-portal-page .navbar{
        min-height:52px;
    }

    body.student-portal-page .navbar-brand{
        max-width:62vw;
        font-size:12px !important;
    }

    body.student-portal-page > .container,
    body.student-portal-page main.container,
    body.student-portal-page .container.mt-4{
        padding-left:10px;
        padding-right:10px;
    }
}

/* Compact dashboard polish: keep this at the end so it wins over shared page rules. */
body.student-portal-dashboard-page{
    background:
        linear-gradient(90deg,rgba(2,20,16,.96),rgba(3,80,48,.12) 38%,rgba(248,250,252,.98) 70%),
        url("bg.png") center/cover fixed !important;
}

body.student-portal-dashboard-page .student-nav{
    min-height:54px;
    background:linear-gradient(90deg,rgba(1,34,25,.97),rgba(7,89,54,.9)) !important;
    border-bottom:1px solid rgba(74,222,128,.22);
}

body.student-portal-dashboard-page .student-dashboard{
    width:min(1100px,100%);
    padding:10px 10px 16px;
}

body.student-portal-dashboard-page .dashboard-hero{
    min-height:168px;
    padding:16px;
    border-radius:14px;
    background:
        linear-gradient(90deg,rgba(2,20,16,.97),rgba(3,80,48,.84) 58%,rgba(2,20,16,.88)),
        url("bg.png") center/cover !important;
    box-shadow:0 18px 42px rgba(1,34,25,.20);
}

body.student-portal-dashboard-page .dashboard-kicker{
    min-height:28px;
    margin-bottom:6px;
    padding:5px 9px;
    color:#e7fff4;
    background:rgba(255,255,255,.10);
}

body.student-portal-dashboard-page .dashboard-hero h1{
    font-size:clamp(22px,4vw,34px);
}

body.student-portal-dashboard-page .dashboard-hero p{
    max-width:620px;
    margin-top:5px;
    font-size:13px;
    line-height:1.38;
}

body.student-portal-dashboard-page .dashboard-hero-meta{
    gap:6px;
    margin-top:10px;
}

body.student-portal-dashboard-page .dashboard-hero-meta span{
    min-height:30px;
    padding:5px 9px;
    font-size:11px;
}

body.student-portal-dashboard-page .dashboard-hero-actions .btn{
    min-height:38px;
    padding:7px 12px;
    border-radius:10px;
}

body.student-portal-dashboard-page .dashboard-grid{
    gap:10px;
    margin-top:10px;
}

body.student-portal-dashboard-page .profile-panel,
body.student-portal-dashboard-page .metric-card,
body.student-portal-dashboard-page .student-workspace{
    border-radius:12px;
    box-shadow:0 14px 32px rgba(1,34,25,.08);
}

body.student-portal-dashboard-page .profile-panel{
    padding:11px;
}

body.student-portal-dashboard-page .profile-panel-glow{
    height:70px;
    background:linear-gradient(135deg,rgba(7,89,54,.13),rgba(74,222,128,.12));
}

body.student-portal-dashboard-page .student-passport{
    width:62px;
    height:62px;
    border-radius:14px;
}

body.student-portal-dashboard-page .profile-main{
    gap:10px;
}

body.student-portal-dashboard-page .profile-main h2{
    margin-bottom:5px;
    font-size:16px;
}

body.student-portal-dashboard-page .profile-list{
    gap:6px;
    margin-top:10px;
}

body.student-portal-dashboard-page .profile-list div{
    padding:8px;
    border-radius:10px;
}

body.student-portal-dashboard-page .metrics-grid{
    gap:8px;
}

body.student-portal-dashboard-page .metric-card{
    min-height:82px;
    gap:10px;
    padding:10px;
}

body.student-portal-dashboard-page .metric-card .metric-icon{
    width:36px;
    height:36px;
    border-radius:10px;
    font-size:16px;
}

body.student-portal-dashboard-page .metric-card strong{
    font-size:15px;
}

body.student-portal-dashboard-page .metric-card small{
    margin-top:3px;
    font-size:11px;
}

body.student-portal-dashboard-page .student-workspace{
    margin-top:10px;
    padding:10px;
}

body.student-portal-dashboard-page .workspace-heading{
    margin-bottom:8px;
}

body.student-portal-dashboard-page .workspace-heading h2{
    font-size:16px;
}

body.student-portal-dashboard-page .quick-actions{
    gap:6px;
}

body.student-portal-dashboard-page .quick-actions a{
    grid-template-columns:32px 1fr;
    min-height:64px;
    padding:8px;
    border-radius:11px;
}

body.student-portal-dashboard-page .quick-actions i{
    width:32px;
    height:32px;
    border-radius:10px;
    background:linear-gradient(135deg,#065f46,#16a34a);
    font-size:15px;
}

body.student-portal-dashboard-page .quick-actions span{
    font-size:12px;
}

body.student-portal-dashboard-page .quick-actions small{
    font-size:10px;
}

body.student-portal-dashboard-page .student-footer{
    margin:0 !important;
    padding:8px 0 !important;
    color:#e7fff4 !important;
    background:linear-gradient(90deg,rgba(1,34,25,.96),rgba(7,89,54,.88)) !important;
    border-top:1px solid rgba(74,222,128,.24);
    box-shadow:0 -12px 32px rgba(0,0,0,.14);
}

body.student-portal-dashboard-page .student-footer .portal-footer-inner{
    max-width:1100px;
    min-height:38px;
}

body.student-portal-dashboard-page .student-footer strong,
body.student-portal-dashboard-page .student-footer span,
body.student-portal-dashboard-page .student-footer a{
    color:#e7fff4 !important;
}

body.student-portal-dashboard-page .student-footer .portal-footer-mark{
    color:#065f46 !important;
    background:linear-gradient(135deg,#ecfdf5,#bbf7d0);
}

body.student-portal-dashboard-page .student-footer .portal-footer-links span,
body.student-portal-dashboard-page .student-footer .portal-footer-links a{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.16);
}

@media (min-width:992px){
    body.student-portal-dashboard-page .student-dashboard{
        padding:12px 14px 16px;
    }

    body.student-portal-dashboard-page .dashboard-hero{
        min-height:176px;
        padding:18px;
    }

    body.student-portal-dashboard-page .dashboard-grid{
        grid-template-columns:292px 1fr;
    }

    body.student-portal-dashboard-page .metric-card{
        min-height:86px;
    }
}

@media (max-width:575px){
    body.student-portal-dashboard-page .student-dashboard{
        padding:8px 8px 14px;
    }

    body.student-portal-dashboard-page .dashboard-hero{
        min-height:0;
        padding:13px;
    }

    body.student-portal-dashboard-page .dashboard-hero h1{
        font-size:23px;
    }

    body.student-portal-dashboard-page .dashboard-hero-meta{
        display:none;
    }

    body.student-portal-dashboard-page .profile-list{
        grid-template-columns:1fr;
    }

    body.student-portal-dashboard-page .student-footer .portal-footer-inner{
        gap:8px;
    }
}

body.student-portal-dashboard-page{
    min-height:100vh;
    background:
        radial-gradient(circle at 12% 10%,rgba(20,184,166,.16),transparent 28%),
        radial-gradient(circle at 86% 6%,rgba(37,99,235,.14),transparent 30%),
        linear-gradient(180deg,#f8fafc 0%,#eef7f5 44%,#f8fafc 100%) !important;
}

body.student-portal-dashboard-page .top-header{
    display:none;
}

body.student-portal-dashboard-page .student-nav{
    position:sticky;
    top:0;
    z-index:1030;
    background:rgba(15,23,42,.92) !important;
    border-bottom:1px solid rgba(148,163,184,.22);
    box-shadow:0 16px 38px rgba(15,23,42,.16);
    backdrop-filter:blur(18px);
}

body.student-portal-dashboard-page .student-nav .navbar-brand{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:#fff !important;
    font-size:15px;
    font-weight:950;
    letter-spacing:0;
}

body.student-portal-dashboard-page .student-nav .student-dashboard-brand::before{
    display:none !important;
}

body.student-portal-dashboard-page .student-nav .student-dashboard-brand img{
    width:34px;
    height:34px;
    flex:0 0 34px;
    object-fit:cover;
    border-radius:10px;
    background:#fff;
    border:2px solid rgba(255,255,255,.76);
    box-shadow:0 10px 24px rgba(20,184,166,.20);
}

body.student-portal-dashboard-page .student-nav .student-dashboard-brand span{
    display:block;
    max-width:min(58vw,520px);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

body.student-portal-dashboard-page .student-nav .navbar-brand::before{
    content:"\F4D7";
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:10px;
    color:#fff;
    background:linear-gradient(135deg,#14b8a6,#2563eb);
    font-family:"bootstrap-icons";
    font-size:17px;
    box-shadow:0 10px 24px rgba(20,184,166,.25);
}

body.student-portal-dashboard-page .student-menu-toggle{
    width:42px;
    height:42px;
    padding:0;
    border:1px solid rgba(255,255,255,.22);
    border-radius:12px;
    background:rgba(255,255,255,.08);
    box-shadow:none !important;
}

body.student-portal-dashboard-page .student-nav .navbar-collapse{
    margin-top:10px;
    padding:10px;
    border:1px solid rgba(148,163,184,.18);
    border-radius:14px;
    background:rgba(15,23,42,.96);
    box-shadow:0 18px 45px rgba(2,6,23,.30);
}

body.student-portal-dashboard-page .student-nav .navbar-nav{
    gap:6px;
}

body.student-portal-dashboard-page .student-nav .nav-link{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:40px;
    padding:9px 11px !important;
    border-radius:10px;
    color:#dbeafe !important;
    font-size:13px;
    font-weight:850;
}

body.student-portal-dashboard-page .student-nav .nav-link:hover,
body.student-portal-dashboard-page .student-nav .nav-link.active,
body.student-portal-dashboard-page .student-nav .show > .nav-link{
    color:#fff !important;
    background:linear-gradient(135deg,rgba(20,184,166,.28),rgba(37,99,235,.24));
}

body.student-portal-dashboard-page .student-nav .dropdown-menu{
    padding:8px;
    border:1px solid rgba(148,163,184,.18);
    border-radius:12px;
    background:#fff;
}

body.student-portal-dashboard-page .student-nav .dropdown-item{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:38px;
    border-radius:9px;
    color:#0f172a;
    font-size:13px;
    font-weight:800;
}

body.student-portal-dashboard-page .student-nav .dropdown-item:hover{
    color:#0f766e;
    background:#ecfdf5;
}

body.student-portal-dashboard-page .student-dashboard{
    width:min(1180px,100%);
    padding:12px 10px 22px;
}

body.student-portal-dashboard-page .dashboard-hero{
    position:relative;
    overflow:hidden;
    min-height:220px;
    padding:18px;
    border:1px solid rgba(255,255,255,.48);
    border-radius:18px;
    background:
        linear-gradient(135deg,rgba(15,23,42,.94),rgba(15,118,110,.86) 48%,rgba(37,99,235,.82)),
        url("bg.png") center/cover;
    box-shadow:0 24px 65px rgba(15,23,42,.20);
}

body.student-portal-dashboard-page .dashboard-hero::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(90deg,rgba(2,6,23,.10),rgba(255,255,255,.08)),
        radial-gradient(circle at 85% 16%,rgba(255,255,255,.30),transparent 24%);
}

body.student-portal-dashboard-page .dashboard-hero-copy,
body.student-portal-dashboard-page .dashboard-hero-actions{
    position:relative;
    z-index:1;
}

body.student-portal-dashboard-page .dashboard-kicker{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin:0 0 8px;
    padding:6px 10px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    color:#ccfbf1;
    background:rgba(255,255,255,.10);
    font-size:11px;
    letter-spacing:0;
}

body.student-portal-dashboard-page .dashboard-hero h1{
    max-width:760px;
    font-size:clamp(25px,5.9vw,44px);
    line-height:1.02;
}

body.student-portal-dashboard-page .dashboard-hero p{
    max-width:690px;
    font-size:14px;
    line-height:1.48;
}

body.student-portal-dashboard-page .dashboard-hero-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:14px;
}

body.student-portal-dashboard-page .dashboard-hero-meta span{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.20);
    border-radius:999px;
    color:#f8fafc;
    background:rgba(255,255,255,.11);
    font-size:12px;
    font-weight:850;
}

body.student-portal-dashboard-page .dashboard-hero-actions{
    grid-template-columns:1fr;
}

body.student-portal-dashboard-page .dashboard-hero-actions .btn{
    min-height:42px;
    border-radius:12px;
    font-size:13px;
    font-weight:950;
    box-shadow:none !important;
}

body.student-portal-dashboard-page .dashboard-grid{
    gap:12px;
    margin-top:12px;
}

body.student-portal-dashboard-page .profile-panel,
body.student-portal-dashboard-page .metric-card,
body.student-portal-dashboard-page .student-workspace{
    border:1px solid rgba(226,232,240,.92);
    border-radius:16px;
    background:rgba(255,255,255,.88);
    box-shadow:0 20px 48px rgba(15,23,42,.08);
    backdrop-filter:blur(16px);
}

body.student-portal-dashboard-page .profile-panel{
    position:relative;
    overflow:hidden;
    padding:13px;
}

body.student-portal-dashboard-page .profile-panel-glow{
    position:absolute;
    inset:0 0 auto 0;
    height:84px;
    background:linear-gradient(135deg,rgba(20,184,166,.18),rgba(37,99,235,.14));
    pointer-events:none;
}

body.student-portal-dashboard-page .profile-main,
body.student-portal-dashboard-page .profile-list{
    position:relative;
    z-index:1;
}

body.student-portal-dashboard-page .student-passport{
    width:74px;
    height:74px;
    border-radius:18px;
    border:4px solid rgba(255,255,255,.88);
    box-shadow:0 18px 35px rgba(15,118,110,.20);
}

body.student-portal-dashboard-page .profile-main h2{
    font-size:18px;
}

body.student-portal-dashboard-page .status-pill{
    min-height:26px;
    padding:5px 9px;
    font-size:11px;
}

body.student-portal-dashboard-page .profile-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:14px;
}

body.student-portal-dashboard-page .profile-list div{
    min-width:0;
    padding:10px;
    border-radius:12px;
    background:#fff;
}

body.student-portal-dashboard-page .profile-list span,
body.student-portal-dashboard-page .metric-card span{
    letter-spacing:0;
    font-size:10px;
}

body.student-portal-dashboard-page .profile-list strong{
    overflow:hidden;
    color:#0f172a;
    font-size:12px;
    text-overflow:ellipsis;
}

body.student-portal-dashboard-page .metrics-grid{
    gap:10px;
}

body.student-portal-dashboard-page .metric-card{
    min-height:96px;
    padding:12px;
}

body.student-portal-dashboard-page .metric-card .metric-icon{
    width:42px;
    height:42px;
    border-radius:13px;
}

body.student-portal-dashboard-page .metric-card strong{
    margin-top:3px;
    font-size:17px;
}

body.student-portal-dashboard-page .metric-card small{
    margin-top:4px;
    font-size:12px;
    line-height:1.3;
}

body.student-portal-dashboard-page .student-workspace{
    margin-top:12px;
    padding:12px;
}

body.student-portal-dashboard-page .workspace-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}

body.student-portal-dashboard-page .workspace-heading span{
    color:#0f766e;
    font-size:11px;
    font-weight:950;
    text-transform:uppercase;
}

body.student-portal-dashboard-page .workspace-heading h2{
    margin:2px 0 0;
    color:#0f172a;
    font-size:18px;
    font-weight:950;
}

body.student-portal-dashboard-page .workspace-heading a{
    display:none;
    align-items:center;
    gap:6px;
    color:#2563eb;
    text-decoration:none;
    font-size:13px;
    font-weight:900;
}

body.student-portal-dashboard-page .quick-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:0;
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}

body.student-portal-dashboard-page .quick-actions a{
    display:grid;
    grid-template-columns:36px 1fr;
    grid-template-rows:auto auto;
    align-items:center;
    place-items:initial;
    column-gap:9px;
    min-height:78px;
    padding:10px;
    border:1px solid #e2e8f0;
    border-radius:14px;
    background:#fff;
    text-align:left;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

body.student-portal-dashboard-page .quick-actions a:hover{
    transform:translateY(-2px);
    border-color:rgba(20,184,166,.45);
    background:#fff;
    box-shadow:0 18px 36px rgba(15,23,42,.10);
}

body.student-portal-dashboard-page .quick-actions i{
    grid-row:span 2;
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:12px;
    color:#fff;
    background:linear-gradient(135deg,#14b8a6,#2563eb);
    font-size:17px;
}

body.student-portal-dashboard-page .quick-actions span{
    color:#0f172a;
    font-size:13px;
    font-weight:950;
}

body.student-portal-dashboard-page .quick-actions small{
    display:block;
    overflow:hidden;
    color:#64748b;
    font-size:11px;
    font-weight:700;
    text-overflow:ellipsis;
    white-space:nowrap;
}

body.student-portal-dashboard-page .student-footer{
    margin-top:0;
    padding:10px 0 !important;
}

@media (min-width:576px){
    body.student-portal-dashboard-page .student-dashboard{
        padding:14px 14px 26px;
    }

    body.student-portal-dashboard-page .dashboard-hero-actions{
        grid-template-columns:repeat(2,minmax(0,1fr));
        max-width:430px;
    }

    body.student-portal-dashboard-page .quick-actions{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    body.student-portal-dashboard-page .workspace-heading a{
        display:inline-flex;
    }
}

@media (min-width:992px){
    body.student-portal-dashboard-page .student-nav .navbar-collapse{
        margin-top:0;
        padding:0;
        border:0;
        border-radius:0;
        background:transparent;
        box-shadow:none;
    }

    body.student-portal-dashboard-page .student-nav .dropdown-menu{
        position:absolute !important;
        width:auto;
        min-width:230px;
        box-shadow:0 24px 55px rgba(15,23,42,.16) !important;
    }

    body.student-portal-dashboard-page .student-dashboard{
        padding:18px 18px 28px;
    }

    body.student-portal-dashboard-page .dashboard-hero{
        grid-template-columns:minmax(0,1fr) auto;
        align-items:end;
        min-height:240px;
        padding:26px;
    }

    body.student-portal-dashboard-page .dashboard-grid{
        grid-template-columns:330px 1fr;
        gap:12px;
    }

    body.student-portal-dashboard-page .profile-list{
        grid-template-columns:1fr;
    }

    body.student-portal-dashboard-page .metrics-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    body.student-portal-dashboard-page .metric-card{
        min-height:112px;
        padding:15px;
    }

    body.student-portal-dashboard-page .quick-actions{
        grid-template-columns:repeat(6,minmax(0,1fr));
    }
}

@media (max-width:380px){
    body.student-portal-dashboard-page .dashboard-hero{
        padding:14px;
    }

    body.student-portal-dashboard-page .dashboard-hero-meta span{
        width:100%;
    }

    body.student-portal-dashboard-page .profile-list,
    body.student-portal-dashboard-page .quick-actions{
        grid-template-columns:1fr;
    }
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0 !important;
    min-height:100vh;
    color:var(--student-dark);
    font-family:'Segoe UI',Tahoma,sans-serif !important;
    background:
        radial-gradient(circle at top left,rgba(15,118,110,.16),transparent 32%),
        radial-gradient(circle at top right,rgba(37,99,235,.10),transparent 28%),
        linear-gradient(180deg,#f8fafc 0%,#eef6f3 100%) !important;
}

body,
.card,
.card-body,
.table,
.form-control,
.form-select,
.dropdown-menu,
.modal-content{
    color:var(--student-dark) !important;
}

.container,
.container-fluid{
    max-width:1180px;
}

.container.mt-4,
.container.my-5,
.container.py-4,
.container-fluid.py-4{
    margin-top:18px !important;
}

.row{
    --bs-gutter-x:1rem;
    --bs-gutter-y:1rem;
}

.text-muted,
small,
.table td,
.table th,
label,
.form-label{
    color:#334155 !important;
}

.card,
.table,
.form-control,
.form-select,
.alert{
    background-color:#fff !important;
}

.card,
.card-box,
.modern-card,
.profile-panel,
.metric-card,
.action-card,
.auth-card{
    border:1px solid rgba(226,232,240,.94) !important;
    border-radius:8px !important;
    box-shadow:0 14px 34px rgba(15,23,42,.07) !important;
}

.card{
    overflow:hidden;
}

.card-body,
.card.p-4,
.card.p-3{
    padding:16px !important;
}

.card h1,
.card h2,
.card h3,
.card h4,
.card h5,
.card h6,
.container h1,
.container h2,
.container h3,
.container h4{
    letter-spacing:0;
    overflow-wrap:anywhere;
}

.container h1,
.container h2,
.container h3{
    font-size:clamp(20px,5vw,28px);
    font-weight:900;
}

.container h4,
.container h5{
    font-size:clamp(16px,4vw,20px);
    font-weight:900;
}

.form-control,
.form-select,
.btn{
    min-height:42px;
    border-radius:8px !important;
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    font-weight:850 !important;
    white-space:normal;
}

.alert{
    border:1px solid rgba(226,232,240,.95) !important;
    border-radius:8px !important;
    box-shadow:0 10px 24px rgba(15,23,42,.05);
}

.table-responsive{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    border-radius:8px;
}

.table{
    width:100% !important;
    margin-bottom:0 !important;
    border-color:var(--student-line) !important;
    vertical-align:middle;
    font-size:13px;
}

.table th{
    white-space:nowrap;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.02em;
}

.table td{
    overflow-wrap:anywhere;
}

.table .btn,
td .btn{
    min-height:34px;
    padding:6px 9px !important;
    font-size:12px;
}

.table-success,
.table-success > th,
.table-success > td{
    background-color:#dcfce7 !important;
    color:#14532d !important;
}

.btn-success,
.icon-btn,
button[type="submit"].btn-success{
    background:#15803d !important;
    border-color:#15803d !important;
    color:#fff !important;
}

.btn-primary{
    background:#2563eb !important;
    border-color:#2563eb !important;
    color:#fff !important;
}

.btn-secondary{
    background:#475569 !important;
    border-color:#475569 !important;
    color:#fff !important;
}

.top-header{
    position:relative;
    z-index:1060;
    border-top:0 !important;
    background:rgba(255,255,255,.94) !important;
    backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(226,232,240,.9);
    box-shadow:0 12px 30px rgba(15,23,42,.07);
}

.top-header .container{
    min-height:74px;
}

.top-header img{
    width:56px !important;
    height:56px;
    object-fit:cover;
    border-radius:12px;
    box-shadow:0 10px 22px rgba(15,118,110,.18);
}

.school-title{
    color:var(--student-dark) !important;
    font-weight:800 !important;
    letter-spacing:.2px;
}

.top-header small{
    color:var(--student-muted) !important;
    font-weight:600;
}

.navbar{
    position:sticky !important;
    top:0;
    z-index:1050;
    background:rgba(15,118,110,.96) !important;
    backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(255,255,255,.16);
    box-shadow:0 14px 34px rgba(15,23,42,.14) !important;
}

.navbar .container,
.navbar .container-fluid{
    overflow:visible !important;
}

.navbar-brand{
    display:flex;
    align-items:center;
    gap:9px;
    color:#fff !important;
    font-size:16px !important;
    font-weight:800 !important;
    letter-spacing:.2px;
}

.navbar-brand::before{
    content:"";
    width:34px;
    height:34px;
    border-radius:8px;
    background:linear-gradient(135deg,#fff,rgba(255,255,255,.72));
    box-shadow:0 10px 20px rgba(15,23,42,.18);
}

.navbar .nav-link{
    display:flex;
    align-items:center;
    gap:7px;
    border-radius:8px;
    color:rgba(255,255,255,.88) !important;
    font-weight:700 !important;
    padding:10px 13px !important;
    transition:.2s ease;
}

.navbar .nav-link:hover,
.navbar .nav-link.active{
    color:#fff !important;
    background:rgba(255,255,255,.14);
}

.navbar .nav-link.text-warning{
    color:#fff !important;
    background:rgba(245,158,11,.18);
}

.navbar-toggler{
    border:1px solid rgba(255,255,255,.25) !important;
    border-radius:8px;
    padding:8px 10px;
}

.dropdown-menu{
    overflow:hidden;
    min-width:260px;
    border:1px solid rgba(226,232,240,.95) !important;
    border-radius:8px !important;
    padding:8px !important;
    background:#fff !important;
    box-shadow:0 22px 50px rgba(15,23,42,.16) !important;
}

.dropdown-item{
    display:flex !important;
    align-items:center;
    gap:10px;
    border-radius:8px !important;
    padding:11px 12px !important;
    color:var(--student-dark) !important;
    font-size:14px;
    font-weight:700;
    transition:.2s ease;
}

.dropdown-item i{
    color:var(--student-primary) !important;
}

.dropdown-item:hover{
    background:rgba(15,118,110,.1) !important;
    color:var(--student-primary-dark) !important;
    transform:translateX(2px);
}

.student-login-page{
    min-height:100vh;
    color:#fff !important;
    background:
        linear-gradient(90deg,rgba(2,20,16,.98),rgba(3,80,48,.84) 52%,rgba(2,20,16,.96)),
        url("bg.png") center/cover fixed !important;
}

.student-login-page .top-header{
    display:none !important;
}

.student-login-page .portal-footer{
    margin:0 !important;
    padding:8px 0 !important;
    color:#e7fff4;
    background:linear-gradient(90deg,rgba(1,34,25,.96),rgba(7,89,54,.88)) !important;
    border-top:1px solid rgba(74,222,128,.24);
    box-shadow:0 -12px 32px rgba(0,0,0,.14);
}

.student-login-page .portal-footer-inner{
    max-width:1360px;
    min-height:38px;
}

.student-login-page .portal-footer strong,
.student-login-page .portal-footer span,
.student-login-page .portal-footer a{
    color:#e7fff4 !important;
}

.student-login-page .portal-footer-mark{
    color:#065f46 !important;
    background:linear-gradient(135deg,#ecfdf5,#bbf7d0);
}

.student-login-page .portal-footer-links span,
.student-login-page .portal-footer-links a{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.16);
}

.auth-shell{
    position:relative;
    width:min(1280px,100%);
    min-height:calc(100vh - 54px);
    margin:0 auto;
    padding:14px 14px 12px;
    display:grid;
    grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);
    grid-template-areas:
        "story card";
    gap:12px 18px;
    align-items:stretch;
}

.auth-shell::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 6% 88%,rgba(34,197,94,.22),transparent 20%),
        radial-gradient(circle at 46% 12%,rgba(34,197,94,.16),transparent 25%);
}

.auth-story,
.auth-card{
    position:relative;
    z-index:1;
    border-radius:18px !important;
}

.auth-story{
    grid-area:story;
    min-height:520px;
    padding:18px 18px 14px;
    overflow:hidden;
    color:#fff;
    background:
        linear-gradient(90deg,rgba(0,24,18,.96),rgba(0,88,54,.68)),
        url("bg.png") center/cover;
    border:1px solid rgba(74,222,128,.22);
    box-shadow:0 28px 70px rgba(0,0,0,.32);
}

.auth-story::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.36)),
        radial-gradient(circle at 70% 18%,rgba(34,197,94,.18),transparent 27%);
}

.auth-brand,
.auth-welcome,
.auth-trust-strip{
    position:relative;
    z-index:3;
}

.auth-brand{
    display:flex;
    align-items:center;
    gap:14px;
    max-width:560px;
}

.auth-brand img{
    width:74px !important;
    height:74px !important;
    flex:0 0 74px;
    object-fit:cover;
    border-radius:50%;
    background:#fff;
    border:4px solid rgba(255,255,255,.82);
    box-shadow:0 18px 38px rgba(0,0,0,.24);
}

.auth-brand strong{
    display:block;
    color:#fff;
    font-size:clamp(18px,1.8vw,24px);
    line-height:1.05;
    font-weight:950;
    text-transform:uppercase;
}

.auth-brand span{
    display:block;
    color:#55d66d;
    margin-top:4px;
    font-size:clamp(14px,1.25vw,18px);
    font-weight:950;
    text-transform:uppercase;
}

.auth-brand small{
    display:block;
    color:#fff;
    margin-top:7px;
    font-size:12px;
    font-weight:650;
}

.auth-welcome{
    max-width:430px;
    margin-top:26px;
}

.auth-welcome > span{
    display:block;
    width:58px;
    height:3px;
    background:#4ade80;
    margin-bottom:18px;
}

.auth-welcome h1{
    margin:0;
    color:#fff;
    font-size:clamp(28px,3vw,40px);
    line-height:1.08;
    font-weight:950;
    letter-spacing:0;
}

.auth-welcome h1 strong{
    color:#4ade80;
    font-weight:950;
}

.auth-welcome p{
    margin:14px 0 0;
    color:#fff;
    max-width:410px;
    font-size:14px;
    line-height:1.5;
    font-weight:500;
}

.auth-students{
    position:absolute;
    z-index:1;
    right:-10px;
    bottom:60px;
    width:min(72%,620px);
    max-height:500px;
    object-fit:contain;
    object-position:bottom right;
    filter:drop-shadow(0 26px 34px rgba(0,0,0,.32));
}

.auth-trust-strip{
    position:absolute;
    left:18px;
    right:18px;
    bottom:14px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0;
    padding:13px 14px;
    border-radius:16px;
    background:rgba(0,44,35,.76);
    border:1px solid rgba(74,222,128,.28);
    backdrop-filter:blur(10px);
}

.auth-trust-strip div{
    display:grid;
    grid-template-columns:34px 1fr;
    column-gap:10px;
    padding:0 10px;
    border-right:1px solid rgba(74,222,128,.18);
}

.auth-trust-strip div:last-child{
    border-right:0;
}

.auth-trust-strip i{
    grid-row:span 2;
    color:#4ade80;
    font-size:28px;
}

.auth-trust-strip span{
    color:#4ade80;
    font-size:11px;
    font-weight:900;
}

.auth-trust-strip small{
    color:#fff;
    font-size:11px;
    line-height:1.3;
}

.auth-card{
    grid-area:card;
    align-self:center;
    min-height:520px;
    padding:18px 28px !important;
    background:rgba(255,255,255,.98) !important;
    border:1px solid rgba(255,255,255,.78) !important;
    box-shadow:0 30px 75px rgba(0,0,0,.30) !important;
    color:#0c3d2e !important;
}

.auth-language{
    margin-left:auto;
    width:max-content;
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px 12px;
    border-radius:12px;
    background:#fff;
    border:1px solid #dbe7e1;
    color:#173f35;
    font-size:13px;
    font-weight:700;
    box-shadow:0 10px 25px rgba(15,23,42,.06);
}

.auth-card-head{
    text-align:center;
    margin:6px 0 22px;
}

.auth-avatar{
    width:76px;
    height:76px;
    margin:0 auto 14px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#047844;
    background:linear-gradient(135deg,#e8f5ed,#dfeee7);
    font-size:36px;
}

.auth-card-head h2{
    margin:0;
    color:#0b3d2b;
    font-size:clamp(26px,2.5vw,34px);
    font-weight:950;
    letter-spacing:0;
}

.auth-card-head p{
    max-width:360px;
    margin:9px auto 0;
    color:#435365;
    font-size:14px;
    line-height:1.4;
}

.auth-form{
    display:grid;
    gap:14px;
}

.auth-field label,
.auth-label-row label{
    display:block;
    margin:0 0 7px;
    color:#08432d !important;
    font-size:13px;
    font-weight:900;
}

.auth-label-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.auth-label-row a,
.auth-options a{
    color:#00783f;
    text-decoration:none;
    font-size:13px;
    font-weight:850;
}

.auth-input{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:48px;
    border:1px solid #d6e1dd;
    border-radius:12px;
    background:#fff;
    padding:0 13px;
    transition:.2s ease;
}

.auth-input:focus-within{
    border-color:rgba(0,120,63,.62);
    box-shadow:0 0 0 4px rgba(0,120,63,.10);
}

.auth-input > i{
    color:#315d54;
    font-size:18px;
}

.auth-input input{
    flex:1;
    min-width:0;
    border:0 !important;
    padding:10px 0 !important;
    box-shadow:none !important;
    background:transparent !important;
    color:#0f172a !important;
    font-size:14px;
}

.auth-input input::placeholder{
    color:#98a5b3;
}

.auth-toggle-password{
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    border:0;
    border-radius:8px;
    color:#315d54;
    background:transparent;
}

.auth-options{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    color:#435365;
    font-size:13px;
    font-weight:800;
}

.auth-options label{
    display:flex;
    align-items:center;
    gap:9px;
    margin:0;
    color:#435365 !important;
    text-transform:none;
    letter-spacing:0;
}

.auth-options input{
    width:18px;
    height:18px;
    accent-color:#079455;
}

.auth-submit{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    min-height:50px;
    border:0;
    border-radius:10px;
    color:#fff;
    background:linear-gradient(135deg,#11b565,#00783f);
    font-size:15px;
    font-weight:950;
    box-shadow:0 16px 28px rgba(0,120,63,.26);
}

.auth-submit:disabled{
    opacity:.75;
}

.auth-security{
    display:grid;
    grid-template-columns:38px 1fr;
    gap:12px;
    align-items:center;
    margin-top:18px;
    padding:14px;
    border-radius:12px;
    color:#0b4a32;
    background:linear-gradient(135deg,#edf8f2,#e7f2ed);
    border:1px solid #cfe5d9;
    font-size:13px;
    line-height:1.45;
}

.auth-security i{
    color:#16a34a;
    font-size:28px;
}

.auth-spin{
    animation:authSpin .8s linear infinite;
}

@keyframes authSpin{
    to{transform:rotate(360deg);}
}

.student-nav .navbar-collapse{
    margin-top:12px;
    padding:12px;
    border-radius:8px;
    background:rgba(15,118,110,.98);
    box-shadow:0 18px 45px rgba(15,23,42,.20);
}

.student-nav .navbar-nav{
    gap:6px;
}

.student-nav .dropdown-menu{
    position:static !important;
    width:100%;
    min-width:0;
    margin:6px 0 4px !important;
    box-shadow:none !important;
}

.student-dashboard{
    width:min(1080px,100%);
    margin:0 auto;
    padding:14px 12px 24px;
}

.dashboard-hero{
    display:grid;
    gap:14px;
    padding:18px;
    border-radius:8px;
    color:#fff;
    background:
        linear-gradient(135deg,rgba(15,118,110,.96),rgba(37,99,235,.82)),
        radial-gradient(circle at top right,rgba(255,255,255,.25),transparent 36%);
    box-shadow:0 18px 45px rgba(15,23,42,.18);
}

.dashboard-kicker{
    margin:0 0 6px;
    color:rgba(255,255,255,.78);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.dashboard-hero h1{
    margin:0;
    color:#fff;
    font-size:clamp(23px,7vw,36px);
    line-height:1.05;
    font-weight:900;
    letter-spacing:0;
}

.dashboard-hero p{
    margin:6px 0 0;
    color:rgba(255,255,255,.86);
    max-width:62ch;
}

.dashboard-hero-actions{
    display:grid;
    gap:10px;
}

.dashboard-hero-actions .btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
}

.dashboard-hero-actions .btn-outline-light{
    border:1px solid rgba(255,255,255,.48) !important;
    background:rgba(255,255,255,.12) !important;
    color:#fff !important;
}

.dashboard-grid{
    display:grid;
    gap:12px;
    margin-top:12px;
}

.profile-panel,
.metric-card,
.quick-actions{
    border:1px solid rgba(226,232,240,.96);
    border-radius:8px;
    background:rgba(255,255,255,.94);
    box-shadow:var(--student-shadow);
}

.profile-panel{
    padding:14px;
}

.profile-main{
    display:flex;
    align-items:center;
    gap:14px;
}

.student-passport{
    flex:0 0 auto;
    width:68px;
    height:68px;
    object-fit:cover;
    border-radius:8px;
    border:3px solid rgba(15,118,110,.18);
    box-shadow:0 14px 30px rgba(15,118,110,.18);
}

.profile-main h2{
    margin:0 0 8px;
    color:var(--student-dark);
    font-size:18px;
    font-weight:900;
    line-height:1.15;
}

.status-pill{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:5px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:900;
}

.status-success{
    background:#dcfce7;
    color:#14532d;
}

.status-warning{
    background:#fef3c7;
    color:#92400e;
}

.profile-list{
    display:grid;
    gap:8px;
    margin-top:12px;
}

.profile-list div{
    display:grid;
    gap:3px;
    padding:11px 12px;
    border-radius:8px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
}

.profile-list span,
.metric-card span{
    color:var(--student-muted);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.profile-list strong{
    color:var(--student-dark);
    font-size:14px;
}

.metrics-grid{
    display:grid;
    gap:12px;
}

.metric-card{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:108px;
    padding:14px;
}

.metric-card .metric-icon{
    flex:0 0 auto;
    width:44px;
    height:44px;
    border-radius:8px;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:19px;
    box-shadow:0 14px 25px rgba(15,23,42,.16);
}

.metric-card strong{
    display:block;
    margin-top:4px;
    color:var(--student-dark);
    font-size:19px;
    font-weight:900;
    line-height:1.1;
}

.metric-card small{
    display:block;
    margin-top:6px;
    color:var(--student-muted) !important;
    font-weight:700;
}

.metric-payment .metric-icon{background:linear-gradient(135deg,var(--student-primary),var(--student-success));}
.metric-course .metric-icon{background:linear-gradient(135deg,#0891b2,#22c55e);}
.metric-gpa .metric-icon{background:linear-gradient(135deg,var(--student-accent),#38bdf8);}
.metric-cgpa .metric-icon{background:linear-gradient(135deg,#7c3aed,var(--student-accent));}

.quick-actions{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    overflow:hidden;
    margin-top:12px;
}

.quick-actions a{
    display:grid;
    place-items:center;
    gap:7px;
    min-height:74px;
    padding:10px 8px;
    color:var(--student-dark);
    text-decoration:none;
    background:#fff;
    font-size:12px;
    font-weight:900;
    text-align:center;
}

.quick-actions i{
    color:var(--student-primary);
    font-size:20px;
}

.quick-actions a:hover{
    color:var(--student-primary-dark);
    background:#f0fdfa;
}

@media (min-width:576px){
    .student-dashboard{
        padding:16px 16px 28px;
    }

    .dashboard-hero-actions{
        grid-template-columns:repeat(2,minmax(0,1fr));
        max-width:420px;
    }

    .metrics-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .auth-highlights{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media (min-width:992px){
    .auth-shell{
        grid-template-columns:minmax(0,1fr) minmax(340px,.62fr);
        align-items:center;
        min-height:calc(100vh - 184px);
        padding:26px 24px 34px;
    }

    .auth-story{
        min-height:400px;
        display:flex;
        flex-direction:column;
        justify-content:center;
        padding:30px;
    }

    .auth-card{
        padding:22px;
    }

    .student-nav .navbar-collapse{
        margin-top:0;
        padding:0;
        border-radius:0;
        background:transparent;
        box-shadow:none;
    }

    .student-nav .dropdown-menu{
        position:absolute !important;
        width:auto;
        box-shadow:0 22px 50px rgba(15,23,42,.16) !important;
    }

    .student-dashboard{
        padding:22px 20px 34px;
    }

    .dashboard-hero{
        grid-template-columns:1fr auto;
        align-items:end;
        padding:24px;
    }

    .dashboard-grid{
        grid-template-columns:320px 1fr;
        gap:14px;
        margin-top:14px;
    }

    .profile-panel{
        padding:16px;
    }

    .student-passport{
        width:96px;
        height:96px;
    }

    .quick-actions{
        grid-template-columns:repeat(6,1fr);
        margin-top:18px;
    }
}

.container{
    max-width:1180px;
}

.container.mt-4,
.container.my-5{
    margin-top:28px !important;
}

.container > h1:first-child,
.container > h2:first-child,
.container > h3:first-child,
.container > h4:first-child,
.container > .row:first-child h3:first-child,
.content > h1:first-child,
.content > h2:first-child,
.content > h3:first-child,
.content > h4:first-child{
    color:var(--student-dark);
    font-weight:800;
    letter-spacing:.1px;
}

.card,
.login-card,
.stat-card{
    overflow:visible;
    border:1px solid rgba(226,232,240,.96) !important;
    border-radius:8px !important;
    background:var(--student-surface) !important;
    box-shadow:var(--student-shadow) !important;
}

.card.bg-primary,
.stat-card.bg-primary{
    background:linear-gradient(135deg,var(--student-accent),#38bdf8) !important;
    color:#fff !important;
}

.card.bg-success,
.stat-card.bg-success{
    background:linear-gradient(135deg,var(--student-primary),var(--student-success)) !important;
    color:#fff !important;
}

.card.bg-info,
.stat-card.bg-info{
    background:linear-gradient(135deg,#0891b2,#22c55e) !important;
    color:#fff !important;
}

.card.bg-warning,
.stat-card.bg-warning{
    background:linear-gradient(135deg,var(--student-warning),#f97316) !important;
    color:#fff !important;
}

.card.bg-danger,
.stat-card.bg-danger{
    background:linear-gradient(135deg,var(--student-danger),#ef4444) !important;
    color:#fff !important;
}

.card.bg-dark,
.stat-card.bg-dark{
    background:linear-gradient(135deg,var(--student-dark),#334155) !important;
    color:#fff !important;
}

.card.text-white,
.stat-card.text-white,
.card.text-white h1,
.card.text-white h2,
.card.text-white h3,
.card.text-white h4,
.card.text-white h5,
.card.text-white h6,
.card.text-white p,
.stat-card.text-white h1,
.stat-card.text-white h2,
.stat-card.text-white h3,
.stat-card.text-white h4,
.stat-card.text-white h5,
.stat-card.text-white h6,
.stat-card.text-white p{
    color:#fff !important;
}

.login-card{
    padding:26px !important;
}

.login-card img{
    width:80px !important;
    height:80px;
    object-fit:cover;
    border-radius:16px;
    box-shadow:0 14px 30px rgba(15,118,110,.16);
}

.login-card h6,
.card h5,
.card h6,
.stat-card h6{
    color:var(--student-dark) !important;
    font-weight:800 !important;
}

.card-body{
    padding:22px !important;
}

.stat-card{
    position:relative;
    min-height:160px;
    padding:22px !important;
    transition:.2s ease;
}

.stat-card::after{
    content:"";
    position:absolute;
    top:-34px;
    right:-34px;
    width:112px;
    height:112px;
    border-radius:50%;
    background:rgba(15,118,110,.08);
}

.stat-card:hover{
    transform:translateY(-3px) !important;
    box-shadow:0 22px 50px rgba(15,23,42,.12) !important;
}

.stat-icon,
.dashboard-icon,
.icon-circle{
    width:54px !important;
    height:54px !important;
    border-radius:8px !important;
    display:grid !important;
    place-items:center !important;
    margin:0 auto 14px !important;
    color:#fff !important;
    font-size:22px !important;
    box-shadow:0 12px 22px rgba(15,118,110,.20);
}

.icon-payment,
.btn-success{
    background:linear-gradient(135deg,var(--student-primary),var(--student-success)) !important;
}

.icon-course,
.btn-info{
    background:linear-gradient(135deg,#0891b2,#22c55e) !important;
}

.icon-gpa,
.btn-primary{
    background:linear-gradient(135deg,var(--student-accent),#38bdf8) !important;
}

.icon-cgpa{
    background:linear-gradient(135deg,#7c3aed,var(--student-accent)) !important;
}

.btn-warning{
    background:linear-gradient(135deg,var(--student-warning),#f97316) !important;
}

.btn-danger{
    background:linear-gradient(135deg,var(--student-danger),#ef4444) !important;
}

.badge.bg-success{
    background:var(--student-success) !important;
    color:#fff !important;
}

.badge.bg-primary{
    background:var(--student-accent) !important;
    color:#fff !important;
}

.badge.bg-info{
    background:#0891b2 !important;
    color:#fff !important;
}

.badge.bg-warning{
    background:var(--student-warning) !important;
    color:#111827 !important;
}

.badge.bg-danger{
    background:var(--student-danger) !important;
    color:#fff !important;
}

.btn,
.icon-btn{
    border:0 !important;
    border-radius:8px !important;
    padding:10px 16px !important;
    font-weight:800 !important;
    transition:.2s ease !important;
}

.icon-btn{
    width:100%;
    background:linear-gradient(135deg,var(--student-primary),var(--student-success)) !important;
}

.btn:hover,
.icon-btn:hover{
    transform:translateY(-1px) !important;
    box-shadow:0 12px 22px rgba(15,23,42,.14) !important;
}

.form-label,
label{
    color:var(--student-muted);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.form-control,
.form-select,
select,
textarea,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="date"],
input[type="file"]{
    border:1px solid #d9e2ef !important;
    border-radius:8px !important;
    padding:10px 12px !important;
    font-size:14px !important;
    box-shadow:none !important;
}

.form-floating > .form-control{
    padding-top:1.625rem !important;
    padding-bottom:.625rem !important;
}

.form-control:focus,
.form-select:focus,
select:focus,
textarea:focus,
input:focus{
    border-color:rgba(15,118,110,.72) !important;
    box-shadow:0 0 0 4px rgba(15,118,110,.11) !important;
}

.form-floating i{
    position:absolute;
    right:14px;
    top:50%;
    z-index:2;
    color:var(--student-primary);
    transform:translateY(-50%);
}

.student-passport,
.passport-preview{
    width:118px !important;
    height:118px !important;
    object-fit:cover;
    border-radius:50% !important;
    border:4px solid #fff !important;
    box-shadow:0 0 0 1px var(--student-line),0 16px 30px rgba(15,23,42,.12) !important;
}

.badge,
.status-badge{
    padding:7px 11px !important;
    border-radius:999px !important;
    font-size:12px !important;
    font-weight:800 !important;
}

.alert{
    border:0 !important;
    border-radius:8px !important;
    font-weight:700;
}

.table{
    border-color:var(--student-line) !important;
    border-radius:8px !important;
    font-size:14px;
}

.table thead{
    background:#111827 !important;
    color:#fff !important;
}

.table thead th{
    padding:14px 12px !important;
    border-color:#111827 !important;
    color:#fff !important;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
    white-space:nowrap;
}

.table thead.table-success{
    background:#dcfce7 !important;
    color:#14532d !important;
}

.table thead.table-success th{
    background:#dcfce7 !important;
    border-color:#bbf7d0 !important;
    color:#14532d !important;
}

.table thead.table-light{
    background:#f8fafc !important;
    color:var(--student-dark) !important;
}

.table thead.table-light th{
    background:#f8fafc !important;
    border-color:var(--student-line) !important;
    color:var(--student-dark) !important;
}

.table thead.table-dark{
    background:#111827 !important;
    color:#fff !important;
}

.table thead.table-dark th{
    background:#111827 !important;
    border-color:#111827 !important;
    color:#fff !important;
}

.table tbody td{
    padding:13px 12px !important;
    border-color:#edf2f7 !important;
    vertical-align:middle !important;
}

.table tbody tr:hover{
    background:#f8fbff !important;
}

.table .table-success th,
.table .table-success td{
    background:#dcfce7 !important;
    color:#14532d !important;
}

.table .table-light th,
.table .table-light td{
    background:#f8fafc !important;
    color:var(--student-dark) !important;
}

.table-responsive{
    overflow-x:auto;
    border:1px solid var(--student-line);
    border-radius:8px;
    background:#fff;
}

.card > .table,
.card > table.table{
    display:block;
    width:100%;
    overflow-x:auto;
    white-space:nowrap;
}

.progress{
    height:10px;
    border-radius:999px;
    background:#e2e8f0;
}

.progress-bar{
    background:linear-gradient(135deg,var(--student-primary),var(--student-success));
}

.modal-content{
    border:0 !important;
    border-radius:8px !important;
    box-shadow:var(--student-shadow) !important;
}

.modal.fade .modal-dialog{
    transform:translateY(24px) scale(.96);
    opacity:0;
    transition:transform .28s cubic-bezier(.16,1,.3,1), opacity .22s ease;
}

.modal.show .modal-dialog{
    transform:translateY(0) scale(1);
    opacity:1;
}

.modal.fade .modal-content{
    animation:dfsModalPop .32s cubic-bezier(.16,1,.3,1);
}

.modal-backdrop.show{
    animation:dfsModalBackdrop .22s ease both;
}

.dfs-animated-modal{
    border:0 !important;
    border-radius:8px !important;
    box-shadow:0 24px 70px rgba(15,23,42,.22) !important;
}

.swal2-container.swal2-backdrop-show{
    animation:dfsModalBackdrop .22s ease both;
}

@keyframes dfsModalPop{
    from{opacity:0;transform:translateY(24px) scale(.94);}
    to{opacity:1;transform:translateY(0) scale(1);}
}

@keyframes dfsModalOut{
    from{opacity:1;transform:translateY(0) scale(1);}
    to{opacity:0;transform:translateY(10px) scale(.98);}
}

@keyframes dfsModalBackdrop{
    from{opacity:0;}
    to{opacity:1;}
}

.portal-footer,
.footer,
.bg-success.text-white.mt-5.py-3{
    margin-top:24px !important;
    padding:16px 0 !important;
    color:var(--student-muted) !important;
    background:rgba(255,255,255,.9) !important;
    border-top:1px solid rgba(226,232,240,.9);
    box-shadow:0 -10px 24px rgba(15,23,42,.04);
}

.portal-footer-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    flex-wrap:wrap;
}

.portal-footer-brand{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

.portal-footer-mark{
    width:36px;
    height:36px;
    flex:0 0 36px;
    display:grid;
    place-items:center;
    border-radius:8px;
    color:#0f766e !important;
    background:rgba(255,255,255,.92);
    box-shadow:0 10px 22px rgba(15,23,42,.10);
}

.portal-footer strong{
    display:block;
    color:var(--student-dark);
    font-size:13px;
    line-height:1.35;
}

.portal-footer span{
    color:var(--student-muted);
    font-size:12px;
}

.portal-footer-links{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    font-size:12px;
    font-weight:900;
}

.portal-footer-links span,
.portal-footer-links a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:32px;
    padding:6px 10px;
    border-radius:999px;
    background:rgba(15,118,110,.08);
    border:1px solid rgba(15,118,110,.13);
    text-decoration:none;
}

.portal-footer a,
.footer a,
.bg-success.text-white.mt-5.py-3 a{
    color:var(--student-primary-dark) !important;
    font-weight:900;
    text-decoration:none;
}

@media (min-width:992px){
    .navbar .dropdown:hover > .dropdown-menu{
        display:block;
        opacity:1;
        visibility:visible;
        transform:translateY(0);
    }
}

@media (max-width:991px){
    .top-header .container{
        min-height:64px;
    }

    .top-header img{
        width:48px !important;
        height:48px;
    }

    .school-title{
        font-size:14px;
        line-height:1.25;
    }

    .navbar-collapse{
        margin-top:12px;
        padding:12px;
        border-radius:8px;
        background:rgba(15,94,89,.98) !important;
        box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
    }

    .navbar .nav-link{
        justify-content:flex-start;
        width:100%;
    }

    .dropdown-menu{
        position:static !important;
        width:100%;
        min-width:0;
        margin-top:6px !important;
        box-shadow:none !important;
    }

    .container.mt-4,
    .container.my-5{
        margin-top:18px !important;
    }

    .card-body,
    .card.p-4,
    .card.p-3{
        padding:14px !important;
    }

    .row > [class*="col-"]{
        min-width:0;
    }
}

@media (max-width:575px){
    .container{
        padding-left:14px;
        padding-right:14px;
    }

    .card-body,
    .login-card{
        padding:18px !important;
    }

    .card.p-4,
    .card.p-3{
        padding:14px !important;
    }

    .d-flex:not(.navbar .d-flex):not(.top-header .d-flex):not(.portal-footer-inner):not(.auth-logo):not(.profile-main){
        min-width:0;
    }

    .d-flex.flex-wrap,
    .d-flex.flex-column,
    .d-flex.flex-md-row{
        align-items:stretch !important;
    }

    .btn,
    .form-control,
    .form-select{
        width:100%;
    }

    .table:not(.desktop-table){
        border:0 !important;
    }

    .table:not(.desktop-table) thead{
        display:none;
    }

    .table:not(.desktop-table) tbody,
    .table:not(.desktop-table) tr,
    .table:not(.desktop-table) td,
    .table:not(.desktop-table) th{
        display:block;
        width:100%;
    }

    .table:not(.desktop-table) tr{
        margin-bottom:12px;
        border:1px solid var(--student-line);
        border-radius:8px;
        background:#fff;
        box-shadow:0 10px 24px rgba(15,23,42,.05);
        overflow:hidden;
    }

    .table:not(.desktop-table) td,
    .table:not(.desktop-table) th{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        border:0 !important;
        border-bottom:1px solid #eef2f7 !important;
        padding:10px 12px !important;
        text-align:right;
    }

    .table:not(.desktop-table) td:last-child,
    .table:not(.desktop-table) th:last-child{
        border-bottom:0 !important;
    }

    .table:not(.desktop-table) td::before,
    .table:not(.desktop-table) th::before{
        content:attr(data-label);
        flex:0 0 44%;
        color:var(--student-muted);
        font-size:11px;
        font-weight:900;
        text-align:left;
        text-transform:uppercase;
        letter-spacing:.04em;
    }

    .table:not(.desktop-table) td:not([data-label])::before,
    .table:not(.desktop-table) th:not([data-label])::before{
        content:"";
        display:none;
    }

    .auth-story{
        padding:18px;
    }

    .auth-highlights{
        grid-template-columns:1fr;
    }

    .portal-footer-inner{
        align-items:flex-start;
        flex-direction:column;
    }

    .stat-card{
        min-height:auto;
    }

    .student-passport,
    .passport-preview{
        width:92px !important;
        height:92px !important;
    }

    h1,h2,h3,h4{
        font-size:20px !important;
    }
}

.student-dashboard .dashboard-hero h1{
    font-size:clamp(26px,8vw,44px) !important;
}

.student-dashboard .profile-panel .student-passport{
    width:78px !important;
    height:78px !important;
    border-radius:8px !important;
    border:3px solid rgba(15,118,110,.18) !important;
}

@media (min-width:992px){
    .student-dashboard .profile-panel .student-passport{
        width:96px !important;
        height:96px !important;
    }
}

@media print{
    .navbar,
    .top-header,
    .footer,
    .bg-success.text-white.mt-5.py-3{
        display:none !important;
    }

    body{
        background:#fff !important;
    }
}

@media (max-width:1280px){
    .student-login-page .auth-shell{
        grid-template-columns:minmax(0,1fr) minmax(310px,390px);
        gap:12px;
    }

    .student-login-page .auth-story{
        min-height:510px;
    }

    .student-login-page .auth-students{
        width:min(66%,540px);
        right:-16px;
        bottom:68px;
    }

    .student-login-page .auth-trust-strip{
        grid-template-columns:repeat(2,1fr);
        gap:12px;
    }

    .student-login-page .auth-trust-strip div{
        border-right:0;
        padding:0;
    }
}

@media (min-width:1281px){
    .student-login-page .auth-shell{
        width:min(1280px,100%);
        min-height:calc(100vh - 54px);
        padding:14px 14px 12px;
        grid-template-columns:minmax(0,1.18fr) minmax(330px,.78fr);
        grid-template-areas:
            "story card";
        align-items:stretch;
    }

    .student-login-page .auth-story{
        min-height:520px;
        display:block;
        padding:18px 18px 14px;
    }

    .student-login-page .auth-card{
        min-height:520px;
        padding:18px 28px !important;
    }

    .student-login-page .auth-students{
        width:min(72%,620px);
        right:-10px;
        bottom:60px;
    }
}

@media (max-width:991px){
    .student-login-page .auth-shell{
        min-height:auto;
        grid-template-columns:1fr;
        grid-template-areas:
            "story"
            "card";
        padding:12px;
    }

    .student-login-page .auth-story{
        min-height:0;
        padding:16px;
    }

    .student-login-page .auth-brand img{
        width:76px !important;
        height:76px !important;
        flex-basis:76px;
    }

    .student-login-page .auth-welcome{
        width:100%;
        max-width:640px;
        margin-top:24px;
    }

    .student-login-page .auth-students{
        position:relative;
        right:auto;
        bottom:auto;
        display:block;
        width:min(100%,560px);
        margin:10px auto -2px;
    }

    .student-login-page .auth-trust-strip{
        position:relative;
        left:auto;
        right:auto;
        bottom:auto;
        margin-top:12px;
    }

    .student-login-page .auth-card{
        min-height:0;
        padding:18px !important;
    }

    .student-login-page .portal-footer{
        text-align:left;
    }
}

@media (max-width:575px){
    .student-login-page .auth-shell{
        padding:10px;
    }

    .student-login-page .auth-brand{
        align-items:flex-start;
    }

    .student-login-page .auth-brand img{
        width:54px !important;
        height:54px !important;
        flex-basis:54px;
        border-width:3px;
    }

    .student-login-page .auth-brand strong{
        font-size:18px;
    }

    .student-login-page .auth-brand span{
        font-size:14px;
    }

    .student-login-page .auth-brand small{
        font-size:12px;
    }

    .student-login-page .auth-welcome{
        margin-top:20px;
    }

    .student-login-page .auth-welcome h1{
        font-size:29px !important;
    }

    .student-login-page .auth-welcome p{
        font-size:15px;
    }

    .student-login-page .auth-trust-strip{
        display:none;
    }

    .student-login-page .auth-students{
        width:min(100%,430px);
        margin-top:6px;
    }

    .student-login-page .auth-card-head{
        margin-bottom:16px;
    }

    .student-login-page .auth-avatar{
        width:66px;
        height:66px;
        font-size:32px;
    }

    .student-login-page .auth-card-head h2{
        font-size:26px !important;
    }

    .student-login-page .auth-label-row,
    .student-login-page .auth-options{
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }

}

/* Dashboard compact theme must stay last to override shared dashboard defaults. */
body.student-portal-dashboard-page{
    background:
        linear-gradient(90deg,rgba(2,20,16,.96),rgba(3,80,48,.12) 38%,rgba(248,250,252,.98) 70%),
        url("bg.png") center/cover fixed !important;
}

body.student-portal-dashboard-page .student-nav{
    min-height:54px;
    background:linear-gradient(90deg,rgba(1,34,25,.97),rgba(7,89,54,.9)) !important;
    border-bottom:1px solid rgba(74,222,128,.22);
}

body.student-portal-dashboard-page .student-dashboard{
    width:min(1100px,100%);
    padding:10px 10px 16px;
}

body.student-portal-dashboard-page .dashboard-hero{
    min-height:168px;
    padding:16px;
    border-radius:14px;
    background:
        linear-gradient(90deg,rgba(2,20,16,.97),rgba(3,80,48,.84) 58%,rgba(2,20,16,.88)),
        url("bg.png") center/cover !important;
    box-shadow:0 18px 42px rgba(1,34,25,.20);
}

body.student-portal-dashboard-page .dashboard-kicker{
    min-height:28px;
    margin-bottom:6px;
    padding:5px 9px;
    color:#e7fff4;
    background:rgba(255,255,255,.10);
}

body.student-portal-dashboard-page .dashboard-hero h1{
    font-size:clamp(22px,4vw,34px);
}

body.student-portal-dashboard-page .dashboard-hero p{
    max-width:620px;
    margin-top:5px;
    font-size:13px;
    line-height:1.38;
}

body.student-portal-dashboard-page .dashboard-hero-meta{
    gap:6px;
    margin-top:10px;
}

body.student-portal-dashboard-page .dashboard-hero-meta span{
    min-height:30px;
    padding:5px 9px;
    font-size:11px;
}

body.student-portal-dashboard-page .dashboard-hero-actions .btn{
    min-height:38px;
    padding:7px 12px;
    border-radius:10px;
}

body.student-portal-dashboard-page .dashboard-grid{
    gap:10px;
    margin-top:10px;
}

body.student-portal-dashboard-page .profile-panel,
body.student-portal-dashboard-page .metric-card,
body.student-portal-dashboard-page .student-workspace{
    border-radius:12px;
    box-shadow:0 14px 32px rgba(1,34,25,.08);
}

body.student-portal-dashboard-page .profile-panel{
    padding:11px;
}

body.student-portal-dashboard-page .student-passport{
    width:62px;
    height:62px;
    border-radius:14px;
}

body.student-portal-dashboard-page .profile-main{
    gap:10px;
}

body.student-portal-dashboard-page .profile-main h2{
    margin-bottom:5px;
    font-size:16px;
}

body.student-portal-dashboard-page .profile-list{
    gap:6px;
    margin-top:10px;
}

body.student-portal-dashboard-page .profile-list div{
    padding:8px;
    border-radius:10px;
}

body.student-portal-dashboard-page .metrics-grid{
    gap:8px;
}

body.student-portal-dashboard-page .metric-card{
    min-height:82px;
    gap:10px;
    padding:10px;
}

body.student-portal-dashboard-page .metric-card .metric-icon{
    width:36px;
    height:36px;
    border-radius:10px;
    font-size:16px;
}

body.student-portal-dashboard-page .metric-card strong{
    font-size:15px;
}

body.student-portal-dashboard-page .metric-card small{
    margin-top:3px;
    font-size:11px;
}

body.student-portal-dashboard-page .student-workspace{
    margin-top:10px;
    padding:10px;
}

body.student-portal-dashboard-page .workspace-heading{
    margin-bottom:8px;
}

body.student-portal-dashboard-page .workspace-heading h2{
    font-size:16px;
}

body.student-portal-dashboard-page .quick-actions{
    gap:6px;
}

body.student-portal-dashboard-page .quick-actions a{
    grid-template-columns:32px 1fr;
    min-height:64px;
    padding:8px;
    border-radius:11px;
}

body.student-portal-dashboard-page .quick-actions i{
    width:32px;
    height:32px;
    border-radius:10px;
    background:linear-gradient(135deg,#065f46,#16a34a);
    font-size:15px;
}

body.student-portal-dashboard-page .quick-actions span{
    font-size:12px;
}

body.student-portal-dashboard-page .quick-actions small{
    font-size:10px;
}

body.student-portal-dashboard-page .student-footer{
    margin:0 !important;
    padding:8px 0 !important;
    color:#e7fff4 !important;
    background:linear-gradient(90deg,rgba(1,34,25,.96),rgba(7,89,54,.88)) !important;
    border-top:1px solid rgba(74,222,128,.24);
    box-shadow:0 -12px 32px rgba(0,0,0,.14);
}

body.student-portal-dashboard-page .student-footer .portal-footer-inner{
    max-width:1100px;
    min-height:38px;
}

body.student-portal-dashboard-page .student-footer strong,
body.student-portal-dashboard-page .student-footer span,
body.student-portal-dashboard-page .student-footer a{
    color:#e7fff4 !important;
}

body.student-portal-dashboard-page .student-footer .portal-footer-mark{
    color:#065f46 !important;
    background:linear-gradient(135deg,#ecfdf5,#bbf7d0);
}

body.student-portal-dashboard-page .student-footer .portal-footer-links span,
body.student-portal-dashboard-page .student-footer .portal-footer-links a{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.16);
}

@media (min-width:992px){
    body.student-portal-dashboard-page .student-dashboard{
        padding:12px 14px 16px;
    }

    body.student-portal-dashboard-page .dashboard-hero{
        min-height:176px;
        padding:18px;
    }

    body.student-portal-dashboard-page .dashboard-grid{
        grid-template-columns:292px 1fr;
    }

    body.student-portal-dashboard-page .metric-card{
        min-height:86px;
    }
}

@media (max-width:575px){
    body.student-portal-dashboard-page .student-dashboard{
        padding:8px 8px 14px;
    }

    body.student-portal-dashboard-page .dashboard-hero{
        min-height:0;
        padding:13px;
    }

    body.student-portal-dashboard-page .dashboard-hero h1{
        font-size:23px;
    }

    body.student-portal-dashboard-page .dashboard-hero-meta{
        display:none;
    }

    body.student-portal-dashboard-page .profile-list{
        grid-template-columns:1fr;
    }

    body.student-portal-dashboard-page .student-footer .portal-footer-inner{
        gap:8px;
    }
}

/* Last-pass dashboard card contrast: keep at physical EOF. */
body.student-portal-dashboard-page .metrics-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

body.student-portal-dashboard-page .metric-card{
    isolation:isolate !important;
    position:relative !important;
    overflow:hidden !important;
    border:0 !important;
    color:#ffffff !important;
    box-shadow:0 18px 42px rgba(15,23,42,.14) !important;
}

body.student-portal-dashboard-page .metric-card::before{
    content:"" !important;
    position:absolute !important;
    inset:-35% -18% auto auto !important;
    width:8.5rem !important;
    height:8.5rem !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.16) !important;
    z-index:0 !important;
}

body.student-portal-dashboard-page .metric-card::after{
    content:"" !important;
    position:absolute !important;
    inset:auto auto -40% -18% !important;
    width:8rem !important;
    height:8rem !important;
    border-radius:999px !important;
    background:rgba(0,0,0,.10) !important;
    z-index:0 !important;
}

body.student-portal-dashboard-page .metric-card > *{
    position:relative !important;
    z-index:1 !important;
}

body.student-portal-dashboard-page .metric-card .metric-icon{
    color:#0f172a !important;
    background:rgba(255,255,255,.94) !important;
    box-shadow:0 12px 26px rgba(15,23,42,.18) !important;
}

body.student-portal-dashboard-page .metric-card span,
body.student-portal-dashboard-page .metric-card strong,
body.student-portal-dashboard-page .metric-card small,
body.student-portal-dashboard-page .metric-card div{
    color:#ffffff !important;
    text-shadow:0 1px 12px rgba(0,0,0,.18) !important;
}

body.student-portal-dashboard-page .metric-card span{
    opacity:.92 !important;
    font-size:.68rem !important;
    font-weight:950 !important;
    letter-spacing:.06em !important;
    text-transform:uppercase !important;
}

body.student-portal-dashboard-page .metric-card strong{
    display:block !important;
    color:#ffffff !important;
    font-size:clamp(1.05rem,2vw,1.35rem) !important;
    font-weight:950 !important;
    line-height:1.08 !important;
    margin:.12rem 0 !important;
}

body.student-portal-dashboard-page .metric-card small{
    display:block !important;
    color:rgba(255,255,255,.88) !important;
    font-size:.72rem !important;
    font-weight:800 !important;
    line-height:1.25 !important;
}

body.student-portal-dashboard-page .metric-payment{
    background:linear-gradient(135deg,#064e3b 0%,#047857 52%,#16a34a 100%) !important;
}

body.student-portal-dashboard-page .metric-course{
    background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 55%,#06b6d4 100%) !important;
}

body.student-portal-dashboard-page .metric-gpa{
    background:linear-gradient(135deg,#581c87 0%,#7c3aed 52%,#db2777 100%) !important;
}

body.student-portal-dashboard-page .metric-cgpa{
    background:linear-gradient(135deg,#92400e 0%,#d97706 48%,#f59e0b 100%) !important;
}

@media (max-width:991px){
    body.student-portal-dashboard-page .metrics-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}

@media (max-width:575px){
    body.student-portal-dashboard-page .metrics-grid{
        grid-template-columns:1fr !important;
    }
}
