/* IMSA Academy v1.40.2 — Approved post-login visual reference.
   Isolated to student shell; colors vary with theme, typography never does.
   User-supplied dashboard banner remains a normal asset (not a text image). */
.imsa-app.imsa-student-ui {
  --ref-page:#f5f7fc;--ref-panel:#fff;--ref-ink:#172847;--ref-muted:#697a97;
  --ref-border:#e7ecf5;--ref-accent:#2259da;--ref-accent-soft:#edf3ff;
  --ref-shadow:0 10px 26px rgba(23,50,103,.055);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
}
.imsa-app.imsa-student-ui.theme-dark {
  --ref-page:#0c172b;--ref-panel:#13223a;--ref-ink:#f0f5ff;--ref-muted:#a8b7cf;
  --ref-border:#2c3d58;--ref-accent:#9cb9ff;--ref-accent-soft:#223756;
  --ref-shadow:0 10px 28px rgba(0,0,0,.13);
}
/* Fixed navigation structure */
.imsa-app.imsa-student-ui>.sidebar {width:258px!important;background:var(--ref-panel)!important;border-right:1px solid var(--ref-border)!important;box-shadow:none!important}
.imsa-app.imsa-student-ui>.shell {margin-left:258px;background:var(--ref-page);min-width:0}
.imsa-app.imsa-student-ui .side-brand {height:92px!important;min-height:92px!important;padding:15px 23px!important;border-bottom:1px solid var(--ref-border);display:flex;align-items:center}
.imsa-app.imsa-student-ui .side-brand .side-brand-logo{width:190px!important;max-height:66px!important}
.imsa-app.imsa-student-ui .side-nav {display:flex;flex-direction:column;gap:3px;padding:23px 14px 8px}
.imsa-app.imsa-student-ui .side-nav-label {padding:4px 14px 10px!important;color:var(--ref-muted)!important;letter-spacing:.12em!important;font-size:10px!important;font-weight:760!important}
.imsa-app.imsa-student-ui .side-nav .imsa-nav-group-next {margin-top:21px;padding-top:13px!important;border-top:1px solid var(--ref-border)}
.imsa-app.imsa-student-ui .side-nav button {min-height:46px!important;border-radius:12px!important;font-size:13px!important;font-weight:590!important;padding:11px 14px!important;gap:13px!important;letter-spacing:0!important;color:var(--ref-ink)!important}
.imsa-app.imsa-student-ui .side-nav button .nav-icon{width:19px!important;font-size:16px!important;color:var(--ref-muted)!important}
.imsa-app.imsa-student-ui .side-nav button.active{background:var(--ref-accent-soft)!important;color:var(--ref-accent)!important;font-weight:730!important;box-shadow:none!important}
.imsa-app.imsa-student-ui .side-nav button.active .nav-icon{color:var(--ref-accent)!important}
.imsa-app.imsa-student-ui .side-nav button:hover:not(.active){background:var(--ref-accent-soft)!important}
.imsa-app.imsa-student-ui .side-nav button .imsa-nav-soon{padding:5px 8px!important;font-size:10px!important;font-weight:660!important;background:var(--ref-accent-soft);border-color:transparent!important;color:var(--ref-accent)!important}
.imsa-app.imsa-student-ui .side-profile {margin:17px 16px 18px!important;padding:13px 11px!important;min-height:64px;border:1px solid var(--ref-border)!important;border-radius:15px!important;box-shadow:var(--ref-shadow);background:var(--ref-panel)}
.imsa-app.imsa-student-ui .side-profile .avatar,.imsa-app.imsa-student-ui .side-profile .side-avatar-img {width:40px!important;height:40px!important;flex-shrink:0}
.imsa-app.imsa-student-ui .side-profile b{color:var(--ref-ink);font-size:12px!important;font-weight:730!important}
.imsa-app.imsa-student-ui .side-profile small{color:var(--ref-muted);font-size:10px!important}
.imsa-app.imsa-student-ui .student-side-actions{margin-top:auto;padding:13px 16px 0}
.imsa-app.imsa-student-ui .student-side-actions button{font-size:12px!important;min-height:37px!important;border-radius:10px}
.imsa-app.imsa-student-ui .side-instructors{display:none}
/* Header reflects approved prototype */
.imsa-app.imsa-student-ui .topbar {min-height:84px!important;height:84px!important;padding:0 28px!important;gap:19px!important;background:var(--ref-panel)!important;border-bottom:1px solid var(--ref-border)!important;box-shadow:none!important}
.imsa-app.imsa-student-ui .global-search-wrap{max-width:670px!important;flex:1;min-width:160px}
.imsa-app.imsa-student-ui .top-search {height:45px!important;min-height:45px!important;border:1px solid var(--ref-border)!important;background:var(--ref-page)!important;border-radius:11px!important;max-width:none!important;box-shadow:none!important}
.imsa-app.imsa-student-ui .top-search input{height:100%!important;font-size:13px!important;font-weight:440!important;color:var(--ref-ink)!important}
.imsa-app.imsa-student-ui .top-search i {color:var(--ref-muted)!important}
.imsa-app.imsa-student-ui .topbar .top-actions{gap:6px!important;margin-left:0!important}
.imsa-app.imsa-student-ui .topbar .theme-toggle,.imsa-app.imsa-student-ui .topbar .icon-btn{width:39px!important;height:39px!important;min-width:39px!important;border-radius:11px!important;font-size:15px!important;color:var(--ref-ink)!important}
.imsa-app.imsa-student-ui .topbar .avatar-btn-photo{width:40px!important;height:40px!important}
.imsa-app.imsa-student-ui .imsa-next-class {border:1px solid #d6e4ff!important;min-width:169px!important;background:var(--ref-accent-soft)!important;padding:9px 13px!important;border-radius:12px!important;gap:10px!important}
.imsa-app.imsa-student-ui.theme-dark .imsa-next-class{border-color:var(--ref-border)!important}
.imsa-app.imsa-student-ui .imsa-next-icon{color:var(--ref-accent);font-size:18px!important}
.imsa-app.imsa-student-ui .imsa-next-text small{color:var(--ref-accent);font-size:9px!important;font-weight:770!important}
.imsa-app.imsa-student-ui .imsa-next-text strong{font-size:15px!important;font-weight:760!important;color:var(--ref-ink)!important;line-height:1.2!important}
/* Dashboard grid: clearly sized hero and a right rail of compact actionable cards */
.imsa-app.imsa-student-ui .content-dashboard{max-width:1680px!important;margin:0 auto;background:var(--ref-page)!important;padding:28px 30px 54px!important}
.imsa-app.imsa-student-ui .ds-home{padding:0!important;color:var(--ref-ink)!important}
.imsa-app.imsa-student-ui .imsa-student-intro{display:none!important}
.imsa-app.imsa-student-ui .ds-home-grid{display:grid!important;grid-template-columns:minmax(0,1fr) 290px!important;gap:22px!important;align-items:start!important}
.imsa-app.imsa-student-ui .ds-home-main{gap:28px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero{min-height:350px!important;padding:35px 38px!important;box-shadow:0 14px 30px rgba(8,31,84,.14)!important;border-radius:19px!important;background-color:#0c2b70!important;background-size:cover!important;background-position:center right!important;isolation:isolate}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-copy{width:100%;max-width:min(60%,560px)!important;z-index:1!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-chip{font-size:10px!important;letter-spacing:.11em!important;font-weight:730!important;background:rgba(255,255,255,.13)!important;color:#fff!important;border:1px solid rgba(255,255,255,.16)!important;padding:8px 12px!important;border-radius:100px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-chip i{margin-right:3px;color:#ffd777}
.imsa-app.imsa-student-ui .imsa-reference-hero h2 {font-family:'Montserrat','Inter',sans-serif!important;font-size:clamp(29px,2.7vw,43px)!important;font-weight:760!important;letter-spacing:-.04em!important;line-height:1.2!important;margin:17px 0 13px!important;color:#fff!important;max-width:570px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero h2 em{color:#f5f8ff!important;font-weight:650!important;font-style:normal!important}
.imsa-app.imsa-student-ui .imsa-reference-hero p {font-family:'Montserrat','Inter',sans-serif!important;font-size:12px!important;font-weight:470!important;line-height:1.7!important;color:#e6edff!important;max-width:480px!important;margin:0 0 23px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .imsa-hero-actions{gap:11px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-button{font-family:'Montserrat','Inter',sans-serif!important;font-size:11px!important;font-weight:700!important;min-height:43px!important;padding:11px 18px!important;border-radius:10px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-button-light{color:#1443aa!important;background:#fff!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .imsa-hero-ghost{background:rgba(15,40,99,.32)!important;border:1px solid rgba(255,255,255,.6)!important;color:#fff!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .imsa-hero-ghost:hover{background:rgba(255,255,255,.18)!important}
.imsa-app.imsa-student-ui .imsa-reference-profession{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-size:10px;font-family:'Montserrat','Inter',sans-serif;font-weight:550;color:#f4f7ff}
.imsa-app.imsa-student-ui .imsa-reference-profession button{border:0;background:rgba(255,255,255,.17);color:white;border-radius:7px;width:24px;height:24px;font-size:10px}
.imsa-app.imsa-student-ui .ds-home-section-title{margin:0 0 17px!important;align-items:center!important}
.imsa-app.imsa-student-ui .ds-home-section .ds-eyebrow{font-size:10px!important;letter-spacing:.13em!important}
.imsa-app.imsa-student-ui .ds-home-section h2{font-size:22px!important;font-weight:750!important;color:var(--ref-ink)!important;margin:4px 0 4px!important;letter-spacing:-.035em!important}
.imsa-app.imsa-student-ui .ds-home-section .ds-home-section-title p{font-size:12px!important;color:var(--ref-muted)!important}
.imsa-app.imsa-student-ui .ds-home-section .ds-text-link{font-size:12px!important;font-weight:670!important;color:var(--ref-accent)!important}
/* Course cards: image/label/title/progress/clear continue action */
.imsa-app.imsa-student-ui .ds-course-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px!important}
.imsa-app.imsa-student-ui .ds-course-card,.imsa-app.imsa-student-ui .ds-discover-card{background:var(--ref-panel)!important;border:1px solid var(--ref-border)!important;border-radius:15px!important;box-shadow:var(--ref-shadow)!important;transition:transform .18s,border-color .18s;overflow:hidden!important}
.imsa-app.imsa-student-ui .ds-course-card>img{height:154px!important;object-fit:cover!important;object-position:center!important;width:100%!important}
.imsa-app.imsa-student-ui .ds-course-copy{padding:14px 15px 14px!important}
.imsa-app.imsa-student-ui .ds-course-copy .imsa-course-level{font-size:10px!important;letter-spacing:.06em!important;color:var(--ref-accent)!important;font-weight:740!important}
.imsa-app.imsa-student-ui .ds-course-card h3,.imsa-app.imsa-student-ui .ds-discover-card h3{font-size:14px!important;line-height:1.34!important;font-weight:740!important;color:var(--ref-ink)!important;min-height:38px!important;margin:7px 0 14px!important;letter-spacing:-.013em!important}
.imsa-app.imsa-student-ui .ds-course-meter{height:6px!important;background:var(--ref-accent-soft)!important;margin:8px 0 10px!important}
.imsa-app.imsa-student-ui .ds-course-meter i{background:#4f79f1!important}
.imsa-app.imsa-student-ui .ds-course-copy p{font-size:11px!important;font-weight:550!important;color:var(--ref-muted)!important;gap:8px!important;align-items:center}
.imsa-app.imsa-student-ui .imsa-course-continue{font-weight:740!important;color:var(--ref-accent)!important;white-space:nowrap}
.imsa-app.imsa-student-ui .ds-discover-grid{gap:15px!important}
.imsa-app.imsa-student-ui .ds-discover-card{grid-template-columns:110px minmax(0,1fr)!important;min-height:124px!important}
.imsa-app.imsa-student-ui .ds-discover-card>div:last-child{padding:13px 12px 10px 0!important}
.imsa-app.imsa-student-ui .ds-discover-card h3{font-size:12px!important;min-height:auto!important;margin:5px 0 9px!important}
.imsa-app.imsa-student-ui .ds-home-empty{background:var(--ref-panel)!important;border-color:var(--ref-border)!important}
/* Distinct right-side cards from approved visual. Keep live data. */
.imsa-app.imsa-student-ui .ds-home-rail{gap:15px!important;grid-template-columns:1fr}
.imsa-app.imsa-student-ui .ds-rail-card{background:var(--ref-panel)!important;color:var(--ref-ink)!important;border:1px solid var(--ref-border)!important;border-radius:15px!important;padding:19px!important;box-shadow:var(--ref-shadow)!important}
.imsa-app.imsa-student-ui .ds-rail-welcome{background:var(--ref-panel)!important;border-top:3px solid #3f76ea!important}
.imsa-app.imsa-student-ui .ds-rail-icon{background:var(--ref-accent-soft)!important;color:var(--ref-accent)!important;width:36px;height:36px;border-radius:10px}
.imsa-app.imsa-student-ui .ds-rail-title small{color:var(--ref-muted)!important;font-size:9px!important}
.imsa-app.imsa-student-ui .ds-rail-title h3{color:var(--ref-ink)!important;font-size:14px!important;font-weight:730!important}
.imsa-app.imsa-student-ui .ds-rail-metrics{border-top:1px solid var(--ref-border)!important;margin-top:18px!important;padding-top:17px!important}
.imsa-app.imsa-student-ui .ds-rail-metrics b{color:var(--ref-accent)!important;font-size:29px!important;font-weight:790!important}
.imsa-app.imsa-student-ui .ds-rail-metrics span{color:var(--ref-muted)!important;font-size:10px!important}
.imsa-app.imsa-student-ui .ds-rail-head h3{color:var(--ref-ink)!important;font-size:14px!important;font-weight:735!important}
.imsa-app.imsa-student-ui .ds-rail-head h3 i{color:var(--ref-accent)!important}
.imsa-app.imsa-student-ui .ds-rail-event{gap:11px!important;padding:13px 0!important}
.imsa-app.imsa-student-ui .ds-event-date{min-width:58px!important;font-size:11px!important;color:var(--ref-accent)!important}
.imsa-app.imsa-student-ui .ds-rail-event b{font-size:12px!important;color:var(--ref-ink)!important;font-weight:685!important}
.imsa-app.imsa-student-ui .ds-rail-event small{font-size:10px!important;color:var(--ref-muted)!important}
.imsa-app.imsa-student-ui .ds-rail-shortcuts button{font-size:12px!important;font-weight:600!important;min-height:42px!important;padding:10px!important;color:var(--ref-ink)!important}
.imsa-app.imsa-student-ui .ds-rail-shortcuts button:hover{background:var(--ref-accent-soft)!important}
.imsa-app.imsa-student-ui .ds-rail-shortcuts button>i:first-child{color:var(--ref-accent)!important}
/* Same font sizes in light and dark; only tokens above change. */
@media(max-width:1390px){.imsa-app.imsa-student-ui .ds-home-grid{grid-template-columns:minmax(0,1fr) 255px!important;gap:16px!important}.imsa-app.imsa-student-ui .content-dashboard{padding:25px 23px 46px!important}.imsa-app.imsa-student-ui .imsa-reference-hero{min-height:327px!important;padding:28px 27px!important}.imsa-app.imsa-student-ui .imsa-reference-hero h2{font-size:clamp(26px,2.6vw,37px)!important}}
@media(max-width:1140px){.imsa-app.imsa-student-ui .ds-home-grid{grid-template-columns:1fr!important}.imsa-app.imsa-student-ui .ds-home-rail{grid-template-columns:repeat(3,minmax(0,1fr))!important}.imsa-app.imsa-student-ui .imsa-reference-hero{min-height:330px!important}.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-copy{max-width:58%!important}}
@media(max-width:990px){.imsa-app.imsa-student-ui>.sidebar{width:258px!important}.imsa-app.imsa-student-ui>.shell{margin-left:0!important}.imsa-app.imsa-student-ui .content-dashboard{padding:20px 18px 42px!important}.imsa-app.imsa-student-ui .topbar{padding:0 18px!important}.imsa-app.imsa-student-ui .ds-home-rail{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:730px){.imsa-app.imsa-student-ui .topbar{gap:8px!important;min-height:68px!important;height:68px!important;padding:0 12px!important}.imsa-app.imsa-student-ui .imsa-next-class{min-width:99px!important;padding:7px!important;gap:4px!important}.imsa-app.imsa-student-ui .imsa-next-text strong{font-size:12px!important}.imsa-app.imsa-student-ui .imsa-next-class .imsa-next-icon{display:none!important}.imsa-app.imsa-student-ui .global-search-wrap{min-width:100px!important}.imsa-app.imsa-student-ui .top-search input{font-size:11px!important}.imsa-app.imsa-student-ui .imsa-reference-hero{min-height:310px!important;background-position:64% center!important;padding:26px 23px!important}.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-copy{max-width:80%!important}.imsa-app.imsa-student-ui .imsa-reference-hero h2{font-size:clamp(24px,6vw,31px)!important}.imsa-app.imsa-student-ui .imsa-reference-hero p{font-size:11px!important}.imsa-app.imsa-student-ui .ds-home-rail{grid-template-columns:1fr!important}.imsa-app.imsa-student-ui .ds-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.imsa-app.imsa-student-ui .ds-course-card>img{height:145px!important}}
@media(max-width:470px){.imsa-app.imsa-student-ui .content-dashboard{padding:16px 12px 38px!important}.imsa-app.imsa-student-ui .topbar .top-actions .top-action-wrap:nth-child(1){display:none!important}.imsa-app.imsa-student-ui .imsa-next-class{max-width:93px!important}.imsa-app.imsa-student-ui .imsa-next-text strong{font-size:11px!important}.imsa-app.imsa-student-ui .imsa-reference-hero{min-height:355px!important;padding:22px 19px!important;background-position:60% center!important}.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-copy{max-width:100%!important}.imsa-app.imsa-student-ui .imsa-reference-hero h2{font-size:25px!important;max-width:310px!important}.imsa-app.imsa-student-ui .imsa-reference-hero p{font-size:10px!important;max-width:295px!important}.imsa-app.imsa-student-ui .imsa-reference-hero .ds-button{padding:9px 10px!important;font-size:10px!important;min-height:38px!important}.imsa-app.imsa-student-ui .imsa-reference-profession{font-size:9px!important;margin-top:15px!important}.imsa-app.imsa-student-ui .ds-course-grid{grid-template-columns:1fr!important}.imsa-app.imsa-student-ui .ds-course-card{display:grid;grid-template-columns:130px minmax(0,1fr)}.imsa-app.imsa-student-ui .ds-course-card>img{height:100%!important;min-height:160px!important}.imsa-app.imsa-student-ui .ds-course-card h3{min-height:0!important}.imsa-app.imsa-student-ui .ds-discover-grid{grid-template-columns:1fr!important}.imsa-app.imsa-student-ui .ds-home-section h2{font-size:19px!important}}
@media(prefers-reduced-motion:reduce){.imsa-app.imsa-student-ui .ds-course-card,.imsa-app.imsa-student-ui .ds-discover-card{transition:none!important}}
/* On small phones keep the essential controls (search, next-class, profile, theme). */
@media(max-width:470px){
  .imsa-app.imsa-student-ui .topbar{gap:5px!important;padding:0 9px!important}
  .imsa-app.imsa-student-ui .global-search-wrap{min-width:0!important;flex:1 1 0!important}
  .imsa-app.imsa-student-ui .topbar .top-actions{flex:0 0 auto!important;gap:2px!important}
  .imsa-app.imsa-student-ui .topbar .top-action-wrap{display:none!important}
  .imsa-app.imsa-student-ui .topbar .theme-toggle{width:32px!important;min-width:32px!important;height:34px!important}
  .imsa-app.imsa-student-ui .topbar .avatar-btn-photo{width:34px!important;height:34px!important}
  .imsa-app.imsa-student-ui .imsa-next-class{min-width:91px!important;max-width:94px!important}
  .imsa-app.imsa-student-ui .topbar .hamburger{width:32px!important;min-width:32px!important;padding:0!important}
}
