/* IMSA Academy 1.40.3 — approved mockup precision pass.
   Student home only. No change to API, admin, teacher or public pages.
   Typography geometry shared across modes; only surface and ink tokens change. */
.imsa-app.imsa-student-ui{
  --imsa-43-paper:#f5f7fb;--imsa-43-panel:#fff;--imsa-43-ink:#152747;
  --imsa-43-muted:#72809b;--imsa-43-blue:#215cdb;--imsa-43-soft:#edf3ff;
  --imsa-43-border:#e6ebf4;--imsa-43-shadow:0 8px 28px rgba(33,59,110,.055);
  font-family:'Inter',sans-serif;
}
.imsa-app.imsa-student-ui.theme-dark{
  --imsa-43-paper:#0d192d;--imsa-43-panel:#17253c;--imsa-43-ink:#eff5ff;
  --imsa-43-muted:#adbbd1;--imsa-43-blue:#9fbaff;--imsa-43-soft:#253858;
  --imsa-43-border:#30415a;--imsa-43-shadow:0 8px 28px rgba(0,0,0,.15);
}
/* Reference: compact white navigation, clear sections and anchored profile */
.imsa-app.imsa-student-ui>.sidebar{width:236px!important;background:var(--imsa-43-panel)!important;border-right:1px solid var(--imsa-43-border)!important}
.imsa-app.imsa-student-ui>.shell{margin-left:236px!important;background:var(--imsa-43-paper)!important}
.imsa-app.imsa-student-ui .side-brand{min-height:82px!important;height:82px!important;padding:10px 22px!important;border-bottom:1px solid var(--imsa-43-border)!important}
.imsa-app.imsa-student-ui .side-brand .side-brand-logo{width:178px!important;max-height:62px!important;object-fit:contain!important}
.imsa-app.imsa-student-ui .side-nav{gap:1px!important;padding:18px 12px 6px!important}
.imsa-app.imsa-student-ui .side-nav .side-nav-label{padding:7px 13px 9px!important;font-size:10px!important;letter-spacing:.14em!important;font-weight:750!important;color:var(--imsa-43-muted)!important}
.imsa-app.imsa-student-ui .side-nav button{min-height:41px!important;padding:8px 13px!important;gap:12px!important;border-radius:9px!important;font-size:12.5px!important;font-weight:590!important;color:var(--imsa-43-ink)!important}
.imsa-app.imsa-student-ui .side-nav button .nav-icon{font-size:15px!important;color:var(--imsa-43-muted)!important}
.imsa-app.imsa-student-ui .side-nav button.active{color:var(--imsa-43-blue)!important;background:var(--imsa-43-soft)!important;font-weight:720!important}
.imsa-app.imsa-student-ui .side-nav button.active .nav-icon{color:var(--imsa-43-blue)!important}
.imsa-app.imsa-student-ui .side-nav .imsa-nav-group-next{margin-top:14px!important;padding-top:18px!important}
.imsa-app.imsa-student-ui .side-nav button .imsa-nav-soon{font-size:9px!important;padding:5px 7px!important;line-height:1!important}
.imsa-app.imsa-student-ui .student-side-actions{padding:10px 13px 0!important;margin-top:auto}
.imsa-app.imsa-student-ui .student-side-actions button{min-height:36px!important;padding:7px 11px!important;color:var(--imsa-43-ink)!important}
.imsa-app.imsa-student-ui .side-profile{margin:10px 12px 14px!important;padding:11px!important;border:1px solid var(--imsa-43-border)!important;border-radius:12px!important;background:var(--imsa-43-panel)!important;box-shadow:none!important}
.imsa-app.imsa-student-ui .side-profile .avatar,.imsa-app.imsa-student-ui .side-profile img{width:38px!important;height:38px!important;object-fit:cover!important}
.imsa-app.imsa-student-ui .side-profile b{font-size:12px!important;color:var(--imsa-43-ink)!important}
.imsa-app.imsa-student-ui .side-profile small{font-size:10px!important;color:var(--imsa-43-muted)!important}
/* Reference: neutral search and a clear next-class counter on the same row */
.imsa-app.imsa-student-ui .topbar{height:76px!important;min-height:76px!important;padding:0 28px!important;gap:16px!important;border-bottom:1px solid var(--imsa-43-border)!important;background:var(--imsa-43-panel)!important}
.imsa-app.imsa-student-ui .global-search-wrap{max-width:690px!important;min-width:130px!important}
.imsa-app.imsa-student-ui .top-search{min-height:43px!important;height:43px!important;border-radius:10px!important;border:1px solid var(--imsa-43-border)!important;background:var(--imsa-43-paper)!important}
.imsa-app.imsa-student-ui .top-search input{font-size:12.5px!important;color:var(--imsa-43-ink)!important}
.imsa-app.imsa-student-ui .imsa-next-class{min-width:163px!important;padding:8px 11px!important;border-radius:11px!important;background:var(--imsa-43-soft)!important;border:1px solid var(--imsa-43-border)!important}
.imsa-app.imsa-student-ui .imsa-next-text strong{font-size:14px!important;color:var(--imsa-43-ink)!important}
.imsa-app.imsa-student-ui .imsa-next-text small{font-size:9px!important;color:var(--imsa-43-blue)!important}
.imsa-app.imsa-student-ui .topbar .top-actions{gap:5px!important}
.imsa-app.imsa-student-ui .topbar :is(.icon-btn,.theme-toggle){width:36px!important;min-width:36px!important;height:36px!important;font-size:15px!important;color:var(--imsa-43-ink)!important}
.imsa-app.imsa-student-ui .topbar .avatar-btn-photo{width:38px!important;height:38px!important}
/* Reveal reference header previously hidden in v1.40.2; keep dates and name real */
.imsa-app.imsa-student-ui .content-dashboard{max-width:1740px!important;padding:28px 30px 60px!important;background:var(--imsa-43-paper)!important;color:var(--imsa-43-ink)!important}
.imsa-app.imsa-student-ui .ds-home{padding:0!important}
.imsa-app.imsa-student-ui .imsa-student-intro{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:20px!important;margin:0 0 26px!important}
.imsa-app.imsa-student-ui .imsa-student-intro .ds-eyebrow{color:var(--imsa-43-blue)!important;font-size:10px!important;letter-spacing:.16em!important;font-weight:760!important}
.imsa-app.imsa-student-ui .imsa-student-intro .ds-eyebrow i{font-size:4px!important;vertical-align:middle!important;margin:0 6px}
.imsa-app.imsa-student-ui .imsa-student-intro h1{font-size:clamp(27px,2.35vw,34px)!important;font-weight:770!important;line-height:1.21!important;letter-spacing:-.045em!important;color:var(--imsa-43-ink)!important;margin:10px 0 8px!important}
.imsa-app.imsa-student-ui .imsa-student-intro h1 em{color:var(--imsa-43-blue)!important;font-weight:720!important;font-style:normal!important}
.imsa-app.imsa-student-ui .imsa-student-intro p{font-size:12px!important;font-weight:445!important;line-height:1.5!important;color:var(--imsa-43-muted)!important;margin:0!important;max-width:650px}
.imsa-app.imsa-student-ui .ds-home-date{font-size:11px!important;color:var(--imsa-43-muted)!important;font-weight:550!important;text-transform:capitalize!important}
/* Hero and right rail proportioned to approved 1672px reference */
.imsa-app.imsa-student-ui .ds-home-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(285px,313px)!important;gap:22px!important;align-items:start!important}
.imsa-app.imsa-student-ui .ds-home-main{gap:26px!important;min-width:0}
.imsa-app.imsa-student-ui .imsa-reference-hero{min-height:310px!important;padding:27px 34px!important;border-radius:17px!important;box-shadow:0 16px 30px rgba(15,44,105,.13)!important;background-color:#092a74!important;background-size:cover!important;background-position:54% center!important;isolation:isolate}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-copy{max-width:62%!important;width:100%!important;z-index:1!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-chip{font-family:'Montserrat','Inter',sans-serif!important;font-size:9px!important;font-weight:700!important;letter-spacing:.1em!important;background:rgba(255,255,255,.14)!important;padding:7px 11px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero h2{font-family:'Montserrat','Inter',sans-serif!important;font-size:clamp(27px,2.65vw,39px)!important;letter-spacing:-.042em!important;line-height:1.19!important;font-weight:750!important;color:#fff!important;margin:15px 0 12px!important;max-width:610px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero h2 em{font-weight:650!important;color:#f2f6ff!important;font-style:normal!important}
.imsa-app.imsa-student-ui .imsa-reference-hero p{font-family:'Montserrat','Inter',sans-serif!important;font-size:11px!important;line-height:1.75!important;max-width:510px!important;color:#e2ecff!important;margin:0 0 18px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .imsa-hero-actions{gap:10px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-button{font-family:'Montserrat','Inter',sans-serif!important;font-size:10px!important;font-weight:720!important;min-height:40px!important;border-radius:9px!important;padding:10px 14px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-button-light{color:#123d9e!important;background:#fff!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .imsa-hero-ghost{color:#fff!important;background:rgba(15,49,111,.38)!important;border:1px solid rgba(255,255,255,.52)!important}
.imsa-app.imsa-student-ui .imsa-reference-profession{font-size:10px!important;margin-top:17px!important;color:#eff5ff!important;gap:9px!important}
.imsa-app.imsa-student-ui .imsa-reference-profession button{cursor:pointer!important}
/* Sections and real course cards (never claim enrollment when this is catalog) */
.imsa-app.imsa-student-ui .ds-home-section-title{align-items:center!important;margin-bottom:14px!important}
.imsa-app.imsa-student-ui .ds-home-section-title h2{font-size:21px!important;font-weight:760!important;letter-spacing:-.038em!important;color:var(--imsa-43-ink)!important;margin:5px 0 4px!important}
.imsa-app.imsa-student-ui .ds-home-section-title p{color:var(--imsa-43-muted)!important;font-size:11.5px!important}
.imsa-app.imsa-student-ui .ds-home-section .ds-eyebrow{font-size:9.5px!important;letter-spacing:.14em!important;color:var(--imsa-43-blue)!important}
.imsa-app.imsa-student-ui .ds-course-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:15px!important}
.imsa-app.imsa-student-ui .ds-course-card,.imsa-app.imsa-student-ui .ds-discover-card{border-radius:13px!important;overflow:hidden;background:var(--imsa-43-panel)!important;border:1px solid var(--imsa-43-border)!important;color:var(--imsa-43-ink)!important;box-shadow:var(--imsa-43-shadow)!important;transition:transform .18s,border-color .18s!important;cursor:pointer}
.imsa-app.imsa-student-ui .ds-course-card>img{height:135px!important;min-height:0!important;width:100%!important;object-fit:cover!important;display:block!important}
.imsa-app.imsa-student-ui .ds-course-copy{padding:13px 14px 13px!important}
.imsa-app.imsa-student-ui .ds-course-copy .imsa-course-level{font-size:9px!important;letter-spacing:.09em!important;font-weight:750!important;color:var(--imsa-43-blue)!important}
.imsa-app.imsa-student-ui .ds-course-copy h3{font-size:12.5px!important;font-weight:725!important;line-height:1.38!important;margin:6px 0 13px!important;color:var(--imsa-43-ink)!important;min-height:34px!important}
.imsa-app.imsa-student-ui .ds-course-meter{height:5px!important;background:var(--imsa-43-soft)!important}
.imsa-app.imsa-student-ui .ds-course-copy p{font-size:10px!important;color:var(--imsa-43-muted)!important;line-height:1.4!important;gap:8px}
.imsa-app.imsa-student-ui .imsa-course-continue{color:var(--imsa-43-blue)!important;font-size:10px!important;font-weight:710!important;white-space:nowrap}
.imsa-app.imsa-student-ui .imsa-catalog-cta{border-top:1px solid var(--imsa-43-border);padding-top:11px;margin-top:14px!important}
.imsa-app.imsa-student-ui .ds-home-empty{background:var(--imsa-43-panel)!important;border-color:var(--imsa-43-border)!important}
.imsa-app.imsa-student-ui .ds-home-empty b{color:var(--imsa-43-ink)!important}
.imsa-app.imsa-student-ui .ds-home-empty p{color:var(--imsa-43-muted)!important}
/* Cards at right: dark status card, white calendar, white utilities */
.imsa-app.imsa-student-ui .ds-home-rail{gap:14px!important;display:grid!important;grid-template-columns:1fr!important;min-width:0}
.imsa-app.imsa-student-ui .ds-rail-card{border-radius:14px!important;padding:18px!important;background:var(--imsa-43-panel)!important;border:1px solid var(--imsa-43-border)!important;box-shadow:var(--imsa-43-shadow)!important}
.imsa-app.imsa-student-ui .ds-rail-welcome{background:linear-gradient(138deg,#182e60,#284c95)!important;border-color:#335998!important;color:#fff!important}
.imsa-app.imsa-student-ui .ds-rail-welcome .ds-rail-title small{font-size:9px!important;font-weight:800!important;color:#a9c3ff!important}
.imsa-app.imsa-student-ui .ds-rail-welcome .ds-rail-title h3{font-size:13.5px!important;font-weight:730!important;color:#fff!important}
.imsa-app.imsa-student-ui .ds-rail-welcome .ds-rail-icon{background:rgba(255,255,255,.13)!important;color:#fff!important}
.imsa-app.imsa-student-ui .ds-rail-welcome .ds-rail-metrics{border-color:rgba(255,255,255,.18)!important}
.imsa-app.imsa-student-ui .ds-rail-welcome .ds-rail-metrics b{font-size:30px!important;color:#fff!important}
.imsa-app.imsa-student-ui .ds-rail-welcome .ds-rail-metrics span{color:#d8e3ff!important}
.imsa-app.imsa-student-ui .imsa-rail-next-step{margin-top:15px;border:1px solid rgba(255,255,255,.28);border-radius:8px;padding:9px 12px;background:rgba(255,255,255,.12);color:#fff;font-size:11px;font-weight:650;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:space-between}
.imsa-app.imsa-student-ui .ds-rail-head h3{font-size:13px!important;color:var(--imsa-43-ink)!important;font-weight:745!important}
.imsa-app.imsa-student-ui .ds-rail-event{border-color:var(--imsa-43-border)!important}
.imsa-app.imsa-student-ui .ds-rail-event b{color:var(--imsa-43-ink)!important;font-size:11px!important}
.imsa-app.imsa-student-ui .ds-rail-event small,.imsa-app.imsa-student-ui .ds-rail-empty{color:var(--imsa-43-muted)!important;font-size:11px!important;line-height:1.5!important}
.imsa-app.imsa-student-ui .ds-rail-event button,.imsa-app.imsa-student-ui .ds-rail-empty button{font-weight:700!important;color:var(--imsa-43-blue)!important;cursor:pointer}
.imsa-app.imsa-student-ui .ds-rail-shortcuts button{min-height:40px!important;font-size:11.5px!important;color:var(--imsa-43-ink)!important}
.imsa-app.imsa-student-ui .ds-rail-shortcuts button>i:first-child{color:var(--imsa-43-blue)!important}
.imsa-app.imsa-student-ui .ds-rail-shortcuts button:hover{background:var(--imsa-43-soft)!important}
/* Tablet: avoid clipping by stacking the right panels after the main column */
@media(max-width:1240px){
 .imsa-app.imsa-student-ui .ds-home-grid{grid-template-columns:minmax(0,1fr) 270px!important;gap:16px!important}
 .imsa-app.imsa-student-ui .content-dashboard{padding:24px 23px 48px!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero{padding:26px!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero h2{font-size:clamp(26px,2.65vw,34px)!important}
}
@media(max-width:1050px){
 .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(2,minmax(0,1fr))!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-copy{max-width:64%!important}
}
@media(max-width:990px){
 .imsa-app.imsa-student-ui>.sidebar{width:236px!important}
 .imsa-app.imsa-student-ui>.shell{margin-left:0!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{height:67px!important;min-height:67px!important;padding:0 11px!important;gap:8px!important}
 .imsa-app.imsa-student-ui .content-dashboard{padding:17px 15px 42px!important}
 .imsa-app.imsa-student-ui .imsa-student-intro{display:flex!important;align-items:flex-start!important;flex-direction:column;gap:9px!important;margin-bottom:18px!important}
 .imsa-app.imsa-student-ui .imsa-student-intro h1{font-size:27px!important}
 .imsa-app.imsa-student-ui .ds-home-date{font-size:10px!important}
 .imsa-app.imsa-student-ui .ds-home-grid{grid-template-columns:1fr!important;gap:17px!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero{padding:26px 22px!important;min-height:320px!important;background-position:61% center!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(23px,6vw,31px)!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}
}
@media(max-width:470px){
 .imsa-app.imsa-student-ui .topbar{padding:0 8px!important;gap:5px!important}
 .imsa-app.imsa-student-ui .topbar .top-actions{gap:2px!important}
 .imsa-app.imsa-student-ui .imsa-next-class{min-width:93px!important;max-width:100px!important;padding:6px!important}
 .imsa-app.imsa-student-ui .global-search-wrap{min-width:0!important;flex:1 1 auto!important}
 .imsa-app.imsa-student-ui .top-search input{font-size:11px!important}
 .imsa-app.imsa-student-ui .imsa-student-intro h1{font-size:25px!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero{min-height:350px!important;padding:21px 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:23px!important;max-width:315px!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero p{font-size:10px!important;max-width:284px!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero .ds-button{padding:10px!important;min-height:39px!important;font-size:9px!important}
 .imsa-app.imsa-student-ui .ds-course-grid{grid-template-columns:1fr!important}
 .imsa-app.imsa-student-ui .ds-course-card{display:grid!important;grid-template-columns:124px minmax(0,1fr)!important}
 .imsa-app.imsa-student-ui .ds-course-card>img{width:124px!important;height:100%!important;min-height:146px!important}
 .imsa-app.imsa-student-ui .ds-course-copy h3{min-height:0!important;font-size:11.5px!important}
 .imsa-app.imsa-student-ui .ds-course-copy{padding:10px!important}
 .imsa-app.imsa-student-ui .ds-home-section-title h2{font-size:19px!important}
}
@media(prefers-reduced-motion:reduce){.imsa-app.imsa-student-ui :is(.ds-course-card,.ds-discover-card){transition:none!important}}

/* v1.40.4 — Client-supplied final banner (asset is not edited or re-generated).
   Respect the reference: heading and 2 actions on the left, subject unobstructed on right. */
.imsa-app.imsa-student-ui .imsa-reference-hero{background-position:50% center!important;background-size:cover!important;min-height:328px!important;padding:31px 36px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-copy{max-width:min(64%,585px)!important}
.imsa-app.imsa-student-ui .imsa-reference-hero h2{font-family:'Montserrat','Inter',sans-serif!important;font-weight:760!important;font-size:clamp(29px,2.45vw,40px)!important;letter-spacing:-.043em!important;line-height:1.17!important;margin:15px 0 13px!important;text-wrap:balance}
.imsa-app.imsa-student-ui .imsa-reference-hero h2 .imsa-welcome-line{display:block;color:#fff!important}
.imsa-app.imsa-student-ui .imsa-reference-hero h2 .imsa-welcome-question{display:block;color:#fff!important;font-weight:700!important;margin-top:2px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero p{font-size:11.2px!important;font-weight:500!important;line-height:1.6!important;max-width:465px!important;margin-bottom:18px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-chip{letter-spacing:.14em!important;font-weight:750!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .imsa-hero-actions{gap:12px!important}
.imsa-app.imsa-student-ui .imsa-reference-hero .imsa-hero-actions .ds-button{font-size:11px!important;min-height:41px!important;padding:11px 15px!important}
@media(max-width:1200px){
 .imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-copy{max-width:70%!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero h2{font-size:clamp(25px,2.5vw,34px)!important}
}
@media(max-width:900px){
 .imsa-app.imsa-student-ui .imsa-reference-hero{min-height:322px!important;padding:26px 27px!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero .ds-feature-copy{max-width:66%!important}
}
@media(max-width:600px){
 .imsa-app.imsa-student-ui .imsa-reference-hero{min-height:345px!important;padding:23px 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:clamp(22px,6vw,26px)!important;max-width:335px!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero p{font-size:10.5px!important;max-width:300px!important}
 .imsa-app.imsa-student-ui .imsa-reference-hero .imsa-hero-actions .ds-button{font-size:10px!important}
}
