:root{--portal-green:#10b981;--portal-teal:#0f766e;--portal-amber:#f59e0b;--portal-ink:#0f172a;--portal-soft:#f6faf8}
html,body,#root{min-height:100%}
body{background:linear-gradient(180deg,#f8fbfa 0%,#f5f7fb 100%);color:var(--portal-ink)}
.portal-premium-status{white-space:nowrap;isolation:isolate}
.portal-premium-status.is-active{background:linear-gradient(135deg,#10b981,#0f766e)!important;color:#fff!important;box-shadow:0 10px 26px rgba(16,185,129,.24)!important}
.portal-premium-status.is-free{background:linear-gradient(135deg,#fbbf24,#f59e0b)!important;color:#fff!important;box-shadow:0 10px 26px rgba(245,158,11,.24)!important}
.portal-student-notification-root{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px}
.portal-student-notification{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#475569;box-shadow:0 7px 20px rgba(15,23,42,.08);cursor:pointer}
.portal-student-notification:hover{color:#059669;border-color:#a7f3d0}
.portal-student-notification svg{width:20px;height:20px}
.portal-student-notification-badge{position:absolute;right:-3px;top:-4px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#ef4444;color:white;border:2px solid white;font:800 10px/15px system-ui;text-align:center}
.portal-student-notification-panel{position:absolute;right:0;top:54px;z-index:9999;width:min(370px,calc(100vw - 24px));max-height:480px;overflow:auto;border:1px solid #e5e7eb;border-radius:22px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.2)}
.portal-student-notification-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:rgba(255,255,255,.96);border-bottom:1px solid #eef2f7;backdrop-filter:blur(10px)}
.portal-student-notification-head b{font:800 15px/1.2 system-ui;color:#0f172a}.portal-student-notification-head button{border:0;background:#ecfdf5;color:#047857;border-radius:10px;padding:7px 9px;font:700 11px system-ui;cursor:pointer}
.portal-student-notification-item{display:block;width:100%;padding:15px 18px;border:0;border-bottom:1px solid #f1f5f9;text-align:left;cursor:pointer}.portal-student-notification-item.unread{background:#f0fdf9}.portal-student-notification-item:hover{background:#ecfdf5}.portal-student-notification-item b{display:block;color:#0f172a;font:800 13px/1.4 system-ui}.portal-student-notification-item p{margin:5px 0 0;color:#64748b;font:500 12px/1.55 system-ui}.portal-student-notification-item small{display:block;margin-top:7px;color:#94a3b8;font:700 10px/1.3 system-ui}.portal-student-notification-empty{padding:34px 20px;text-align:center;color:#94a3b8;font:600 13px system-ui}.portal-student-header-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:14px!important;margin-left:auto!important;flex:0 0 auto!important}
.app main>header,.app main>section,.app .subnav{box-sizing:border-box}.app .card{border-radius:24px!important;box-shadow:0 9px 34px rgba(15,23,42,.055)!important}.app main>section{max-width:1500px;width:100%;margin-inline:auto}
@media(max-width:767px){
  .portal-premium-status{width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;padding:0!important;gap:0!important;overflow:hidden;font-size:0!important;line-height:0!important;justify-content:center!important;flex:0 0 42px!important}
  .portal-premium-status svg{width:19px!important;height:19px!important}.portal-premium-status:before{font-size:20px!important;line-height:1!important}
  .subscription-shortcut.portal-premium-status{border:0!important}.subscription-shortcut.portal-premium-status:before{content:'♛'}
  header{gap:8px}header>.flex,header .admin{gap:7px!important}.md\:hidden h1{font-size:15px!important;white-space:nowrap}.md\:hidden img{flex:0 0 auto}
  .app main>header{padding:12px!important}.app main>header>div:first-child{min-width:0}.app main>header h2{font-size:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app main>header .admin>div,.app main>header .header-action{display:none!important}.app main>header .admin img{width:40px!important;height:40px!important}
  .app main>section{padding:14px!important}.app .card{border-radius:20px!important}.app .grid.two,.app .grid.stats{grid-template-columns:1fr!important}
  .portal-student-notification-panel{position:fixed;top:74px;right:12px}
}
@media(min-width:768px){.portal-premium-status{min-height:40px}.app main>section{padding-inline:28px}}
