/* Branded campus visual and purposeful interaction states. */
:root{--ease-out:cubic-bezier(.2,.8,.2,1);--ring:0 0 0 3px rgba(19,137,119,.23)}
.dashboard-hero{background-image:linear-gradient(90deg,rgba(11,36,62,.87) 0%,rgba(11,36,62,.68) 39%,rgba(11,36,62,.06) 82%),url('./campus-hero.png');background-size:cover;background-position:center;min-height:290px;align-items:center;border:1px solid #365a6d;box-shadow:0 22px 44px rgba(12,48,74,.12)}
.dashboard-hero .hero-graphic{display:none}.dashboard-hero h2{font-size:clamp(30px,2.7vw,43px);max-width:540px}.dashboard-hero p{font-size:14px}.hero-actions a{display:inline-flex;gap:6px;align-items:center;padding:10px 0;border:0;transition:gap .25s var(--ease-out),color .25s}.hero-actions a:hover{gap:12px;color:#9bffe3}
.department-cover{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;min-height:210px;border-radius:20px;margin:0 0 18px;padding:26px 36px;color:white;background-image:linear-gradient(90deg,rgba(8,34,59,.92) 0%,rgba(8,34,59,.72) 42%,rgba(8,34,59,.08) 100%),url('./campus-hero.png');background-size:cover;background-position:center;border:1px solid #315a6d;box-shadow:0 18px 38px rgba(12,48,74,.1)}
.department-cover-content{position:relative;z-index:1}.cover-kicker{font-size:10px;letter-spacing:.14em;font-weight:800;color:#8de7cb}.department-cover h2{font:800 clamp(26px,2.5vw,38px)/1.15 Manrope,sans-serif;letter-spacing:-.04em;margin:10px 0 8px}.department-cover h2 em{font-style:normal;color:#85e3c8}.department-cover p{font-size:12px;color:#cbdfe4;margin:0 0 15px}.department-cover a{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:800;color:#a1ffdf;transition:gap .25s var(--ease-out)}.department-cover a:hover{gap:17px}.cover-year{position:absolute;top:20px;right:24px;border:1px solid #ffffff55;background:#0d304860;padding:7px 12px;border-radius:999px;font-size:11px;font-weight:800;backdrop-filter:blur(8px)}
.dashboard-stats{gap:15px}.dashboard-stats .stat{min-height:173px}.metric-card{display:flex;flex-direction:column;align-items:flex-start;color:var(--text);border:1px solid #d3e5e6;position:relative;isolation:isolate;overflow:hidden;transition:transform .32s var(--ease-out),box-shadow .32s var(--ease-out),border-color .32s var(--ease-out)}
.metric-card:before{content:'';position:absolute;right:-40px;top:-47px;width:155px;height:155px;border:1px solid currentColor;border-radius:50%;opacity:.09;z-index:-1}.metric-card:after{content:'';position:absolute;right:1px;bottom:35px;width:90px;height:90px;border:1px solid currentColor;border-radius:50%;opacity:.06;z-index:-1}
.metric-card:hover,.metric-card:focus-visible{transform:translateY(-5px);box-shadow:0 18px 35px rgba(15,71,85,.14);border-color:#81ccb9}.metric-card:focus-visible,.button:focus-visible,.nav-item:focus-visible,.section-tabs a:focus-visible,.directory-card:focus-visible,.teacher-card a:focus-visible,.ranking-row:focus-visible,.report-bar:focus-visible{outline:none;box-shadow:var(--ring)}
.metric-card span:first-child{font-weight:700;font-size:12px}.metric-card strong{font-size:32px;margin-top:16px}.metric-card small{font-size:11px}.metric-card .metric-art{position:absolute;right:16px;top:17px;width:43px;height:43px;border-radius:14px;display:grid;place-items:center;font-size:25px;font-weight:600;color:#096f78;background:#d6f1ec;transform:rotate(-7deg);transition:transform .32s var(--ease-out),background .32s}.metric-card:hover .metric-art{transform:rotate(5deg) scale(1.12)}.metric-cta{width:100%;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:800;margin-top:auto;padding-top:12px;border-top:1px solid rgba(21,68,80,.14)}.metric-cta b{font-size:16px;transition:transform .25s var(--ease-out)}.metric-card:hover .metric-cta b{transform:translate(3px,-3px)}
.metric-hours{background:linear-gradient(145deg,#123b57,#0d6e72);color:#fff;border-color:#0c5969}.metric-hours strong,.metric-hours span,.metric-hours small{color:#fff}.metric-hours .metric-art{color:#c2ffea;background:#ffffff20}.metric-hours:before,.metric-hours:after{opacity:.17}.metric-hours .metric-cta{border-color:#ffffff30}
.metric-staff{background:linear-gradient(145deg,#fff,#ecf9f3)}.metric-staff .metric-art{color:#087b6b;background:#d8f3e5}.metric-departments{background:linear-gradient(145deg,#fff,#f0f5ff)}.metric-departments .metric-art{color:#316eaf;background:#e0ecfc}.metric-teachers{background:linear-gradient(145deg,#fff,#faf3e9)}.metric-teachers .metric-art{color:#b67424;background:#fce9ca}
.department-stats .stat{min-height:132px;background:linear-gradient(145deg,#fff,#f8fcfb);transition:transform .28s var(--ease-out),box-shadow .28s var(--ease-out),border-color .28s}.department-stats .stat:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(15,71,85,.09);border-color:#a9d8cb}.department-stats .stat:nth-child(2){background:linear-gradient(145deg,#fff,#f2f8ff)}.department-stats .stat:nth-child(3){background:linear-gradient(145deg,#fff,#fcf8f0)}.department-stats .stat:nth-child(4){background:linear-gradient(145deg,#e6f6ef,#d7efe7)}.department-stats .metric-art{position:absolute;right:15px;top:15px;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#dff3eb;color:#0b816f;font-size:20px}.department-stats .stat:nth-child(2) .metric-art{background:#e1efff;color:#327aba}.department-stats .stat:nth-child(3) .metric-art{background:#fff0d6;color:#bc8532}.department-stats .stat:nth-child(4) .metric-art{background:#c4ebd6;color:#0b785b}
.button,.quiet,.section-tabs a,.directory-card,.teacher-card,.ranking-row,.report-bar,.sidebar nav .nav-item{transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),border-color .25s var(--ease-out),background-color .25s var(--ease-out),color .25s var(--ease-out)}
.button:hover:not(:disabled){filter:none;transform:translateY(-2px);box-shadow:0 8px 18px rgba(10,97,90,.15)}.button:active:not(:disabled),.quiet:active{transform:translateY(0) scale(.98)}.quiet:hover{background:#dcefeb;color:#076d63}.sidebar nav .nav-item:hover{transform:translateX(4px);background:#ffffff1e}.sidebar nav .nav-item.active:hover{background:#205771}.section-tabs a:hover{background:#e7f5f1;color:#067a69}.directory-card:hover{transform:translateY(-5px);box-shadow:0 18px 34px rgba(18,68,81,.13);border-color:#64c7ad}.directory-card:hover .directory-icon{transform:rotate(-7deg) scale(1.08)}.directory-icon{transition:transform .3s var(--ease-out)}.teacher-card:hover{border-color:#8fd0bd;background:#f9fdfa;transform:translateY(-2px)}.ranking-row:hover,.report-bar:hover{background:#f3faf8}.ranking-row:hover .ranking-arrow{transform:translate(3px,-3px)}.ranking-arrow{transition:transform .25s}
.table-scroll tbody tr{transition:background-color .18s}.table-scroll tbody tr:hover td{background:#f3faf8}.activity-track span,.ranking-track i,.report-bar i{transform-origin:left;animation:bar-reveal .7s var(--ease-out) both}.activity-row:nth-child(2) .activity-track span,.ranking-row:nth-child(2) .ranking-track i{animation-delay:.08s}.activity-row:nth-child(3) .activity-track span,.ranking-row:nth-child(3) .ranking-track i{animation-delay:.16s}.activity-row:nth-child(4) .activity-track span{animation-delay:.24s}@keyframes bar-reveal{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.dashboard-stats .metric-card{animation:card-enter .55s var(--ease-out) both}.dashboard-stats .metric-card:nth-child(2){animation-delay:.07s}.dashboard-stats .metric-card:nth-child(3){animation-delay:.14s}.dashboard-stats .metric-card:nth-child(4){animation-delay:.21s}@keyframes card-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:640px){.dashboard-hero{background-image:linear-gradient(90deg,rgba(8,31,55,.91),rgba(8,31,55,.72)),url('./campus-hero.png');background-position:58% center;min-height:220px}.dashboard-hero h2{font-size:27px}.department-cover{min-height:210px;padding:22px;background-image:linear-gradient(90deg,rgba(8,31,55,.94),rgba(8,31,55,.67)),url('./campus-hero.png');background-position:63% center}.department-cover h2{font-size:25px}.department-cover p{max-width:230px}.cover-year{right:12px;top:11px;font-size:9px}.dashboard-stats .stat{min-height:148px;padding:14px}.metric-card strong{font-size:25px;margin-top:18px}.metric-card .metric-art{width:29px;height:29px;right:9px;top:10px;font-size:18px}.metric-cta{font-size:9px;padding-top:9px}.department-stats .stat{min-height:110px}.department-stats .metric-art{right:9px;top:9px;width:27px;height:27px;font-size:16px}.sidebar nav .nav-item:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Official NPUU emblem in app chrome and sign-in. */
.brand-mark img,.hero-top .brand-mark img{display:block;width:27px;height:27px;object-fit:contain}.brand-mark{flex:none}.topbar-brand-mark{display:none}.hero-top .brand-mark{width:46px;height:46px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24)}.hero-top .brand-mark img{width:31px;height:31px}
@media(max-width:640px){.topbar-identity{grid-template-columns:29px minmax(0,1fr);column-gap:8px;align-items:center}.topbar-brand-mark{grid-column:1;grid-row:1/3;width:28px;height:28px;border-radius:8px;background:#0b786d;display:grid;place-items:center}.topbar-brand-mark img{width:20px;height:20px;object-fit:contain}.topbar-kicker,.topbar-identity strong{grid-column:2}.topbar-kicker{grid-row:1}.topbar-identity strong{grid-row:2}}
