/* Public/Student Shell V38 — consolidated runtime bundle. Generated from maintained source layers in preserved cascade order. */

/* ===== SOURCE: assets/css/app.css ===== */
:root{--navy:#0b2f4a;--navy2:#123d5a;--blue:#1677a6;--cyan:#27a6c7;--green:#157a65;--amber:#b97812;--red:#b64242;--bg:#f4f7fb;--surface:#fff;--text:#172535;--muted:#647486;--line:#dce5ee;--shadow:0 18px 48px rgba(18,61,90,.12);--radius:20px;--radius-sm:12px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%}button,input,select,textarea{font:inherit}.container{width:min(1180px,calc(100% - 32px));margin:auto}.topbar{position:sticky;top:0;z-index:50;background:rgba(11,47,74,.94);backdrop-filter:blur(18px);color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}.topbar-inner{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:12px;font-weight:800}.brand-logo{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:13px;padding:4px}.brand small{display:block;font-weight:500;color:#cce3ee}.nav{display:flex;align-items:center;gap:8px}.nav a{padding:10px 13px;border-radius:10px;color:#e8f6fb}.nav a:hover,.nav a.active{background:rgba(255,255,255,.12)}.menu-btn{display:none;border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:10px;padding:9px 12px}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#0b2f4a,#145a75 62%,#18849b);color:#fff;padding:72px 0 58px}.hero:before,.hero:after{content:"";position:absolute;border-radius:999px;background:rgba(255,255,255,.07);filter:blur(2px)}.hero:before{width:420px;height:420px;right:-120px;top:-190px}.hero:after{width:260px;height:260px;left:-90px;bottom:-160px}.hero-grid{position:relative;display:grid;grid-template-columns:1.25fr .75fr;gap:36px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.09);border-radius:999px;font-weight:700;font-size:.86rem}.hero h1{font-size:clamp(2.2rem,5vw,4.5rem);line-height:1.03;margin:18px 0 18px;letter-spacing:-.045em}.hero p{font-size:1.08rem;color:#d8edf5;max-width:720px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:11px 16px;font-weight:800;cursor:pointer;transition:.2s transform,.2s box-shadow,.2s background}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#1a8bb5,#23abc4);color:#fff;box-shadow:0 10px 24px rgba(24,139,181,.25)}.btn-light{background:#fff;color:var(--navy)}.btn-outline{border:1px solid var(--line);background:#fff;color:var(--text)}.btn-danger{background:#fff0f0;color:var(--red);border:1px solid #f3c6c6}.btn-sm{padding:8px 11px;font-size:.88rem}.hero-card{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18);box-shadow:0 22px 60px rgba(0,0,0,.18);border-radius:26px;padding:24px;backdrop-filter:blur(12px)}.hero-card .metric{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.metric div{padding:16px;border-radius:16px;background:rgba(255,255,255,.1)}.metric strong{display:block;font-size:1.8rem}.section{padding:56px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-head h2{font-size:clamp(1.65rem,3vw,2.5rem);margin:0;letter-spacing:-.03em}.section-head p{margin:.4rem 0 0;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:10px}.field,.select,.input,.textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 13px;color:var(--text);outline:none}.input:focus,.select:focus,.textarea:focus{border-color:#5db4d1;box-shadow:0 0 0 4px rgba(39,166,199,.13)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 8px 28px rgba(19,54,76,.06);transition:.22s transform,.22s box-shadow,.22s border}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#bad4e2}.card h3{margin:10px 0 7px;line-height:1.25}.card p{color:var(--muted)}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.iconbox{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#e8f6fb;color:var(--blue);font-size:1.35rem;font-weight:900}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf4f8;color:#36586d;font-size:.78rem;font-weight:800}.badge-published{background:#e5f7f1;color:#116451}.badge-draft{background:#fff4dc;color:#8d5b0d}.badge-archived{background:#eef0f3;color:#5d6570}.meta{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--muted);font-size:.9rem}.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.empty{padding:36px;text-align:center;background:#fff;border:1px dashed #b7c8d5;border-radius:var(--radius);color:var(--muted)}.footer{background:#0b2f4a;color:#dcecf3;padding:34px 0;margin-top:40px}.footer-grid{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.alert{padding:12px 14px;border-radius:12px;margin:12px 0;border:1px solid}.alert-success{background:#eaf8f3;border-color:#bce8d9;color:#12624f}.alert-warning{background:#fff6df;border-color:#f1d494;color:#75500d}.alert-danger{background:#fff0f0;border-color:#f0c2c2;color:#8a2f2f}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#d7f2f7,transparent 38%),var(--bg)}.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow)}.login-card h1{margin:.4rem 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-group{display:grid;gap:6px}.form-group.full{grid-column:1/-1}.label{font-weight:800;font-size:.9rem}.help{font-size:.82rem;color:var(--muted)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.table{border-collapse:collapse;width:100%;min-width:760px}.table th,.table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{background:#f3f7fa;color:#405769;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.table tr:last-child td{border-bottom:0}.pager{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.pager a{padding:8px 11px;background:#fff;border:1px solid var(--line);border-radius:9px}.package-detail{display:grid;grid-template-columns:1fr 320px;gap:24px}.side-card{position:sticky;top:92px;height:max-content}.resource-list{display:grid;gap:10px}.resource-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:13px;padding:12px}.muted{color:var(--muted)}.hidden{display:none!important}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-grid,.package-detail{grid-template-columns:1fr}.side-card{position:static}.nav{display:none;position:absolute;left:16px;right:16px;top:64px;background:#0b2f4a;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:10px;flex-direction:column;align-items:stretch}.nav.open{display:flex}.menu-btn{display:block}.hero{padding-top:52px}}
@media(max-width:620px){.container{width:min(100% - 20px,1180px)}.grid,.form-grid{grid-template-columns:1fr}.hero h1{font-size:2.35rem}.hero-card .metric{grid-template-columns:1fr 1fr}.section{padding:40px 0}.section-head{align-items:stretch;flex-direction:column}.filters>*{flex:1 1 100%}.footer-grid{grid-template-columns:1fr}.topbar-inner{min-height:62px}.brand-logo{width:38px;height:38px}.brand small{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Stabilization V3: package detail and teacher signature */
.package-title{font-size:clamp(2rem,4vw,3.4rem);line-height:1.08;margin:16px 0;overflow-wrap:anywhere}.package-description{font-size:1.08rem}.package-components{margin-top:24px}.section-head.compact{align-items:center;margin-bottom:18px}.section-head.compact h2{font-size:1.45rem}.resource-meta{display:block}.detail-list{display:grid;gap:0;margin:10px 0 18px}.detail-list>div{display:grid;gap:3px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-list dt{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.detail-list dd{margin:0;font-weight:700;overflow-wrap:anywhere}.detail-list dd small{display:block;font-weight:500;color:var(--muted)}.teacher-signature-public{display:grid;gap:6px;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fbfdfe}.teacher-signature-public span{font-size:.82rem;font-weight:700}.teacher-signature-public img{display:block;width:190px;max-width:100%;height:82px;object-fit:contain;object-position:left center}.full-width{width:100%}.secondary-action{margin-top:8px}
@media(max-width:620px){.package-components{padding:16px}.section-head.compact{align-items:flex-start}.teacher-signature-public img{height:72px}.resource-item{align-items:flex-start}}
/* Portal V6 dynamic layout stabilization */
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-width:320px;overflow-x:hidden}main,section,article,header,footer,nav,div,form{min-width:0}.topbar{max-width:100vw}.menu-btn{min-height:44px}.table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}.resource-item{min-width:0}.resource-item>span:first-child{min-width:0}.resource-item strong,.resource-item small{overflow-wrap:anywhere}
@media(max-width:620px){.hero{padding:42px 0 36px}.hero h1{font-size:clamp(2rem,11vw,2.75rem)}.hero-card{padding:16px}.hero-card .metric{gap:8px}.metric div{padding:12px}.section-head .filters{width:100%}.package-detail{gap:14px}.package-components,.side-card{border-radius:16px}.resource-item{align-items:flex-start}.login-shell{padding:12px}.login-card{padding:22px 16px}.btn{min-height:44px}}

/* V12.7 — koreksi menu HP dan kerapian teks; tanpa elemen atau fitur baru. */
.nav a,.menu-btn,.btn,.metric span,.card h3,.card p{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.metric div{min-width:0}
.metric span{display:block;line-height:1.35}
@media(max-width:900px){
  .nav:not(.open){display:none!important}
  .nav.open{display:flex!important;max-height:calc(100vh - 88px);overflow-y:auto;overscroll-behavior:contain}
}

/* V12.8 — menu HP memakai kontrol native agar selalu dapat ditutup. */
.portal-menu{margin-left:auto;min-width:0}
.portal-menu>summary{list-style:none}
.portal-menu>summary::-webkit-details-marker{display:none}
.portal-menu>.nav{display:flex}
.portal-menu:not([open])>.nav{display:flex}
.nav a,.menu-btn,.btn,.card h3,.card p,.card a,.meta,.meta span,.metric span{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.card-actions .btn{white-space:normal;text-align:center}
@media(max-width:900px){
  .portal-menu{position:relative;flex:0 0 auto}
  .portal-menu>.menu-btn{display:block;user-select:none;-webkit-user-select:none}
  .portal-menu:not([open])>.nav{display:none!important}
  .portal-menu[open]>.nav{
    display:flex!important;
    position:absolute;
    top:calc(100% + 12px);
    right:0;
    left:auto;
    width:min(330px,calc(100vw - 24px));
    max-height:calc(100dvh - 96px);
    overflow-y:auto;
    overscroll-behavior:contain;
    z-index:100;
  }
  .portal-menu>.nav a{width:100%}
}
@media(min-width:901px){
  .portal-menu>.menu-btn{display:none!important}
  .portal-menu>.nav{position:static!important;display:flex!important}
}
@media(max-width:620px){
  .brand{min-width:0}
  .brand>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .card h3,.card p,.meta span{line-height:1.5}
  .card-actions .btn{width:100%}
}

/* V12.9 — perapian panel menu saat dibuka pada HP; tanpa menu atau fitur baru. */
@media(max-width:900px){
  .portal-menu[open]>.nav{
    display:flex!important;
    position:fixed!important;
    top:70px!important;
    left:12px!important;
    right:12px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:10px!important;
    gap:4px!important;
    align-items:stretch!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    max-height:calc(100dvh - 82px)!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:16px!important;
    background:#0b2f4a!important;
    box-shadow:0 18px 42px rgba(5,29,46,.32)!important;
    z-index:1000!important;
  }
  .portal-menu>.nav a{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    padding:13px 15px!important;
    line-height:1.35!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
    border-radius:11px!important;
  }
}
@media(max-width:620px){
  .portal-menu[open]>.nav{
    top:62px!important;
    left:10px!important;
    right:10px!important;
    max-height:calc(100dvh - 72px)!important;
  }
}


/* V14.1 — tombol kembali ke website utama; tidak mengubah logika aplikasi. */
.nav .nav-return{
  background:#fff;
  color:var(--navy);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 6px 16px rgba(0,0,0,.12);
  font-weight:850;
}
.nav .nav-return:hover,.nav .nav-return:focus-visible{
  background:#f0bd35;
  color:#263849;
}
@media(max-width:900px){
  .portal-menu>.nav .nav-return{
    margin-top:4px;
    text-align:center;
  }
}


/* V14.2 — tombol Kembali selalu terlihat di header, di luar menu lipat. */
.topbar-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin-left:auto;
  min-width:0;
  flex:0 0 auto;
}
.topbar-return{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 14px;
  border-radius:11px;
  white-space:nowrap;
  background:#fff;
  color:var(--navy);
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 6px 16px rgba(0,0,0,.14);
  font-weight:850;
  line-height:1;
}
.topbar-return:hover,.topbar-return:focus-visible{
  background:#f0bd35;
  color:#263849;
}
.topbar-actions .portal-menu{margin-left:0}
@media(max-width:900px){
  .topbar-inner{gap:10px}
  .topbar-actions{gap:6px}
}
@media(max-width:620px){
  .topbar-inner{gap:7px}
  .brand{flex:1 1 auto;min-width:0;gap:8px}
  .brand-logo{flex:0 0 auto}
  .topbar-actions{gap:5px}
  .topbar-return{min-height:40px;padding:8px 10px;font-size:.82rem}
  .menu-btn{min-height:40px;padding:8px 10px;font-size:.82rem}
}
@media(max-width:390px){
  .topbar-return,.menu-btn{padding-inline:8px;font-size:.78rem}
}

.login-links{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}
.login-main-return{font-weight:800;color:var(--navy);text-decoration:underline;text-underline-offset:3px}
@media(max-width:420px){.login-links{align-items:flex-start;flex-direction:column}}

/* V15 — focused public portal */
.portal-section-head{align-items:center}.portal-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.portal-filters .input{min-width:230px}.portal-filters .btn{min-height:44px}
.package-grid .card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.package-grid .card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(11,47,74,.10);border-color:#bdd1dc}.package-grid .card-actions{margin-top:auto;padding-top:16px}.package-grid .card-actions .btn{width:100%}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.hero-card{align-self:center}
@media(max-width:760px){.portal-section-head{align-items:stretch}.portal-filters{display:grid;grid-template-columns:1fr 1fr;width:100%}.portal-filters .input{grid-column:1/-1;min-width:0}.portal-filters>*{width:100%}.package-grid{grid-template-columns:1fr!important}.hero-actions{display:grid;grid-template-columns:1fr 1fr}.hero-actions .btn:last-child{grid-column:1/-1}}
@media(max-width:420px){.portal-filters,.hero-actions{grid-template-columns:1fr}.portal-filters .input,.hero-actions .btn:last-child{grid-column:auto}}

/* Focus pass: concise public portal. */
.hero-grid:has(> :only-child){grid-template-columns:1fr;max-width:840px}
.package-description-toggle{margin:10px 0 18px}
.package-description-toggle>summary{display:inline-flex;cursor:pointer;font-weight:750;color:var(--blue)}
.package-description-toggle .package-description{margin:8px 0 0}
.package-open-main{margin:4px 0 0}

/* Public application shell V16 — sidebar-first, compact, function-driven. */
.public-app-body{min-height:100dvh;background:#eef3f7}
.public-app-shell{display:flex;min-height:100dvh}
.public-sidebar{position:sticky;top:0;z-index:80;display:flex;flex:0 0 224px;flex-direction:column;width:224px;height:100dvh;padding:13px 10px;overflow:auto;background:linear-gradient(180deg,#0b304a,#0d3a57 62%,#102f43);color:#fff;box-shadow:8px 0 26px rgba(10,42,63,.08)}
.public-brand{display:flex;align-items:center;gap:10px;min-width:0;padding:3px 5px 12px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.12);font-size:.82rem;font-weight:850;line-height:1.25}.public-brand .brand-logo{width:38px;height:38px;flex:0 0 38px;border-radius:10px}.public-brand span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.public-nav,.public-nav-utility{display:grid;gap:3px}.public-nav a,.public-nav-utility a{display:flex;align-items:center;gap:9px;min-height:40px;padding:7px 9px;border-radius:9px;color:#dceaf1;font-size:.87rem;font-weight:740;text-decoration:none}.public-nav a>span,.public-nav-utility a>span{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px}.public-nav a:hover,.public-nav a.active,.public-nav-utility a:hover{background:rgba(255,255,255,.10);color:#fff}.public-nav a.active{background:rgba(255,255,255,.16);font-weight:850}.public-nav-utility{margin-top:auto;padding-top:9px;border-top:1px solid rgba(255,255,255,.10)}
.public-main{flex:1 1 auto;min-width:0;min-height:100dvh}.public-appbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:9px;min-height:56px;padding:8px 14px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.public-sidebar-toggle{display:none;place-items:center;width:38px;height:38px;min-height:38px;padding:0;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--navy);cursor:pointer}.public-appbar-brand{font-size:.9rem;font-weight:800;color:var(--navy)}
.public-sidebar-backdrop{display:none;position:fixed;inset:0;z-index:70;border:0;background:rgba(5,24,38,.52);backdrop-filter:blur(2px)}
.public-main>.section{padding:18px 0 28px}.public-main .section-head{align-items:center;margin-bottom:12px}.public-main .section-head h1,.public-main .section-head h2{margin:0;font-size:clamp(1.35rem,2vw,1.7rem);letter-spacing:-.02em}.public-main .section-head p{display:none}.public-main .container{width:min(1460px,calc(100% - 28px))}
.package-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:9px}.package-grid .card{min-height:0;padding:13px 14px;border-radius:12px;box-shadow:none;transform:none}.package-grid .card:hover{transform:none;box-shadow:none;background:#fbfdfe}.package-grid .card h3{margin:7px 0 4px;font-size:.98rem}.package-grid .meta{font-size:.78rem}.package-grid .card-actions{margin-top:10px;padding-top:0}.package-grid .card-actions .btn{min-height:36px;padding:7px 10px;border-radius:8px}.portal-section-head{gap:10px}.portal-filters{gap:6px}.portal-filters .input,.portal-filters .select{min-height:40px;padding:8px 10px;border-radius:9px}.portal-filters .btn{min-height:40px;padding:8px 11px;border-radius:9px}.footer{margin-top:14px;padding:18px 0}
@media(max-width:980px){.public-app-shell{display:block}.public-sidebar{position:fixed;inset:0 auto 0 0;z-index:90;width:min(286px,88vw);transform:translateX(-105%);box-shadow:18px 0 48px rgba(4,25,38,.25);transition:transform .2s ease}.public-sidebar-toggle{display:grid}.public-app-body.public-sidebar-open{overflow:hidden}.public-app-body.public-sidebar-open .public-sidebar{transform:translateX(0)}.public-app-body.public-sidebar-open .public-sidebar-backdrop{display:block}.public-main{width:100%}}
@media(max-width:760px){.public-appbar{min-height:52px;padding:7px 9px}.public-main>.section{padding:12px 0 20px}.public-main .container{width:calc(100% - 18px)}.portal-section-head{align-items:stretch}.portal-filters{display:grid;grid-template-columns:1fr 1fr;width:100%}.portal-filters .input{grid-column:1/-1;min-width:0}.package-grid{grid-template-columns:1fr!important}.package-grid .card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'top action' 'title action' 'meta action';align-items:center;gap:3px 10px}.package-grid .card-top{grid-area:top;justify-content:flex-start}.package-grid .card h3{grid-area:title}.package-grid .meta{grid-area:meta}.package-grid .card-actions{grid-area:action;margin:0}.package-grid .card-actions .btn{width:auto;min-width:70px}.footer-grid{grid-template-columns:1fr;gap:3px}}
@media(max-width:430px){.portal-filters{grid-template-columns:1fr}.portal-filters .input{grid-column:auto}.public-main .section-head h1,.public-main .section-head h2{font-size:1.25rem}}
@media print{.public-sidebar,.public-appbar,.public-sidebar-backdrop{display:none!important}.public-main{width:100%!important}.public-app-shell{display:block!important}}
@media(prefers-reduced-motion:reduce){.public-sidebar{transition:none!important}}


/* ===== SOURCE: assets/css/native-ui-v13.css ===== */
/*
 * Native UI V13 — progressive polish layer.
 * Intentionally conservative: it improves motion, touch, focus, scrolling,
 * spacing and responsive ergonomics without changing application logic.
 */
@layer paNativeV13 {
  :root{
    --pa13-navy:#123f5f;
    --pa13-blue:#197aa5;
    --pa13-gold:#f0bd35;
    --pa13-bg:#eef3f6;
    --pa13-surface:#ffffff;
    --pa13-text:#172a3a;
    --pa13-muted:#627483;
    --pa13-line:#d7e2e9;
    --pa13-radius:18px;
    --pa13-shadow:0 12px 34px rgba(18,63,95,.10);
    --pa13-shadow-soft:0 5px 18px rgba(18,63,95,.07);
    --pa13-ease:cubic-bezier(.2,.8,.2,1);
    --pa13-safe-bottom:max(14px,env(safe-area-inset-bottom));
  }

  html{
    min-width:320px;
    scroll-behavior:smooth;
    scroll-padding-top:82px;
    scrollbar-gutter:stable;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }

  body{
    min-height:100dvh;
    max-width:100%;
    overflow-x:hidden;
    overscroll-behavior-y:auto;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
  }

  body,
  .sheet-viewport,
  .table-wrap,
  .table-responsive,
  [class*="table-wrap"],
  [class*="scroll"]{
    -webkit-overflow-scrolling:touch;
  }

  img,svg,video,canvas,iframe{max-width:100%;height:auto}
  iframe{border:0}

  :is(a,button,input,select,textarea,[role="button"],summary){
    -webkit-tap-highlight-color:transparent;
  }

  :is(button,.btn,a.btn,[role="button"],summary){
    touch-action:manipulation;
    transition:
      transform .18s var(--pa13-ease),
      box-shadow .18s var(--pa13-ease),
      background-color .18s var(--pa13-ease),
      border-color .18s var(--pa13-ease),
      color .18s var(--pa13-ease),
      opacity .18s var(--pa13-ease);
  }

  :is(button,.btn,a.btn,[role="button"],summary):active{
    transform:scale(.985);
  }

  :is(a,button,input,select,textarea,[role="button"],summary):focus-visible{
    outline:3px solid rgba(25,122,165,.33)!important;
    outline-offset:3px!important;
  }

  :is(button,input,select,textarea,.btn,[role="button"]):disabled,
  [aria-disabled="true"]{
    opacity:.58;
    cursor:not-allowed;
    transform:none!important;
  }

  :is(.card,.panel,.section,.info-card,.pro-panel,.viewer-card,.status-card,.metric,.question,fieldset){
    transition:box-shadow .22s var(--pa13-ease),border-color .22s var(--pa13-ease),transform .22s var(--pa13-ease);
  }

  .table-wrap,.table-responsive,[class*="table-wrap"]{
    max-width:100%;
    overflow:auto;
    overscroll-behavior-inline:contain;
    scrollbar-width:thin;
    scrollbar-color:#9fb5c2 transparent;
  }

  .table-wrap::-webkit-scrollbar,
  .table-responsive::-webkit-scrollbar,
  [class*="table-wrap"]::-webkit-scrollbar{height:9px;width:9px}
  .table-wrap::-webkit-scrollbar-thumb,
  .table-responsive::-webkit-scrollbar-thumb,
  [class*="table-wrap"]::-webkit-scrollbar-thumb{background:#aabdc8;border-radius:99px;border:2px solid transparent;background-clip:padding-box}

  table{max-width:100%}
  th,td{overflow-wrap:anywhere}

  .navlinks,.nav,.top-actions,.toolbar-actions,.tabs,.pro-tabs,.actions-scroll{
    scrollbar-width:none;
  }
  .navlinks::-webkit-scrollbar,.nav::-webkit-scrollbar,.top-actions::-webkit-scrollbar,.toolbar-actions::-webkit-scrollbar,.tabs::-webkit-scrollbar,.pro-tabs::-webkit-scrollbar,.actions-scroll::-webkit-scrollbar{display:none}

  .status:empty,.hint:empty,.notice:empty,.helper:empty,.help-text:empty,.description:empty{display:none!important}
  .diagnostic-item>.item-hint{display:none!important}
  [hidden]{display:none!important}

  .scroll-top,[class*="scroll-top"],button[aria-label*="atas" i],a[aria-label*="atas" i]{
    opacity:0;
    pointer-events:none;
    transform:translateY(10px) scale(.94);
    transition:opacity .2s var(--pa13-ease),transform .2s var(--pa13-ease)!important;
  }
  .scroll-top.pa-scrolltop-visible,[class*="scroll-top"].pa-scrolltop-visible,button[aria-label*="atas" i].pa-scrolltop-visible,a[aria-label*="atas" i].pa-scrolltop-visible{
    opacity:1;
    pointer-events:auto;
    transform:none;
  }

  body.pa-is-scrolling .roster-quick-access{
    opacity:.72;
    transform:scale(.94);
  }

  @media (hover:hover) and (pointer:fine){
    :is(button,.btn,a.btn,[role="button"]):not(:disabled):hover{
      transform:translateY(-1px);
    }
    :is(.card,.panel,.info-card,.pro-panel,.viewer-card):hover{
      border-color:#c6d7e1;
      box-shadow:var(--pa13-shadow);
    }
  }

  @media(max-width:760px){
    html{scroll-padding-top:70px}
    body{
      min-width:320px;
      padding-bottom:env(safe-area-inset-bottom);
      background:var(--pa13-bg);
    }

    body::selection{background:rgba(25,122,165,.20)}

    :is(.shell,.container,.wrapper,.wrap,.doc-shell,.pro-shell,.page-shell){
      max-width:calc(100% - 12px)!important;
      margin-inline:auto!important;
    }

    :is(.card,.panel,.section,.info-card,.pro-panel,.viewer-card,.status-card,.metric,.question,fieldset){
      max-width:100%!important;
      border-radius:16px!important;
      box-shadow:var(--pa13-shadow-soft);
    }

    :is(.topbar,.site-header,header.top,.toolbar,.pro-toolbar){
      max-width:100%;
      -webkit-backdrop-filter:blur(16px) saturate(1.12);
      backdrop-filter:blur(16px) saturate(1.12);
    }

    :is(.navlinks,.nav,.top-actions,.toolbar-actions,.tabs,.pro-tabs,.actions-scroll){
      display:flex!important;
      flex-wrap:nowrap!important;
      max-width:100%!important;
      overflow-x:auto!important;
      overscroll-behavior-inline:contain;
      scroll-snap-type:x proximity;
      scroll-padding-inline:8px;
      gap:8px;
      padding-bottom:3px;
    }

    :is(.navlinks,.nav,.top-actions,.toolbar-actions,.tabs,.pro-tabs,.actions-scroll)>*{
      flex:0 0 auto!important;
      white-space:nowrap!important;
      scroll-snap-align:start;
    }

    :is(button,.btn,a.btn,[role="button"],summary){
      min-height:44px;
    }

    input,select,textarea{
      min-height:46px;
      font-size:16px!important;
    }

    textarea{line-height:1.5}

    :is(.grid,.pro-grid,.hero-grid,.student-grid,.profile-head,.stats,.filters,.reading-layout){
      min-width:0;
    }

    .table-wrap,.table-responsive,[class*="table-wrap"]{
      border-radius:12px;
    }

    .roster-quick-access{
      left:10px!important;
      bottom:calc(12px + env(safe-area-inset-bottom))!important;
      width:46px!important;
      height:46px!important;
      min-width:46px!important;
      min-height:46px!important;
      padding:0!important;
      justify-content:center!important;
      border-width:2px!important;
      box-shadow:0 10px 24px rgba(8,44,67,.24)!important;
    }

    .roster-quick-access__label{
      position:absolute!important;
      width:1px!important;
      height:1px!important;
      overflow:hidden!important;
      clip:rect(0,0,0,0)!important;
      white-space:nowrap!important;
    }

    .scroll-top,[class*="scroll-top"],button[aria-label*="atas" i],a[aria-label*="atas" i]{
      width:46px!important;
      height:46px!important;
      min-width:46px!important;
      min-height:46px!important;
      right:10px!important;
      bottom:calc(12px + env(safe-area-inset-bottom))!important;
      font-size:1.08rem!important;
    }

  }

  @media(max-width:420px){
    :is(.shell,.container,.wrapper,.wrap,.doc-shell,.pro-shell,.page-shell){
      max-width:calc(100% - 8px)!important;
    }
    :is(.card,.panel,.section,.info-card,.pro-panel,.viewer-card,.status-card,.metric,.question,fieldset){
      border-radius:14px!important;
    }
  }

  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{
      animation-duration:.001ms!important;
      animation-iteration-count:1!important;
      transition-duration:.001ms!important;
      scroll-behavior:auto!important;
    }
  }

  @media print{
    .roster-quick-access,.scroll-top,[class*="scroll-top"],button[aria-label*="atas" i],a[aria-label*="atas" i]{display:none!important}
  }
}

/* V12.6 — koreksi khusus HP; tidak menambah elemen/menu. */
@media(max-width:760px){
  th,td{overflow-wrap:break-word!important;word-break:normal!important;hyphens:none!important}
  .roster-quick-access,.scroll-top,[class*="scroll-top"],button[aria-label*="atas" i],a[aria-label*="atas" i]{display:none!important}
}

/* Total audit v13.1 — touch responsiveness without changing business logic. */
@media (pointer:coarse){
  :is(button,.btn,a.btn,[role="button"],summary,input[type="button"],input[type="submit"],input[type="reset"]){
    touch-action:manipulation;
    -webkit-tap-highlight-color:rgba(25,122,165,.12);
  }
}

/* V18 legacy/static mobile hardening.
   Applies to subject pages that do not use the newer sidebar workspace script. */
@media(max-width:760px){
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace){min-width:0!important;max-width:100%!important;overflow-x:hidden!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.shell,.container,.wrapper,.wrap,.doc-shell,.pro-shell,.page-shell){width:auto!important;max-width:none!important;margin-left:7px!important;margin-right:7px!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.card,.panel,.section,.info-card,.pro-panel,.question,fieldset){min-width:0!important;max-width:100%!important;padding-left:12px!important;padding-right:12px!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.grid,.pro-grid,.hero-grid,.student-grid,.profile-head,.stats,.filters,.reading-layout,.lab-grid,.algebra-lab,.alg-lab-layout,.profile-grid,.plan-grid,.mastery){grid-template-columns:1fr!important;min-width:0!important;gap:9px!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) .filters>*{width:100%!important;min-width:0!important;max-width:100%!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(input,select,textarea){width:100%!important;min-width:0!important;max-width:100%!important;font-size:16px!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(input[type="checkbox"],input[type="radio"]){width:auto!important;min-height:0!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.actions,.top-actions,.toolbar-actions,.pro-actions){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;max-width:100%!important;gap:7px!important;overflow:visible!important;padding-bottom:0!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.actions,.top-actions,.toolbar-actions,.pro-actions)>*{width:100%!important;min-width:0!important;max-width:100%!important;white-space:normal!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.actions,.top-actions,.toolbar-actions,.pro-actions) :is(.btn,a,button){min-height:44px!important;justify-content:center!important;white-space:normal!important;text-align:center!important;line-height:1.25!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.topbar,.site-header,.toolbar,.pro-toolbar){position:relative!important;top:auto!important;width:100%!important;max-width:100%!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.topbar-inner,.toprow,.toolbar-inner,.site-header-inner){display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important;width:100%!important;max-width:100%!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) .brand{min-width:0!important;max-width:100%!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) .brand :is(h1,h2,h3,p,span,strong){max-width:100%!important;overflow-wrap:anywhere!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) .table-wrap,
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) .table-responsive,
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) [class*="table-wrap"]{width:100%!important;max-width:100%!important;overflow-x:auto!important;overflow-y:visible!important;overscroll-behavior-inline:contain!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) table{max-width:100%!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(th,td){overflow-wrap:break-word!important;word-break:normal!important;hyphens:none!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(h1,h2,h3){line-height:1.28!important;overflow-wrap:anywhere!important}
}
@media(max-width:430px){
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.actions,.top-actions,.toolbar-actions,.pro-actions){grid-template-columns:1fr!important}
  body:not(.pa-admin-body):not(.public-app-body):not(.pa-static-workspace) :is(.shell,.container,.wrapper,.wrap,.doc-shell,.pro-shell,.page-shell){margin-left:5px!important;margin-right:5px!important}
}

/* V30 static workspace stability */
.pa-static-workspace{transition:none!important}.pa-static-sidebar{transition:none!important}.pa-static-sidebar a,.pa-static-sidebar summary{transform:none!important}
@media(max-width:1080px){.pa-static-sidebar{transition:transform 200ms cubic-bezier(.2,.7,.2,1)!important}}
@media(prefers-reduced-motion:reduce){.pa-static-sidebar{transition:none!important}}


/* ===== SOURCE: assets/css/responsive-hardening-v18.css ===== */
/* PERANGKAT Responsive Hardening V18 — final cascade layer
   Loaded last to resolve older mobile rules without changing application logic. */

:root{
  --rh-gutter:clamp(10px,2.6vw,20px);
  --rh-touch:44px;
  --rh-radius:14px;
}

html,body{max-width:100%;overflow-x:hidden}
body{min-width:0!important}
*,*::before,*::after{box-sizing:border-box}
img,svg,video,canvas,iframe,object,embed{max-width:100%;height:auto}
pre,code{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
:is(.pa-admin-main,.pa-admin-content,.public-main,.container,.panel,.card,.toolbar,.page-title,.form-grid,.filters,.inline-actions,.resource-item,.activity-question-row,.activity-question-main,.worksheet-studio-grid,.worksheet-editor-panel,.worksheet-canvas){min-width:0}
:is(input,select,textarea,button,.btn){max-width:100%}

/* ---------- ADMIN / TEACHER APP ---------- */
@media(max-width:1080px){
  .pa-admin-shell{display:block!important;width:100%!important}
  .pa-admin-main{width:100%!important;max-width:100%!important}
  .pa-admin-sidebar{
    width:min(300px,88vw)!important;
    min-width:0!important;
    max-width:min(300px,88vw)!important;
    flex-basis:auto!important;
    height:100dvh!important;
    padding:12px 10px calc(12px + env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  .pa-sidebar-close{display:grid!important}
  .pa-admin-top{padding-left:max(10px,env(safe-area-inset-left))!important;padding-right:max(10px,env(safe-area-inset-right))!important}
  .pa-admin-content{width:100%!important;max-width:100%!important;margin:0!important;padding:14px var(--rh-gutter) calc(24px + env(safe-area-inset-bottom))!important}
}

@media(max-width:760px){
  .pa-admin-body{font-size:15px!important}
  .pa-admin-top{
    min-height:54px!important;
    gap:8px!important;
    padding-top:7px!important;
    padding-bottom:7px!important;
  }
  .pa-admin-top-left{gap:7px!important;min-width:0!important}
  .pa-sidebar-toggle,.pa-command-trigger{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;padding:0!important}
  .pa-user-menu{min-width:0!important;margin-left:auto!important}
  .pa-user-badge{
    display:block!important;
    max-width:min(42vw,150px)!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .page-title{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:9px!important;
    width:100%!important;
    margin-bottom:12px!important;
  }
  .page-title>div:first-child{width:100%!important;min-width:0!important}
  .page-title h1{font-size:clamp(1.2rem,5.4vw,1.48rem)!important;line-height:1.22!important;overflow-wrap:anywhere}
  .page-title p{font-size:.84rem!important;line-height:1.45!important;max-width:none!important}
  .page-title>.inline-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    max-width:none!important;
    gap:7px!important;
  }
  .page-title>.inline-actions>*{width:100%!important;min-width:0!important}
  .page-title>.inline-actions .btn{width:100%!important;min-height:42px!important;white-space:normal!important}

  .panel{width:100%!important;max-width:100%!important;padding:12px!important;margin-bottom:10px!important;border-radius:12px!important;overflow:visible}
  .panel>h2,.panel>h3{font-size:1rem!important;line-height:1.3!important}
  .dashboard-grid,.system-checks,.signature-uploader,.school-brand-editor,.student-photo-editor{grid-template-columns:1fr!important}

  .kpi-grid,.kpi-grid.compact-kpi,.compact-kpi,.sp-kpis{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
  }
  .kpi,.sp-kpi{min-width:0!important;padding:11px 9px!important;text-align:left!important}
  .kpi strong,.sp-kpi strong{font-size:1.28rem!important}
  .kpi span,.sp-kpi span{font-size:.75rem!important;line-height:1.3!important;overflow-wrap:anywhere}

  .toolbar,.filter-bar{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:8px!important;
    width:100%!important;
  }
  .toolbar>*{max-width:100%!important}
  .toolbar>.filters,.toolbar>.inline-actions,.filter-bar>.filters{width:100%!important;flex:none!important}

  .filters,.filters-compact,form.filters{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:stretch!important;
    width:100%!important;
    gap:8px!important;
  }
  .filters>*,.filters-compact>*,form.filters>*{
    grid-column:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex:none!important;
  }
  .filter-more{width:100%!important}
  .filter-more>summary{width:100%!important;min-height:44px!important}
  .filter-more-body{left:max(10px,env(safe-area-inset-left))!important;right:max(10px,env(safe-area-inset-right))!important;bottom:max(10px,env(safe-area-inset-bottom))!important;width:auto!important;max-height:72dvh!important}

  .form-grid,.school-brand-fields,.advanced-settings-body{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    gap:10px!important;
  }
  .form-grid>*{grid-column:auto!important;min-width:0!important}
  .form-group.full,.simple-form-section{grid-column:1!important}
  .input,.select,.textarea,input,select,textarea{width:100%!important;min-width:0!important;font-size:16px!important}
  input[type="checkbox"],input[type="radio"]{width:auto!important;min-height:0!important}
  input[type="file"]{font-size:.9rem!important;overflow:hidden}
  .input-action{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
  .input-action .btn{width:100%!important}

  .form-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    width:100%!important;
  }
  .form-actions>*{min-width:0!important;width:100%!important}
  .form-actions .btn{width:100%!important;white-space:normal!important}

  /* Real card tables: no hidden horizontal table width on phones. */
  .table-wrap.is-card-table-wrap{
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
  }
  table.table.responsive-table{display:block!important;width:100%!important;min-width:0!important;background:transparent!important;border-collapse:separate!important}
  table.table.responsive-table thead{display:none!important}
  table.table.responsive-table tbody{display:grid!important;width:100%!important;gap:9px!important}
  table.table.responsive-table tr{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:7px 0!important;
    overflow:hidden!important;
    border:1px solid var(--line)!important;
    border-radius:12px!important;
    background:#fff!important;
    box-shadow:0 3px 12px rgba(11,47,74,.035)!important;
  }
  table.table.responsive-table td{
    display:grid!important;
    grid-template-columns:minmax(86px,31%) minmax(0,1fr)!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
    padding:7px 10px!important;
    border:0!important;
    overflow:visible!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  table.table.responsive-table td::before{
    content:attr(data-label)!important;
    display:block!important;
    min-width:0!important;
    color:var(--muted)!important;
    font-size:.7rem!important;
    font-weight:850!important;
    line-height:1.3!important;
    letter-spacing:.035em!important;
    text-transform:uppercase!important;
    overflow-wrap:anywhere!important;
  }
  table.table.responsive-table td[colspan]{display:block!important}
  table.table.responsive-table td[colspan]::before{display:none!important}
  table.table.responsive-table td[data-label="Aksi"]{
    display:block!important;
    margin-top:4px!important;
    padding-top:9px!important;
    border-top:1px solid var(--line)!important;
  }
  table.table.responsive-table td[data-label="Aksi"]::before{display:none!important}
  table.table.responsive-table td[data-label="Aksi"]>.inline-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    gap:7px!important;
  }
  table.table.responsive-table td[data-label="Aksi"]>.inline-actions>*{width:100%!important;min-width:0!important}
  table.table.responsive-table td[data-label="Aksi"] .btn,
  table.table.responsive-table td[data-label="Aksi"] summary{width:100%!important;min-height:40px!important;justify-content:center!important;white-space:normal!important}

  .inline-actions{max-width:100%!important;min-width:0!important}
  .resource-item{align-items:flex-start!important;max-width:100%!important;overflow-wrap:anywhere}

  .workspace-tabs{
    width:100%!important;
    max-width:100%!important;
    margin:0 0 10px!important;
    overflow-x:auto!important;
    overscroll-behavior-inline:contain!important;
    scroll-snap-type:x proximity;
  }
  .workspace-tabs a{flex:0 0 auto!important;min-height:40px!important;scroll-snap-align:start}

  .pa-command{padding:64px 8px 8px!important;align-items:start!important}
  .pa-command-dialog{width:100%!important;max-width:620px!important;max-height:calc(100dvh - 78px)!important;overflow:hidden!important}
  .pa-command-results{max-height:calc(100dvh - 155px)!important}
  .pa-user-menu-panel{position:fixed!important;top:58px!important;right:10px!important;left:auto!important;max-width:calc(100vw - 20px)!important;min-width:min(220px,calc(100vw - 20px))!important}
}

@media(max-width:430px){
  .pa-admin-content{padding-left:9px!important;padding-right:9px!important}
  .page-title{flex-direction:column!important;align-items:stretch!important}
  .page-title>.inline-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  .page-title>.inline-actions .btn{display:flex!important}
  .kpi-grid,.kpi-grid.compact-kpi,.compact-kpi,.sp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .form-actions{grid-template-columns:1fr!important}
  table.table.responsive-table td{grid-template-columns:1fr!important;gap:3px!important}
  table.table.responsive-table td::before{margin-bottom:1px!important}
  .pa-user-badge{max-width:34vw!important}
}

@media(max-width:350px){
  .kpi-grid,.kpi-grid.compact-kpi,.compact-kpi,.sp-kpis{grid-template-columns:1fr!important}
  .pa-user-badge{display:none!important}
}

/* ---------- PUBLIC / STUDENT APP ---------- */
@media(max-width:980px){
  .public-main{width:100%!important;max-width:100%!important}
  .public-sidebar{height:100dvh!important;padding-bottom:calc(12px + env(safe-area-inset-bottom))!important}
  .public-appbar{padding-left:max(9px,env(safe-area-inset-left))!important;padding-right:max(9px,env(safe-area-inset-right))!important}
}

@media(max-width:760px){
  .public-appbar{min-height:52px!important;gap:8px!important}
  .public-appbar-brand{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .public-main>.section{padding:10px 0 18px!important}
  .public-main .container{width:auto!important;max-width:none!important;margin-left:9px!important;margin-right:9px!important}
  .public-main .section-head{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:8px!important;margin-bottom:10px!important}
  .public-main .section-head h1,.public-main .section-head h2{font-size:1.25rem!important;line-height:1.25!important;overflow-wrap:anywhere}
  .portal-filters{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;width:100%!important}
  .portal-filters>*{grid-column:auto!important;width:100%!important;min-width:0!important}
  .package-grid{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .package-grid .card{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    padding:12px!important;
  }
  .package-grid .card-actions{display:grid!important;grid-template-columns:1fr!important;margin-top:9px!important}
  .package-grid .card-actions .btn{width:100%!important;min-height:42px!important}
  .resource-list{gap:8px!important}
  .resource-item{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:7px!important;padding:11px!important}
  .resource-item>*{min-width:0!important}
  .footer{padding:16px 0!important;margin-top:12px!important}
  .footer-grid{display:grid!important;grid-template-columns:1fr!important;gap:3px!important}
  .login-shell{padding:10px!important;align-items:start!important;padding-top:max(14px,env(safe-area-inset-top))!important}
  .login-card{width:100%!important;max-width:460px!important;padding:18px 14px!important;border-radius:16px!important}
}

@media(max-width:430px){
  .resource-item{grid-template-columns:1fr!important}
  .resource-item .badge{justify-self:start!important}
}

/* ---------- ACTIVITIES / QUIZ / PAPER / WORKSHEET ---------- */
@media(max-width:760px){
  .activity-public{min-height:0!important}
  .activity-join-card{max-width:none!important;margin:10px 0!important}
  .activity-code-form{grid-template-columns:1fr!important}
  .activity-code-form .btn{width:100%!important}
  .activity-run-head{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;margin:10px 0!important}
  .activity-run-progress{width:100%!important;min-width:0!important;margin:0!important}
  .activity-run-question{width:100%!important;max-width:100%!important}
  .activity-run-question h2{font-size:1.02rem!important}
  .activity-run-question .activity-stem{font-size:1rem!important;line-height:1.55!important}
  .activity-answer-option{padding:10px!important;border-radius:11px!important}
  .activity-run-actions{
    position:sticky!important;
    left:0!important;right:0!important;bottom:0!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    width:100%!important;
    margin-top:12px!important;
    padding:8px!important;
    padding-bottom:calc(8px + env(safe-area-inset-bottom))!important;
    border:1px solid var(--line,#d9e3ea)!important;
    border-radius:12px!important;
    background:rgba(255,255,255,.96)!important;
    backdrop-filter:blur(12px)!important;
    z-index:12!important;
  }
  .activity-run-actions>*{width:100%!important;min-width:0!important}

  .activity-question-row{
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    gap:9px!important;
    align-items:start!important;
    padding:10px!important;
  }
  .activity-question-no{width:36px!important;height:36px!important}
  .activity-question-row>.inline-actions{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    padding-left:0!important;
    overflow:visible!important;
    gap:7px!important;
  }
  .activity-question-row>.inline-actions>*{width:100%!important;min-width:0!important}
  .option-edit-row{grid-template-columns:1fr!important;gap:7px!important}
  .option-key{justify-content:flex-start!important;padding:0 10px!important}
  .option-edit-row .option-mis{grid-column:auto!important}
  .activity-share-grid{grid-template-columns:1fr!important}
  .activity-big-code{font-size:clamp(1.7rem,10vw,2.5rem)!important;overflow-wrap:anywhere}
  .activity-dimension-grid{grid-template-columns:1fr!important}

  /* Worksheet canvas uses percentage coordinates, so it may safely scale to phone width. */
  .worksheet-studio-grid{grid-template-columns:1fr!important;gap:8px!important}
  .worksheet-tools{position:static!important;width:100%!important}
  .worksheet-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  .worksheet-tool-grid>*{min-width:0!important;width:100%!important;white-space:normal!important}
  .worksheet-editor-panel{width:100%!important;max-width:100%!important;overflow:visible!important;padding:4px!important}
  .worksheet-canvas{width:100%!important;max-width:100%!important;min-width:0!important;margin:0 auto!important;touch-action:none}
  .worksheet-pages{max-width:100%!important;overscroll-behavior-inline:contain!important}
  .worksheet-dialog{width:calc(100vw - 16px)!important;max-width:none!important;max-height:calc(100dvh - 16px)!important;overflow:auto!important}
  .worksheet-dialog>form:first-child{padding:12px!important}
  .worksheet-upload-panel .toolbar{align-items:stretch!important}
  .worksheet-upload-panel input[type=file]{max-width:100%!important;width:100%!important}
  .worksheet-submitbar{bottom:0!important;padding:6px!important;padding-bottom:calc(6px + env(safe-area-inset-bottom))!important}
  .worksheet-submitbar>div{width:100%!important;border-radius:12px!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .worksheet-submitbar>div>*{width:100%!important;min-width:0!important}
  .ws-join-lines{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)!important;gap:5px!important}
  .ws-join-node{padding:7px 6px!important;font-size:.82rem!important;overflow-wrap:anywhere}

  /* Presenter becomes a compact vertical app on phones. */
  .paper-stage{min-height:100dvh!important;padding:10px!important;padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;gap:10px!important}
  .paper-stage-top{align-items:flex-start!important;gap:8px!important}
  .paper-stage-title{min-width:0!important}
  .paper-stage-title strong{font-size:1rem!important;overflow-wrap:anywhere}
  .paper-stage-title span{font-size:.82rem!important}
  .paper-stage-count{flex:0 0 auto!important;font-size:1.3rem!important}
  .paper-stage-question{align-content:start!important;overflow:auto!important;padding:4px 0!important}
  .paper-stage-number{margin-bottom:7px!important}
  .paper-stage-question h1{font-size:clamp(1.22rem,6vw,1.8rem)!important;line-height:1.28!important;margin-bottom:12px!important}
  .paper-stage-options{grid-template-columns:1fr!important;gap:8px!important}
  .paper-stage-option{padding:10px!important;gap:10px!important;border-radius:12px!important;font-size:.96rem!important}
  .paper-stage-option strong{min-width:38px!important;height:38px!important;border-radius:10px!important}
  .paper-stage-bottom{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;gap:8px!important}
  .paper-stage-controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  .paper-stage-controls>*{width:100%!important;min-width:0!important;min-height:44px!important;padding:0 8px!important;text-align:center!important;white-space:normal!important}

  .paper-scanner{width:100%!important;max-width:none!important;padding:8px!important;padding-bottom:calc(8px + env(safe-area-inset-bottom))!important}
  .paper-scanner-head{align-items:flex-start!important;gap:8px!important}
  .paper-scanner-camera{width:100%!important;max-height:58dvh!important;border-radius:12px!important}
  .paper-scanner-status{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;gap:7px!important}
  .paper-scanner-status button{width:100%!important;min-height:44px!important}
  .paper-scan-student{grid-template-columns:1fr!important;padding:9px!important}
  .paper-scan-student .answer-buttons{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;gap:6px!important}
  .paper-scan-student button{width:100%!important;min-width:0!important;height:42px!important}
  .live-dist-row{grid-template-columns:34px minmax(0,1fr) 38px!important;gap:7px!important;font-size:.9rem!important}
}

@media(max-width:430px){
  .worksheet-tool-grid{grid-template-columns:1fr 1fr!important}
  .activity-run-actions,.paper-stage-controls,.worksheet-submitbar>div{grid-template-columns:1fr!important}
}

/* Dialogs and popovers can never escape the device viewport. */
dialog{max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important}
.floating-action-panel{max-width:calc(100vw - 20px)!important}

@media(orientation:landscape) and (max-height:520px) and (pointer:coarse){
  .pa-admin-top{position:relative!important}
  .paper-stage{padding:8px!important;grid-template-rows:auto minmax(0,1fr) auto!important}
  .paper-stage-question h1{font-size:1.2rem!important;margin-bottom:8px!important}
  .paper-stage-options{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .paper-stage-option{padding:7px 9px!important}
  .paper-scanner-camera{max-height:56dvh!important}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
}


/* ===== SOURCE: assets/css/ux-polish-v19.css ===== */
/* UX Polish v19 — task-first, touch-friendly, motion-safe finishing layer. */
:root{
  --ux-ease:cubic-bezier(.22,.61,.36,1);
  --ux-fast:140ms;
  --ux-normal:220ms;
  --ux-touch:44px;
  --ux-focus:0 0 0 3px rgba(39,166,199,.18);
}
html{scroll-behavior:smooth;scroll-padding-top:76px;scrollbar-gutter:stable}
body{overscroll-behavior-x:none;-webkit-tap-highlight-color:transparent}
button,a,input,select,textarea,summary{touch-action:manipulation}
button,.btn,[role="button"],summary,a.resource-item,.workspace-tabs a,.pa-side-nav a,.public-nav a{
  transition:background-color var(--ux-fast) var(--ux-ease),border-color var(--ux-fast) var(--ux-ease),box-shadow var(--ux-fast) var(--ux-ease),color var(--ux-fast) var(--ux-ease),transform var(--ux-fast) var(--ux-ease),opacity var(--ux-fast) var(--ux-ease);
}
button:active,.btn:active,[role="button"]:active,summary:active{transform:scale(.985)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:0!important;box-shadow:var(--ux-focus)!important}
.input,.select,.textarea,input[type="text"],input[type="search"],input[type="password"],input[type="number"],input[type="email"],input[type="tel"],input[type="datetime-local"]{transition:border-color var(--ux-fast) var(--ux-ease),box-shadow var(--ux-fast) var(--ux-ease),background-color var(--ux-fast) var(--ux-ease)}
.panel,.card,.kpi,.resource-item{transition:border-color var(--ux-normal) var(--ux-ease),box-shadow var(--ux-normal) var(--ux-ease),transform var(--ux-normal) var(--ux-ease)}
@media(hover:hover) and (pointer:fine){
  .resource-item:hover{border-color:#bfd2df;box-shadow:0 8px 22px rgba(11,47,74,.07)}
  .panel[data-clickable]:hover,.card:hover,.kpi-grid a.kpi:hover{transform:translateY(-2px)}
}

/* Clear task hierarchy in the admin sidebar. */
.pa-nav-groups{gap:6px!important}
.pa-nav-group>summary{font-weight:850!important}
.pa-nav-sub{position:relative!important;margin-left:11px!important;padding-left:8px!important;border-left:1px solid rgba(255,255,255,.12)!important}
.pa-nav-sub a.active{box-shadow:inset 3px 0 0 #f0bd35!important}
.pa-nav-utility{padding-top:8px!important;border-top:1px solid rgba(255,255,255,.12)!important}
.pa-admin-top{position:sticky!important;top:0!important;z-index:70!important;backdrop-filter:blur(16px)!important;background:rgba(255,255,255,.93)!important}

/* One activity = one workspace; step numbers remain readable on mobile. */
.workspace-tabs{display:flex!important;gap:6px!important;align-items:stretch!important;margin:0 0 14px!important;padding:5px!important;border:1px solid var(--line)!important;border-radius:14px!important;background:#eef4f7!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)!important}
.workspace-tabs a{display:inline-flex!important;align-items:center!important;gap:7px!important;min-height:42px!important;padding:7px 12px!important;border-radius:10px!important;color:#476174!important;font-weight:800!important;white-space:nowrap!important}
.workspace-tabs a:hover{background:#fff!important;color:var(--navy)!important}
.workspace-tabs a.active{background:#fff!important;color:var(--navy)!important;box-shadow:0 5px 14px rgba(11,47,74,.10)!important}
.workspace-step-no{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:#dbe8ef;color:#36586d;font-size:.75rem;font-weight:900;flex:0 0 22px}
.workspace-tabs a.active .workspace-step-no{background:var(--navy);color:#fff}

/* Workflow cards for Test Maker and quick-start areas. */
.workflow-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px}
.workflow-step{display:flex;text-decoration:none;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);font-weight:800}
.workflow-step strong{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#e8f2f7;color:var(--navy);flex:0 0 28px}
.workflow-step.active{border-color:#a7cbdc;background:#f5fbfe;color:var(--navy)}
.dashboard-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dashboard-quick{display:grid;gap:3px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;min-height:92px}
.dashboard-quick strong{font-size:.98rem}.dashboard-quick small{color:var(--muted)}
.dashboard-quick:hover{border-color:#b9d5e2;box-shadow:0 10px 24px rgba(11,47,74,.07)}

/* Dense controls become calmer and easier to hit. */
.form-actions{gap:8px!important}.form-actions>.btn,.form-actions>form>.btn{min-height:42px}
.action-menu>summary,.row-actions-menu>summary{min-width:42px!important;min-height:40px!important;padding-inline:10px!important}
.floating-action-panel{animation:ux-pop var(--ux-fast) var(--ux-ease)}
@keyframes ux-pop{from{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:none}}
.table tbody tr{transition:background-color var(--ux-fast) var(--ux-ease)}
@media(hover:hover) and (pointer:fine){.table tbody tr:hover td{background:#fbfdfe}}

/* Student workspace. */
.student-workspace-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.student-workspace-id{display:flex;align-items:center;gap:10px;min-width:0}
.student-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#dff3f8,#eef8fb);color:var(--navy);font-weight:900;flex:0 0 44px}
.student-workspace-id>div{min-width:0}.student-workspace-id strong,.student-workspace-id small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-workspace-id small{color:var(--muted)}
.student-task-list{display:grid;gap:9px}
.student-task-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.student-task-card>div{min-width:0}.student-task-card strong{display:block}.student-task-card small{display:block;margin-top:3px;color:var(--muted)}
.student-empty{padding:24px 16px;text-align:center;border:1px dashed #b9cbd7;border-radius:14px;background:#fbfdfe;color:var(--muted)}

/* More comfortable scrolling surfaces. */
.table-wrap,.workspace-tabs,.worksheet-pages,.pa-command-results{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.table-wrap::-webkit-scrollbar,.workspace-tabs::-webkit-scrollbar,.worksheet-pages::-webkit-scrollbar{height:7px;width:7px}
.table-wrap::-webkit-scrollbar-thumb,.workspace-tabs::-webkit-scrollbar-thumb,.worksheet-pages::-webkit-scrollbar-thumb{background:#c5d5df;border-radius:999px}

/* Floating back-to-top is deliberately small and unobtrusive. */
.pa-scroll-top{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(16px,calc(env(safe-area-inset-bottom) + 14px));z-index:95;width:44px;height:44px;border:1px solid rgba(255,255,255,.35);border-radius:14px;background:rgba(11,47,74,.92);color:#fff;box-shadow:0 10px 28px rgba(5,31,47,.22);display:grid;place-items:center;opacity:0;transform:translateY(8px);pointer-events:none;backdrop-filter:blur(10px)}
.pa-scroll-top.is-visible{opacity:1;transform:none;pointer-events:auto}

@media(max-width:1080px){
  .pa-admin-top{padding-top:max(8px,env(safe-area-inset-top))!important}
  .dashboard-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  html{scroll-padding-top:62px}
  .workspace-tabs{overflow-x:auto!important;scroll-snap-type:x proximity;padding:4px!important}
  .workspace-tabs a{flex:0 0 auto!important;scroll-snap-align:start;padding:7px 10px!important}
  .workflow-steps{grid-template-columns:1fr!important}
  .dashboard-quick-grid{grid-template-columns:1fr 1fr}
  .student-workspace-head{align-items:flex-start;flex-direction:column}.student-workspace-head>.btn{width:100%}
  .student-task-card{grid-template-columns:1fr}.student-task-card>.btn{width:100%}
  .pa-scroll-top{right:10px;bottom:max(10px,calc(env(safe-area-inset-bottom) + 8px))}
}
@media(max-width:430px){
  .dashboard-quick-grid{grid-template-columns:1fr}
  .workspace-step-no{width:20px;height:20px;flex-basis:20px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* Coarse-pointer ergonomics: comfortable Android/iOS hit targets without bloating desktop. */
@media(pointer:coarse){
  .btn,button,[role="button"],summary,.input,.select,input[type="text"],input[type="search"],input[type="password"],input[type="number"],input[type="email"],input[type="tel"]{min-height:var(--ux-touch)}
  .workspace-tabs a,.pa-side-nav a,.public-nav a{min-height:var(--ux-touch)!important}
  .check{min-height:var(--ux-touch);align-items:center}
  input[type="checkbox"],input[type="radio"]{min-width:20px;min-height:20px}
}

@media(min-width:900px){.workflow-steps{position:sticky;top:70px;z-index:40;background:rgba(244,248,250,.94);backdrop-filter:blur(12px);padding:6px;border-radius:14px}}
#tm-step-1,#tm-step-2,#tm-step-3{scroll-margin-top:132px}


/* ===== SOURCE: assets/css/simple-workflow-v20.css ===== */
/* V20 — simplified role-based workflow. Loaded last on staff pages. */
.pa-simple-workflow .pa-admin-sidebar{display:flex!important;flex-direction:column!important}
.pa-simple-workflow .pa-sidebar-brand{flex:0 0 auto}
.pa-simple-workflow .pa-sidebar-brand>div{min-width:0;display:grid;gap:2px}
.pa-simple-workflow .pa-sidebar-brand strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pa-simple-workflow .pa-sidebar-brand small{font-size:.72rem;color:#9fc0d0;font-weight:700}
.pa-simple-workflow .pa-flat-nav{display:grid!important;align-content:start!important;gap:5px!important;padding-top:8px!important;border-top:1px solid rgba(255,255,255,.1);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}
.pa-simple-workflow .pa-flat-nav a{min-height:46px!important;border-radius:11px!important;padding:9px 11px!important;font-size:.91rem!important;font-weight:780!important}
.pa-simple-workflow .pa-flat-nav a.active{background:rgba(255,255,255,.16)!important;box-shadow:inset 3px 0 0 #f0bd35}
.pa-simple-workflow .pa-sidebar-footer{margin-top:auto;padding:10px 2px 2px;border-top:1px solid rgba(255,255,255,.1)}
.pa-simple-workflow .pa-sidebar-footer a{display:flex;gap:8px;align-items:center;min-height:42px;padding:8px 10px;border-radius:10px;color:#d7e8f0;text-decoration:none;font-size:.82rem;font-weight:750}
.pa-simple-workflow .pa-sidebar-footer a:hover{background:rgba(255,255,255,.08);color:#fff}
.pa-simple-workflow .pa-top-role{font-weight:800;color:var(--muted);font-size:.85rem}

/* Local actions are a compact toolbar, not another navigation hierarchy. */
.context-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 14px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff}
.context-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;border-radius:9px;text-decoration:none;color:var(--muted);font-size:.84rem;font-weight:800}
.context-actions a:hover{background:#f1f6f9;color:var(--text)}
.context-actions a.active{background:#e5f0f6;color:#164f6f}
.workspace-tabs{display:none!important}
.workspace-step-no{display:none!important}

.simple-home-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}
.simple-home-intro h1{margin:0 0 4px}
.simple-home-intro p{margin:0;color:var(--muted)}
.simple-task-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.simple-task-card{display:flex;flex-direction:column;gap:8px;min-height:132px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;text-decoration:none;color:var(--text);box-shadow:0 7px 22px rgba(20,57,78,.06);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.simple-task-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(20,57,78,.1);border-color:#b9d2df}
.simple-task-card .task-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#edf5f8;color:#1c6587;font-size:1.2rem;font-weight:900}
.simple-task-card strong{font-size:1.02rem}
.simple-task-card small{color:var(--muted);line-height:1.45}
.simple-task-card .task-cta{margin-top:auto;color:#1b6688;font-weight:800;font-size:.84rem}

.simple-action-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.simple-action-row .btn{min-width:0}
.simple-page-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}

.staff-data-grid,.staff-system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.staff-hub-card{display:flex;flex-direction:column;gap:7px;min-height:128px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;text-decoration:none;color:var(--text)}
.staff-hub-card:hover{border-color:#a8c8d8;box-shadow:0 8px 24px rgba(20,57,78,.08)}
.staff-hub-card strong{font-size:1rem}.staff-hub-card small{color:var(--muted);line-height:1.45}.staff-hub-card span{margin-top:auto;color:#1b6688;font-weight:800;font-size:.84rem}

.student-access-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.student-access-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:15px}
.student-access-card .toolbar{margin-bottom:10px}
.student-pin-list{display:grid;gap:8px}
.student-pin-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,230px) auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f3}
.student-pin-row:last-child{border-bottom:0}
.student-pin-row .student-name{min-width:0}.student-pin-row .student-name strong{display:block}.student-pin-row .student-name small{color:var(--muted)}

@media(max-width:980px){
  .simple-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .staff-data-grid,.staff-system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .pa-simple-workflow .pa-top-role{display:none}
  .simple-home-intro{align-items:flex-start;flex-direction:column}
  .simple-task-grid,.staff-data-grid,.staff-system-grid,.student-access-class-grid{grid-template-columns:1fr}
  .simple-task-card{min-height:112px;padding:15px}
  .context-actions{position:sticky;top:58px;z-index:18;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;background:rgba(255,255,255,.96);backdrop-filter:blur(9px)}
  .context-actions::-webkit-scrollbar{display:none}.context-actions a{flex:0 0 auto}
  .simple-page-actions{width:100%;justify-content:flex-start}.simple-page-actions .btn{flex:1 1 auto}
  .student-pin-row{grid-template-columns:1fr}.student-pin-row .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.simple-task-card{transition:none!important}}

/* Public entry points: staff vs student are immediately visible. */
.portal-entry{padding:22px 0 4px}
.portal-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.portal-entry-card{display:flex;align-items:center;gap:14px;min-height:112px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;text-decoration:none;color:var(--text);box-shadow:0 8px 24px rgba(20,57,78,.06)}
.portal-entry-card:hover{border-color:#a9cbdc;box-shadow:0 12px 28px rgba(20,57,78,.1)}
.portal-entry-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:14px;background:#edf5f8;color:#1d6688;font-size:1.35rem;font-weight:900}
.portal-entry-card strong{display:block;font-size:1.05rem;margin-bottom:4px}.portal-entry-card small{display:block;color:var(--muted);line-height:1.45}
@media(max-width:680px){.portal-entry{padding-top:14px}.portal-entry-grid{grid-template-columns:1fr}.portal-entry-card{min-height:96px;padding:15px}}

/* Student-facing pages are intentionally distraction-free. */
.student-surface .public-sidebar,.student-surface .public-sidebar-backdrop,.student-surface .public-sidebar-toggle{display:none!important}
.student-surface .public-main{width:100%!important;max-width:none!important;margin-left:0!important}
.student-surface .public-appbar{padding-inline:16px!important;justify-content:center!important}
.student-surface .public-appbar-brand{font-weight:850!important}
.student-surface .footer{margin-top:24px}


/* ===== SOURCE: assets/css/learning-platform-v21.css ===== */
/* V21 — Learning Platform product layer. Loaded last on staff pages. */
:root{
  --lp-blue:#164f6f;
  --lp-blue-soft:#eaf3f7;
  --lp-green:#16795f;
  --lp-amber:#b67412;
  --lp-ink:#173044;
  --lp-muted:#607686;
  --lp-line:#d9e5ea;
  --lp-surface:#ffffff;
  --lp-bg:#f4f8fa;
  --lp-shadow:0 12px 34px rgba(25,64,86,.08);
}
.pa-learning-platform{background:var(--lp-bg)}
.pa-learning-platform .pa-admin-sidebar{display:flex!important;flex-direction:column!important}
.pa-learning-platform .pa-learning-nav{display:grid!important;gap:4px!important;overflow-y:auto!important;overscroll-behavior:contain;touch-action:pan-y;padding:8px 0!important}
.pa-learning-platform .pa-learning-nav a{min-height:43px!important;padding:8px 10px!important;border-radius:10px!important;font-size:.86rem!important;font-weight:780!important}
.pa-learning-platform .pa-learning-nav a.active{background:rgba(255,255,255,.16)!important;box-shadow:inset 3px 0 0 #f0bd35}
.pa-learning-platform .pa-learning-sidebar-footer{display:grid;gap:3px;margin-top:auto;padding-top:8px}
.pa-learning-platform .pa-learning-sidebar-footer a.active{background:rgba(255,255,255,.14);color:#fff}
.pa-top-actions{display:flex;align-items:center;gap:9px}
.pa-top-create{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;border-radius:10px;background:#edf5f8;color:#164f6f;text-decoration:none;font-weight:850;font-size:.82rem}
.pa-top-create:hover{background:#dfeef4}

.lp-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 18px}
.lp-page-head h1{margin:0;font-size:clamp(1.45rem,2vw,2rem);letter-spacing:-.025em;color:var(--lp-ink)}
.lp-page-head p{margin:5px 0 0;color:var(--lp-muted);line-height:1.55;max-width:760px}
.lp-page-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.lp-kicker{display:inline-flex;align-items:center;gap:6px;margin-bottom:7px;color:var(--lp-blue);font-size:.76rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}

.lp-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:16px;margin-bottom:18px}
.lp-hero-main,.lp-hero-side{border:1px solid var(--lp-line);border-radius:20px;background:var(--lp-surface);box-shadow:var(--lp-shadow)}
.lp-hero-main{padding:24px}
.lp-hero-main h1{margin:0 0 8px;font-size:clamp(1.65rem,3vw,2.45rem);letter-spacing:-.04em;color:var(--lp-ink)}
.lp-hero-main p{margin:0;color:var(--lp-muted);line-height:1.6;max-width:720px}
.lp-hero-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.lp-hero-side{padding:18px;display:grid;align-content:center;gap:10px}
.lp-hero-stat{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf2f4}
.lp-hero-stat:last-child{border-bottom:0}.lp-hero-stat span{color:var(--lp-muted);font-size:.86rem}.lp-hero-stat strong{font-size:1.15rem;color:var(--lp-ink)}

.lp-work-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.lp-work-card{display:flex;flex-direction:column;gap:9px;min-height:150px;padding:17px;border:1px solid var(--lp-line);border-radius:17px;background:#fff;color:var(--lp-ink);text-decoration:none;box-shadow:0 6px 22px rgba(25,64,86,.05);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.lp-work-card:hover{transform:translateY(-2px);border-color:#abc9d8;box-shadow:0 12px 28px rgba(25,64,86,.09)}
.lp-work-card .lp-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--lp-blue-soft);color:var(--lp-blue);font-weight:950;font-size:1.15rem}
.lp-work-card strong{font-size:1rem}.lp-work-card small{color:var(--lp-muted);line-height:1.46}.lp-work-card .lp-link{margin-top:auto;color:var(--lp-blue);font-size:.83rem;font-weight:850}

.lp-section{margin:0 0 18px;padding:18px;border:1px solid var(--lp-line);border-radius:18px;background:#fff;box-shadow:0 5px 20px rgba(25,64,86,.04)}
.lp-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.lp-section-head h2,.lp-section-head h3{margin:0;color:var(--lp-ink)}
.lp-section-head p{margin:4px 0 0;color:var(--lp-muted);font-size:.88rem;line-height:1.45}

.lp-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.lp-class-card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--lp-line);border-radius:16px;background:#fff;color:var(--lp-ink);text-decoration:none;transition:.16s ease}
.lp-class-card:hover{border-color:#adcbd9;box-shadow:0 9px 25px rgba(25,64,86,.08)}
.lp-class-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.lp-class-card h3{margin:0}.lp-class-card small{color:var(--lp-muted)}
.lp-class-meta{display:flex;gap:8px;flex-wrap:wrap}.lp-chip{display:inline-flex;align-items:center;min-height:27px;padding:4px 8px;border-radius:999px;background:#f0f5f7;color:#486270;font-size:.75rem;font-weight:780}

.lp-local-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 16px;padding:5px;border:1px solid var(--lp-line);border-radius:13px;background:#fff;position:sticky;top:58px;z-index:12;backdrop-filter:blur(9px)}
.lp-local-tabs::-webkit-scrollbar{display:none}.lp-local-tabs a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:36px;padding:7px 11px;border-radius:9px;text-decoration:none;color:var(--lp-muted);font-size:.82rem;font-weight:850}.lp-local-tabs a.active{background:var(--lp-blue-soft);color:var(--lp-blue)}

.lp-create-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.lp-create-card{display:flex;flex-direction:column;gap:8px;min-height:155px;padding:17px;border:1px solid var(--lp-line);border-radius:16px;background:#fff;color:var(--lp-ink);text-decoration:none}
.lp-create-card:hover{border-color:#abc9d8;box-shadow:0 10px 25px rgba(25,64,86,.08)}
.lp-create-card .lp-create-icon{font-size:1.45rem}.lp-create-card strong{font-size:1rem}.lp-create-card small{color:var(--lp-muted);line-height:1.45}.lp-create-card span:last-child{margin-top:auto;color:var(--lp-blue);font-weight:850;font-size:.82rem}

.lp-library-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:14px}.lp-library-toolbar .form-group{margin:0}.lp-library-toolbar .lp-search{flex:1 1 260px}.lp-library-toolbar .lp-filter{flex:0 1 180px}
.lp-library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.lp-library-card{display:flex;flex-direction:column;min-height:190px;padding:16px;border:1px solid var(--lp-line);border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(25,64,86,.04)}
.lp-library-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.lp-library-type{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border-radius:999px;background:#edf4f7;color:#2d617c;font-size:.72rem;font-weight:900}.lp-library-card h3{margin:10px 0 5px;font-size:1.02rem}.lp-library-card p{margin:0;color:var(--lp-muted);font-size:.83rem;line-height:1.42}.lp-library-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.lp-library-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto;padding-top:14px}.lp-library-actions .btn{flex:0 0 auto}

.lp-experience-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.lp-experience-card{display:flex;flex-direction:column;gap:9px;min-height:180px;padding:18px;border:1px solid var(--lp-line);border-radius:17px;background:#fff;color:var(--lp-ink);text-decoration:none;transition:.16s ease}.lp-experience-card:hover{transform:translateY(-2px);border-color:#9dc3d5;box-shadow:0 12px 28px rgba(25,64,86,.09)}.lp-experience-card.disabled{opacity:.52;filter:saturate(.65);pointer-events:none}.lp-experience-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eaf4f8;color:#185a7a;font-size:1.2rem;font-weight:950}.lp-experience-card strong{font-size:1.02rem}.lp-experience-card small{color:var(--lp-muted);line-height:1.45}.lp-experience-cta{margin-top:auto;color:var(--lp-blue);font-weight:850;font-size:.83rem}

.lp-session-list{display:grid;gap:8px}.lp-session-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(120px,.55fr) minmax(120px,.55fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid #e5edf0;border-radius:13px;background:#fff}.lp-session-row strong{display:block}.lp-session-row small{display:block;color:var(--lp-muted);margin-top:2px}
.lp-state{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:850}.lp-state-dot{width:8px;height:8px;border-radius:50%;background:#aab9c1}.lp-state.live .lp-state-dot{background:#1a9871}.lp-state.closed .lp-state-dot{background:#8799a3}

.lp-admin-console-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;padding:14px 16px;border:1px solid #cbdde5;border-radius:15px;background:#f7fbfc}.lp-admin-console-banner p{margin:0;color:var(--lp-muted);font-size:.87rem}

.lp-empty{padding:26px;border:1px dashed #cbdbe2;border-radius:14px;text-align:center;color:var(--lp-muted);background:#fbfdfe}
.lp-note{padding:12px 14px;border-radius:12px;background:#f0f6f8;color:#426071;font-size:.86rem;line-height:1.5}
.lp-note strong{color:var(--lp-ink)}

/* Student app */
.student-app-nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:0 0 14px;padding:5px;border:1px solid var(--lp-line);border-radius:13px;background:#fff;position:sticky;top:0;z-index:20}.student-app-nav::-webkit-scrollbar{display:none}.student-app-nav a{flex:1 0 auto;display:flex;align-items:center;justify-content:center;min-height:40px;padding:7px 10px;border-radius:9px;text-decoration:none;color:var(--lp-muted);font-size:.8rem;font-weight:850}.student-app-nav a.active{background:var(--lp-blue-soft);color:var(--lp-blue)}
.student-progress-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.student-progress-card{padding:14px;border:1px solid var(--lp-line);border-radius:14px;background:#fff}.student-progress-card span{display:block;color:var(--lp-muted);font-size:.78rem}.student-progress-card strong{display:block;margin-top:4px;font-size:1.35rem;color:var(--lp-ink)}

@media(max-width:1100px){
  .lp-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lp-create-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lp-library-grid,.lp-class-grid,.lp-experience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .pa-top-create{display:none}
  .lp-page-head{align-items:flex-start;flex-direction:column}.lp-page-actions{width:100%;justify-content:flex-start}.lp-page-actions .btn{flex:1 1 auto}
  .lp-hero{grid-template-columns:1fr}.lp-hero-main{padding:19px}.lp-hero-side{padding:14px}
  .lp-work-grid,.lp-create-grid,.lp-library-grid,.lp-class-grid,.lp-experience-grid,.student-progress-grid{grid-template-columns:1fr}
  .lp-work-card{min-height:122px}.lp-create-card{min-height:120px}
  .lp-local-tabs{top:58px}
  .lp-session-row{grid-template-columns:1fr}.lp-session-row .btn{width:100%}
  .lp-library-toolbar{align-items:stretch}.lp-library-toolbar .lp-search,.lp-library-toolbar .lp-filter{flex:1 1 100%}
  .student-app-nav a{font-size:.76rem;padding-inline:9px}
}
@media(max-width:430px){
  .lp-hero-main h1{font-size:1.65rem}.lp-hero-main,.lp-section{border-radius:15px}
  .lp-page-actions .btn{width:100%}
  .lp-library-actions .btn{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){.lp-work-card,.lp-experience-card{transition:none!important}}


/* ===== SOURCE: assets/css/study-engine-v23.css ===== */
.study-engine{min-height:70vh}.study-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.study-head h1{margin:.45rem 0 .25rem;font-size:clamp(1.45rem,4vw,2.2rem)}.study-head p{margin:0;color:var(--muted,#64748b)}.study-progress{margin:0 0 18px}.study-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.study-card-wrap{perspective:1200px;min-height:min(54vh,460px)}.study-card{display:grid;width:100%;min-height:min(54vh,460px);border:0;background:transparent;padding:0;position:relative;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.2,.7,.2,1);cursor:pointer;touch-action:manipulation}.study-card.flipped{transform:rotateY(180deg)}.study-card-side{grid-area:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:clamp(24px,6vw,56px);border:1px solid rgba(100,116,139,.22);border-radius:28px;background:var(--surface,#fff);box-shadow:0 22px 60px rgba(15,23,42,.12);backface-visibility:hidden;-webkit-backface-visibility:hidden}.study-card-side small{font-weight:800;letter-spacing:.12em;color:#64748b}.study-card-side strong{font-size:clamp(1.45rem,5vw,2.6rem);line-height:1.35;white-space:pre-wrap}.study-card-side em{font-style:normal;color:#64748b}.study-back{transform:rotateY(180deg);background:linear-gradient(145deg,#eff6ff,#f8fafc)}.study-rating{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}.study-rating button{min-height:48px;border:1px solid rgba(100,116,139,.25);border-radius:14px;background:#fff;font-weight:800;cursor:pointer;touch-action:manipulation}.study-rating button:active{transform:scale(.98)}.study-controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:14px}.study-complete{text-align:center;margin-top:20px}.study-empty{text-align:center;padding:42px 24px}.lp-flashcard-editor-list{display:grid;gap:14px}.lp-flashcard-editor{display:grid;gap:12px}@media(max-width:640px){.study-head{align-items:stretch;flex-direction:column}.study-head .btn{align-self:flex-start}.study-card-wrap,.study-card{min-height:54vh}.study-rating{grid-template-columns:1fr 1fr}.study-card-side{border-radius:20px;padding:24px 18px}}@media(prefers-reduced-motion:reduce){.study-card{transition:none}}


/* ===== SOURCE: assets/css/template-game-v25.css ===== */
/* V10 Template Game + Adaptive Study Engine */
.study-sort-card{min-height:180px;display:grid;place-items:center;text-align:center;padding:28px;border-radius:22px;background:linear-gradient(180deg,#fff,#f7fafc);border:1px solid rgba(15,23,42,.1);box-shadow:0 16px 38px rgba(15,23,42,.08);gap:8px}.study-sort-card small{font-weight:800;letter-spacing:.08em;color:#64748b}.study-sort-card strong{font-size:clamp(1.25rem,5vw,2rem);line-height:1.25}.study-sort-card span{color:#475569}.study-sort-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:16px}.study-sort-groups button,.study-rank-item button{min-height:44px;border:1px solid rgba(15,23,42,.12);background:#fff;border-radius:14px;font-weight:800;padding:10px 14px;touch-action:manipulation}.study-sort-groups button:active,.study-rank-item button:active{transform:scale(.98)}
.study-rank-list{display:grid;gap:10px}.study-rank-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(15,23,42,.1);border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.05)}.study-rank-item>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#eef6ff;font-weight:900}.study-rank-item>div{display:flex;gap:6px}.study-rank-item button{min-width:44px;padding:8px}.study-battle-panel{position:relative;overflow:hidden}.study-battle-panel:before{content:"MEMORY BATTLE";display:block;font-size:.75rem;font-weight:900;letter-spacing:.12em;color:#64748b;margin-bottom:10px}.study-random-challenge{background:linear-gradient(180deg,#fff,#fbfdff)}
.adaptive-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 18px}.adaptive-summary>div{padding:14px;border:1px solid rgba(15,23,42,.1);border-radius:16px;background:#fff}.adaptive-summary span{display:block;font-size:.78rem;color:#64748b}.adaptive-summary strong{font-size:1.45rem}.adaptive-actions{display:flex;gap:6px;flex-wrap:wrap}.adaptive-status-approved{color:#166534}.adaptive-status-ignored{color:#64748b}.adaptive-status-suggested{color:#9a3412}
@media(max-width:720px){.study-sort-groups{grid-template-columns:1fr 1fr}.study-rank-item{grid-template-columns:36px 1fr}.study-rank-item>div{grid-column:1/-1;justify-content:flex-end}.adaptive-summary{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.study-sort-groups{grid-template-columns:1fr}.adaptive-summary{grid-template-columns:1fr 1fr}.study-sort-card{min-height:150px;padding:20px}}


/* ===== SOURCE: assets/css/rich-learning-v26.css ===== */
.presentation-editor,.learning-path-editor{display:grid;gap:16px}.presentation-slide-card,.path-node-card{border:1px solid var(--border,#dbe3ea);border-radius:18px;background:#fff;padding:16px;box-shadow:0 8px 24px rgba(15,45,65,.05)}.presentation-slide-handle,.path-node-head{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:14px}.presentation-slide-handle>div,.path-node-head>div{display:flex;gap:6px}.presentation-slide-no,.path-node-no{display:grid;place-items:center;min-width:34px;height:34px;border-radius:50%;background:#eef5f8;font-weight:800}.presentation-editor-actions{display:flex;gap:10px;justify-content:flex-end;position:sticky;bottom:10px;padding:12px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-radius:16px;margin-top:16px}.presentation-live-shell{display:grid;gap:14px}.presentation-host-bar,.presentation-host-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #dbe3ea;border-radius:16px;padding:12px 14px}.presentation-host-bar>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.presentation-stage{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:12px;align-items:center}.presentation-nav-btn{height:52px;border:0;border-radius:50%;background:#0b2f4a;color:#fff;font-size:24px;cursor:pointer}.presentation-stage-card,.presentation-student-stage .presentation-stage-card{min-height:440px;border-radius:24px;background:linear-gradient(145deg,#fff,#f5fafc);border:1px solid #d8e5eb;padding:clamp(22px,4vw,54px);display:flex;flex-direction:column;justify-content:center;box-shadow:0 16px 48px rgba(13,48,68,.08)}.presentation-stage-card h2{font-size:clamp(26px,4vw,48px);line-height:1.12;margin:8px 0 18px}.presentation-body{font-size:clamp(16px,2vw,22px);white-space:pre-wrap;line-height:1.65}.presentation-media{margin-top:18px;display:grid;place-items:center}.presentation-media iframe{width:min(100%,800px);aspect-ratio:16/9;border:0;border-radius:16px}.presentation-media img{max-width:100%;max-height:460px;border-radius:14px}.presentation-option-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.presentation-option{border:1px solid #bdd1db;background:#fff;border-radius:14px;padding:14px 16px;font-weight:700;text-align:left}.presentation-option:is(button){cursor:pointer;min-height:52px}.presentation-option:is(button):active{transform:scale(.99)}.presentation-hint{margin-top:18px;padding:14px;border-radius:14px;background:#eef8fb;color:#245268}.presentation-response-panel{display:flex;flex-wrap:wrap;gap:8px}.presentation-response-row{display:flex;justify-content:space-between;gap:20px;min-width:180px;padding:10px 12px;background:#fff;border:1px solid #dbe3ea;border-radius:12px}.presentation-response-chip{padding:8px 10px;background:#eef6f9;border-radius:999px;font-size:13px}.presentation-student-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin:12px 0}.presentation-response-form{display:grid;gap:10px;margin-top:12px}.whiteboard-shell{border:1px solid #d4e0e7;border-radius:20px;background:#fff;overflow:hidden}.whiteboard-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px;border-bottom:1px solid #dbe3ea;background:#f8fbfc}.whiteboard-tools button{border:1px solid #c7d7df;background:#fff;border-radius:10px;padding:9px 12px;min-height:42px;cursor:pointer}.whiteboard-tools button.active{background:#0b2f4a;color:#fff;border-color:#0b2f4a}.whiteboard-tools span{margin-left:auto;font-size:12px;color:#517080}.whiteboard-canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#fff;touch-action:none;cursor:crosshair}.whiteboard-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.whiteboard-overview-grid article{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #dbe3ea;border-radius:14px;padding:12px;background:#fff}.whiteboard-overview-grid small{display:block;color:#68808c}.whiteboard-preview-dialog{border:0;border-radius:18px;padding:12px;max-width:min(92vw,900px);box-shadow:0 24px 80px rgba(0,0,0,.25)}.whiteboard-preview-dialog canvas{max-width:100%;height:auto}.whiteboard-preview-dialog>button{float:right;border:0;background:#eef3f5;border-radius:50%;width:36px;height:36px}.path-player-layout{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:18px}.path-player-map{display:grid;gap:8px;align-content:start;position:sticky;top:82px}.path-map-node{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;border:1px solid #dbe3ea;background:#fff;border-radius:14px;padding:10px}.path-map-node>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#eef5f8;font-weight:800}.path-map-node small{display:block;color:#6b818b}.path-map-node.active{border-color:#1d6b8d;box-shadow:0 0 0 2px rgba(29,107,141,.1)}.path-map-node.done>span{background:#dff4e8;color:#17693c}.path-player-card{border:1px solid #dbe3ea;border-radius:20px;background:#fff;padding:clamp(20px,3vw,34px);min-height:360px}.path-player-card h2{font-size:clamp(24px,3vw,36px);margin:8px 0 16px}.path-node-body{white-space:pre-wrap;line-height:1.7;margin-bottom:18px}.path-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
@media(max-width:720px){.presentation-stage{grid-template-columns:1fr}.presentation-nav-btn{display:none}.presentation-stage-card,.presentation-student-stage .presentation-stage-card{min-height:340px;border-radius:18px}.presentation-option-list{grid-template-columns:1fr}.presentation-editor-actions{position:static;flex-direction:column}.presentation-editor-actions .btn{width:100%}.path-player-layout{grid-template-columns:1fr}.path-player-map{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.path-choice-grid{grid-template-columns:1fr}.whiteboard-tools span{width:100%;margin-left:0}}
@media(max-width:430px){.path-player-map{grid-template-columns:1fr}.presentation-slide-handle,.path-node-head{align-items:flex-start}.presentation-slide-handle>div,.path-node-head>div{flex-wrap:wrap;justify-content:flex-end}.presentation-stage-card h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){.presentation-option:is(button):active{transform:none}}

.path-map-node.locked{opacity:.52;filter:saturate(.5);cursor:not-allowed}.rich-learning-tools>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.rich-learning-tools>summary::-webkit-details-marker{display:none}.rich-learning-tools>summary span{font-size:13px;color:#627985}.rich-learning-tools[open]>summary{padding-bottom:12px;border-bottom:1px solid #e2eaee}


/* ===== SOURCE: assets/css/experience-v9.css ===== */
/* V9 Game & Study Experience Engine */
.experience-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}.experience-hud>div{background:var(--surface,#fff);border:1px solid rgba(15,50,74,.12);border-radius:16px;padding:12px 14px;box-shadow:0 6px 18px rgba(15,50,74,.05)}.experience-hud span{display:block;font-size:.78rem;opacity:.72}.experience-hud strong{display:block;margin-top:3px;font-size:1.15rem}.experience-hud.pulse{animation:v9HudPulse .42s ease}.game-hud>div:first-child{background:linear-gradient(135deg,#fff7d6,#fff)}.mastery-hud>div:first-child{background:linear-gradient(135deg,#e8fff2,#fff)}
@keyframes v9HudPulse{50%{transform:translateY(-2px) scale(1.01)}}
.study-mode-tabs{display:flex;gap:8px;overflow:auto;padding:2px 0 10px;margin-bottom:12px;scrollbar-width:none}.study-mode-tabs::-webkit-scrollbar{display:none}.study-mode-tabs a{display:flex;align-items:center;gap:7px;white-space:nowrap;text-decoration:none;border:1px solid rgba(15,50,74,.14);border-radius:999px;padding:9px 14px;background:#fff;color:inherit;font-weight:700}.study-mode-tabs a.active{background:#0b2f4a;color:#fff;border-color:#0b2f4a}.study-mode-tabs span{font-size:1.05rem}
.study-learn-card,.study-game-panel{background:#fff;border:1px solid rgba(15,50,74,.12);border-radius:22px;padding:22px;box-shadow:0 12px 32px rgba(15,50,74,.07)}.study-learn-prompt{font-size:clamp(1.15rem,4vw,1.65rem);font-weight:800;line-height:1.4;margin:14px 0 18px}.study-learn-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.study-learn-options button{min-height:64px;border:1px solid rgba(15,50,74,.15);border-radius:15px;background:#fff;padding:12px;text-align:left;font-weight:700;cursor:pointer}.study-learn-options button.correct{border-color:#1b8a54;background:#eafff1}.study-learn-options button.wrong{border-color:#c33b3b;background:#fff0f0}.study-learn-status{min-height:24px;margin-top:12px;font-weight:700}.study-mode-score{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 14px}.study-mode-score span{background:#f4f7f9;border-radius:999px;padding:7px 11px;font-size:.88rem;font-weight:700}
.study-match-board{display:grid;grid-template-columns:1fr 1fr;gap:14px}.study-match-col{display:grid;gap:9px}.study-match-col button{min-height:54px;border:1px solid rgba(15,50,74,.15);border-radius:14px;background:#fff;padding:10px 12px;text-align:left;cursor:pointer}.study-match-col button.selected{outline:3px solid rgba(23,126,214,.18);border-color:#177ed6}.study-match-col button.matched{opacity:.38;pointer-events:none;background:#eafff1;border-color:#1b8a54}.study-match-message{min-height:28px;margin-top:12px;font-weight:700}
.study-memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.study-memory-card{aspect-ratio:1/1;border:0;border-radius:16px;background:#0b2f4a;color:#fff;position:relative;perspective:800px;cursor:pointer;padding:0}.study-memory-card>span{position:absolute;inset:0;display:grid;place-items:center;padding:10px;backface-visibility:hidden;transition:transform .32s ease;border-radius:16px;font-weight:800;line-height:1.25}.study-memory-card .back{background:#fff;color:#0b2f4a;border:1px solid rgba(15,50,74,.15);transform:rotateY(180deg)}.study-memory-card.flipped .front,.study-memory-card.matched .front{transform:rotateY(180deg)}.study-memory-card.flipped .back,.study-memory-card.matched .back{transform:rotateY(0)}.study-memory-card.matched{opacity:.45;pointer-events:none}
.game-presenter[data-skin="game_show"]{background:radial-gradient(circle at top,#173d73,#07182d 62%)}.game-presenter[data-skin="team_battle"]{background:linear-gradient(135deg,#1f2937,#111827 55%,#2e1065)}.game-presenter[data-skin="space_race"]{background:radial-gradient(circle at 20% 10%,#172554,#020617 65%)}.v9-game-title{display:flex;align-items:center;gap:10px}.v9-race-board{display:grid;gap:10px;margin-top:14px}.v9-race-row{display:grid;grid-template-columns:minmax(90px,160px) 1fr auto;gap:10px;align-items:center}.v9-race-track{height:16px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}.v9-race-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#38bdf8,#facc15);transition:width .45s ease}.v9-race-row strong,.v9-race-row em{color:#fff}.v9-race-row em{font-style:normal;font-variant-numeric:tabular-nums}
@media(max-width:640px){.experience-hud{grid-template-columns:1fr 1fr}.experience-hud>div:last-child{grid-column:1/-1}.study-learn-options,.study-match-board{grid-template-columns:1fr}.study-memory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.study-learn-card,.study-game-panel{padding:16px}.v9-race-row{grid-template-columns:92px 1fr auto}}
@media(prefers-reduced-motion:reduce){.experience-hud.pulse,.study-memory-card>span,.v9-race-track i{animation:none!important;transition:none!important}}


/* ===== SOURCE: assets/css/lesson-v27.css ===== */
/* V12 — Interactive Lesson + mobile visual hardening */
:root{--v12-radius:18px;--v12-gap:14px;--v12-soft:#f5f8fb;--v12-border:#d9e3eb;--v12-ink:#17354a;--v12-accent:#0d6f8a}
html{scroll-behavior:smooth;scroll-padding-top:78px}body{overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch}
.v12-page-head{gap:16px}.v12-page-head h1{max-width:24ch}.v12-compact-panel{border-radius:var(--v12-radius);padding:18px}
.v12-composer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.v12-composer-head h2,.v12-composer-head h3{margin:0}.v12-composer-head p{margin:4px 0 0;color:#617789}
.v12-block-list{display:grid;gap:14px}.v12-block-card{border:1px solid var(--v12-border);border-radius:16px;background:#fff;overflow:hidden}.v12-block-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;background:var(--v12-soft);border-bottom:1px solid var(--v12-border)}.v12-block-head strong,.v12-block-head small{display:block}.v12-block-head small{margin-top:3px;color:#647a89}.v12-block-index{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e6f3f6;color:#075e76;font-weight:800}.v12-row-actions{display:flex;gap:6px}.v12-block-fields{padding:16px}.v12-check{display:flex!important;align-items:center;gap:10px;min-height:44px}.v12-check input{width:20px;height:20px}.v12-sticky-save{position:sticky;bottom:10px;z-index:10;margin-top:16px;padding:10px 12px;border:1px solid var(--v12-border);border-radius:16px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 12px 32px rgba(19,55,77,.12)}
.v12-control-bar{position:sticky;top:66px;z-index:20;display:flex;flex-wrap:wrap;gap:8px;padding:10px;border:1px solid var(--v12-border);border-radius:16px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);box-shadow:0 8px 24px rgba(19,55,77,.08);margin-bottom:14px}.v12-classroom-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.v12-teacher-blocks{display:grid;gap:8px}.v12-teacher-block{appearance:none;border:1px solid var(--v12-border);background:#fff;border-radius:14px;padding:12px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;text-align:left;cursor:pointer;touch-action:manipulation;transition:transform .16s ease,border-color .16s ease,background .16s ease}.v12-teacher-block:hover{transform:translateY(-1px)}.v12-teacher-block.active{border-color:#16819d;background:#edf9fb}.v12-teacher-block>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#eaf2f6;font-weight:800}.v12-teacher-block small,.v12-radar-card small{display:block;color:#697f8e;margin-top:3px}.v12-class-info{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:10px 0 16px}.v12-radar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px}.v12-radar-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;padding:10px 12px;border:1px solid var(--v12-border);border-radius:13px;background:#fff}.v12-radar-dot{width:11px;height:11px;border-radius:99px;background:#a7b4bd}.state-active .v12-radar-dot{background:#20a36a;box-shadow:0 0 0 4px rgba(32,163,106,.12)}.state-idle .v12-radar-dot{background:#e3a41e}.state-offline .v12-radar-dot{background:#a7b4bd}
.v12-lesson-progress{height:7px;border-radius:99px;background:#e6edf2;overflow:hidden;margin:12px 0 18px}.v12-lesson-progress>div{height:100%;width:0;background:linear-gradient(90deg,#127a95,#238a68);transition:width .3s ease}.v12-lesson-status{font-size:.86rem;color:#617789;margin-bottom:8px}.v12-lesson-card{min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;padding:clamp(22px,4vw,44px)}.v12-lesson-card h2{font-size:clamp(1.55rem,4vw,2.3rem);margin:0}.v12-lesson-body{white-space:pre-wrap;line-height:1.7;font-size:1.04rem;max-width:72ch}.v12-open-resource{margin-top:8px}.v12-student-controls{display:flex;justify-content:space-between;gap:10px;margin-top:14px}.v12-lock-overlay{position:fixed;inset:0;z-index:9999;background:rgba(10,33,48,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:24px}.v12-lock-overlay[hidden]{display:none}.v12-lock-overlay>div{max-width:440px;background:#fff;border-radius:20px;padding:28px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.28)}.v12-lock-overlay strong{font-size:1.4rem}.v12-lock-overlay p{color:#60798a}
/* global compact mobile shell */
@media(max-width:760px){
  html{scroll-padding-top:62px}.pa-admin-top,.public-appbar{min-height:58px!important;height:auto!important;padding-block:8px!important}.pa-admin-content{padding:12px!important}.section>.container{padding-inline:12px!important}.lp-page-head,.section-head{margin-bottom:12px!important}.lp-page-head h1,.section-head h2{font-size:clamp(1.35rem,6vw,1.75rem)!important;line-height:1.15!important}.lp-page-head p{font-size:.94rem!important;line-height:1.5!important}.lp-page-actions{width:100%;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.lp-page-actions::-webkit-scrollbar{display:none}.lp-page-actions .btn{flex:0 0 auto;min-height:44px}.panel,.lp-section{border-radius:16px!important;padding:14px!important}.toolbar{gap:10px!important}.form-grid{grid-template-columns:1fr!important;gap:12px!important}.form-group.full{grid-column:auto!important}.input,.select,.textarea,.btn,button{touch-action:manipulation}.input,.select{min-height:44px}.btn{min-height:42px}.table-wrap{max-width:100%;overflow-x:auto!important;overflow-y:visible!important;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.v12-compact-panel{padding:12px}.v12-composer-head{align-items:stretch;flex-direction:column}.v12-composer-head>.btn{width:100%}.v12-block-head{grid-template-columns:30px minmax(0,1fr);padding:11px}.v12-row-actions{grid-column:1/-1;justify-content:flex-end}.v12-block-fields{padding:12px}.v12-sticky-save{bottom:max(8px,env(safe-area-inset-bottom));margin-inline:-2px}.v12-sticky-save span{font-size:.86rem}.v12-control-bar{top:58px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;padding:8px}.v12-control-bar .btn{flex:0 0 auto}.v12-classroom-grid{grid-template-columns:1fr}.v12-radar-grid{grid-template-columns:1fr 1fr}.v12-student-head{align-items:flex-start!important}.v12-lesson-card{min-height:240px;padding:20px}.v12-student-controls{display:grid;grid-template-columns:1fr 1fr}.v12-student-controls [data-lesson-complete]{grid-column:1/-1;grid-row:1}.v12-student-controls .btn{width:100%}
}
@media(max-width:430px){.v12-radar-grid{grid-template-columns:1fr}.v12-page-head .lp-kicker{font-size:.76rem}.v12-sticky-save{flex-direction:column;align-items:stretch}.v12-sticky-save .btn{width:100%}.v12-lesson-card{min-height:220px}.student-app-nav{gap:4px!important;padding:5px!important;overflow-x:auto!important;scroll-snap-type:x proximity}.student-app-nav a{flex:0 0 auto!important;scroll-snap-align:start;padding:9px 11px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.v12-teacher-block,.v12-lesson-progress>div{transition:none!important}}
/* V12.1 — linked resource preparation inside Classroom Control */
.v12-teacher-block-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.v12-teacher-block-row .v12-teacher-block{width:100%}.v12-prepare-resource{align-self:center;white-space:nowrap}
@media(max-width:560px){.v12-teacher-block-row{grid-template-columns:1fr}.v12-prepare-resource{width:100%}}


/* ===== SOURCE: assets/css/workflow-v28.css ===== */
/* Shared viewport and workflow refinements. Loaded after legacy layers. */
.pa-admin-content,.public-main,.lp-work-card,.student-task-card>div{min-width:0}
.pa-admin-content h1,.lp-work-card strong,.student-workspace-id strong{overflow-wrap:anywhere}
.pa-learning-platform .lp-work-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.pa-learning-platform .pa-learning-nav{min-height:0;flex:1}
.pa-sidebar-brand,.pa-learning-sidebar-footer{flex-shrink:0}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #1683c9;outline-offset:3px}
:where(button,.btn,summary){touch-action:manipulation}
.access-steps{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 18px}
.access-steps li{padding:9px 12px;border-radius:10px;background:#edf3f7;color:#425d70;font-size:.9rem}
.access-steps [aria-current]{background:#164f6f;color:white;font-weight:700}
.student-app-nav{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
.student-app-nav a{flex-shrink:0;min-height:44px;display:inline-flex;align-items:center}
@media(max-width:760px){
 .pa-admin-content{padding:12px!important}
 .pa-top-actions{min-width:0}.pa-user-badge{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .pa-admin-content :is(input,select,textarea),.student-surface :is(input,select,textarea){font-size:16px!important}
 .student-workspace-head,.student-task-card{gap:10px;flex-wrap:wrap}
 .student-task-card .btn{min-height:44px}
 .student-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .lp-hero-actions{flex-wrap:wrap}
}
/* Camera does not scroll: only the roster owns vertical scrolling. */
html:has(.paper-scanner-body){height:100%;overflow:hidden}
.paper-scanner-body{height:100vh;height:100dvh;min-height:0;overflow:hidden}
.paper-scanner-body .paper-scanner{height:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:10px!important;padding-top:calc(10px + env(safe-area-inset-top))!important;padding-bottom:calc(10px + env(safe-area-inset-bottom))!important}
.paper-scanner-body .paper-scanner-head{flex:0 0 auto;margin:0}
.paper-scanner-body .paper-scanner-alert{flex:0 0 auto;margin:0;padding:6px 10px;font-size:.85rem;max-height:60px;overflow:auto}
.paper-scanner-body .paper-scanner-camera{flex:0 0 auto;width:100%;height:clamp(120px,34dvh,360px);max-height:40dvh!important;aspect-ratio:auto}
.paper-scanner-body .paper-scanner-camera :is(video,canvas){object-fit:contain}
.paper-scanner-body .paper-scanner-status{flex:0 0 auto;display:flex!important;align-items:center!important;margin:0;font-size:.85rem}
.paper-scanner-body .paper-scanner-status button{width:auto!important;min-height:44px;padding:8px 14px}
.paper-scanner-body .paper-scanner-roster{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;align-content:start;scrollbar-gutter:stable;padding:2px}
.paper-scanner-body .paper-scan-answer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.paper-scanner-body .paper-scan-answer button{min-height:44px;min-width:0}
@media(orientation:landscape) and (max-height:520px){
 .paper-scanner-body .paper-scanner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto}
 .paper-scanner-head{grid-column:1/-1}.paper-scanner-alert{grid-column:1/-1}
 .paper-scanner-body .paper-scanner-camera{grid-column:1;grid-row:3;height:100%;max-height:none!important}
 .paper-scanner-body .paper-scanner-roster{grid-column:2;grid-row:3/5;height:100%}
 .paper-scanner-status{grid-column:1;grid-row:4}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.paper-scanner-body .paper-scan-student.answered{background:#14513d;border-color:#51c89e;color:#edfff7}
.paper-scanner-body .paper-scan-student.answered .paper-scan-recorded{color:#a8f7d2;font-weight:700}
.paper-scanner-body .paper-scan-answer button:disabled{opacity:.4;cursor:not-allowed}
.paper-scanner-body .paper-scan-answer button:focus-visible{outline:3px solid #8bceff;outline-offset:2px}

.paper-scanner-status [hidden]{display:none!important}

.paper-scanner-body .paper-scanner-status{flex-wrap:wrap;gap:6px}.paper-scanner-status #cameraStatus{flex:1;min-width:90px}

.paper-scanner-body .paper-scan-controls{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:6px;padding-top:4px}.paper-scan-controls button{min-height:44px;border:1px solid #46677b;border-radius:10px;background:#173a50;color:#fff;padding:8px 5px;font:600 .8rem system-ui}.paper-scan-controls #scanNext{background:#176848}.paper-scan-controls button:disabled{opacity:.4}.paper-scan-controls span{grid-column:1/-1;text-align:center;font-size:.75rem;color:#bed5e3}.paper-scan-question{flex:0 0 auto;font-size:.8rem;max-height:18dvh;overflow:auto}.paper-scan-question summary{min-height:30px;cursor:pointer}.paper-scan-question #scanStem{font-weight:700}.paper-scan-question p{margin:4px 0}@media(orientation:landscape) and (max-height:520px){.paper-scanner-body .paper-scan-controls{grid-column:1/-1;grid-row:5}.paper-scanner-body .paper-scan-question{grid-column:1/-1;max-height:12dvh}.paper-scanner-body .paper-scanner{grid-template-rows:auto auto minmax(0,1fr) auto auto}.paper-scanner-body .paper-scanner{grid-template-rows:auto auto auto minmax(0,1fr) auto auto}.paper-scanner-body .paper-scanner-head{grid-row:1}.paper-scanner-body .paper-scan-question{grid-row:2}.paper-scanner-body .paper-scanner-alert{grid-row:3}.paper-scanner-body .paper-scanner-camera{grid-row:4}.paper-scanner-body .paper-scanner-roster{grid-row:4/6}.paper-scanner-body .paper-scanner-status{grid-row:5}.paper-scanner-body .paper-scan-controls{grid-row:6}}

.paper-scanner-status button{background:#173a50;border:1px solid #46677b;border-radius:10px;color:#fff;font:600 .85rem system-ui;cursor:pointer}.paper-scanner-status button[aria-pressed="true"]{background:#176848}

.paper-remote-dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid #486579;border-radius:18px;padding:18px;background:#0d2434;color:#eff7fa}.paper-remote-dialog::backdrop{background:#0009}.paper-remote-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px}.paper-remote-dialog h2{font-size:1.2rem}.paper-remote-dialog button,.paper-remote-dialog input{min-height:44px;border:1px solid #648399;border-radius:10px;padding:9px 12px;background:#193e53;color:inherit;font:inherit}.paper-remote-dialog button:disabled{opacity:.5}.paper-remote-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.paper-remote-timer{display:flex;gap:10px;margin-top:8px}.paper-remote-timer input{min-width:0;flex:1;width:100px}.paper-remote-dialog [aria-pressed=true]{background:#146d7d}.paper-scan-student[hidden]{display:none!important}.paper-scan-controls{grid-template-columns:.8fr 1fr 1fr 1.3fr!important}.paper-scan-controls #scanQueue{grid-column:1/-1}@media(max-height:600px){.paper-remote-dialog{padding:12px}.paper-remote-grid{gap:6px;margin:8px 0}}


/* ===== SOURCE: assets/css/workspace-v36.css ===== */
/* Shared calm surfaces: no layout animation or moving cards on hover. */
:is(.pa-admin-body,.public-app-body){--workspace-ink:#17364e;--workspace-muted:#60788a;--workspace-line:#dce7ef;--workspace-accent:#127d8e;background-color:#f3f7fb}
:is(.pa-admin-body,.public-app-body) :is(.panel,.lp-section,.lp-library-card,.lp-work-card){border-color:var(--workspace-line);border-radius:16px;box-shadow:0 3px 16px #17364e06}
:is(.pa-admin-body,.public-app-body) .btn{border-radius:10px;transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease;touch-action:manipulation}
:is(.pa-admin-body,.public-app-body) .btn-primary{background:#126d83;border-color:#126d83}
:is(.pa-admin-body,.public-app-body) .btn-primary:hover{background:#0b5669;border-color:#0b5669}
.app-nav{overscroll-behavior-y:contain;scrollbar-width:thin}.app-sidebar a:focus-visible{outline:2px solid #83e4e2;outline-offset:-2px}
.workspace-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:6px 0 22px}.workspace-head h1{font-size:clamp(1.5rem,2.8vw,2rem);margin:4px 0;color:var(--workspace-ink);letter-spacing:-.04em}.workspace-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.67rem;font-weight:800;color:var(--workspace-muted)}
.workspace-launchers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.workspace-launcher{display:flex;flex-direction:column;gap:7px;padding:18px;border:1px solid #cbdfe6;border-radius:16px;background:linear-gradient(125deg,#e6f4f4,#fff);color:#134954;text-decoration:none;min-width:0;transition:border-color 140ms ease,background-color 140ms ease}.workspace-launcher>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#fff;color:#1c8293;font-size:22px}.workspace-launcher strong{font-size:1rem}.workspace-launcher small{display:flex;justify-content:space-between;color:#587a85;font-size:.73rem}.launcher-video{background:linear-gradient(125deg,#edf0fc,#fff);border-color:#d8dcf1}.launcher-video>span{color:#6873b1}.launcher-test{background:linear-gradient(125deg,#fff2e5,#fff);border-color:#eddcca}.launcher-test>span{color:#a26726}.launcher-material{background:linear-gradient(125deg,#ebf2e6,#fff);border-color:#d6e4cd}.launcher-material>span{color:#527f45}.workspace-launcher:hover{border-color:#77aabb}
.workspace-tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.workspace-tools a{display:inline-flex;align-items:center;min-height:40px;border:1px solid var(--workspace-line);background:#fff;padding:8px 12px;border-radius:9px;font-weight:600;font-size:.79rem;color:#496777;text-decoration:none}.workspace-tools a:hover{background:#e9f3f6}
.workspace-catalog{padding:22px!important}.workspace-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.workspace-search{flex:2 1 220px;min-width:0}.workspace-filters .select{flex:1 1 160px;min-width:0;width:auto}.workspace-filters .btn{min-height:44px}.workspace-categories{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px}.workspace-categories>a{display:flex;align-items:center;gap:8px;min-height:40px;padding:7px 12px;border:1px solid var(--workspace-line);border-radius:999px;text-decoration:none;color:#536f80;background:#fff;font-size:.8rem;font-weight:650}.workspace-categories>a span{font-size:.7rem;opacity:.75}.workspace-categories>a.active{background:#153d54;border-color:#153d54;color:#fff}
.workspace-resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:14px}.workspace-resource-card{display:flex;flex-direction:column;min-width:0;gap:6px;padding:17px;border:1px solid var(--workspace-line);border-radius:14px;background:#fff}.workspace-resource-card h3{font-size:1rem;line-height:1.5;margin:8px 0 0;overflow-wrap:anywhere;color:#17364e}.workspace-resource-card p{margin:0;font-size:.8rem;color:#60788a}.workspace-resource-card small{font-size:.73rem;color:#7e929f;margin-bottom:12px}.workspace-card-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.workspace-resource-icon{display:grid;place-items:center;width:30px;height:30px;background:#edf4f8;border-radius:8px;color:#44768e}.is-interactive .workspace-resource-icon{background:#e6f5f0;color:#288766}.workspace-status{font-size:.65rem;color:#8a7658;margin-left:auto}.workspace-status.is-ready{color:#23785e}.workspace-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.workspace-card-actions .btn{min-height:40px;flex:1;white-space:nowrap}.workspace-empty{text-align:center;padding:36px 12px;color:#738b9a}.workspace-empty>span{font-size:32px}.workspace-empty h3{font-size:1rem;font-weight:600}.workspace-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px}.workspace-pagination span{font-size:.8rem;color:#597588}
.video-workspace{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:20px;align-items:start}.video-workspace .activity-video-frame{position:sticky;top:20px;min-width:0}.video-workspace #activityQuestionPanel{margin:0}.video-resume-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;color:#577485;font-size:.85rem}.video-resume-bar button{min-height:40px}.video-watch-status{font-variant-numeric:tabular-nums}
.worksheet-view-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.worksheet-view-tools button{min-height:44px}.worksheet-player-scroll{overflow-x:auto;overscroll-behavior-inline:contain;max-width:100%;padding-bottom:8px}.worksheet-player-scroll.is-readable .worksheet-player-page{min-width:720px}.worksheet-field input:not([type=radio]):not([type=checkbox]),.worksheet-field textarea,.worksheet-field select{font-size:clamp(12px,1.2vw,16px)}.worksheet-player-scroll.is-readable .worksheet-field input,.worksheet-player-scroll.is-readable .worksheet-field textarea,.worksheet-player-scroll.is-readable .worksheet-field select{font-size:16px}.worksheet-field:focus-within{outline:2px solid #1993aa;outline-offset:2px}.ws-local-draft{font-size:.78rem;color:#677e8c}
@media(max-width:900px){.video-workspace{grid-template-columns:1fr}.video-workspace .activity-video-frame{position:static}.workspace-launchers{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.workspace-head{flex-wrap:wrap;margin-bottom:16px}.workspace-head>.inline-actions{width:100%;display:flex}.workspace-head>.inline-actions .btn{flex:1;min-height:44px}.workspace-launcher{padding:13px;gap:6px}.workspace-launcher strong{font-size:.88rem}.workspace-launcher small{font-size:.68rem}.workspace-catalog{padding:14px!important}.workspace-tools{gap:6px;margin-bottom:18px}.workspace-tools a{min-height:44px;font-size:.76rem;padding:7px 10px}.workspace-filters .select{flex-basis:calc(50% - 8px)}.workspace-search{flex-basis:100%}.workspace-resource-card{padding:15px}.workspace-categories{gap:6px;margin-bottom:18px}.workspace-categories>a{min-height:44px;padding:7px 10px}.worksheet-view-tools{font-size:.8rem}.workspace-pagination{gap:8px;flex-wrap:wrap}.workspace-pagination .btn{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.workspace-launcher,:is(.pa-admin-body,.public-app-body) .btn{transition:none!important}}
.workspace-filters .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:901px){.video-workspace #questionMapDialog,.video-workspace #finishPanel{grid-column:1/-1}}


/* ===== SOURCE: assets/css/interaction-v30.css ===== */
/* Stable navigation geometry. Sidebar motion never interpolates flex/width/padding. */
html:has(.pa-admin-body),html:has(.public-app-body){overflow-x:clip;scrollbar-gutter:stable;}
.pa-admin-body .pa-admin-shell{display:block!important;}
.pa-admin-body .pa-admin-sidebar{position:fixed!important;inset:0 auto 0 0!important;height:100dvh!important;overflow:hidden!important;transition:none!important;}
.pa-admin-body .pa-admin-main{margin-left:248px;min-width:0;max-width:none!important;transition:none!important;}
.pa-admin-body .pa-learning-nav{overflow-y:auto!important;overflow-x:hidden!important;scrollbar-gutter:stable;scroll-behavior:auto;}
.pa-admin-body .pa-side-nav a,.public-sidebar a,.pa-static-sidebar a{transform:none!important;transition:background-color 140ms ease,color 140ms ease!important;}
.pa-admin-body .pa-sidebar-brand{min-height:58px;}
.pa-admin-body .pa-side-nav a{flex-shrink:0;}
.pa-admin-body .pa-learning-sidebar-footer{overflow:hidden;}
.pa-admin-body .pa-sidebar-backdrop,.public-sidebar-backdrop{backdrop-filter:none!important;}
@media(min-width:1081px){
 html.pa-nav-compact .pa-admin-body .pa-admin-sidebar{width:68px!important;min-width:68px!important;max-width:68px!important;padding-inline:8px!important;transform:none!important;overflow:hidden!important;}
 html.pa-nav-compact .pa-admin-main{margin-left:68px;}
 html.pa-nav-compact .pa-sidebar-brand>div,html.pa-nav-compact .pa-nav-label{display:none!important;}
 html.pa-nav-compact .pa-sidebar-brand,html.pa-nav-compact .pa-side-nav a{justify-content:center!important;padding-inline:0!important;}
 html.pa-nav-compact .pa-learning-sidebar-footer a{font-size:0;justify-content:center;}
 html.pa-nav-compact .pa-learning-sidebar-footer a>span{font-size:19px;}
 .pa-admin-body .pa-sidebar-backdrop{display:none!important;}
}
@media(max-width:1080px){
 .pa-admin-body .pa-admin-main{margin-left:0;width:100%!important;}
 .pa-admin-body .pa-admin-sidebar{width:min(286px,88vw)!important;min-width:0!important;max-width:min(286px,88vw)!important;transform:translateX(-100%);transition:transform 200ms cubic-bezier(.2,.7,.2,1)!important;}
 .pa-admin-body.pa-sidebar-open .pa-admin-sidebar{transform:translateX(0);}
 .pa-admin-body .pa-sidebar-close{display:grid!important;min-width:36px;min-height:36px;}
 .pa-admin-body .pa-sidebar-brand>div{flex:1;min-width:0;}
}
/* Static subject portals share the same stable motion rules. */
.pa-static-workspace{transition:none!important;}
.pa-static-sidebar{transition:none!important;}
.pa-static-sidebar .pa-static-nav-item,.pa-static-sidebar summary{transform:none!important;}
@media(max-width:1080px){.pa-static-sidebar{transition:transform 200ms cubic-bezier(.2,.7,.2,1)!important;}}
.public-sidebar{overscroll-behavior:contain;scrollbar-gutter:stable;}
:is(.pa-admin-body,.public-app-body) :is(.panel,.card,.lp-work-card):hover{transform:none!important;}
:is(.pa-admin-body,.public-app-body) :is(.btn,button,summary){touch-action:manipulation;}
:is(.pa-admin-body,.public-app-body) :is(.btn,button,summary):hover{transform:none;}
:is(.pa-admin-body,.public-app-body) :is(.btn,button,summary):active{transform:none;}
:is(.pa-admin-body,.public-app-body) dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain;}
.pa-command-dialog{max-height:calc(100dvh - 100px);overflow:auto;}
.activity-reorder li{display:flex;align-items:center;gap:8px;}
.activity-reorder .reorder-text{flex:1;min-width:0;overflow-wrap:anywhere;}
.activity-reorder .reorder-actions{display:flex;gap:4px;flex-shrink:0;}
.activity-reorder .reorder-actions button{min-width:40px;min-height:40px;}
.worksheet-overlay.is-drawing,.worksheet-box{touch-action:none;}
.worksheet-box:focus-visible{outline:3px solid #1683c9;outline-offset:2px;}
@media(prefers-reduced-motion:reduce){.pa-admin-body .pa-admin-sidebar,.pa-static-sidebar,.public-sidebar{transition:none!important;}}
@media print{.pa-admin-body .pa-admin-main{margin-left:0!important;}.pa-admin-body .pa-admin-sidebar{display:none!important;}}

/* Shared shell: consistent rhythm for staff, pupils and the entry page. */
.app-shell-body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif!important;overflow-x:clip!important;}
.app-sidebar{background:#0e3047!important;box-shadow:none!important;border-right:1px solid rgba(255,255,255,.08);}
.app-sidebar .app-nav{display:flex!important;flex-direction:column!important;align-content:start!important;justify-content:flex-start!important;height:auto!important;gap:4px!important;padding:8px 0!important;}
.app-sidebar .app-nav>a{flex:0 0 auto!important;min-height:44px!important;padding:10px 12px!important;font-size:14px!important;line-height:1.3!important;font-weight:650!important;border-radius:9px!important;}
.app-sidebar .app-nav>a.active{background:#22465f!important;box-shadow:inset 3px 0 0 #49c3d1!important;}
.app-sidebar .app-nav>a:hover{background:#1a3d55!important;}
.public-app-shell{display:block!important;}
.public-sidebar{position:fixed!important;inset:0 auto 0 0;width:248px!important;height:100dvh;display:flex;overflow:hidden!important;padding:13px 11px!important;}
.public-main{margin-left:248px;min-width:0;}
.public-brand{min-height:58px;align-items:center;}
.public-brand>span{font-size:13px;line-height:1.35;}
.public-brand small{display:block;font-size:11px;color:#a9c2d1;font-weight:500;margin-top:3px;}
.public-brand .brand-logo{width:38px;height:38px;flex:0 0 38px;}
.public-sidebar .app-nav{overflow-y:auto;min-height:0;flex:1;scrollbar-gutter:stable;overscroll-behavior:contain;}
.public-sidebar-toggle{width:40px!important;height:40px!important;}
.public-appbar,.pa-admin-top{min-height:60px!important;background:#fff!important;backdrop-filter:none!important;}
.app-welcome{padding:36px 0!important;}
.app-welcome h1{font-size:clamp(1.6rem,3vw,2.4rem);max-width:650px;line-height:1.2;}
.app-welcome .portal-entry-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px;}
.app-welcome .portal-entry-card{padding:22px;border-radius:14px;}
@media(max-width:1080px){
 .public-sidebar{width:min(286px,88vw)!important;transform:translateX(-100%);transition:transform 200ms cubic-bezier(.2,.7,.2,1)!important;}
 .public-main{margin-left:0;width:100%;}
 .public-sidebar-toggle{display:grid!important;}
 .public-app-body.public-sidebar-open{overflow:hidden!important;}
 .public-app-body.public-sidebar-open .public-sidebar{transform:translateX(0);}
 .public-app-body.public-sidebar-open .public-sidebar-backdrop{display:block;z-index:85;}
 .public-sidebar{z-index:90;}
 .app-welcome .portal-entry-grid{grid-template-columns:1fr;}
}
@media(min-width:1081px){.public-sidebar{transform:none!important;}.public-sidebar-toggle{display:none!important;}}
@media print{.public-main{margin-left:0!important;}.public-sidebar,.public-appbar{display:none!important;}}
.app-shell-body{--app-side-bg:#0e3047;--app-active:#22465f;--app-accent:#49c3d1;}
.app-theme-teal{--app-side-bg:#123f42;--app-active:#1d5558;--app-accent:#7ae1ca;}
.app-theme-slate{--app-side-bg:#27323f;--app-active:#3a485a;--app-accent:#adc9ec;}
.app-sidebar{background:var(--app-side-bg,#0e3047)!important;}
.app-sidebar .app-nav>a.active{background:var(--app-active,#22465f)!important;box-shadow:inset 3px 0 0 var(--app-accent,#49c3d1)!important;}
.app-density-compact .app-sidebar .app-nav>a{min-height:40px!important;padding-block:8px!important;}
.app-material-sections{position:relative;margin-left:auto;}
.app-material-sections>summary{list-style:none;cursor:pointer;display:flex;align-items:center;min-height:40px;padding:8px 12px;border:1px solid #d7e2e9;border-radius:9px;background:white;white-space:nowrap;}
.app-material-sections-panel{position:absolute;right:0;top:calc(100% + 6px);width:min(320px,85vw);max-height:65dvh;overflow:auto;background:#fff;border:1px solid #d7e2e9;border-radius:12px;box-shadow:0 10px 30px #0e304722;padding:8px;display:grid;gap:4px;z-index:160;}
.app-material-sections-panel .app-local-section{display:flex;align-items:center;min-height:42px;padding:9px 12px;border-radius:8px;color:#173047;background:#fff;border:0;text-align:left;}
.app-material-sections-panel .app-local-section:hover{background:#edf4f8;}
.app-material-sections-panel [hidden]{display:none!important;}
.app-material-sections-panel .pa-static-nav-label{display:block!important;white-space:normal!important;}
.app-material-sections-panel .pa-static-nav-icon{color:#23607d;margin-right:8px;}
.app-embedded-material{padding-left:0!important;}
.app-embedded-material .pa-static-sidebar,.app-embedded-material .pa-static-appbar,.app-embedded-material .pa-static-backdrop{display:none!important;}
.pa-static-sidebar .brand small{display:block;font-size:11px;color:#a9c2d1;font-weight:500;}
.activity-video-workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.85fr);gap:18px;align-items:start;}
.activity-video-workspace .activity-player-wrap{position:sticky;top:76px;aspect-ratio:16/9;background:#102f43;border-radius:14px;overflow:hidden;}
.activity-video-workspace .activity-player-wrap iframe{width:100%!important;height:100%!important;min-height:0!important;aspect-ratio:16/9;}
.activity-video-workspace .activity-run-question{margin:0!important;}
.worksheet-submitbar{bottom:0;padding-bottom:calc(10px + env(safe-area-inset-bottom));}
@media(max-width:900px){.activity-video-workspace{grid-template-columns:minmax(0,1fr);}.activity-video-workspace .activity-player-wrap{position:relative;top:auto;}}
/* Retire the older pupil-only shell that hid navigation entirely. */
.public-app-body.student-surface .public-sidebar{display:flex!important;}
.public-app-body.student-surface .public-main{margin-left:248px!important;width:calc(100% - 248px)!important;}
.public-app-body.student-surface .public-appbar{justify-content:flex-start!important;}
@media(max-width:1080px){
 .public-app-body.student-surface .public-main{margin-left:0!important;width:100%!important;}
 .public-app-body.student-surface .public-sidebar-toggle{display:grid!important;}
 .public-app-body.student-surface.public-sidebar-open .public-sidebar-backdrop{display:block!important;}
}
.public-brand{display:flex!important;gap:12px!important;padding:3px 5px 12px!important;margin-bottom:8px!important;}
.app-sidebar .app-nav .pa-nav-label{white-space:normal!important;line-height:1.3!important;overflow-wrap:anywhere;}
@media(min-width:1081px){.public-app-body.student-surface .public-sidebar-toggle{display:none!important;}}
@media(prefers-reduced-motion:reduce){.public-app-body .public-sidebar{transition:none!important;}}
@media print{.public-app-body.student-surface .public-main{margin-left:0!important;width:100%!important;}}

.worksheet-editor-workspace{grid-template-columns:minmax(0,1fr)!important;gap:12px!important;}
.worksheet-editor-workspace .worksheet-tools-compact{position:static!important;display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0!important;width:100%;}
.worksheet-tools-compact .select{width:min(100%,260px);}
@media(max-width:760px){.worksheet-tools-compact .select{width:100%;}.worksheet-tools-compact .muted{font-size:.84rem;}}

.worksheet-field.ws-save-error{outline:3px solid #d23f4e;outline-offset:2px;background:#fff2f3}.paper-scanner-status [hidden]{display:none!important}

.perangkat-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.perangkat-category{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid #d7e3eb;border-radius:12px;padding:12px;color:#21455f;text-decoration:none;min-height:44px;background:#f7fafc}.perangkat-category.active{background:#e5f4f8;border-color:#2786a3}.perangkat-category span{background:#e7eef4;border-radius:20px;min-width:26px;text-align:center;padding:2px 5px}.perangkat-resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}.perangkat-resource-card{border:1px solid #d7e3eb;border-radius:14px;padding:16px;min-width:0}.perangkat-resource-card h3,.perangkat-resource-card p{overflow-wrap:anywhere}.perangkat-resource-card .inline-actions{margin-top:12px}.perangkat-resource-card p{margin:6px 0}.perangkat-resource-card small{color:#61768a}@media(max-width:480px){.perangkat-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.perangkat-category{font-size:.8rem;padding:10px}.perangkat-category strong{overflow-wrap:anywhere}}

.perangkat-context{flex-wrap:wrap!important;overflow:visible!important;white-space:normal!important}.perangkat-context a{white-space:normal!important}

.activity-review-tools{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}.activity-review-tools [aria-pressed=true]{background:#fff1cb;border-color:#d49a22;color:#694600}.activity-question-map{width:min(480px,calc(100vw - 24px));max-height:85dvh;overflow:auto;border:1px solid #d9e5ec;border-radius:16px;padding:18px;background:#fff;color:#203b4b}.activity-question-map::backdrop{background:#152d4688}.activity-question-map header{display:flex;align-items:center;justify-content:space-between;gap:10px}.activity-question-map #questionMapButtons{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:8px}.activity-question-map button{min-height:44px}.activity-question-map [aria-current]{outline:2px solid #1596ae}.activity-review-tools button{min-height:44px}


/* ===== SOURCE: assets/css/professional-ui-v37.css ===== */
/* Professional UI V37 — final visual/system pass. Progressive, business-logic neutral. */
:root{
  --ui-bg:#f2f6f9;
  --ui-bg-soft:#f7fafc;
  --ui-surface:#ffffff;
  --ui-surface-soft:#f9fbfc;
  --ui-ink:#102f45;
  --ui-text:#17354a;
  --ui-muted:#647d8e;
  --ui-line:#d9e5ec;
  --ui-line-strong:#c8d9e3;
  --ui-primary:#0f788b;
  --ui-primary-strong:#0b6172;
  --ui-primary-soft:#e8f5f6;
  --ui-focus:#17a0b4;
  --ui-success:#23785e;
  --ui-warning:#a96816;
  --ui-danger:#b54747;
  --ui-r8:8px;
  --ui-r10:10px;
  --ui-r12:12px;
  --ui-r14:14px;
  --ui-r16:16px;
  --ui-r18:18px;
  --ui-shadow-xs:0 1px 2px rgba(16,47,69,.035);
  --ui-shadow-sm:0 5px 18px rgba(16,47,69,.055);
  --ui-shadow-md:0 12px 30px rgba(16,47,69,.08);
  --ui-shadow-float:0 18px 48px rgba(12,43,63,.16);
  --ui-ease:cubic-bezier(.2,.72,.25,1);
  --ui-content:1480px;
  --ui-control:44px;
}

html{scroll-padding-top:78px;-webkit-tap-highlight-color:transparent}
body{font-kerning:normal;text-rendering:optimizeLegibility}
::selection{background:#cceff1;color:#0b3f4b}

/* ---------- GLOBAL INTERACTION QUALITY ---------- */
:is(.app-shell-body,.login-shell) :is(a,button,input,select,textarea,summary){-webkit-tap-highlight-color:transparent}
.app-shell-body :is(a,button,summary,.btn){touch-action:manipulation}
.app-shell-body :is(button,.btn,a,summary,input,select,textarea):focus-visible{
  outline:3px solid color-mix(in srgb,var(--ui-focus) 27%,transparent);
  outline-offset:2px;
}
.app-shell-body :is(.input,.select,.textarea,input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  min-height:var(--ui-control);
  border-color:var(--ui-line-strong);
  border-radius:var(--ui-r10);
  background:var(--ui-surface);
  color:var(--ui-text);
  box-shadow:var(--ui-shadow-xs);
  transition:border-color 140ms var(--ui-ease),box-shadow 140ms var(--ui-ease),background-color 140ms var(--ui-ease);
}
.app-shell-body :is(.input,.select,.textarea,input:not([type="checkbox"]):not([type="radio"]),select,textarea):hover{border-color:#b8ccd8}
.app-shell-body :is(.input,.select,.textarea,input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus{
  border-color:#68bdc8;
  box-shadow:0 0 0 4px rgba(23,160,180,.11),var(--ui-shadow-xs);
}
.app-shell-body textarea{line-height:1.55;resize:vertical}
.app-shell-body :is(input,textarea)::placeholder{color:#8ea1ad;opacity:1}

.app-shell-body .btn{
  min-height:40px;
  border-radius:var(--ui-r10);
  font-weight:780;
  letter-spacing:-.005em;
  box-shadow:none;
  transform:none;
  transition:background-color 150ms var(--ui-ease),border-color 150ms var(--ui-ease),color 150ms var(--ui-ease),box-shadow 150ms var(--ui-ease),transform 100ms ease;
}
.app-shell-body .btn:hover{transform:none}
.app-shell-body .btn:active{transform:translateY(1px)}
.app-shell-body .btn-primary,
.app-shell-body .pa-top-create{
  background:linear-gradient(180deg,#16879a,#0f7487);
  border-color:#0f7487;
  color:#fff;
  box-shadow:0 5px 14px rgba(15,116,135,.18);
}
.app-shell-body .btn-primary:hover,
.app-shell-body .pa-top-create:hover{background:linear-gradient(180deg,#11798b,#0b6575);box-shadow:0 7px 18px rgba(15,116,135,.22)}
.app-shell-body .btn-outline{background:#fff;border-color:var(--ui-line-strong);color:var(--ui-text)}
.app-shell-body .btn-outline:hover{background:#f8fbfc;border-color:#afc6d3}
.app-shell-body .badge{border:1px solid transparent;font-weight:780;letter-spacing:.005em}
.app-shell-body .badge-published{border-color:#c8eadf}
.app-shell-body .badge-draft{border-color:#efdfb8}

/* ---------- ADMIN / TEACHER SHELL ---------- */
.pa-admin-body{background:var(--ui-bg)!important;color:var(--ui-text)}
.pa-admin-shell{isolation:isolate}
.pa-admin-sidebar{
  flex-basis:264px;width:264px;min-width:264px;max-width:264px;
  padding:14px 12px 12px;
  background:linear-gradient(180deg,#0b324b 0%,#0d3b56 52%,#0c344b 100%);
  box-shadow:10px 0 28px rgba(10,45,67,.065);
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}
.pa-sidebar-brand{gap:10px;padding:5px 6px 14px;margin-bottom:9px}
.pa-sidebar-brand img{width:40px;height:40px;flex-basis:40px;border-radius:11px;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.pa-sidebar-brand strong{font-size:.88rem;line-height:1.25;letter-spacing:.005em}
.pa-sidebar-brand small{margin-top:2px;font-size:.73rem;color:#acd0dc}
.pa-sidebar-close{width:32px;height:32px;flex-basis:32px;border-radius:9px;font-size:1.2rem}
.pa-side-nav{gap:3px;padding:1px 0 8px}
.pa-side-nav a{
  min-height:43px;
  gap:10px;
  padding:8px 10px;
  border:1px solid transparent;
  border-radius:10px;
  color:#d7e9ef;
  font-size:.875rem;
  font-weight:700;
  line-height:1.2;
  transform:none;
  transition:background-color 140ms var(--ui-ease),color 140ms var(--ui-ease),border-color 140ms var(--ui-ease);
}
.pa-side-nav a:hover{transform:none;background:rgba(255,255,255,.075);border-color:rgba(255,255,255,.04)}
.pa-side-nav a.active{
  background:linear-gradient(90deg,rgba(53,166,184,.27),rgba(255,255,255,.085));
  box-shadow:inset 3px 0 0 #5fe0e5;
  color:#fff;
  border-color:rgba(116,224,229,.11);
}
.pa-nav-icon{width:23px!important;height:23px!important;flex-basis:23px!important;font-size:.92rem;opacity:.94}
.pa-nav-label{font-weight:inherit}
.pa-sidebar-footer{margin-top:auto;padding:10px 4px 2px;border-top:1px solid rgba(255,255,255,.09)}
.pa-sidebar-footer a{display:flex;align-items:center;gap:9px;min-height:39px;padding:7px 8px;border-radius:9px;color:#d7e9ef;font-size:.82rem}
.pa-sidebar-footer a:hover{background:rgba(255,255,255,.07);color:#fff}

.pa-admin-top{
  min-height:62px;
  padding:9px 18px;
  border-bottom-color:#dce7ee;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(135%) blur(16px);
  -webkit-backdrop-filter:saturate(135%) blur(16px);
  transition:box-shadow 160ms var(--ui-ease),background-color 160ms var(--ui-ease);
}
.ui-v37-scrolled .pa-admin-top{box-shadow:0 7px 20px rgba(16,47,69,.06);background:rgba(255,255,255,.97)}
.pa-admin-top-left{display:flex;align-items:center;gap:10px;min-width:0}
.pa-sidebar-toggle{display:grid;place-items:center;width:40px;height:40px;min-height:40px;border-color:var(--ui-line-strong);border-radius:10px;background:#fff;color:#294b60;font-size:0;box-shadow:var(--ui-shadow-xs)}
.pa-sidebar-toggle::before{content:"☰";font-size:17px;line-height:1}
.pa-top-role{font-size:.88rem;font-weight:760;color:#496779}
.pa-top-actions{display:flex;align-items:center;gap:8px;min-width:0}
.pa-command-trigger{
  display:flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;
  border:1px solid var(--ui-line-strong);border-radius:10px;background:#fff;color:#587184;
  box-shadow:var(--ui-shadow-xs);cursor:pointer;
}
.pa-command-trigger:hover{border-color:#b4cad6;background:#fbfdfe;color:#2d5065}
.pa-command-trigger kbd{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border:1px solid #d6e2e9;border-radius:6px;background:#f5f8fa;color:#77909f;font:700 .72rem ui-monospace,SFMono-Regular,monospace}
.pa-top-create{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 13px;border:1px solid #0f7487;border-radius:10px;font-size:.86rem;font-weight:800}
.pa-user-menu{position:relative;min-width:0}
.pa-user-badge{display:flex;align-items:center;min-height:40px;padding:7px 11px;border:1px solid #dbe6ec;background:#edf4f7;color:#35576b;cursor:pointer}
.pa-user-menu[open] .pa-user-badge{background:#e6f0f4;border-color:#bfd4df}
.pa-user-menu-panel{
  border:1px solid var(--ui-line);border-radius:12px;background:#fff;box-shadow:var(--ui-shadow-float);overflow:hidden;
}
.pa-user-menu-panel a{min-height:41px;padding:9px 12px;font-size:.84rem}
.pa-user-menu-panel a:hover{background:#f3f8fa}

.pa-admin-content{max-width:var(--ui-content);padding:22px clamp(16px,2vw,28px) 34px}
.page-title{gap:16px;margin-bottom:18px;align-items:center}
.page-title h1{font-size:clamp(1.55rem,2vw,2rem);letter-spacing:-.032em;color:var(--ui-ink)}
.page-title p{max-width:900px;margin-top:.3rem;font-size:.9rem;line-height:1.5;color:var(--ui-muted)}
.page-title>.inline-actions{justify-content:flex-end}

.panel,
.lp-section,
.lp-work-card,
.lp-library-card,
.sp-section{
  border:1px solid var(--ui-line)!important;
  border-radius:var(--ui-r16)!important;
  background:var(--ui-surface)!important;
  box-shadow:var(--ui-shadow-xs)!important;
}
.panel{padding:18px;margin-bottom:16px}
.panel:hover{border-color:#d3e0e8}
.panel h2,.panel h3{color:var(--ui-ink);letter-spacing:-.015em}

.kpi-grid{gap:12px;margin-bottom:18px}
.kpi{
  padding:16px;
  border:1px solid var(--ui-line);
  border-radius:14px;
  box-shadow:var(--ui-shadow-xs);
  background:linear-gradient(180deg,#fff,#fbfdfe);
}
.kpi strong{font-size:1.75rem;letter-spacing:-.035em;color:var(--ui-ink);font-variant-numeric:tabular-nums}
.kpi span{font-size:.82rem;color:var(--ui-muted)}

.toolbar,.filter-bar{gap:9px;margin-bottom:13px}
.toolbar h2,.toolbar h3{color:var(--ui-ink)}
.filters{gap:8px}
.check{border-color:var(--ui-line);background:#f9fbfc}
.admin-note{background:#eef8fa;border-left-color:#1b91a1}
.table-wrap{border-radius:12px;scrollbar-width:thin;scrollbar-color:#c5d5de transparent}
.table{font-size:.875rem}
.table th{padding:10px 12px;background:#f6f9fb;color:#49677a;font-size:.74rem;font-weight:820;letter-spacing:.025em;text-transform:none;white-space:nowrap}
.table td{padding:11px 12px;border-color:#e8eff3;vertical-align:middle}
.table tbody tr{transition:background-color 120ms ease}
.table tbody tr:hover{background:#fbfdfe}

.alert{border-radius:12px;box-shadow:var(--ui-shadow-xs)}
.form-group .label,.label{font-size:.82rem;font-weight:760;color:#466579}
.form-hint,.hint,.help-text{font-size:.78rem;color:#78909f}

.context-actions{
  display:flex;align-items:center;gap:6px;max-width:100%;margin-bottom:14px;padding:5px;
  border:1px solid var(--ui-line);border-radius:12px;background:#fff;box-shadow:var(--ui-shadow-xs);overflow-x:auto;scrollbar-width:none;
}
.context-actions::-webkit-scrollbar{display:none}
.context-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 10px;border-radius:8px;white-space:nowrap;font-size:.8rem;font-weight:760;color:#577285}
.context-actions a:hover{background:#f3f8fa;color:#244d62}
.context-actions a.active{background:var(--ui-primary-soft);color:#0b6575}
.context-actions .context-back{margin-right:2px;color:#35596e}

/* Workspace V37 */
.workspace-eyebrow{font-size:.69rem!important;letter-spacing:.13em!important;color:#678092!important}
.workspace-head{align-items:center;gap:14px}
.workspace-launchers{gap:10px;margin-bottom:14px}
.workspace-launcher{
  min-height:128px;padding:16px;border-radius:14px;box-shadow:var(--ui-shadow-xs);
  transition:border-color 150ms var(--ui-ease),box-shadow 150ms var(--ui-ease),transform 150ms var(--ui-ease);
}
.workspace-launcher:hover{border-color:#9fc5cf;box-shadow:var(--ui-shadow-sm);transform:translateY(-1px)}
.workspace-launcher>span{width:36px;height:36px;border-radius:10px}
.workspace-launcher strong{letter-spacing:-.01em;color:#123e4c}
.workspace-launcher small{font-size:.72rem;line-height:1.3}
.workspace-tools{gap:7px!important;margin-bottom:14px!important}
.workspace-tools a,.workspace-categories>a{border-radius:9px!important;font-size:.78rem!important}
.workspace-catalog{border-radius:16px!important;box-shadow:var(--ui-shadow-xs)!important}
.workspace-filters{gap:8px!important}
.workspace-resource-grid{gap:11px}
.workspace-resource-card{
  padding:15px;border-radius:13px;
  transition:border-color 140ms var(--ui-ease),box-shadow 140ms var(--ui-ease),transform 140ms var(--ui-ease);
}
.workspace-resource-card:hover{border-color:#c1d5df;box-shadow:var(--ui-shadow-sm);transform:translateY(-1px)}
.workspace-resource-card h3{line-height:1.38}
.workspace-card-actions .btn{min-height:39px}
.workspace-status{font-weight:720}

/* Command palette + floating menus */
.pa-command{backdrop-filter:blur(2px)}
.pa-command-backdrop{background:rgba(9,32,47,.44)!important}
.pa-command-dialog{border:1px solid #cfdee6!important;border-radius:16px!important;background:#fff!important;box-shadow:0 24px 64px rgba(9,32,47,.22)!important;overflow:hidden}
.pa-command-dialog>.input{margin:10px;width:calc(100% - 20px)!important}
.pa-command-results{padding:0 8px 8px}
.pa-command-results a{border-radius:9px!important}
.floating-action-panel,.row-actions-menu__panel,.action-menu-pop{border:1px solid var(--ui-line)!important;border-radius:11px!important;background:#fff!important;box-shadow:var(--ui-shadow-float)!important}
.pa-action-menu-backdrop{backdrop-filter:blur(2px)}

/* ---------- PUBLIC / STUDENT SHELL ---------- */
.public-app-body{background:var(--ui-bg)!important;color:var(--ui-text)}
.public-sidebar{
  flex-basis:224px;width:224px;padding:12px 9px;
  background:linear-gradient(180deg,#0b324b,#0c3b56 62%,#0d344b);
  box-shadow:8px 0 26px rgba(10,45,67,.055);
}
.public-brand{gap:9px;padding:4px 6px 12px;margin-bottom:7px;font-size:.8rem}
.public-brand .brand-logo{width:36px;height:36px;flex-basis:36px;border-radius:10px}
.public-brand small{display:block;margin-top:1px;color:#acd0dc;font-size:.69rem;font-weight:590}
.public-nav,.public-nav-utility{gap:2px}
.public-nav a,.public-nav-utility a{min-height:41px;padding:7px 9px;border:1px solid transparent;border-radius:9px;font-size:.82rem}
.public-nav a.active{background:linear-gradient(90deg,rgba(53,166,184,.25),rgba(255,255,255,.08));border-color:rgba(116,224,229,.1);box-shadow:inset 3px 0 0 #5fe0e5}
.public-nav a:hover,.public-nav-utility a:hover{background:rgba(255,255,255,.075)}
.public-appbar{
  min-height:58px;padding:8px 14px;border-color:#dce7ee;background:rgba(255,255,255,.93);
  backdrop-filter:saturate(135%) blur(16px);-webkit-backdrop-filter:saturate(135%) blur(16px);
  transition:box-shadow 160ms var(--ui-ease),background-color 160ms var(--ui-ease);
}
.ui-v37-scrolled .public-appbar{box-shadow:0 7px 20px rgba(16,47,69,.06);background:rgba(255,255,255,.97)}
.public-sidebar-toggle{width:40px;height:40px;min-height:40px;border-radius:10px;box-shadow:var(--ui-shadow-xs)}
.public-appbar-brand{font-size:.86rem;font-weight:760;color:#486778}
.public-main>.section{padding:20px 0 30px}
.public-main .container{width:min(var(--ui-content),calc(100% - 32px))}
.public-main .section-head{margin-bottom:14px}
.public-main .section-head h1,.public-main .section-head h2{color:var(--ui-ink);letter-spacing:-.028em}
.public-main .card{border-radius:14px;border-color:var(--ui-line);box-shadow:var(--ui-shadow-xs);transition:border-color 140ms var(--ui-ease),box-shadow 140ms var(--ui-ease)}
.public-main .card:hover{transform:none;border-color:#c6d9e3;box-shadow:var(--ui-shadow-sm)}
.public-main .footer{border-top:1px solid #dfe9ef;background:rgba(255,255,255,.58)}
.student-surface .public-appbar{background:rgba(255,255,255,.95)}

/* Learning platform families: calm, coherent surfaces */
:is(.lp-hero,.sp-hero){border-radius:16px!important;box-shadow:var(--ui-shadow-xs)!important}
:is(.lp-create-card,.lp-experience-card,.lp-class-card,.lp-convert-card){border-radius:14px!important;box-shadow:var(--ui-shadow-xs)!important;transition:border-color 140ms var(--ui-ease),box-shadow 140ms var(--ui-ease),transform 140ms var(--ui-ease)!important}
:is(.lp-create-card,.lp-experience-card,.lp-class-card,.lp-convert-card):hover{transform:translateY(-1px)!important;box-shadow:var(--ui-shadow-sm)!important}
.lp-section-head,.sp-section-head{gap:10px}
.lp-chip{border-radius:999px!important}

/* ---------- MOBILE/TABLET PRECISION ---------- */
@media(max-width:1080px){
  .pa-admin-sidebar{width:min(286px,88vw);max-width:min(286px,88vw);padding-top:max(12px,env(safe-area-inset-top))}
  .public-sidebar{width:min(278px,88vw);padding-top:max(12px,env(safe-area-inset-top))}
  .pa-sidebar-backdrop,.public-sidebar-backdrop{background:rgba(6,27,41,.48);backdrop-filter:blur(3px)}
}
@media(max-width:900px){
  .workspace-launcher{min-height:116px}
}
@media(max-width:760px){
  :root{--ui-control:44px}
  html{scroll-padding-top:66px}
  .pa-admin-top{min-height:56px;padding:7px max(9px,env(safe-area-inset-right)) 7px max(9px,env(safe-area-inset-left))}
  .pa-admin-content{padding:14px max(10px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important}
  .pa-top-role{font-size:.83rem}
  .pa-command-trigger{width:40px!important;min-width:40px!important;padding:0!important;justify-content:center}
  .pa-command-trigger>span:nth-child(2),.pa-command-trigger kbd{display:none}
  .pa-top-create{min-width:40px;padding:0 10px;font-size:.82rem}
  .pa-user-badge{max-width:34vw!important;padding-inline:9px;font-size:.78rem}
  .page-title{gap:9px;margin-bottom:13px}
  .page-title h1{font-size:clamp(1.32rem,6.3vw,1.6rem)!important}
  .page-title p{font-size:.82rem!important}
  .panel{padding:13px!important;border-radius:13px!important;margin-bottom:10px!important}
  .kpi-grid{gap:8px}.kpi{padding:12px}.kpi strong{font-size:1.45rem}.kpi span{font-size:.75rem}
  .table-wrap{border-radius:0}
  table.table.responsive-table tr{border-radius:11px!important;box-shadow:var(--ui-shadow-xs)!important}
  table.table.responsive-table td{padding:7px 9px!important}
  .context-actions{margin:0 0 10px;padding:4px;border-radius:10px;scroll-snap-type:x proximity}
  .context-actions a{min-height:38px;scroll-snap-align:start}
  .workspace-launchers{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .workspace-launcher{min-height:112px;padding:13px;border-radius:13px}
  .workspace-launcher>span{width:34px;height:34px}
  .workspace-launcher strong{font-size:.86rem}
  .workspace-tools{display:flex!important;overflow-x:auto!important;flex-wrap:nowrap!important;scroll-snap-type:x proximity;padding-bottom:2px;scrollbar-width:none}
  .workspace-tools::-webkit-scrollbar{display:none}
  .workspace-tools a{flex:0 0 auto;scroll-snap-align:start}
  .workspace-resource-grid{grid-template-columns:1fr;gap:9px}
  .workspace-resource-card{padding:13px}
  .public-appbar{min-height:54px;padding:7px max(9px,env(safe-area-inset-right)) 7px max(9px,env(safe-area-inset-left))}
  .public-main>.section{padding:12px 0 22px!important}
  .public-main .container{width:auto!important;margin-inline:max(9px,env(safe-area-inset-left))!important}
  .public-main .section-head{gap:7px;margin-bottom:10px}
  .public-main .card{border-radius:12px}
  .pa-command{padding:max(64px,calc(48px + env(safe-area-inset-top))) 8px max(8px,env(safe-area-inset-bottom))!important}
}
@media(max-width:430px){
  .pa-admin-top{gap:6px}
  .pa-admin-top-left{gap:7px}
  .pa-sidebar-toggle,.pa-command-trigger{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
  .pa-top-create{min-height:38px;min-width:38px;padding-inline:9px}
  .pa-top-role{font-size:.8rem}
  .pa-user-badge{max-width:31vw!important;min-height:38px}
  .workspace-launchers{gap:8px}
  .workspace-launcher{min-height:108px;padding:12px}
  .workspace-launcher small{font-size:.67rem}
  .workspace-card-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .workspace-card-actions .btn{width:100%;min-width:0}
}
@media(max-width:350px){
  .pa-top-role{display:none}
  .pa-user-badge{display:flex!important;max-width:30vw!important}
  .workspace-launchers{grid-template-columns:1fr}
  .workspace-launcher{min-height:0}
}

/* ---------- MOTION / PERFORMANCE ---------- */
@media(hover:none){
  .workspace-launcher:hover,.workspace-resource-card:hover,:is(.lp-create-card,.lp-experience-card,.lp-class-card,.lp-convert-card):hover{transform:none!important;box-shadow:var(--ui-shadow-xs)!important}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .app-shell-body *, .app-shell-body *::before,.app-shell-body *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@media print{
  .pa-admin-top,.pa-admin-sidebar,.pa-sidebar-backdrop,.public-appbar,.public-sidebar,.public-sidebar-backdrop,.pa-scroll-top{display:none!important}
  .pa-admin-main,.public-main{width:100%!important}
  .pa-admin-content,.public-main .container{max-width:none!important;width:100%!important;padding:0!important;margin:0!important}
  .panel,.card,.lp-section{box-shadow:none!important}
}

/* ---------- LOGIN / INSTALL / EMPTY APP STATES ---------- */
.login-shell{background:
  radial-gradient(circle at 12% 10%,rgba(38,158,177,.09),transparent 30%),
  radial-gradient(circle at 88% 88%,rgba(20,92,117,.08),transparent 32%),
  #eef4f7!important;
}
.login-card{border:1px solid #d7e4eb!important;border-radius:18px!important;box-shadow:0 18px 52px rgba(12,49,72,.105)!important}
.login-card h1{letter-spacing:-.03em;color:var(--ui-ink)}
.login-card .brand{margin-bottom:16px}
.login-card .btn-primary{min-height:44px;border-radius:10px;background:linear-gradient(180deg,#16879a,#0f7487);box-shadow:0 6px 16px rgba(15,116,135,.18)}
.login-card :is(.input,.select,.textarea,input,select,textarea){min-height:44px;border-color:#cbdce6;border-radius:10px}
.login-card :is(.input,.select,.textarea,input,select,textarea):focus{border-color:#68bdc8;box-shadow:0 0 0 4px rgba(23,160,180,.11)}

/* ---------- LIVE / PAPER / SCANNER EXPERIENCE ---------- */
.paper-stage-body,.paper-scanner-body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;text-rendering:optimizeLegibility}
.paper-stage-body{background:#07151f!important}
.paper-stage{isolation:isolate}
.paper-stage-top{backdrop-filter:saturate(125%) blur(14px);-webkit-backdrop-filter:saturate(125%) blur(14px)}
.paper-stage-title strong{letter-spacing:-.018em}
.paper-stage-count{font-variant-numeric:tabular-nums}
.paper-stage-options>*{border-radius:14px!important;transition:transform 110ms ease,background-color 140ms ease,border-color 140ms ease,box-shadow 140ms ease}
.paper-stage-options>*:active{transform:translateY(1px)}
.paper-stage-controls :is(button,a){min-height:42px;border-radius:10px!important;font-weight:760}
.paper-stage-bottom{padding-bottom:max(12px,env(safe-area-inset-bottom))}
.paper-pair-dialog,.paper-remote-dialog,#joinDialog{border:1px solid rgba(255,255,255,.16)!important;box-shadow:0 24px 68px rgba(0,0,0,.30)!important}
.paper-scanner{padding-bottom:env(safe-area-inset-bottom)}
.paper-scanner-head{padding-top:max(10px,env(safe-area-inset-top))}
.paper-scanner-camera{overflow:hidden;border-radius:16px!important;box-shadow:0 12px 36px rgba(0,0,0,.18)}
.paper-scan-controls{padding-bottom:max(10px,env(safe-area-inset-bottom))}
.paper-scan-controls button,.paper-scanner-status button,.paper-remote-dialog button{min-height:42px;border-radius:10px}
@media(max-width:640px){
  .paper-stage-controls{gap:6px}
  .paper-stage-controls :is(button,a){min-height:40px;padding-inline:10px;font-size:.78rem}
  .paper-scanner-camera{border-radius:12px!important}
}


/* ===== SOURCE: assets/css/worksheet-studio-v42.css ===== */
/* Worksheet Studio V42 — professional authoring + student runtime */
.worksheet-page-title{align-items:flex-start}.worksheet-page-title .ui-eyebrow{display:block;margin-bottom:.3rem}.worksheet-page-title p{max-width:760px;margin:.35rem 0 0;color:var(--muted,#667887)}.page-title-actions{display:flex;gap:.55rem;flex-wrap:wrap}
.worksheet-studio-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:22px 24px;margin:0 0 14px;border:1px solid color-mix(in srgb,var(--primary,#0b678f) 14%,var(--border,#dbe4eb));border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary,#0b678f) 8%,#fff),#fff 58%,color-mix(in srgb,#4cc9f0 8%,#fff));box-shadow:0 14px 38px rgba(17,48,69,.07)}
.worksheet-studio-hero:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-100px;top:-135px;background:radial-gradient(circle,rgba(35,164,209,.14),transparent 68%);pointer-events:none}.worksheet-studio-hero h2{margin:.38rem 0 .3rem;font-size:clamp(1.18rem,2vw,1.55rem);letter-spacing:-.02em}.worksheet-studio-hero p{margin:0;max-width:720px;color:var(--muted,#647684)}.ui-kicker{display:inline-flex;align-items:center;gap:.45rem;color:var(--primary,#0b678f);font-weight:800;font-size:.78rem;letter-spacing:.02em}.ui-kicker .ui-svg-icon{width:18px;height:18px}.worksheet-studio-metrics{display:flex;gap:8px}.worksheet-studio-metrics>div{min-width:96px;padding:10px 12px;border-radius:14px;border:1px solid rgba(24,88,119,.1);background:rgba(255,255,255,.78);backdrop-filter:blur(10px)}.worksheet-studio-metrics span{display:block;font-size:.72rem;color:var(--muted,#6b7d8a)}.worksheet-studio-metrics strong{display:block;margin-top:2px;font-size:1rem;color:#183a4c}
.worksheet-source-panel{padding:12px 14px}.worksheet-source-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center}.worksheet-source-copy{display:flex;gap:10px;align-items:center;min-width:0}.worksheet-source-copy>div{min-width:0}.worksheet-source-copy strong,.worksheet-source-copy small{display:block}.worksheet-source-copy small{margin-top:2px;color:var(--muted,#71818d)}.worksheet-source-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eef7fb;color:#0b678f}.worksheet-source-icon svg{width:19px;height:19px}.worksheet-file-picker{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border:1px dashed #a8bdcb;border-radius:10px;background:#fbfdfe;cursor:pointer;font-size:.84rem;font-weight:750}.worksheet-file-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}
.worksheet-studio-shell{--ws-panel:250px;--ws-inspector:258px;--ws-toolbar-h:56px;display:grid;gap:10px;min-width:0}.worksheet-commandbar{position:sticky;top:calc(var(--admin-header-height,64px) + 8px);z-index:36;display:flex;align-items:center;gap:8px;min-height:var(--ws-toolbar-h);padding:8px 10px;border:1px solid var(--border,#d9e3ea);border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 10px 32px rgba(19,54,75,.08);backdrop-filter:blur(18px)}.worksheet-command-group{display:flex;align-items:center;gap:4px;padding-right:8px;margin-right:2px;border-right:1px solid #e8eef2}.worksheet-command-group:last-child{border-right:0;margin-left:auto;padding-right:0}.worksheet-command-primary{flex:0 0 auto}.ws-mobile-command{display:none!important}.ws-command,.ws-icon-command{appearance:none;border:0;background:transparent;color:#4c6270;min-height:36px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:750 .78rem/1 system-ui;cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.ws-command{padding:0 9px}.ws-icon-command{width:36px;font-size:1.1rem}.ws-command svg{width:17px;height:17px}.ws-command:hover,.ws-icon-command:hover:not(:disabled){background:#eef6fa;color:#0a648c}.ws-command.is-active,.ws-command[aria-pressed="true"]{background:#e5f5fb;color:#086b95}.ws-icon-command:disabled{opacity:.35;cursor:not-allowed}.ws-command-symbol{font-size:1.15rem}.worksheet-zoom-controls output{min-width:43px;text-align:center;font-size:.74rem;font-weight:800;color:#566d7a}.worksheet-save-state{display:inline-flex;align-items:center;gap:6px;margin-right:5px;color:#58707e;font-size:.75rem;font-weight:750;white-space:nowrap}.worksheet-save-state i{width:7px;height:7px;border-radius:50%;background:#49af7b;box-shadow:0 0 0 3px rgba(73,175,123,.1)}.worksheet-save-state.is-saving i{background:#e7a930;animation:wsPulse 1s ease infinite}.worksheet-save-state.is-error{color:#b64747}.worksheet-save-state.is-error i{background:#d85858}.worksheet-save-state.is-saved i{background:#49af7b}
@keyframes wsPulse{50%{transform:scale(.65);opacity:.55}}
.worksheet-pages-v42{display:flex;min-width:0}.worksheet-page-scroll{display:flex;gap:7px;overflow:auto;padding:2px 1px 4px;scrollbar-width:thin}.worksheet-pages-v42 a{display:flex;align-items:center;gap:8px;min-width:88px;padding:7px 9px;border:1px solid var(--border,#dce5eb);border-radius:11px;background:#fff;color:#536976;text-decoration:none;transition:.16s ease}.worksheet-pages-v42 a span{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#f0f5f8;font-size:.78rem;font-weight:850}.worksheet-pages-v42 a small{white-space:nowrap;font-size:.7rem;color:#758794}.worksheet-pages-v42 a.active{border-color:#7fc3df;background:#eef9fd;color:#0b668f;box-shadow:0 5px 16px rgba(11,102,143,.08)}.worksheet-pages-v42 a.active span{background:#0b668f;color:#fff}
.worksheet-pro-layout{display:grid;grid-template-columns:var(--ws-panel) minmax(0,1fr) var(--ws-inspector);gap:10px;align-items:start;min-width:0}.worksheet-library-panel,.worksheet-inspector{position:sticky;top:calc(var(--admin-header-height,64px) + var(--ws-toolbar-h) + 22px);max-height:calc(100dvh - var(--admin-header-height,64px) - var(--ws-toolbar-h) - 38px);overflow:auto;border:1px solid var(--border,#dce5eb);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(20,51,70,.045);scrollbar-width:thin}.worksheet-panel-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 13px 10px;background:rgba(255,255,255,.96);border-bottom:1px solid #edf1f4;backdrop-filter:blur(12px)}.worksheet-panel-head strong{display:block;font-size:.88rem}.worksheet-panel-head .ui-eyebrow{font-size:.62rem}.ws-panel-toggle{display:grid;place-items:center;width:29px;height:29px;border:1px solid #e0e8ee;border-radius:8px;background:#fff;color:#6a7e8a;cursor:pointer;font-size:1rem}.worksheet-element-search{display:flex;align-items:center;gap:6px;margin:10px 11px 6px;padding:0 9px;border:1px solid #dfe7ec;border-radius:10px;background:#f9fbfc}.worksheet-element-search span{display:grid;place-items:center;color:#78909d}.worksheet-element-search svg{width:15px;height:15px}.worksheet-element-search input{width:100%;height:34px;border:0;outline:0;background:transparent;font:inherit;font-size:.78rem}.worksheet-element-groups{padding:0 9px 10px}.worksheet-element-group{padding:8px 2px;border-bottom:1px solid #edf1f4}.worksheet-element-group:last-child{border-bottom:0}.worksheet-element-group h3{margin:0 4px 7px;color:#6a7c88;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.worksheet-element-group>div{display:grid;gap:4px}.worksheet-element-tool{display:grid;grid-template-columns:10px minmax(0,1fr);gap:8px;align-items:start;width:100%;padding:7px 8px;border:1px solid transparent;border-radius:9px;background:transparent;text-align:left;cursor:pointer;transition:.14s ease}.worksheet-element-tool:hover{background:#f3f8fa;border-color:#e3edf1}.worksheet-element-tool.is-active{background:#e9f6fb;border-color:#9fd0e2}.worksheet-element-tool strong,.worksheet-element-tool small{display:block}.worksheet-element-tool strong{font-size:.76rem;color:#304d5d}.worksheet-element-tool small{margin-top:1px;font-size:.66rem;line-height:1.25;color:#7a8b96}.worksheet-tool-dot{width:8px;height:8px;margin-top:4px;border-radius:3px;background:#6aa6c1}.ws-dot-drawing,.ws-dot-hotspot{background:#8f6cc7}.ws-dot-drag_drop,.ws-dot-join{background:#dd8e3b}.ws-dot-audio_response,.ws-dot-image_response,.ws-dot-file_response{background:#4ea97a}.ws-dot-static_text,.ws-dot-audio,.ws-dot-youtube,.ws-dot-link{background:#7f94a1}.worksheet-library-tip{margin:0 10px 10px;padding:9px 10px;border-radius:10px;background:#f7f4ff;border:1px solid #e8e0fb}.worksheet-library-tip strong{font-size:.72rem;color:#6b54a1}.worksheet-library-tip p{margin:2px 0 0;font-size:.66rem;line-height:1.4;color:#766d8c}.worksheet-library-tip kbd{font-size:.62rem;padding:1px 4px;border:1px solid #d6cee8;border-bottom-width:2px;border-radius:4px;background:#fff}
.worksheet-canvas-stage{min-width:0}.worksheet-canvas-scroll{position:relative;overflow:auto;min-height:66vh;padding:22px;border:1px solid #dce5eb;border-radius:16px;background:linear-gradient(45deg,#f1f4f6 25%,transparent 25%),linear-gradient(-45deg,#f1f4f6 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f1f4f6 75%),linear-gradient(-45deg,transparent 75%,#f1f4f6 75%),#f7f9fa;background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0;box-shadow:inset 0 1px 0 #fff}.worksheet-canvas-zoom{width:max-content;min-width:100%;transition:transform .16s ease}.worksheet-canvas-v42{position:relative;width:min(900px,76vw);max-width:none;margin:0 auto;background:#fff;box-shadow:0 18px 54px rgba(21,50,68,.16);border-radius:4px;overflow:hidden}.worksheet-canvas-v42>img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}.worksheet-canvas-v42.has-grid .worksheet-overlay:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,rgba(11,102,143,.085) 1px,transparent 1px),linear-gradient(to bottom,rgba(11,102,143,.085) 1px,transparent 1px);background-size:5% 5%;z-index:1}.worksheet-overlay{position:absolute;inset:0;touch-action:none}.worksheet-overlay.is-drawing{cursor:crosshair}.worksheet-box{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-width:18px;min-height:18px;padding:4px 6px;border:1.5px solid rgba(13,112,153,.78);border-radius:5px;background:rgba(232,248,254,.72);color:#0d4f6c;text-align:left;overflow:visible;cursor:move;box-shadow:0 0 0 0 rgba(12,107,149,0);transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.worksheet-box:hover{border-color:#0879aa;background:rgba(233,249,255,.9)}.worksheet-box.is-selected{border:2px solid #0782b7;background:rgba(224,246,255,.9);box-shadow:0 0 0 3px rgba(7,130,183,.18),0 6px 16px rgba(17,93,126,.11)}.worksheet-box.is-selected:before{content:"";position:absolute;inset:-5px;border:1px solid rgba(7,130,183,.25);border-radius:8px;pointer-events:none}.worksheet-box .ws-box-label{max-width:100%;font:750 10px/1.15 system-ui;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.worksheet-box .ws-box-type{max-width:100%;font:650 8px/1 system-ui;color:#5f8192;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.worksheet-box.ws-static_text,.worksheet-box.ws-audio,.worksheet-box.ws-youtube,.worksheet-box.ws-link{border-style:dashed;background:rgba(255,250,232,.76);border-color:#b18a31;color:#725915}.worksheet-box.ws-hotspot{background:rgba(126,91,198,.13);border-color:#8f68c8;color:#5c3f8e}.worksheet-box.ws-drawing{background:rgba(126,91,198,.09);border-color:#8f68c8}.worksheet-box.ws-image_response,.worksheet-box.ws-file_response,.worksheet-box.ws-audio_response{background:rgba(79,174,124,.11);border-color:#4aa774;color:#2b6c4b}.worksheet-box-draft{pointer-events:none;border:2px dashed #0b84b8;background:rgba(68,181,226,.14);z-index:999}.ws-resize{display:none;position:absolute;right:-6px;bottom:-6px;width:12px;height:12px;border:2px solid #fff;border-radius:4px;background:#087daf;box-shadow:0 1px 4px rgba(0,0,0,.15);cursor:nwse-resize}.worksheet-box.is-selected .ws-resize{display:block}.worksheet-canvas-hint{display:flex;justify-content:center;gap:5px;align-items:center;margin-top:7px;color:#748590;font-size:.68rem}.worksheet-canvas-hint span{padding:1px 5px;border:1px solid #d8e2e8;border-bottom-width:2px;border-radius:5px;background:#fff;color:#566e7c;font-weight:800}
.worksheet-inspector-empty{display:grid;place-items:center;gap:6px;padding:34px 20px;text-align:center;color:#70828e}.worksheet-inspector-empty svg{width:28px;height:28px;color:#9eb0ba}.worksheet-inspector-empty strong{font-size:.82rem;color:#4e6573}.worksheet-inspector-empty p{margin:0;font-size:.7rem;line-height:1.45}.worksheet-inspector-content{padding:10px}.worksheet-selection-chip{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:8px 9px;border-radius:10px;background:#eef7fb;color:#225b74}.worksheet-selection-chip span{font-size:.74rem;font-weight:800}.worksheet-selection-chip small{font-size:.65rem}.worksheet-inspector-section{padding:11px 1px;border-bottom:1px solid #edf1f4}.worksheet-inspector-section:last-child{border-bottom:0}.worksheet-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.worksheet-section-title strong{font-size:.72rem;color:#49606e}.worksheet-section-title small{font-size:.62rem;color:#8a99a2}.worksheet-geometry-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.worksheet-geometry-grid label{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:4px;font-size:.65rem;font-weight:800;color:#71818b}.worksheet-geometry-grid .input{height:34px;padding:0 6px;font-size:.72rem}.worksheet-single-properties .form-group{margin-bottom:8px}.worksheet-single-properties .label{font-size:.68rem}.btn-block{width:100%}.worksheet-layer-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.worksheet-layer-actions button{height:34px;border:1px solid #dce5eb;border-radius:8px;background:#fff;color:#526a78;cursor:pointer;font-weight:850}.worksheet-layer-actions button:hover{background:#eef7fb;color:#0a698f}.worksheet-object-actions{display:flex;justify-content:space-between;gap:6px}.btn-danger-ghost{border:1px solid #efd2d2;background:#fff7f7;color:#b54a4a}.worksheet-studio-shell.hide-library{--ws-panel:0px}.worksheet-studio-shell.hide-library .worksheet-library-panel{display:none}.worksheet-studio-shell.hide-inspector{--ws-inspector:0px}.worksheet-studio-shell.hide-inspector .worksheet-inspector{display:none}
.worksheet-content-dialog{width:min(680px,calc(100vw - 24px));max-height:min(86dvh,820px);overflow:auto;border:0;border-radius:18px;padding:0;box-shadow:0 28px 90px rgba(6,34,53,.38)}.worksheet-content-dialog::backdrop,.worksheet-preview-dialog::backdrop{background:rgba(8,35,52,.58);backdrop-filter:blur(4px)}.worksheet-content-dialog>form{padding:0 18px 14px}.worksheet-dialog-head,.worksheet-preview-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 0 12px;background:#fff;border-bottom:1px solid #edf1f4;margin-bottom:12px}.worksheet-dialog-head strong,.worksheet-preview-head strong{display:block}.ui-dialog-close{display:grid;place-items:center;width:34px;height:34px;border:1px solid #dce5eb;border-radius:10px;background:#fff;color:#586e7a;cursor:pointer;font-size:1.2rem}.worksheet-config-note{padding:10px 11px;border:1px solid #dfebf1;border-radius:11px;background:#f7fbfd}.worksheet-config-note strong{font-size:.76rem;color:#315b70}.worksheet-config-note p{margin:3px 0 0;color:#708490;font-size:.7rem;line-height:1.45}.worksheet-dialog-state{margin-right:auto;font-size:.7rem;color:#6f818b}.worksheet-dialog-state.is-error{color:#b74e4e}.worksheet-content-dialog .form-actions.is-sticky{bottom:-14px;margin:10px -18px -14px;padding:11px 18px;background:rgba(255,255,255,.97);border-top:1px solid #edf1f4;backdrop-filter:blur(12px)}
.worksheet-preview-dialog{width:min(980px,calc(100vw - 24px));max-height:92dvh;border:0;border-radius:18px;padding:0;background:#f4f7f9;box-shadow:0 28px 90px rgba(6,34,53,.42);overflow:hidden}.worksheet-preview-head{padding:14px 16px;margin:0}.worksheet-preview-body{overflow:auto;max-height:calc(92dvh - 64px);padding:20px}.worksheet-preview-page{position:relative;width:min(820px,100%);margin:auto;background:#fff;box-shadow:0 18px 46px rgba(18,50,68,.17)}.worksheet-preview-page>img{display:block;width:100%}.worksheet-preview-layer{position:absolute;inset:0}.worksheet-preview-field{position:absolute;display:flex;align-items:center;justify-content:center;overflow:auto;font-size:.72rem}.worksheet-preview-field input,.worksheet-preview-field textarea,.worksheet-preview-field select{width:100%;height:100%;border:1.5px solid #2e9bc5;border-radius:5px;background:rgba(255,255,255,.95);padding:4px;font:inherit}.ws-preview-options{display:grid;width:100%;height:100%;overflow:auto;padding:4px;border:1.5px solid #2e9bc5;border-radius:5px;background:rgba(255,255,255,.95)}.ws-preview-drawing,.ws-preview-upload{display:grid;place-items:center;width:100%;height:100%;border:1.5px dashed #8e70c3;border-radius:5px;background:rgba(250,247,255,.9);color:#6d56a0}.worksheet-preview-field.ws-hotspot button{width:100%;height:100%;border:2px dashed #8866c2;background:rgba(143,104,200,.14);color:#624493;border-radius:5px}
/* Student runtime V42 */
.worksheet-view-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:9px 11px;border:1px solid var(--border,#dce5eb);border-radius:13px;background:#fff}.worksheet-player-scroll{overflow:auto;padding:8px;border-radius:14px;background:#f3f6f8}.worksheet-player-scroll.is-readable .worksheet-player-page{min-width:760px}.worksheet-player-page{position:relative;max-width:980px;margin:0 auto 16px;background:#fff;box-shadow:0 10px 35px rgba(16,49,68,.13)}.worksheet-field{border-radius:5px;transition:box-shadow .16s ease}.worksheet-field:focus-within{z-index:4;box-shadow:0 0 0 3px rgba(27,145,194,.18)}.worksheet-field.ws-save-error{box-shadow:0 0 0 3px rgba(205,75,75,.22)}.ws-hotspot-button{width:100%;height:100%;border:2px dashed #8b69c5;border-radius:6px;background:rgba(143,104,200,.12);color:#5c3d8c;font-weight:800;cursor:pointer}.ws-hotspot-button.is-selected{border-style:solid;background:rgba(107,76,172,.2);box-shadow:inset 0 0 0 2px rgba(107,76,172,.13)}.ws-drawing-pad{position:relative;width:100%;height:100%;min-height:90px;border:1.5px solid #9376c6;border-radius:6px;background:rgba(255,255,255,.92);overflow:hidden}.ws-drawing-pad canvas{display:block;width:100%;height:100%;touch-action:none}.ws-drawing-tools{position:absolute;right:5px;top:5px;display:flex;gap:4px;z-index:2}.ws-drawing-tools button{min-height:30px;padding:0 8px;border:1px solid #d9d0ea;border-radius:7px;background:rgba(255,255,255,.92);color:#665187;font-size:.68rem;font-weight:750}.ws-upload-response{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;width:100%;height:100%;min-height:48px;padding:6px;border:1.5px dashed #5eaf83;border-radius:6px;background:rgba(247,255,250,.95)}.ws-upload-response input{min-width:0;font-size:.68rem}.ws-upload-response span{font-size:.65rem;color:#547465}.ws-upload-response img{max-width:100%;max-height:90px;border-radius:5px}.worksheet-submitbar>div{max-width:min(94vw,620px)}
@media(max-width:1180px){.worksheet-studio-shell{--ws-panel:220px;--ws-inspector:230px}.worksheet-canvas-v42{width:min(820px,80vw)}.worksheet-element-tool small{display:none}}
@media(max-width:980px){.worksheet-pro-layout{grid-template-columns:210px minmax(0,1fr)}.worksheet-inspector{position:fixed;right:12px;bottom:12px;top:auto;z-index:60;width:min(300px,calc(100vw - 24px));max-height:72dvh;box-shadow:0 16px 50px rgba(13,42,59,.2)}.worksheet-studio-shell.hide-inspector .worksheet-inspector{display:none}.worksheet-canvas-v42{width:780px}.worksheet-commandbar{overflow-x:auto}.worksheet-command-end{margin-left:0!important}.worksheet-studio-hero{grid-template-columns:1fr}.worksheet-studio-metrics{justify-content:flex-start}}
@media(max-width:760px){.ws-mobile-command{display:inline-flex!important}.worksheet-source-form{grid-template-columns:1fr}.worksheet-source-form .btn,.worksheet-file-picker{width:100%}.worksheet-commandbar{top:calc(var(--admin-header-height,58px) + 6px);padding:7px;border-radius:12px}.ws-command span:not(.ws-command-symbol){display:none}.worksheet-command-group{padding-right:4px}.worksheet-save-state{display:none}.worksheet-pro-layout{display:block}.worksheet-library-panel{position:fixed;left:8px;right:8px;bottom:8px;top:auto;z-index:70;max-height:64dvh;box-shadow:0 18px 58px rgba(8,34,50,.25);transform:translateY(calc(100% + 20px));transition:transform .2s ease}.worksheet-studio-shell.show-library-mobile .worksheet-library-panel{transform:translateY(0)}.worksheet-canvas-stage{width:100%}.worksheet-canvas-scroll{padding:14px 10px;min-height:55vh}.worksheet-canvas-v42{width:720px}.worksheet-canvas-hint{justify-content:flex-start;overflow:auto;white-space:nowrap}.worksheet-inspector{left:8px;right:8px;bottom:8px;width:auto;max-height:65dvh;transform:translateY(calc(100% + 20px));transition:transform .2s ease}.worksheet-studio-shell.show-inspector-mobile .worksheet-inspector{transform:translateY(0)}.ws-panel-toggle{display:none}.worksheet-studio-hero{padding:17px}.worksheet-studio-metrics{display:grid;grid-template-columns:repeat(3,1fr)}.worksheet-studio-metrics>div{min-width:0}.worksheet-preview-body{padding:10px}.worksheet-player-scroll.is-readable .worksheet-player-page{min-width:720px}.worksheet-submitbar{bottom:max(6px,env(safe-area-inset-bottom))}}
@media(max-width:480px){.worksheet-studio-metrics{grid-template-columns:1fr 1fr}.worksheet-studio-metrics>div:last-child{grid-column:1/-1}.worksheet-zoom-controls output{display:none}.worksheet-commandbar .btn span{display:none}.worksheet-preview-dialog{width:calc(100vw - 12px)}.worksheet-upload-response{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.ws-command,.ws-icon-command,.worksheet-element-tool,.worksheet-box,.worksheet-canvas-zoom,.worksheet-library-panel,.worksheet-inspector{transition:none!important}.worksheet-save-state.is-saving i{animation:none}}

.ws-manual-response{display:block;margin-top:6px}.ws-drawing-review{display:grid;gap:4px;width:min(260px,100%)}.ws-drawing-review svg{width:100%;aspect-ratio:4/3;border:1px solid #dce5eb;border-radius:8px;background:#fff;color:#315a72}.ws-drawing-review small{color:#71828d}

.worksheet-align-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.worksheet-align-actions button{min-height:34px;border:1px solid #d8e4eb;border-radius:9px;background:#fff;color:#4e6876;font:800 1rem/1 system-ui;cursor:pointer;transition:.16s ease}.worksheet-align-actions button:hover{border-color:#91c7dd;background:#eef8fc;color:#086b95}.worksheet-align-section small{font-size:.68rem;color:var(--muted,#71818d)}
.ws-marquee{position:absolute;z-index:1000;border:1.5px solid #0782b7;background:rgba(7,130,183,.1);border-radius:4px;pointer-events:none;box-shadow:0 0 0 1px rgba(255,255,255,.65) inset}


/* ===== SOURCE: assets/css/video-studio-v43.css ===== */
/* Interactive Video Studio V43 */
.video-studio-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:28px 30px;margin:0 0 18px;border:1px solid color-mix(in srgb,var(--border,#d9e3ec) 82%,transparent);border-radius:28px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface,#fff) 94%,#e9f6ff),color-mix(in srgb,var(--surface,#fff) 97%,#f2ecff));box-shadow:0 18px 50px rgba(12,38,60,.08);overflow:hidden;position:relative}.video-studio-hero:after{content:"";position:absolute;right:-60px;top:-80px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(64,143,255,.15),transparent 68%);pointer-events:none}.video-studio-hero h1{margin:4px 0 8px;font-size:clamp(1.65rem,2.5vw,2.35rem);letter-spacing:-.035em}.video-studio-hero p{margin:0;max-width:780px;color:var(--muted,#617282);line-height:1.6}.video-studio-hero-actions{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1}.video-studio-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 18px}.video-studio-kpis>div{padding:17px 18px;border:1px solid var(--border,#dce5ed);border-radius:20px;background:var(--surface,#fff);box-shadow:0 10px 28px rgba(12,38,60,.05)}.video-studio-kpis span,.video-studio-kpis small{display:block;color:var(--muted,#667988)}.video-studio-kpis strong{display:block;margin:3px 0;font-size:1.55rem;letter-spacing:-.03em}.video-studio-shell{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.72fr);gap:18px;align-items:start}.video-studio-main,.video-studio-side{display:grid;gap:18px}.video-player-card,.video-timeline-card,.video-checkpoint-card,.video-settings-card,.video-transcript-preview{border:1px solid var(--border,#dce5ed);border-radius:24px;background:var(--surface,#fff);box-shadow:0 12px 34px rgba(12,38,60,.06);overflow:hidden}.video-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 14px}.video-card-head h2{margin:2px 0 4px;font-size:1.05rem}.video-card-head p{margin:0;color:var(--muted,#687a89);font-size:.9rem}.video-kicker{font-size:.7rem;font-weight:900;letter-spacing:.14em;color:var(--accent,#2563eb)}.video-current-time{padding:8px 11px;border-radius:14px;background:color-mix(in srgb,var(--surface-soft,#f5f7fa) 88%,#e9f3ff);text-align:right;min-width:82px}.video-current-time span{display:block;font-size:.68rem;color:var(--muted,#687a89)}.video-current-time strong{font-variant-numeric:tabular-nums;font-size:1rem}.video-studio-player{position:relative;aspect-ratio:16/9;background:#08131d}.video-studio-player>div,.video-studio-player iframe{width:100%!important;height:100%!important}.video-studio-transport{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border,#dce5ed);background:color-mix(in srgb,var(--surface,#fff) 94%,#f5f8fb)}.video-studio-status{margin-left:auto;font-size:.82rem;color:var(--muted,#687a89)}.video-duration{font-variant-numeric:tabular-nums;font-weight:800;color:var(--muted,#687a89)}.video-timeline{position:relative;height:86px;margin:8px 20px 0;border-radius:18px;background:linear-gradient(180deg,#eef4f8,#f8fbfd);border:1px solid #dce6ee;overflow:hidden;touch-action:none;outline:none}.video-timeline:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#2563eb) 24%,transparent)}.video-timeline:before{content:"";position:absolute;inset:42px 14px auto;height:4px;border-radius:99px;background:#cbd9e4}.video-timeline-progress{position:absolute;left:14px;top:42px;height:4px;border-radius:99px;background:linear-gradient(90deg,#2563eb,#7c3aed);width:0;z-index:1}.video-playhead{position:absolute;top:18px;bottom:13px;width:2px;background:#0f172a;left:14px;z-index:6;pointer-events:none}.video-playhead:before{content:"";position:absolute;top:-1px;left:50%;width:9px;height:9px;border-radius:50%;background:#0f172a;transform:translate(-50%,-50%);box-shadow:0 0 0 3px rgba(255,255,255,.9)}.video-question-layer,.video-chapter-layer{position:absolute;inset:0 14px}.video-question-marker,.video-chapter-marker{position:absolute;transform:translateX(-50%);border:0;padding:0;background:transparent;cursor:pointer;z-index:5}.video-question-marker{top:20px;width:26px;height:26px;border-radius:50%;background:linear-gradient(145deg,#2563eb,#6d5dfc);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.28);font-weight:900;font-size:.72rem;touch-action:none}.video-question-marker:focus-visible{outline:3px solid rgba(37,99,235,.22);outline-offset:3px}.video-question-marker.is-dragging{transform:translateX(-50%) scale(1.14);box-shadow:0 10px 24px rgba(37,99,235,.38)}.video-chapter-marker{top:58px;width:12px;height:12px}.video-chapter-marker span{display:block;width:9px;height:9px;border-radius:2px;transform:rotate(45deg);background:#f59e0b;box-shadow:0 3px 9px rgba(245,158,11,.24)}.video-timeline-legend{display:flex;gap:16px;flex-wrap:wrap;padding:11px 20px 17px;color:var(--muted,#687a89);font-size:.77rem}.video-timeline-legend span{display:flex;align-items:center;gap:6px}.video-timeline-legend i{width:9px;height:9px;display:inline-block}.legend-chapter{background:#f59e0b;transform:rotate(45deg);border-radius:2px}.legend-question{background:#2563eb;border-radius:50%}.legend-playhead{width:2px!important;background:#0f172a}.video-checkpoint-list{display:grid;padding:0 14px 16px}.video-checkpoint-row{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 6px;border-top:1px solid color-mix(in srgb,var(--border,#dce5ed) 72%,transparent)}.video-checkpoint-row:first-child{border-top:0}.video-checkpoint-time{border:0;background:#eef5fb;border-radius:12px;padding:8px 9px;font-weight:900;font-variant-numeric:tabular-nums;color:#12324c;cursor:pointer}.video-checkpoint-time:disabled{opacity:.6;cursor:default}.video-checkpoint-copy{min-width:0}.video-checkpoint-copy>div{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:5px}.video-checkpoint-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-settings-card{padding-bottom:15px;position:sticky;top:92px}.video-settings-card>.form-group,.video-settings-card>.check,.video-settings-card>.video-settings-section,.video-settings-card>.form-actions{margin-left:18px;margin-right:18px}.video-settings-card>.check{display:flex;margin-top:12px}.video-threshold-control{display:grid;grid-template-columns:minmax(0,1fr) 52px;gap:10px;align-items:center}.video-threshold-control input{width:100%}.video-threshold-control strong{font-variant-numeric:tabular-nums;text-align:right}.video-settings-section{border-top:1px solid var(--border,#dce5ed);margin-top:16px;padding-top:4px}.video-settings-section summary{cursor:pointer;padding:12px 0;font-weight:850}.video-settings-section>div{padding-bottom:6px}.video-settings-section code{padding:2px 5px;border-radius:6px;background:#eef3f7}.video-transcript-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;line-height:1.55}.video-transcript-preview{padding-bottom:12px}.video-cue-list{display:grid;max-height:310px;overflow:auto;padding:0 10px 8px}.video-cue-list button{display:grid;grid-template-columns:58px 1fr;gap:10px;text-align:left;border:0;border-radius:12px;background:transparent;padding:9px 10px;color:inherit;cursor:pointer}.video-cue-list button:hover{background:var(--surface-soft,#f3f6f8)}.video-cue-list time{font-weight:850;color:var(--accent,#2563eb);font-variant-numeric:tabular-nums}.video-cue-list span{line-height:1.4}.video-v43-student-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:14px}.video-v43-side{display:grid;gap:12px;align-content:start}.video-v43-nav-card{border:1px solid var(--border,#dce5ed);background:var(--surface,#fff);border-radius:20px;overflow:hidden}.video-v43-nav-card header{padding:13px 14px 10px;border-bottom:1px solid var(--border,#dce5ed)}.video-v43-nav-card header strong{display:block}.video-v43-nav-card header small{color:var(--muted,#687a89)}.video-v43-cues{display:grid;max-height:310px;overflow:auto;padding:8px}.video-v43-cues button{display:grid;grid-template-columns:54px 1fr;gap:8px;text-align:left;border:0;background:transparent;border-radius:10px;padding:8px;color:inherit;cursor:pointer}.video-v43-cues button:hover,.video-v43-cues button.is-active{background:#eef5fb}.video-v43-cues time{font-weight:850;color:#2563eb}.video-engagement-heatmap{display:grid;grid-template-columns:repeat(20,minmax(5px,1fr));gap:4px;align-items:end;height:112px;padding:16px 4px 4px}.video-engagement-heatmap span{display:block;border-radius:6px 6px 3px 3px;background:linear-gradient(180deg,#4f8df7,#7c3aed);min-height:6px;position:relative}.video-engagement-heatmap span:hover:after{content:attr(data-label);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);white-space:nowrap;background:#0f172a;color:#fff;font-size:.72rem;padding:5px 7px;border-radius:7px;z-index:5}.video-engagement-axis{display:flex;justify-content:space-between;color:var(--muted,#687a89);font-size:.75rem}.video-analytics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}.video-analytics-grid>div{padding:14px 15px;border:1px solid var(--border,#dce5ed);border-radius:16px;background:var(--surface-soft,#f7f9fb)}.video-analytics-grid span{display:block;font-size:.75rem;color:var(--muted,#687a89)}.video-analytics-grid strong{display:block;margin-top:3px;font-size:1.25rem}.video-branch-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.video-branch-help{padding:10px 12px;border-radius:12px;background:#f5f8fb;color:var(--muted,#687a89);font-size:.8rem}
@media(max-width:1080px){.video-studio-shell{grid-template-columns:1fr}.video-settings-card{position:static}.video-studio-side{grid-template-columns:1fr 1fr}.video-v43-student-layout{grid-template-columns:1fr}.video-v43-side{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.video-studio-hero{padding:22px;align-items:flex-start;flex-direction:column}.video-studio-kpis{grid-template-columns:1fr 1fr}.video-studio-side{grid-template-columns:1fr}.video-card-head{padding:16px}.video-timeline{margin-left:12px;margin-right:12px}.video-checkpoint-row{grid-template-columns:72px 1fr}.video-checkpoint-row>.btn{grid-column:2}.video-studio-status{width:100%;margin-left:0}.video-v43-side{grid-template-columns:1fr}.video-analytics-grid{grid-template-columns:1fr 1fr}.video-branch-grid{grid-template-columns:1fr}}
@media(max-width:420px){.video-studio-kpis{grid-template-columns:1fr}.video-studio-transport .btn{flex:1}.video-question-marker{width:28px;height:28px}.video-analytics-grid{grid-template-columns:1fr}}
.video-analytics-panel{overflow:visible}.video-analytics-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:4px 0 18px}.video-analytics-metrics article{padding:16px 17px;border:1px solid var(--border,#dce5ed);border-radius:18px;background:linear-gradient(180deg,var(--surface,#fff),color-mix(in srgb,var(--surface-soft,#f7f9fb) 76%,#eef5ff));box-shadow:0 8px 24px rgba(12,38,60,.04)}.video-analytics-metrics span,.video-analytics-metrics small{display:block;color:var(--muted,#687a89)}.video-analytics-metrics span{font-size:.76rem;font-weight:750}.video-analytics-metrics strong{display:block;margin:4px 0 2px;font-size:1.35rem;letter-spacing:-.025em}.video-heatmap-wrap{padding:4px 2px 8px}.video-heatmap-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:8px}.video-heatmap-head strong,.video-heatmap-head small{display:block}.video-heatmap-head small{margin-top:3px;color:var(--muted,#687a89)}.video-engagement-heatmap{height:148px;padding:18px 6px 6px;border:1px solid var(--border,#dce5ed);border-radius:18px;background:linear-gradient(180deg,#f8fbfd,#f2f6fa);overflow:visible}.video-heat-segment{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;position:relative}.video-heat-segment>span{width:100%;max-width:26px;min-height:4px;background:linear-gradient(180deg,#3b82f6,#7c3aed);border-radius:7px 7px 3px 3px;box-shadow:0 4px 12px rgba(59,130,246,.15);transition:transform .18s ease,filter .18s ease}.video-heat-segment:hover>span{transform:translateY(-2px);filter:saturate(1.12)}.video-heat-segment>small{position:absolute;top:calc(100% + 4px);font-size:.62rem;color:var(--muted,#687a89);white-space:nowrap;transform:translateX(-1px)}.video-heat-segment:hover:after{content:attr(title);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:8;white-space:nowrap;background:#0f172a;color:#fff;padding:6px 8px;border-radius:8px;font-size:.72rem;box-shadow:0 8px 22px rgba(15,23,42,.22);pointer-events:none}.video-heatmap-axis{display:flex;justify-content:space-between;padding:16px 4px 0;color:var(--muted,#687a89);font-size:.74rem}.video-checkpoint-performance{display:grid}.video-checkpoint-stat{display:grid;grid-template-columns:78px minmax(0,1fr) 130px auto;gap:14px;align-items:center;padding:13px 4px;border-top:1px solid color-mix(in srgb,var(--border,#dce5ed) 72%,transparent)}.video-checkpoint-stat:first-child{border-top:0}.video-checkpoint-time{display:flex;flex-direction:column;gap:2px}.video-checkpoint-time strong{font-variant-numeric:tabular-nums;color:var(--accent,#2563eb)}.video-checkpoint-time span{font-size:.72rem;color:var(--muted,#687a89)}.video-checkpoint-copy{min-width:0}.video-checkpoint-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-checkpoint-copy small,.video-checkpoint-score small{display:block;color:var(--muted,#687a89);margin-top:3px}.video-checkpoint-score{text-align:right}.video-checkpoint-score strong{font-size:1.05rem}.video-v43-side:empty{display:none}.video-v43-student-layout:has(.video-v43-side:empty){grid-template-columns:1fr}
@media(max-width:900px){.video-analytics-metrics{grid-template-columns:1fr 1fr}.video-checkpoint-stat{grid-template-columns:72px minmax(0,1fr) 110px}.video-checkpoint-stat>.btn{grid-column:2/4;justify-self:start}}
@media(max-width:620px){.video-analytics-metrics{grid-template-columns:1fr}.video-heatmap-head{align-items:flex-start;flex-direction:column}.video-engagement-heatmap{gap:2px;height:126px}.video-checkpoint-stat{grid-template-columns:64px minmax(0,1fr)}.video-checkpoint-score{text-align:left;grid-column:2}.video-checkpoint-stat>.btn{grid-column:2}.video-heat-segment>small{display:none}}


/* ===== SOURCE: assets/css/study-mastery-v45.css ===== */
/* Module 8 V45 — Flashcards, Study Games & Mastery */
.study-v45-shell{max-width:1040px}.study-v45-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:18px 20px;border:1px solid rgba(15,50,74,.1);border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(241,248,255,.96));box-shadow:0 14px 36px rgba(15,23,42,.06)}.study-v45-hero-main{display:flex;align-items:center;gap:14px;min-width:0}.study-v45-mode-icon{display:grid;place-items:center;width:50px;height:50px;flex:0 0 50px;border-radius:16px;background:#0b2f4a;color:#fff;font-size:1.45rem;box-shadow:0 10px 26px rgba(11,47,74,.2)}.study-v45-hero h1{margin:4px 0 2px;font-size:clamp(1.25rem,3.8vw,1.9rem);line-height:1.15}.study-v45-hero p{margin:0;color:var(--muted,#64748b)}.study-v45-eyebrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.78rem;font-weight:850;letter-spacing:.02em;color:#36566e}.study-v45-sync{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#eaf8ef;color:#176b3a}.study-v45-sync:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.study-v45-sync[data-state="syncing"]{background:#fff7df;color:#8a6200}.study-v45-sync[data-state="offline"],.study-v45-sync[data-state="error"]{background:#fff0f0;color:#b42318}.study-v45-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.study-v45-kpis>div{padding:14px 16px;border:1px solid rgba(15,50,74,.09);border-radius:16px;background:#fff}.study-v45-kpis span{display:block;color:#64748b;font-size:.78rem;font-weight:700}.study-v45-kpis strong{display:block;margin-top:4px;font-size:1.35rem;color:#0b2f4a}.study-v45-progress{padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(15,50,74,.08)}.study-v45-rating button{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;text-align:left;padding:8px 12px}.study-v45-rating button b{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#f1f5f9;color:#0b2f4a}.study-v45-task{border:1px solid rgba(15,50,74,.09);border-radius:22px;background:#fff;box-shadow:0 18px 44px rgba(15,23,42,.08);padding:clamp(18px,4vw,30px)}.study-typing-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin:18px 0}.study-typing-form .input{min-height:54px;font-size:1rem}.study-typing-form .input.is-correct{border-color:#169455;box-shadow:0 0 0 3px rgba(22,148,85,.1)}.study-typing-form .input.is-wrong{border-color:#d92d20;box-shadow:0 0 0 3px rgba(217,45,32,.1)}.study-v45-complete{display:grid;justify-items:center;gap:8px;padding:30px}.study-v45-complete>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#eaf8ef;color:#176b3a;font-size:1.4rem;font-weight:900}.study-v45-empty{max-width:620px;margin:40px auto}.study-v45-empty-icon{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 10px;border-radius:20px;background:#eef6ff;font-size:1.8rem}

.study-admin-v45-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:22px;border:1px solid rgba(15,50,74,.1);border-radius:22px;background:linear-gradient(135deg,#fff,#f4f9ff);box-shadow:0 14px 34px rgba(15,23,42,.05);margin-bottom:16px}.study-admin-v45-hero h1{margin:4px 0 6px}.study-admin-v45-hero p{margin:0;color:var(--muted,#64748b)}.study-admin-v45-kicker{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em;color:#42637a}.study-admin-v45-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.study-admin-v45-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}.study-admin-v45-kpi{padding:14px 16px;border-radius:16px;border:1px solid rgba(15,50,74,.09);background:#fff}.study-admin-v45-kpi span{display:block;color:#64748b;font-size:.78rem;font-weight:700}.study-admin-v45-kpi strong{display:block;margin-top:3px;color:#0b2f4a;font-size:1.3rem}.study-admin-v45-workbar{position:sticky;top:74px;z-index:12;display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid rgba(15,50,74,.1);border-radius:17px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);box-shadow:0 10px 28px rgba(15,23,42,.07);margin-bottom:14px}.study-admin-v45-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.study-admin-v45-search{position:relative}.study-admin-v45-search .input{padding-left:38px}.study-admin-v45-search:before{content:"⌕";position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#64748b;font-size:1.05rem;z-index:1}.study-deck-list{display:grid;gap:12px}.study-deck-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px;border:1px solid rgba(15,50,74,.1);border-radius:18px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.study-deck-card:focus-within{border-color:rgba(27,102,173,.38);box-shadow:0 12px 28px rgba(15,23,42,.06)}.study-deck-card.is-filtered{display:none}.study-deck-index{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#eef5fb;color:#0b2f4a;font-weight:900}.study-deck-fields{display:grid;gap:10px}.study-deck-fields-main{display:grid;grid-template-columns:1fr 1fr;gap:10px}.study-deck-fields-meta{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:10px}.study-deck-actions{display:grid;gap:6px}.study-deck-actions .btn{width:36px;height:36px;padding:0;display:grid;place-items:center}.study-deck-card textarea{min-height:86px;resize:vertical}.study-deck-card .label{font-size:.73rem}.study-deck-empty{padding:34px;text-align:center;border:1px dashed rgba(15,50,74,.22);border-radius:18px;color:#64748b;background:#fbfdff}.study-v45-savebar{position:sticky;bottom:12px;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:10px 12px;border-radius:17px;background:rgba(11,47,74,.96);color:#fff;box-shadow:0 18px 44px rgba(11,47,74,.22)}.study-v45-savebar .btn-primary{background:#fff;color:#0b2f4a;border-color:#fff}.study-v45-save-state{display:flex;align-items:center;gap:8px;font-size:.84rem;font-weight:750}.study-v45-save-state:before{content:"";width:8px;height:8px;border-radius:50%;background:#9fd8b8}.study-v45-save-state[data-dirty="1"]:before{background:#ffd66b}.study-bulk-panel{margin:0 0 14px;padding:14px;border:1px solid rgba(15,50,74,.1);border-radius:18px;background:#f8fbfe}.study-bulk-panel summary{cursor:pointer;font-weight:850;list-style:none}.study-bulk-panel summary::-webkit-details-marker{display:none}.study-bulk-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:12px}.study-bulk-grid textarea{min-height:110px}.study-mode-picker-v45{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}.study-mode-picker-v45 a{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:12px;border:1px solid rgba(15,50,74,.1);border-radius:16px;background:#fff;color:inherit;text-decoration:none;min-width:0}.study-mode-picker-v45 a:hover{border-color:rgba(27,102,173,.34);box-shadow:0 9px 24px rgba(15,23,42,.06)}.study-mode-picker-v45 a.active{background:#0b2f4a;color:#fff;border-color:#0b2f4a}.study-mode-picker-v45 .mode-icon{font-size:1.25rem}.study-mode-picker-v45 strong,.study-mode-picker-v45 small{display:block}.study-mode-picker-v45 small{opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.study-launch-grid-v45{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:14px;align-items:start}.study-launch-panel-v45{padding:18px}.study-launch-panel-v45 h2{margin:0 0 4px}.study-launch-panel-v45>p{margin:0 0 16px;color:#64748b}.study-run-card-v45{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid rgba(15,50,74,.08)}.study-run-card-v45:first-child{border-top:0}.study-run-main-v45{display:flex;gap:10px;align-items:center;min-width:0}.study-run-icon-v45{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#eef5fb}.study-run-main-v45 strong,.study-run-main-v45 small{display:block}.study-run-main-v45 small{color:#64748b}.study-run-actions-v45{display:flex;gap:6px;align-items:center}.study-roster-head-v45{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.study-roster-head-v45 h2{margin:0}.study-roster-status{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:750}.study-roster-status:before{content:"";width:8px;height:8px;border-radius:50%;background:#94a3b8}.study-roster-status.is-started:before{background:#1f9d62}.study-roster-status.is-complete:before{background:#1468a8}.study-roster-toolbar{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:10px;margin-bottom:10px}.study-roster-table td strong{display:block}.study-roster-table td small{display:block;color:#64748b;margin-top:2px}.study-progress-mini{height:6px;margin-top:6px;border-radius:999px;background:#edf2f7;overflow:hidden}.study-progress-mini>span{display:block;height:100%;border-radius:inherit;background:#1976b9}.study-v45-badge-live{background:#e9f8ef;color:#166a3a}.study-v45-badge-closed{background:#eef2f6;color:#52606d}

@media(max-width:960px){.study-mode-picker-v45{grid-template-columns:repeat(2,minmax(0,1fr))}.study-launch-grid-v45{grid-template-columns:1fr}.study-admin-v45-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.study-deck-fields-main{grid-template-columns:1fr}.study-deck-fields-meta{grid-template-columns:1fr 110px}}
@media(max-width:720px){.study-v45-hero,.study-admin-v45-hero{grid-template-columns:1fr;align-items:start}.study-v45-hero{flex-direction:column;align-items:stretch}.study-v45-hero>.btn{align-self:flex-start}.study-v45-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.study-admin-v45-actions{justify-content:flex-start}.study-admin-v45-workbar{position:relative;top:auto;grid-template-columns:1fr}.study-admin-v45-tools{justify-content:flex-start}.study-deck-card{grid-template-columns:38px minmax(0,1fr)}.study-deck-actions{grid-column:1/-1;grid-template-columns:repeat(4,36px);justify-content:end}.study-v45-savebar{bottom:8px}.study-bulk-grid{grid-template-columns:1fr}.study-mode-picker-v45{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:4px}.study-mode-picker-v45 a{min-width:190px;scroll-snap-align:start}.study-roster-toolbar{grid-template-columns:1fr}.study-run-card-v45{grid-template-columns:1fr}.study-run-actions-v45{justify-content:flex-start}.study-typing-form{grid-template-columns:1fr}}
@media(max-width:520px){.study-v45-kpis,.study-admin-v45-kpis{grid-template-columns:1fr 1fr}.study-deck-card{padding:11px}.study-deck-index{width:34px;height:34px}.study-v45-rating{grid-template-columns:1fr 1fr}.study-v45-hero-main{align-items:flex-start}.study-v45-mode-icon{width:44px;height:44px;flex-basis:44px}.study-v45-savebar{align-items:stretch;flex-direction:column}.study-v45-savebar .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.study-deck-card,.study-mode-picker-v45 a{transition:none}}

