/* Student portal skin — deliberately different from the employee back office (top navigation, teal/blue, airy) */
body.portal{--brand:#0d9488;--brand-2:#2563eb;--bs-primary:#0d9488;--bs-primary-rgb:13,148,136;--bs-link-color:#0f766e;--bs-link-hover-color:#115e59;--bg:#f2f7f9;--line:#e1ebef;background:var(--bg)}
[data-bs-theme=dark] body.portal,body.portal[data-bs-theme=dark]{--bg:#0a1517}
.portal .btn-primary{--bs-btn-bg:#0d9488;--bs-btn-border-color:#0d9488;--bs-btn-hover-bg:#0f766e;--bs-btn-hover-border-color:#0f766e;--bs-btn-active-bg:#115e59;box-shadow:0 8px 18px -8px rgba(13,148,136,.8)}
.portal .form-control:focus,.portal .form-select:focus{border-color:#0d9488;box-shadow:0 0 0 .25rem rgba(13,148,136,.15)}
.portal .page-head h1 i{background:rgba(13,148,136,.12);color:#0d9488}
.portal .nav-pills .nav-link.active{background:#0d9488}.portal .badge.bg-primary-subtle{color:#0f766e!important}
.pnav{background:var(--card);border-bottom:1px solid var(--line);padding:.6rem 0;position:sticky;top:0;z-index:1030;box-shadow:0 6px 20px -16px rgba(15,23,42,.35)}
.pnav .navbar-brand{display:flex;align-items:center;gap:.7rem;font-size:1rem;color:var(--ink)}.pnav .navbar-brand small{display:block;color:#0d9488;font-weight:600;font-size:.72rem}.pnav .navbar-brand b{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pbrand{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#0d9488,#2563eb);color:#fff;display:grid;place-items:center;font-size:1.3rem;box-shadow:0 10px 22px -8px rgba(13,148,136,.8);flex:none}.pbrand.lg{width:64px;height:64px;font-size:2rem;border-radius:20px}
.pnav .nav-link{display:flex;align-items:center;gap:.45rem;color:var(--muted);font-weight:600;padding:.5rem .85rem!important;border-radius:99px;font-size:.9rem}.pnav .nav-link:hover{color:#0f766e;background:rgba(13,148,136,.08)}.pnav .nav-link.active{color:#fff;background:linear-gradient(135deg,#0d9488,#2563eb)}
.picon{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center}.picon:hover{color:#0d9488;border-color:#0d9488}
.pavatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#0d9488,#2563eb);color:#fff;display:grid;place-items:center;font-weight:700}
.pmain{padding-block:1.6rem 2rem;min-height:70vh}.pfoot{display:flex;justify-content:space-between;color:var(--muted);font-size:.8rem;padding-block:1rem 1.5rem;border-top:1px solid var(--line)}
.portal .card{border-radius:18px}.portal .stat .ico.g1{background:linear-gradient(135deg,#0d9488,#14b8a6)}.portal .stat .ico.g2{background:linear-gradient(135deg,#2563eb,#38bdf8)}
@media(max-width:991px){.pnav .nav-link{border-radius:12px}.pnav .navbar-collapse{padding-top:.8rem}}

/* login */
.plogin{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.plogin.single{grid-template-columns:1fr}
.plogin-art{position:relative;overflow:hidden;background:linear-gradient(150deg,#0f766e,#0e7490 55%,#1d4ed8);color:#fff;display:grid;align-items:center;padding:3rem}
.plogin-blob{position:absolute;border-radius:50%;filter:blur(2px);opacity:.25}.b1{width:420px;height:420px;background:#5eead4;top:-140px;inset-inline-end:-120px}.b2{width:320px;height:320px;background:#93c5fd;bottom:-120px;inset-inline-start:-80px}
.plogin-art-in{position:relative;max-width:480px}.plogin-art h1{font-weight:800;font-size:2.1rem;line-height:1.35;margin:1.2rem 0 .6rem}.plogin-art p{opacity:.85;font-size:1.05rem}
.plogin-points{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:.9rem}.plogin-points li{display:flex;align-items:center;gap:.8rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:.7rem 1rem;backdrop-filter:blur(4px)}.plogin-points i{font-size:1.2rem}
.plogin-form{display:grid;place-items:center;padding:2rem;background:var(--card)}.plogin-card{width:100%;max-width:420px}
.plogin-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(13,148,136,.12);color:#0f766e;font-weight:700;border-radius:99px;padding:.3rem .9rem;font-size:.85rem;margin-bottom:1rem}
.plogin-card h2{font-weight:800;margin-bottom:.3rem}
.pinput{position:relative}.pinput>i{position:absolute;inset-inline-start:1rem;top:50%;transform:translateY(-50%);color:var(--muted);z-index:2}.pinput .form-control{padding-inline-start:2.8rem}
@media(max-width:900px){.plogin{grid-template-columns:1fr}.plogin-art{display:none}}

/* keep the top bar on one line on laptop widths */
.pnav .nav-link{white-space:nowrap;padding:.45rem .7rem!important;font-size:.86rem}
.pnav .navbar-brand b{max-width:180px}
@media(min-width:992px) and (max-width:1399px){.pnav .nav-link i{display:none}}

.pmore{min-width:230px;max-height:70vh;overflow-y:auto;border-radius:14px;padding:.4rem}.pmore .dropdown-item{border-radius:9px;padding:.5rem .7rem}
