/* AIS Students Portal • presentation-only refresh • Bootstrap 5 / NiceAdmin compatible */
:root{--ais-blue:#0055a3;--ais-navy:#0b315f;--ais-green:#00a94f;--ais-ink:#19314b;--ais-muted:#64758b;--ais-stroke:#e2ebf5;--ais-wash:#f3f7fc;--ais-shadow:0 15px 42px rgba(19,49,91,.075)}
body.ais-student-portal{background:linear-gradient(160deg,#f4f9ff 0%,#f5f8fc 46%,#f9fcff 100%);color:var(--ais-ink);font-family:Nunito,'Segoe UI',Arial,sans-serif}
.ais-student-portal a,.ais-student-login a{color:var(--ais-blue)}
.ais-student-portal a:focus-visible,.ais-student-portal button:focus-visible,.ais-student-login :is(a,button,input):focus-visible{outline:3px solid rgba(0,169,79,.55);outline-offset:3px}
.ais-student-portal #header{height:72px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--ais-stroke);box-shadow:0 3px 18px rgba(18,51,89,.055);padding:0 22px;backdrop-filter:blur(10px)}
.ais-student-portal .header .logo img{max-height:46px!important;margin-left:10px}
.ais-student-portal .header-nav .nav-profile img{width:38px;height:38px;border:2px solid #e1efff}
.ais-student-portal .header-nav .nav-profile span{color:var(--ais-navy);font-weight:800}
.ais-student-portal .ais-menu-toggle{appearance:none;background:#edf5ff;border:0;color:var(--ais-blue);display:grid;place-items:center;width:44px;height:44px;border-radius:13px;font-size:23px;cursor:pointer;padding:0;line-height:1}
.ais-student-portal .ais-menu-toggle:hover{background:#e2f1ff}
.ais-student-portal #sidebar{top:72px;border-right:1px solid var(--ais-stroke);background:#fff;box-shadow:4px 0 22px rgba(16,44,85,.035);padding:20px 13px 36px}
.ais-student-portal .sidebar-nav .nav-heading{color:#8a9bb0;letter-spacing:.09em;font-size:11px;margin-top:15px}
.ais-student-portal .sidebar-nav .nav-link{border-radius:12px;min-height:45px;padding:11px 13px;color:#415b78;font-weight:800;transition:background-color .16s,color .16s}
.ais-student-portal .sidebar-nav .nav-link i{font-size:18px;color:#6d86a3}
.ais-student-portal .sidebar-nav .nav-link:hover{background:#f0f7ff;color:var(--ais-blue)}
.ais-student-portal .sidebar-nav .nav-link:not(.collapsed){background:#eaf5ff;color:var(--ais-blue)}
.ais-student-portal .sidebar-nav .nav-content a{border-radius:9px;margin:3px 7px;padding:9px 11px;font-size:13px;overflow-wrap:anywhere}
.ais-student-portal .sidebar-nav .nav-content a:hover{background:#f0f7ff}
.ais-student-portal .main{margin-top:88px;padding:22px 28px 48px;max-width:1720px}
.ais-student-portal .pagetitle{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:19px}
.ais-student-portal .pagetitle h1{font-size:clamp(23px,2.6vw,30px);letter-spacing:-.035em;font-weight:900;color:var(--ais-navy);margin:0}
.ais-student-portal .breadcrumb{margin:0;font-size:12px}
.ais-student-portal .breadcrumb .active{color:#73849b}
.ais-student-portal .section .card{border:1px solid var(--ais-stroke);border-radius:19px;background:#fff;box-shadow:var(--ais-shadow);overflow:hidden;margin-bottom:20px}
.ais-student-portal .section .card-body{padding:22px 24px}
.ais-student-portal .section .card-title{color:var(--ais-navy);font-size:17px;font-weight:900;letter-spacing:-.015em;padding:0;margin-bottom:18px}
.ais-student-portal .section .card-title span{color:#8394a8;font-weight:600}
.ais-student-portal .section .info-card h6{color:var(--ais-navy);font-weight:900}
.ais-student-portal .section .info-card .card-icon{background:#eaf5ff;color:var(--ais-blue)}
.ais-student-portal .section .btn-primary,.ais-student-portal .section .bg-primary{background-color:var(--ais-blue)!important;border-color:var(--ais-blue)!important}
.ais-student-portal .section .btn-primary{border-radius:10px;font-weight:800;padding:9px 15px}
.ais-student-portal .section .btn-primary:hover{background-color:#003d78!important}
.ais-student-portal .section .btn-success{background:#008b43;border-color:#008b43;border-radius:10px;font-weight:800}
.ais-student-portal .accordion{--bs-accordion-border-color:var(--ais-stroke);--bs-accordion-border-radius:17px;--bs-accordion-inner-border-radius:17px}
.ais-student-portal .accordion-item{border:1px solid var(--ais-stroke)!important;border-radius:17px!important;overflow:hidden;margin-bottom:15px;background:#fff;box-shadow:0 8px 25px rgba(17,50,87,.04)}
.ais-student-portal .accordion-button{font-size:15px;font-weight:900;color:var(--ais-navy);padding:18px 21px;box-shadow:none!important}
.ais-student-portal .accordion-button:not(.collapsed){background:#edf6ff;color:var(--ais-blue)}
.ais-student-portal .accordion-body{padding:16px}
.ais-student-portal .nav-tabs{border-bottom:1px solid var(--ais-stroke);gap:6px}
.ais-student-portal .nav-tabs .nav-link{border:0;border-radius:10px 10px 0 0;font-weight:800;color:#526981;padding:10px 15px}
.ais-student-portal .nav-tabs .nav-link.active{background:#eaf5ff;color:var(--ais-blue);border-bottom:3px solid var(--ais-green)}
.ais-student-portal .table-responsive{border-radius:12px}
.ais-student-portal table{--bs-table-border-color:#e5edf7}
.ais-student-portal table :is(th,td){vertical-align:middle}
.ais-student-portal .custom-grid{width:100%;font-size:13px}
.ais-student-portal .custom-grid th{background:#eaf5ff;color:var(--ais-navy);font-weight:900;padding:12px}
.ais-student-portal .custom-grid td{color:#35506e;font-weight:600;padding:11px;overflow-wrap:anywhere}
.ais-student-portal .section .modal-content,.ais-student-portal .modal-content{border:1px solid var(--ais-stroke);border-radius:19px;overflow:hidden;box-shadow:0 30px 80px rgba(8,38,74,.18)}
.ais-student-portal .modal-header{background:#f7fbff;border-bottom:1px solid var(--ais-stroke)}
.ais-student-portal .modal-title{color:var(--ais-navy);font-weight:900}
.ais-student-portal .profile .profile-card h2{color:var(--ais-navy);font-weight:900}
.ais-student-portal .profile .profile-card h3{color:var(--ais-muted);font-weight:700}
.ais-student-portal .profile .profile-overview .label{color:#60758e;font-size:13px;font-weight:800}
.ais-student-portal .profile .profile-overview .row{border-bottom:1px solid #f0f3f8;padding:10px 0;margin:0}
.ais-student-portal .profile .profile-overview .row>div{overflow-wrap:anywhere}
.ais-student-portal #footer{font-size:12px;color:#8a9bb0}
/* Dashboard: purposeful hero and direct access instead of decorative statistics. */
.ais-student-portal .ais-student-hero{position:relative;overflow:hidden;background:linear-gradient(116deg,#0a315f 0%,#0055a3 63%,#0875ca 100%);color:#fff;padding:28px 32px 31px;border-radius:22px;box-shadow:0 18px 38px rgba(0,70,145,.16);margin-bottom:20px}
.ais-student-portal .ais-student-hero:before{content:"";position:absolute;right:-65px;top:-120px;width:350px;height:350px;border:64px solid rgba(255,255,255,.06);border-radius:50%;pointer-events:none}
.ais-student-portal .ais-student-hero:after{content:"";position:absolute;right:16%;bottom:-105px;width:250px;height:250px;background:rgba(0,169,79,.15);border-radius:50%;pointer-events:none}
.ais-student-portal .ais-student-hero-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}
.ais-student-portal .ais-student-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:#ace9c8;font-weight:900;margin:0 0 9px}
.ais-student-portal .ais-student-hero h2{color:#fff;font-size:clamp(25px,3vw,35px);font-weight:900;line-height:1.12;letter-spacing:-.035em;margin:0 0 9px}
.ais-student-portal .ais-student-hero p{color:#d9eafb;margin:0;max-width:650px;font-size:14px;line-height:1.6}
.ais-student-portal .ais-student-hero .ais-hero-link{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--ais-blue);border-radius:11px;text-decoration:none;padding:12px 17px;font-size:13px;font-weight:900;white-space:nowrap}
.ais-student-portal .ais-student-quicklinks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:0 0 24px}
.ais-student-portal .ais-student-quicklink{display:flex;gap:12px;align-items:center;min-height:94px;padding:16px;border:1px solid var(--ais-stroke);background:#fff;border-radius:17px;color:var(--ais-navy);box-shadow:0 9px 27px rgba(16,52,90,.045);text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}
.ais-student-portal .ais-student-quicklink:hover{color:var(--ais-blue);border-color:#c6dff9;box-shadow:0 16px 32px rgba(16,52,90,.10);transform:translateY(-2px)}
.ais-student-portal .ais-student-quicklink i{display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;border-radius:13px;background:#eaf5ff;color:var(--ais-blue);font-size:21px}
.ais-student-portal .ais-student-quicklink:nth-child(2) i{background:#e6f8ee;color:#008c46}
.ais-student-portal .ais-student-quicklink:nth-child(3) i{background:#f1ecff;color:#7352bc}
.ais-student-portal .ais-student-quicklink:nth-child(4) i{background:#fff3e6;color:#b96715}
.ais-student-portal .ais-student-quicklink strong{display:block;font-size:14px;line-height:1.2;font-weight:900}
.ais-student-portal .ais-student-quicklink small{display:block;color:#75869b;font-size:11px;margin-top:5px;line-height:1.35}
.ais-student-portal .ais-student-section-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:2px 0 14px}
.ais-student-portal .ais-student-section-caption h2{color:var(--ais-navy);font-size:19px;font-weight:900;letter-spacing:-.02em;margin:0}
.ais-student-portal .ais-student-section-caption span{color:#7b8da4;font-size:12px}
.ais-student-portal #announcementsCard{border-top:4px solid var(--ais-green)}
.ais-student-portal #announcementsCard .card-title:before{content:"\f18a";font-family:'bootstrap-icons';font-size:17px;margin-right:9px;color:var(--ais-green)}
.ais-student-portal #announcementsCard h4{font-size:16px!important;font-weight:900;line-height:1.45}
.ais-student-portal #dashboardCalendar,.ais-student-portal #dashboardEventCalendar{min-height:310px}
.ais-student-portal .pdf-container{width:100%;max-width:100%;overflow:auto}
.ais-student-portal #viewAcademicCalendarEmbed{min-height:550px;max-width:100%}
.ais-student-portal #viewAcademicCalendarEmbed iframe{max-width:100%;min-height:520px}
.ais-student-portal #ePortfolioContainer .table{min-width:540px}
.ais-student-portal #ePortfolioContainer{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ais-student-portal .ais-page-hint{display:flex;align-items:center;gap:9px;color:#587087;font-size:13px;line-height:1.5;margin:0 0 17px}
.ais-student-portal .ais-page-hint i{font-size:17px;color:var(--ais-green)}
.ais-student-portal .ais-terms .card-body h6{color:var(--ais-blue);font-weight:900;font-size:16px;margin-bottom:12px}
.ais-student-portal .ais-terms .card-body p{line-height:1.9;color:#465d77;font-size:14px}
.ais-student-portal .ais-terms .card-body>div:not(:first-child){padding-top:10px;border-top:1px solid #edf2f8}
.ais-student-portal .ais-mobile-backdrop{display:none}
/* Login / maintenance: standalone pages share the same tokens, not the master shell. */
body.ais-student-login,body.ais-student-maintenance{min-height:100vh;min-height:100dvh;background:radial-gradient(ellipse at 10% 8%,rgba(0,169,79,.08),transparent 45%),radial-gradient(ellipse at 93% 95%,rgba(0,85,163,.10),transparent 45%),#f3f7fc;color:var(--ais-ink);font-family:Nunito,'Segoe UI',Arial,sans-serif}
.ais-student-login .ais-auth-wrap{max-width:990px;margin:0 auto;padding:25px 15px;min-height:100vh;min-height:100dvh;display:flex;align-items:center}
.ais-student-login .ais-auth-shell{width:100%;display:grid;grid-template-columns:minmax(270px,.92fr) minmax(340px,1.08fr);min-height:600px;border:1px solid #e6edf7;border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 24px 75px rgba(19,53,98,.15)}
.ais-student-login .ais-auth-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:43px 39px;background:linear-gradient(145deg,var(--ais-navy),var(--ais-blue) 67%,#0878d2);color:#fff}
.ais-student-login .ais-auth-brand:after{content:"";position:absolute;width:320px;height:320px;right:-190px;top:-85px;border:55px solid rgba(255,255,255,.07);border-radius:50%;pointer-events:none}
.ais-student-login .ais-auth-brand h1{color:#fff;font-size:clamp(30px,3.5vw,44px);font-weight:900;letter-spacing:-.04em;line-height:1.12;margin:0 0 16px}
.ais-student-login .ais-auth-brand p{color:#d5e7f9;line-height:1.7;font-size:15px;max-width:300px}
.ais-student-login .ais-auth-brand .ais-auth-kicker{font-size:12px;letter-spacing:.15em;font-weight:900;color:#aff3ce;text-transform:uppercase}
.ais-student-login .ais-auth-brand .ais-brand-foot{font-size:12px;color:#b8d9ef}
.ais-student-login .ais-auth-main{display:flex;align-items:center;justify-content:center;padding:46px 55px}
.ais-student-login .ais-auth-form{width:100%;max-width:385px}
.ais-student-login .ais-auth-logo{max-height:83px;max-width:150px;object-fit:contain;margin-bottom:27px}
.ais-student-login .ais-auth-form .ais-auth-subtitle{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#008f44;font-weight:900;margin-bottom:8px}
.ais-student-login .ais-auth-form h2{color:var(--ais-navy);font-size:30px;font-weight:900;letter-spacing:-.025em;margin:0 0 7px}
.ais-student-login .ais-auth-form .ais-auth-description{color:#75869b;font-size:14px;line-height:1.6;margin-bottom:27px}
.ais-student-login .ais-auth-form .form-label{color:#364b65;font-size:13px;font-weight:900;margin-bottom:7px}
.ais-student-login .ais-auth-form .form-control{min-height:52px;border:1px solid #dce6f2;border-radius:11px;font-size:16px;padding:12px 14px;background:#fff;box-shadow:none}
.ais-student-login .ais-auth-form .form-control:focus{border-color:var(--ais-blue);box-shadow:0 0 0 4px rgba(0,85,163,.11)}
.ais-student-login .ais-input-wrap{position:relative}
.ais-student-login .ais-input-wrap .form-control{padding-right:48px}
.ais-student-login .ais-password-toggle{position:absolute;right:7px;top:6px;border:0;border-radius:9px;background:transparent;color:#75869b;height:40px;width:40px;display:grid;place-items:center}
.ais-student-login .ais-password-toggle:hover{background:#eef6ff;color:var(--ais-blue)}
.ais-student-login .ais-auth-submit{width:100%;min-height:52px;border:0;border-radius:11px;background:var(--ais-blue);color:#fff;font-weight:900;display:flex;gap:8px;align-items:center;justify-content:center;box-shadow:0 10px 22px rgba(0,85,163,.2)}
.ais-student-login .ais-auth-submit:hover{background:#003d78;color:#fff}
.ais-student-login .ais-auth-submit:disabled{opacity:.7;cursor:wait}
.ais-student-login .ais-auth-form .alert{border-radius:11px;font-size:13px;margin-top:18px}
.ais-student-login .ais-auth-help{color:#8190a4;font-size:12px;line-height:1.5;margin-top:18px}
.ais-student-maintenance .maintenance-card{border-radius:23px;border:1px solid var(--ais-stroke);box-shadow:0 24px 65px rgba(19,53,98,.12)}
.ais-student-maintenance .maintenance-icon{color:var(--ais-blue);background:#eaf5ff}
.ais-student-maintenance .maintenance-title,.ais-student-maintenance .portal-label{color:var(--ais-navy)}
@media(max-width:1199.98px){.ais-student-portal .main{padding:19px 19px 40px}.ais-student-portal .ais-student-quicklinks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1199.98px){
 .ais-student-portal .ais-mobile-backdrop{position:fixed;inset:72px 0 0;z-index:995;background:rgba(8,30,56,.40);display:block;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility .2s}
 .ais-student-portal.toggle-sidebar .ais-mobile-backdrop{opacity:1;visibility:visible;pointer-events:auto}
 .ais-student-portal #sidebar{box-shadow:12px 0 32px rgba(8,35,69,.14)}
}
@media(max-width:767.98px){
 .ais-student-portal #header{height:64px;padding:0 12px}.ais-student-portal #sidebar{top:64px}.ais-student-portal .ais-mobile-backdrop{top:64px}
 .ais-student-portal .main{margin-top:73px;padding:13px 11px 35px}
 .ais-student-portal .section .card{border-radius:15px;margin-bottom:13px}.ais-student-portal .section .card-body{padding:16px 14px}
 .ais-student-portal .pagetitle{margin-bottom:14px}.ais-student-portal .pagetitle h1{font-size:23px}
 .ais-student-portal .ais-student-hero{padding:23px 20px;border-radius:17px;margin-bottom:12px}.ais-student-portal .ais-student-hero p{font-size:13px}.ais-student-portal .ais-student-hero .ais-hero-link{width:100%;justify-content:center}
 .ais-student-portal .ais-student-quicklinks{gap:9px;margin-bottom:17px}.ais-student-portal .ais-student-quicklink{min-height:86px;padding:11px;gap:9px;border-radius:13px;align-items:flex-start;flex-direction:column}
 .ais-student-portal .ais-student-quicklink i{width:34px;height:34px;flex:0 0 34px;font-size:18px;border-radius:10px}.ais-student-portal .ais-student-quicklink strong{font-size:13px}.ais-student-portal .ais-student-quicklink small{font-size:10px;margin-top:3px}
 .ais-student-portal .accordion-button{padding:14px;font-size:14px}.ais-student-portal .accordion-body{padding:10px}
 .ais-student-portal .section .card table{font-size:12px}.ais-student-portal .section .card :is(th,td){padding:9px 8px}
 .ais-student-portal #viewAcademicCalendarEmbed{min-height:420px;height:70dvh!important}.ais-student-portal #viewAcademicCalendarEmbed iframe{min-height:420px}
 .ais-student-portal .profile .row>div{max-width:100%}
 .ais-student-login .ais-auth-shell{grid-template-columns:1fr;min-height:0;border-radius:18px}.ais-student-login .ais-auth-brand{padding:22px 24px;min-height:140px;gap:13px}.ais-student-login .ais-auth-brand h1{font-size:26px;margin-bottom:5px}.ais-student-login .ais-auth-brand p{font-size:12px;margin-bottom:0}.ais-student-login .ais-auth-brand .ais-brand-foot{display:none}.ais-student-login .ais-auth-main{padding:27px 23px 32px}.ais-student-login .ais-auth-logo{max-height:60px;margin-bottom:17px}.ais-student-login .ais-auth-form h2{font-size:25px}
}
@media(prefers-reduced-motion:reduce){.ais-student-portal *, .ais-student-login *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

@media(min-width:1200px){.ais-student-portal .ais-student-profile-card{position:sticky;top:94px}}
@media(max-width:1199.98px){.ais-student-portal .ais-student-profile-card{position:static}}
.ais-student-portal .accordion-collapse{scroll-margin-top:90px}
.ais-student-portal #announcementsCard{scroll-margin-top:92px}

/* v2.1: the generic AIS link-color rule must never recolor filled Bootstrap links.
   In E-Portfolio this had made View Document blue-on-blue, appearing blank. */
.ais-student-portal a.btn-primary,
.ais-student-portal a.btn-primary:visited,
.ais-student-portal a.btn-primary:hover,
.ais-student-portal a.btn-primary:focus,
.ais-student-portal a.btn-success,
.ais-student-portal a.btn-success:visited,
.ais-student-portal a.btn-success:hover,
.ais-student-portal a.btn-danger,
.ais-student-portal a.btn-danger:visited,
.ais-student-portal a.btn-danger:hover,
.ais-student-portal a.btn-secondary,
.ais-student-portal a.btn-secondary:visited,
.ais-student-portal a.btn-secondary:hover { color: #fff !important; }
.ais-student-portal .section a.btn-primary:focus-visible { outline: 3px solid #00a94f; outline-offset: 3px; }
