:root {
  --bg: #fffaf0;
  --card: #fff;
  --yellow: #ffd86b;
  --yellow-strong: #ffc93f;
  --yellow-light: #fff8dc;
  --yellow-dark: #8b6509;
  --text: #2f2a1f;
  --muted: #7b725f;
  --line: #f1dfaa;
  --danger: #a23b32;
  --shadow: 0 18px 45px rgba(130, 96, 20, .09);
}
* { box-sizing: border-box; }
@view-transition { navigation:none; }
body { margin: 0; min-height: 100vh; font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif; color: var(--text); background:var(--bg); -webkit-user-select:none; user-select:none; }
a { color: inherit; text-decoration: none; }
button,input,select,textarea { font: inherit; }
input,textarea,[contenteditable="true"] { -webkit-user-select:text; user-select:text; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

/* Cross-platform interface icons. All visible artwork is rendered by CSS masks. */
.ui-icon {
  --ui-icon-size:1em;
  display:inline-grid;
  place-items:center;
  color:inherit;
  line-height:1;
}
.ui-icon::before {
  content:"";
  width:var(--ui-icon-size);
  height:var(--ui-icon-size);
  display:block;
  background:currentColor;
  -webkit-mask:var(--ui-icon) center/contain no-repeat;
  mask:var(--ui-icon) center/contain no-repeat;
}
.ui-icon--inline { margin-inline:.12em; vertical-align:-.14em; }
.ui-status-dot { width:.42em; height:.42em; display:block; border-radius:50%; background:currentColor; }
.ui-icon--home { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 11.2 12 4l9 7.2V21h-6v-6H9v6H3v-9.8Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--school { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m3 10 9-6 9 6M5 9v11h14V9M8 13h2v3H8m6-3h2v3h-2M10 20v-3h4v3' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--users { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.5 11a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm7-1a3 3 0 1 0 0-6M2.5 20v-2.2c0-2.7 2.7-4.8 6-4.8s6 2.1 6 4.8V20h-12Zm12-6.4c3.6-.8 7 1.3 7 4.2V20h-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--books { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h5v16H4V4Zm7 0h5v16h-5V4Zm7 2 3-1 2 14-4 1-1-14Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--book { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5.5c3.2-.8 6-.2 9 1.5v13c-3-1.7-5.8-2.3-9-1.5v-13Zm18 0c-3.2-.8-6-.2-9 1.5v13c3-1.7 5.8-2.3 9-1.5v-13Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--game { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 8h8a6 6 0 0 1 5.7 7.9l-.7 2.2a2.5 2.5 0 0 1-4.4.7L15.4 17H8.6l-1.2 1.8a2.5 2.5 0 0 1-4.4-.7l-.7-2.2A6 6 0 0 1 8 8Zm-2 4v4m-2-2h4m8-1h.01M18 15h.01' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--switch { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 7h14m-4-4 4 4-4 4M20 17H6m4 4-4-4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--user { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M4 21c.7-4.5 3.3-7 8-7s7.3 2.5 8 7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ui-icon--key { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='8' cy='15' r='4' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='m11 12 8-8m-3 3 2 2m-5 1 2 2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ui-icon--mic { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='8' y='3' width='8' height='12' rx='4' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M5 11a7 7 0 0 0 14 0m-7 7v3m-4 0h8' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ui-icon--speaker { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 10h4l5-4v12l-5-4H4v-4Zm12-1c1.2 1 1.8 2 1.8 3S17.2 14 16 15m2.5-8.5c2 1.7 3 3.5 3 5.5s-1 3.8-3 5.5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--check { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='m8 12 2.6 2.7L16.5 9' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--target { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='13' r='8' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='11' cy='13' r='3' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='m13 11 7-7m-4 0h4v4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--flame { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22c-4.4 0-7-3-7-7 0-3.2 1.8-6.2 5.4-9.6.2 2.4 1 4 2.1 5.1.1-3.2 1.3-5.9 3.3-8 2.1 3 3.2 6 3.2 9.1C19 17.4 16.3 22 12 22Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--edit { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4 20 4.5-1 10-10-3.5-3.5-10 10L4 20Zm9-12.5 3.5 3.5M14.5 4 17 1.5 20.5 5 18 7.5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--sprout { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21v-9m0 2C8 14 5 11 5 7c4 0 7 2 7 6m0 1c0-5 3-8 8-8 0 5-3 8-8 8Z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--teacher { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 4h11v10h-8m3-7h2m-2 3h3M6 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm-4 10v-4c0-2.5 1.8-4 4-4s4 1.5 4 4v4m-4-4v4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--clock { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 7v5l3 2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ui-icon--archive { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 8h16v12H4V8Zm-1-4h18v4H3V4Zm6 8h6' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--note { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h14v18H5V3Zm4 4h6m-6 4h6m-6 4h4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ui-icon--graduation { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m2 9 10-5 10 5-10 5L2 9Zm4 2v6c3.5 2.7 8.5 2.7 12 0v-6m4-2v7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--puzzle { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h6a2 2 0 1 0 4 0h6v6a2 2 0 1 1 0 4v6h-6a2 2 0 1 0-4 0H4v-6a2 2 0 1 1 0-4V4Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--settings { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M19 12a7 7 0 0 0-.1-1l2-1.5-2-3.4-2.4 1A7 7 0 0 0 15 6l-.3-2.6h-4L10.4 6A7 7 0 0 0 8 7.1l-2.4-1-2 3.4 2 1.5a7 7 0 0 0 0 2l-2 1.5 2 3.4 2.4-1A7 7 0 0 0 10.4 18l.3 2.6h4L15 18a7 7 0 0 0 1.5-1.1l2.4 1 2-3.4-2-1.5a7 7 0 0 0 .1-1Z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--bell { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 17h14l-2-3V9a5 5 0 0 0-10 0v5l-2 3Zm5 3h4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--calendar { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='2' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M3 10h18M8 3v4m8-4v4M8 14h2m4 0h2m-8 4h2m4 0h2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ui-icon--flag { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 22V3m0 1h12l-2 4 2 4H5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--status { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M7 13h3l2-5 2 8 2-3h2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--search { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='m15.5 15.5 5 5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ui-icon--clipboard { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 5H4v16h16V5h-3M9 3h6v4H9V3Zm0 9h6m-6 4h6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--send { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m3 11 18-8-7 18-3.2-7L3 11Zm7.8 3L21 3' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--assignment-check { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5H5v16h14V5h-3M9 3h6v4H9V3Zm0 11 2 2 4-5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--pie { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 3a9 9 0 1 0 9 10h-9V3Zm3 0v7h7a8 8 0 0 0-7-7Z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--chart { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20V10h4v10H4Zm6 0V4h4v16h-4Zm6 0v-7h4v7h-4Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--lightning { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13 2-8 12h6l-1 8 9-13h-6V2Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ui-icon--lesson { --ui-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h10l4 4v14H5V3Zm10 0v5h4M9 12h6m-6 4h6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.app-shell { min-height:100vh; }
.dashboard-intro { position:fixed; inset:0; z-index:2147483647; display:grid; place-items:center; background:var(--bg); pointer-events:none; animation:dashboard-intro-curtain 1.05s cubic-bezier(.2,.7,.25,1) both; }
.dashboard-intro__content { display:grid; place-items:center; color:var(--text); animation:dashboard-intro-content .72s cubic-bezier(.16,1,.3,1) both; }
.dashboard-intro__mark { font-size:76px; line-height:1; transform-origin:center bottom; animation:dashboard-intro-mark .62s cubic-bezier(.16,1.25,.3,1) both; }
.dashboard-intro__content strong { margin-top:12px; font-size:30px; letter-spacing:.02em; }
.dashboard-intro__content small { margin-top:5px; color:var(--muted); font-size:13px; font-weight:850; letter-spacing:.16em; }
.dashboard-intro__blocks { display:flex; align-items:end; gap:6px; height:24px; margin-top:18px; }
.dashboard-intro__blocks i { width:13px; height:13px; border-radius:4px; background:var(--yellow-strong); animation:dashboard-intro-block .48s cubic-bezier(.2,.8,.25,1) both; }
.dashboard-intro__blocks i:nth-child(2) { height:19px; animation-delay:.07s; }
.dashboard-intro__blocks i:nth-child(3) { height:10px; animation-delay:.14s; }
@keyframes dashboard-intro-curtain { 0%,66%{opacity:1;visibility:visible} 100%{opacity:0;visibility:hidden} }
@keyframes dashboard-intro-content { from{opacity:0;transform:translate3d(0,12px,0) scale(.96)} to{opacity:1;transform:none} }
@keyframes dashboard-intro-mark { from{opacity:0;transform:scale(.72) rotate(-8deg)} to{opacity:1;transform:scale(1) rotate(0)} }
@keyframes dashboard-intro-block { from{opacity:0;transform:translate3d(0,8px,0)} to{opacity:1;transform:none} }
html.reduce-effects .dashboard-intro { animation-duration:.7s; }
html.reduce-effects .dashboard-intro__content { animation-duration:.45s; }
.app-sidebar { position:fixed; inset:0 auto 0 0; z-index:100; width:76px; display:flex; flex-direction:column; gap:18px; overflow:hidden; contain:layout paint; view-transition-name:cowlish-sidebar; padding:18px 12px; background:var(--card); border-right:1px solid var(--line); box-shadow:12px 0 28px rgba(130,96,20,.08); transition:width .18s cubic-bezier(.2,.75,.25,1); }
.app-sidebar:is(:hover,:focus-within,.is-held-open),html.nav-held .app-sidebar { width:248px; }
.brand { min-height:50px; display:flex; align-items:center; gap:14px; padding:4px 5px; font-size:19px; font-weight:900; white-space:nowrap; }
.brand img { width:42px; height:42px; flex:0 0 42px; border-radius:11px; object-fit:cover; box-shadow:0 10px 24px rgba(255,185,36,.25); }
.nav-label { opacity:0; white-space:nowrap; transform:translate3d(-5px,0,0); transition:opacity .12s linear,transform .16s ease; will-change:opacity,transform; }
.app-sidebar:is(:hover,:focus-within,.is-held-open) .nav-label,html.nav-held .app-sidebar .nav-label { opacity:1; transform:none; }
.main-nav { position:relative; display:flex; flex:1; flex-direction:column; gap:6px; }
.main-nav a,.sidebar-action { position:relative; z-index:1; min-height:50px; display:flex; align-items:center; gap:14px; width:100%; padding:7px 10px; border:0; border-radius:16px; color:var(--muted); background:transparent; font-weight:800; text-align:left; cursor:pointer; }
.nav-active-indicator { position:absolute; z-index:0; top:0; left:0; width:100%; height:50px; border-radius:16px; background:var(--yellow-light); opacity:0; transform:translate3d(0,var(--nav-indicator-y,0),0); transition:transform .2s cubic-bezier(.2,.8,.25,1),opacity .12s linear; pointer-events:none; will-change:transform; }
.main-nav.has-indicator .nav-active-indicator { opacity:1; }
.main-nav.indicator-no-motion .nav-active-indicator { transition:none; }
.nav-icon { width:32px; flex:0 0 32px; display:grid; place-items:center; font-size:23px; line-height:1; }
.main-nav a:hover,.main-nav a:focus-visible,.main-nav a.active { color:var(--text); background:transparent; }
.sidebar-action:hover { color:var(--text); background:var(--yellow-light); }
.account-menu { min-height:50px; display:flex; align-items:center; gap:14px; padding:7px 10px; border-top:1px solid var(--line); }
.account-menu>div { display:flex; flex-direction:column; text-align:left; }
.account-menu span { color:var(--muted); font-size:12px; font-weight:800; }
.account-menu>.nav-icon { font-size:23px; }
.site-content { position:relative; width:min(1180px,calc(100% - 116px)); min-height:100vh; margin-left:max(96px,calc((100vw - 1180px)/2 + 76px)); padding:20px 0 60px; }
.page-enter-down .site-content,.page-enter-up .site-content { opacity:0; }
.site-content::after { content:""; position:fixed; inset:0; z-index:90; pointer-events:none; visibility:hidden; background:rgba(255,250,240,.38); opacity:0; transition:opacity .14s linear,visibility 0s linear .14s; }
.app-sidebar:is(:hover,:focus-within,.is-held-open)~.site-content::after { opacity:1; visibility:visible; transition-delay:0s; }
html.nav-held .app-sidebar~.site-content::after { opacity:1; visibility:visible; transition-delay:0s; }
.text-button { border:1px solid var(--line); background:#fff; border-radius:999px; padding:9px 13px; cursor:pointer; }
.welcome-card,.page-heading { padding:clamp(28px,5vw,52px); border:1px solid var(--line); border-radius:36px; background:var(--card); box-shadow:var(--shadow); display:flex; justify-content:space-between; align-items:center; gap:24px; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(34px,5vw,60px); line-height:1.06; margin-bottom:14px; }
h2 { font-size:clamp(26px,3vw,38px); margin-bottom:8px; }
h3 { font-size:24px; margin-bottom:10px; }
.welcome-card p,.page-heading p,.muted,.info-card p,.unit-card p { color:var(--muted); line-height:1.7; }
.eyebrow { display:block; color:var(--yellow-dark); font-size:12px; font-weight:1000; letter-spacing:.12em; margin-bottom:10px; }
.primary-button,.secondary-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 19px; border-radius:999px; border:0; font-weight:900; cursor:pointer; white-space:nowrap; }
.primary-button { background:var(--yellow); color:#3a2c05; box-shadow:0 10px 24px rgba(255,199,67,.3); }
.secondary-button { background:#fff; border:1px solid var(--line); }
.section-block { margin-top:36px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:17px; }
.section-heading h2 { margin-bottom:0; }
.section-heading>a,.center-note a { color:var(--yellow-dark); font-weight:900; }
.feature-card,.info-card,.unit-card,.narrow-card,.course-row { background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); border-radius:28px; }
.feature-card { padding:26px; display:flex; align-items:center; justify-content:space-between; gap:22px; }
.feature-card>div { flex:1; }
.feature-card strong { font-size:25px; }
.feature-card p { color:var(--muted); margin:6px 0 12px; }
.progress,.table-progress { height:9px; border-radius:999px; background:#f5ead0; overflow:hidden; }
.progress { margin:14px 0 7px; }
.progress span,.table-progress span { display:block; height:100%; border-radius:inherit; background:var(--yellow-strong); }
.card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.info-card { padding:25px; display:flex; flex-direction:column; min-height:230px; }
.badge { display:inline-flex; align-self:flex-start; width:fit-content; padding:7px 11px; border-radius:999px; background:var(--yellow-light); border:1px solid var(--line); color:var(--yellow-dark); font-size:12px; font-weight:900; margin-bottom:15px; }
.badge.large { font-size:18px; padding:12px 18px; }
.info-card small { color:var(--muted); }
.game-card { min-height:330px; }.game-icon { font-size:46px; line-height:1; margin-bottom:18px; }
.card-link { color:var(--yellow-dark); font-weight:900; margin-top:auto; padding-top:20px; }
.span-all { grid-column:1/-1; }
.empty-state { padding:24px; border:1px dashed var(--line); border-radius:22px; color:var(--muted); background:rgba(255,255,255,.55); }
.avatar { width:52px; height:52px; border-radius:18px; background:var(--yellow); display:grid; place-items:center; font-size:22px; font-weight:900; margin-bottom:15px; }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:24px; }
.stats-grid article { padding:23px; border-radius:24px; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow); display:flex; flex-direction:column; }
.stats-grid strong { font-size:38px; }
.stats-grid span { color:var(--muted); font-weight:800; }
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:var(--shadow); }
table { width:100%; border-collapse:collapse; min-width:720px; }
th,td { text-align:left; padding:15px 17px; border-bottom:1px solid #f5e9c9; vertical-align:middle; }
th { color:var(--muted); font-size:13px; background:#fffcf5; }
.table-progress { width:110px; display:inline-block; margin-right:7px; }
.narrow-card { max-width:680px; margin:50px auto; padding:clamp(26px,5vw,48px); }
.narrow-card h1 { font-size:clamp(32px,5vw,48px); }
.stack-form { display:grid; gap:17px; margin-top:24px; }
.stack-form>div,.stack-form label { display:grid; gap:7px; font-weight:800; }
.stack-form input,.stack-form select,.stack-form textarea,.inline-form select { width:100%; border:1px solid var(--line); border-radius:15px; background:#fffdf8; padding:12px 14px; }
.stack-form small { color:var(--muted); font-weight:500; }
.stack-form em,.errorlist,.form-error { color:var(--danger); font-style:normal; }
.center-note { text-align:center; margin:24px 0 0; color:var(--muted); }
.message-stack { position:relative; z-index:5; display:grid; gap:8px; margin-bottom:16px; }
.message { border:1px solid var(--line); border-radius:15px; padding:12px 16px; background:#fff; box-shadow:var(--shadow); }
.message.success { border-color:#a9d8b0; }.message.error { border-color:#e4aaa5; }
.invite-code { min-width:220px; background:#fff; border:1px solid var(--line); border-radius:24px; padding:18px; text-align:center; }
.invite-code span { display:block; color:var(--muted); font-size:12px; font-weight:900; }.invite-code strong { font-size:26px; }
.inline-form { display:flex; gap:10px; max-width:660px; margin-bottom:18px; }.inline-form select { flex:1; }
.course-list,.unit-list { display:grid; gap:16px; }.course-row { padding:22px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.row-actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:8px; }.row-actions form { display:flex; gap:5px; }
.danger-button,.icon-button { border:1px solid #e9b5af; background:#fff7f5; color:var(--danger); border-radius:999px; padding:8px 12px; font-weight:800; cursor:pointer; }
.icon-button { border-color:var(--line); color:var(--text); background:#fff; }
.unit-list { margin-top:24px; }.unit-card { padding:26px; }.lesson-list { display:grid; gap:10px; margin-top:18px; }
.lesson-list a { display:grid; grid-template-columns:100px 1fr auto; gap:15px; align-items:center; border:1px solid var(--line); border-radius:18px; padding:15px; }.lesson-list span { color:var(--muted); }.lesson-list b { color:var(--yellow-dark); }
.lesson-links { display:grid; gap:7px; margin-top:17px; }.lesson-links a { color:var(--yellow-dark); font-weight:850; }
.settings-form { max-width:680px; }.check-line { display:flex!important; grid-template-columns:auto 1fr; align-items:center; }.check-line input { width:auto; }.settings-form .primary-button { width:fit-content; }

/* Unified lexicon and teacher-created word collections */
.lexicon-heading { padding:26px 34px; border-radius:28px; }
.lexicon-heading h1 { font-size:clamp(34px,4vw,52px); margin-bottom:8px; }
.lexicon-heading p { margin-bottom:10px; line-height:1.5; }
.lexicon-heading .eyebrow { margin-bottom:7px; }
.lexicon-heading small { color:var(--muted); font-weight:750; }
.lexicon-library { padding-top:clamp(18px,4vw,46px); }
.lexicon-library__title { margin-bottom:26px; }
.lexicon-library__title h1 { margin-bottom:0; }
.lexicon-collection-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
.lexicon-collection-card { min-height:260px; height:100%; }
.lexicon-create-card { align-items:flex-start; border-style:dashed; background:rgba(255,255,255,.5); }
.lexicon-create-card:hover,.lexicon-create-card:focus-visible { border-style:solid; background:#fff; transform:translateY(-2px); }
.lexicon-create-card__plus { width:48px; height:48px; display:grid; place-items:center; margin-bottom:18px; border-radius:16px; color:#3a2c05; background:var(--yellow); box-shadow:0 10px 24px rgba(255,199,67,.3); font-size:29px; font-weight:850; line-height:1; }

/* Lexicon hub: warm yellow orbital library. */
.site-content:has(.lexicon-library) {
  height:100vh;
  padding-bottom:20px;
  overflow:hidden;
}
.lexicon-library {
  --lexicon-ink:#24231f;
  --lexicon-gold:#e8ad19;
  --lexicon-yellow:#ffc93f;
  position:relative;
  height:calc(100vh - 40px);
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto;
  padding:clamp(22px,3vw,38px) clamp(16px,3vw,34px) 30px;
  overflow:hidden;
  border:1px solid rgba(220,190,111,.42);
  border-radius:32px;
  background:#fffdf8;
  box-shadow:0 24px 70px rgba(67,50,12,.07);
}
.lexicon-library::before,
.lexicon-library::after {
  content:"";
  position:absolute;
  z-index:0;
  border-radius:50%;
  pointer-events:none;
}
.lexicon-library::before {
  width:260px;
  height:260px;
  top:-145px;
  right:-105px;
  border:45px solid rgba(255,201,63,.12);
}
.lexicon-library::after {
  width:130px;
  height:130px;
  left:-76px;
  bottom:-70px;
  background:var(--lexicon-yellow);
  opacity:.08;
}
.lexicon-library__header {
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin-bottom:18px;
}
.lexicon-library__title { margin:0; }
.lexicon-library__title .eyebrow { margin-bottom:8px; color:#a97700; }
.lexicon-library__title h1 {
  margin:0 0 8px;
  color:var(--lexicon-ink);
  font-size:clamp(34px,4vw,52px);
  font-weight:950;
  letter-spacing:-.045em;
}
.lexicon-library__title p { margin:0; color:#8b8577; font-size:14px; }
.lexicon-library__tools {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex:1;
}
.lexicon-library__search,
.lexicon-library__sort,
.lexicon-library__create {
  min-height:44px;
  display:flex;
  align-items:center;
  border:1px solid #eee2c8;
  border-radius:12px;
  background:#fff;
  color:var(--lexicon-ink);
  box-shadow:0 7px 22px rgba(67,50,12,.035);
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease,background-color .2s ease;
}
.lexicon-library__search { position:relative; width:min(270px,32vw); padding:0 12px; }
.lexicon-library__search>.ui-icon,
.lexicon-library__sort>.ui-icon { flex:0 0 auto; color:#746f65; font-size:18px; }
.lexicon-library__search input {
  width:100%;
  min-height:42px;
  padding:0 28px 0 10px;
  border:0;
  outline:0;
  color:var(--lexicon-ink);
  background:transparent;
  font-size:13px;
  font-weight:650;
}
.lexicon-library__search input::placeholder { color:#aaa294; }
.lexicon-library__search button {
  position:absolute;
  right:8px;
  width:28px;
  height:28px;
  padding:0 0 2px;
  border:0;
  border-radius:50%;
  color:#777064;
  background:#f8f3e7;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.lexicon-library__search:focus-within,
.lexicon-library__sort:focus-within {
  border-color:var(--lexicon-yellow);
  box-shadow:0 0 0 4px rgba(255,201,63,.16),0 9px 25px rgba(67,50,12,.06);
}
.lexicon-library__sort { padding-left:12px; }
.lexicon-library__sort select {
  min-height:42px;
  padding:0 30px 0 8px;
  border:0;
  outline:0;
  color:var(--lexicon-ink);
  background:transparent;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
.lexicon-library__create {
  gap:7px;
  padding:0 18px;
  border-color:#e0a90f;
  color:#211d13;
  background:var(--lexicon-yellow);
  box-shadow:0 11px 24px rgba(218,158,0,.2);
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}
.lexicon-library__create span { font-size:22px; font-weight:500; line-height:1; }
.lexicon-library__create:hover,
.lexicon-library__create:focus-visible {
  transform:translateY(-3px);
  border-color:#d9a006;
  color:#4f3800;
  background:#ffe38b;
  box-shadow:0 15px 28px rgba(218,158,0,.24);
}
.lexicon-library__stage {
  position:relative;
  z-index:1;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(185px,1fr) minmax(230px,280px) minmax(185px,1fr);
  grid-template-rows:repeat(3,minmax(120px,1fr));
  align-items:center;
  column-gap:clamp(50px,8vw,104px);
  row-gap:10px;
  padding:10px 22px;
}
.lexicon-library__orbit {
  position:absolute;
  z-index:-1;
  inset:50% auto auto 50%;
  width:390px;
  height:390px;
  border:1px solid rgba(232,173,25,.17);
  border-radius:50%;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.lexicon-library__orbit::before,
.lexicon-library__orbit::after,
.lexicon-library__orbit i {
  content:"";
  position:absolute;
  inset:50% auto auto 50%;
  border:1px solid rgba(232,173,25,.13);
  border-radius:50%;
  transform:translate(-50%,-50%);
}
.lexicon-library__orbit::before { width:300px; height:300px; }
.lexicon-library__orbit::after { width:470px; height:470px; }
.lexicon-library__orbit i { width:5px; height:5px; border:0; background:#ffd66e; box-shadow:0 0 0 3px #fff9e9; }
.lexicon-library__orbit i:nth-child(1) { margin-left:-236px; }
.lexicon-library__orbit i:nth-child(2) { margin-left:236px; }
.lexicon-library__orbit i:nth-child(3) { margin-top:236px; }
.lexicon-master-card {
  grid-column:2;
  grid-row:1/4;
  align-self:center;
  min-height:320px;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:24px 26px 20px;
  border:1px solid var(--lexicon-yellow);
  border-radius:20px;
  background:#fff;
  color:var(--lexicon-ink);
  text-align:center;
  box-shadow:0 18px 46px rgba(78,57,8,.1),inset 0 0 0 5px #fffdf8;
  transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s ease;
}
.lexicon-master-card:hover,
.lexicon-master-card:focus-within {
  transform:translateY(-6px) scale(1.012);
  box-shadow:0 26px 55px rgba(78,57,8,.16),inset 0 0 0 5px #fffdf8;
}
.lexicon-master-card__icon {
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  margin-bottom:8px;
  border:1px solid #f4dfaa;
  border-radius:50%;
  color:#a87600;
  background:#fff5d8;
  font-size:29px;
  box-shadow:0 9px 22px rgba(208,153,13,.11);
}
.lexicon-master-card__kicker { color:#aa7800; font-size:10px; font-weight:950; letter-spacing:.14em; }
.lexicon-master-card h2 { margin:3px 0 5px; font-size:32px; font-weight:950; letter-spacing:-.03em; }
.lexicon-master-card>p { margin:0; color:#817a6b; font-size:12px; line-height:1.6; }
.lexicon-master-card__count {
  width:100%;
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:5px;
  margin-top:18px;
  padding-top:15px;
  border-top:1px solid #eee3c8;
  color:#a97908;
}
.lexicon-master-card__count strong { font-size:22px; }
.lexicon-master-card__count span { font-size:12px; font-weight:850; }
.lexicon-master-card small { margin:2px 0 16px; color:#8e8778; font-size:10px; }
.lexicon-master-card__action {
  width:100%;
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  margin-top:auto;
  border:1px solid #f0deac;
  border-radius:10px;
  color:#765306;
  background:#fff7dc;
  font-size:12px;
  font-weight:900;
  transition:transform .18s ease,color .18s ease,background-color .18s ease,box-shadow .18s ease;
}
.lexicon-master-card:hover .lexicon-master-card__action,
.lexicon-master-card:focus-visible .lexicon-master-card__action {
  transform:translateY(-2px);
  color:#4f3800;
  background:#ffe590;
  box-shadow:0 9px 20px rgba(208,153,13,.18);
}
.lexicon-master-card:focus-visible { outline:3px solid rgba(255,201,63,.42); outline-offset:4px; }
.lexicon-orbit-card {
  position:relative;
  min-height:94px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 18px;
  align-items:center;
  gap:12px;
  padding:14px 13px;
  border:1px solid #eadfca;
  border-radius:16px;
  color:var(--lexicon-ink);
  background:#fff;
  box-shadow:0 10px 26px rgba(67,50,12,.055);
  transition:transform .24s cubic-bezier(.2,.8,.2,1),border-color .2s ease,box-shadow .24s ease,background-color .2s ease;
}
.lexicon-library__stage>.lexicon-orbit-card::after {
  content:"";
  position:absolute;
  top:50%;
  width:clamp(52px,8vw,105px);
  height:1px;
  background:#edcf7b;
  opacity:.46;
  pointer-events:none;
}
.lexicon-library__stage>.lexicon-orbit-card:nth-of-type(n)::after { right:100%; transform-origin:right; }
.lexicon-library__stage>.lexicon-orbit-card[data-slot="0"]::after,
.lexicon-library__stage>.lexicon-orbit-card[data-slot="2"]::after,
.lexicon-library__stage>.lexicon-orbit-card[data-slot="4"]::after { left:100%; right:auto; transform-origin:left; }
.lexicon-library__stage>.lexicon-orbit-card[data-slot="0"]::after,
.lexicon-library__stage>.lexicon-orbit-card[data-slot="5"]::after { transform:rotate(33deg); }
.lexicon-library__stage>.lexicon-orbit-card[data-slot="1"]::after,
.lexicon-library__stage>.lexicon-orbit-card[data-slot="4"]::after { transform:rotate(-33deg); }
.lexicon-orbit-card[data-slot="0"] { grid-column:1; grid-row:1; }
.lexicon-orbit-card[data-slot="1"] { grid-column:3; grid-row:1; }
.lexicon-orbit-card[data-slot="2"] { grid-column:1; grid-row:2; }
.lexicon-orbit-card[data-slot="3"] { grid-column:3; grid-row:2; }
.lexicon-orbit-card[data-slot="4"] { grid-column:1; grid-row:3; }
.lexicon-orbit-card[data-slot="5"] { grid-column:3; grid-row:3; }
.lexicon-orbit-card__icon {
  --ui-icon-size:19px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid #f3e6c4;
  border-radius:50%;
  color:#9a6d05;
  background:#fff9ea;
  font-size:14px;
  font-weight:950;
  transition:transform .24s ease,background-color .2s ease,color .2s ease;
}
.lexicon-orbit-card__body { min-width:0; display:flex; flex-direction:column; gap:2px; }
.lexicon-orbit-card__body strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.lexicon-orbit-card__body>span { color:#817b6d; font-size:11px; }
.lexicon-orbit-card__body small { margin-top:3px; overflow:hidden; color:#aaa294; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.lexicon-orbit-card__arrow { color:#948c7d; font-size:24px; font-weight:300; transition:transform .2s ease,color .2s ease; }
.lexicon-orbit-card:hover,
.lexicon-orbit-card:focus-visible {
  z-index:2;
  transform:translateY(-7px) scale(1.018);
  border-color:var(--lexicon-yellow);
  color:var(--lexicon-ink);
  background:#fffefb;
  box-shadow:0 20px 38px rgba(81,58,5,.14);
  outline:0;
}
.lexicon-orbit-card:hover .lexicon-orbit-card__icon,
.lexicon-orbit-card:focus-visible .lexicon-orbit-card__icon { transform:rotate(-7deg) scale(1.08); color:#24231f; background:var(--lexicon-yellow); }
.lexicon-orbit-card:hover .lexicon-orbit-card__arrow,
.lexicon-orbit-card:focus-visible .lexicon-orbit-card__arrow { transform:translateX(3px); color:#aa7700; }
.lexicon-library__more {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:4px 22px 0;
  max-height:116px;
  padding:3px;
  overflow-y:auto;
  scrollbar-color:var(--lexicon-yellow) #eee7d7;
  scrollbar-width:thin;
}
.lexicon-library__more[hidden],
.lexicon-orbit-card[hidden] { display:none; }
.lexicon-library__status {
  position:relative;
  z-index:2;
  width:fit-content;
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:14px auto 0;
  padding:8px 15px;
  border:1px solid #eee2c8;
  border-radius:999px;
  color:#8b8475;
  background:rgba(255,255,255,.84);
  font-size:11px;
  font-weight:700;
}
.lexicon-library__status>.ui-icon { font-size:15px; }
.lexicon-library__status.is-empty { color:#866100; border-style:dashed; background:#fff8df; }

@media (max-width:980px) {
  .lexicon-library__header { align-items:flex-start; flex-direction:column; }
  .lexicon-library__tools { width:100%; justify-content:flex-start; }
  .lexicon-library__search { width:auto; flex:1; }
  .lexicon-library__stage { column-gap:35px; padding-inline:0; }
  .lexicon-library__stage>.lexicon-orbit-card::after { width:35px; }
}
@media (max-width:760px) {
  .site-content:has(.lexicon-library) { height:100dvh; padding-bottom:10px; }
  .lexicon-library { height:calc(100dvh - 20px); padding:18px 14px; border-radius:24px; }
  .lexicon-library__tools { display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .lexicon-library__search { width:100%; grid-column:1/-1; }
  .lexicon-library__create { min-height:44px; justify-content:center; }
  .lexicon-library__stage {
    min-height:0;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:auto;
    gap:12px;
    padding:12px 0 0;
    overflow-y:auto;
    scrollbar-width:thin;
  }
  .lexicon-library__orbit { display:none; }
  .lexicon-master-card { grid-column:1/-1; grid-row:auto; min-height:250px; }
  .lexicon-orbit-card[data-slot] { grid-column:auto; grid-row:auto; }
  .lexicon-library__stage>.lexicon-orbit-card::after { display:none; }
  .lexicon-library__more { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:100px; margin:8px 0 0; }
}
@media (max-width:520px) {
  .lexicon-library__tools { grid-template-columns:1fr; }
  .lexicon-library__search { grid-column:auto; }
  .lexicon-library__sort select { width:100%; }
  .lexicon-library__stage,
  .lexicon-library__more { grid-template-columns:1fr; }
  .lexicon-master-card { grid-column:auto; }
  .lexicon-orbit-card { min-height:88px; }
}
@media (prefers-reduced-motion:reduce) {
  .lexicon-orbit-card,
  .lexicon-orbit-card__icon,
  .lexicon-orbit-card__arrow,
  .lexicon-master-card,
  .lexicon-master-card button,
  .lexicon-library__create { transition:none; }
}
.lexicon-editor-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:20px; align-items:start; }
.lexicon-editor-card { width:100%; max-width:none; margin:0; padding:30px; }
.lexicon-editor-card--master { grid-column:1/-1; }
.lexicon-add-title { margin-bottom:0; }
.lexicon-add-dialog { width:min(1440px,calc(100vw - 48px)); max-width:none; max-height:calc(100vh - 48px); margin:auto; padding:0; border:1px solid var(--line); border-radius:28px; color:var(--text); background:#fffdf8; box-shadow:0 28px 80px rgba(63,45,5,.24); overflow:hidden; }
.lexicon-add-dialog::backdrop { background:rgba(43,34,17,.48); backdrop-filter:blur(5px); }
.lexicon-add-dialog__header { min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 26px; border-bottom:1px solid var(--line); background:#fff; }
.lexicon-add-dialog__header h2 { margin:2px 0 0; }
.lexicon-add-dialog__close { width:42px; height:42px; display:grid; place-items:center; flex:0 0 auto; padding:0 0 4px; border:1px solid var(--line); border-radius:14px; color:var(--muted); background:#fffaf0; font:inherit; font-size:29px; line-height:1; cursor:pointer; }
.lexicon-add-dialog__close:hover,.lexicon-add-dialog__close:focus-visible { border-color:var(--yellow-strong); color:var(--text); background:var(--yellow-light); }
.lexicon-add-dialog__body { max-height:calc(100vh - 141px); padding:0 26px 26px; overflow-y:auto; }
.lexicon-add-dialog .lexicon-master-results { padding-bottom:2px; }
.lexicon-master-search { display:grid; gap:18px; margin-top:24px; }
.lexicon-master-search__query { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; }
.lexicon-master-search__query label { grid-column:1/-1; font-weight:850; }
.lexicon-master-search input,.lexicon-master-search select { width:100%; min-height:50px; border:1px solid #efd99a; border-radius:18px; background:#fffdf8; padding:12px 16px; color:var(--text); font:inherit; font-weight:700; outline:0; box-shadow:0 5px 16px rgba(100,72,10,.05); transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.lexicon-master-search input:hover,.lexicon-master-search select:hover { border-color:#dfba50; background:#fff; }
.lexicon-master-search input:focus,.lexicon-master-search select:focus { border-color:var(--yellow); background:#fff; box-shadow:0 0 0 4px rgba(255,199,67,.2),0 8px 22px rgba(100,72,10,.08); }
.lexicon-master-search select { appearance:none; -webkit-appearance:none; padding-right:42px; cursor:pointer; }
.lexicon-master-search select option { color:var(--text); background:#fffdf8; }
.lexicon-master-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; gap:12px; align-items:end; }
.lexicon-master-filters label { position:relative; display:grid; gap:7px; }
.lexicon-master-filters label::after { content:"⌄"; position:absolute; right:16px; bottom:12px; color:#8a6810; font-size:20px; font-weight:900; line-height:1; pointer-events:none; }
.lexicon-master-filters label>span { padding-left:6px; color:#765c1a; font-size:12px; font-weight:900; letter-spacing:.04em; }
.lexicon-master-filters .secondary-button { min-height:50px; border-radius:18px; background:#fffaf0; }
.lexicon-master-results { display:grid; margin-top:24px; padding-top:24px; border-top:1px solid var(--line); }
.lexicon-master-page { margin-top:24px; }
.lexicon-master-results[aria-busy="true"] { opacity:.55; pointer-events:none; }
.lexicon-master-browser { display:grid; grid-template-columns:minmax(0,1.85fr) minmax(280px,.72fr); gap:18px; align-items:start; }
.lexicon-master-table-panel,.lexicon-master-detail { border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 10px 28px rgba(130,96,20,.06); }
.lexicon-master-table-panel { min-width:0; overflow:hidden; }
.lexicon-results-toolbar { min-height:62px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 14px 10px 20px; border-bottom:1px solid #f4e9ca; background:#fffdf8; }
.lexicon-results-toolbar>div { display:flex; align-items:baseline; gap:9px; }
.lexicon-results-toolbar>div b { font-size:18px; }
.lexicon-results-toolbar>div span { color:var(--muted); font-size:12px; font-weight:750; }
.lexicon-page-summary { color:var(--muted); font-size:12px; font-weight:800; }
.lexicon-pagination { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:14px; min-height:58px; padding:10px 18px; border-top:1px solid #f4e9ca; background:#fffdf8; }
.lexicon-pagination a { width:fit-content; padding:8px 12px; border:1px solid var(--line); border-radius:12px; color:var(--yellow-dark); background:#fff; font-size:12px; font-weight:900; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.lexicon-pagination a:last-child { justify-self:end; }
.lexicon-pagination a:hover,.lexicon-pagination a:focus-visible { transform:translateY(-2px); border-color:var(--yellow-strong); box-shadow:0 8px 18px rgba(130,96,20,.1); outline:0; }
.lexicon-pagination strong { color:var(--muted); font-size:11px; }
.lexicon-bulk-add { min-height:40px; padding:9px 15px; border-radius:14px; font-size:13px; }
.lexicon-bulk-add:disabled { opacity:.42; cursor:not-allowed; box-shadow:none; }
.lexicon-master-table-scroll { overflow-x:auto; }
.lexicon-master-table { width:100%; min-width:680px; border-collapse:collapse; table-layout:auto; }
.lexicon-master-table th { height:43px; padding:8px 12px; color:var(--muted); background:#fffaf0; font-size:12px; font-weight:850; text-align:left; white-space:nowrap; }
.lexicon-master-table td { height:58px; padding:9px 12px; border-top:1px solid #f5ecd4; vertical-align:middle; }
.lexicon-master-table tbody tr { cursor:pointer; transition:background .16s ease,box-shadow .16s ease; }
.lexicon-master-table tbody tr:hover,.lexicon-master-table tbody tr.is-active { background:#fff9e8; }
.lexicon-master-table tbody tr.is-active { box-shadow:inset 3px 0 var(--yellow-strong); }
.lexicon-master-table tbody tr:focus-visible { outline:2px solid var(--yellow-strong); outline-offset:-2px; }
.lexicon-check-cell { width:42px; text-align:center!important; }
.lexicon-check-cell input { width:17px; height:17px; margin:0; accent-color:var(--yellow-strong); cursor:pointer; }
.lexicon-table-word { display:flex; align-items:center; gap:7px; min-width:116px; }
.lexicon-table-word>b { font-size:15px; }
.lexicon-table-audio { width:28px; height:28px; display:grid; place-items:center; padding:0; border:0; border-radius:9px; color:#80755e; background:transparent; cursor:pointer; }
.lexicon-table-audio:hover,.lexicon-table-audio:focus-visible,.lexicon-table-audio.is-playing { color:var(--yellow-dark); background:var(--yellow-light); }
.lexicon-table-audio .ui-icon { --ui-icon-size:16px; }
.lexicon-table-ipa { color:#6e6657; font-size:13px; white-space:nowrap; }
.lexicon-table-tags,.lexicon-detail-tags { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.lexicon-pos-tag,.lexicon-level-tag,.lexicon-muted-tag { display:inline-flex; align-items:center; min-height:25px; padding:4px 8px; border-radius:8px; font-size:11px; font-weight:850; white-space:nowrap; }
.lexicon-pos-tag { color:#34734c; background:#e8f7eb; }
.lexicon-pos-tag--verb,.lexicon-pos-tag--preposition,.lexicon-pos-tag--conjunction { color:#a96600; background:#fff2d8; }
.lexicon-pos-tag--adjective,.lexicon-pos-tag--adverb { color:#2868a7; background:#e8f2ff; }
.lexicon-level-tag { color:#55528e; background:#efefff; }
.lexicon-muted-tag { color:var(--muted); background:#f4f1ea; }
.lexicon-add-cell { width:52px; text-align:center; }
.lexicon-row-add { width:34px; height:34px; display:grid; place-items:center; padding:0 0 2px; border:1px solid #ead89e; border-radius:50%; color:#584918; background:#fffdf8; font-size:23px; font-weight:500; line-height:1; cursor:pointer; transition:transform .15s ease,background .15s ease,border-color .15s ease; }
.lexicon-row-add:hover,.lexicon-row-add:focus-visible { border-color:var(--yellow-strong); background:var(--yellow); transform:scale(1.06); }
.lexicon-collection-results { margin-top:0; padding-top:0; border-top:0; }
.lexicon-collection-table { min-width:610px; }
.lexicon-remove-cell { width:72px; text-align:center; }
.lexicon-row-remove { min-height:32px; padding:6px 10px; border:1px solid #f1b8af; border-radius:12px; color:#b53428; background:#fff8f6; font:inherit; font-size:12px; font-weight:850; cursor:pointer; transition:background .15s ease,border-color .15s ease,color .15s ease; }
.lexicon-row-remove:hover,.lexicon-row-remove:focus-visible { border-color:#e98174; color:#9e241b; background:#fff0ed; }
.lexicon-master-detail { position:sticky; top:88px; min-height:310px; padding:22px; }
.lexicon-detail-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding-bottom:17px; }
.lexicon-detail-heading>div { min-width:0; }
.lexicon-detail-heading h3 { margin:0 0 5px; font-size:27px; overflow-wrap:anywhere; }
.lexicon-detail-heading b { color:var(--muted); font-size:13px; }
.lexicon-detail-section { display:grid; grid-template-columns:64px minmax(0,1fr); gap:12px; align-items:start; padding:15px 0; border-top:1px solid #f3ead1; }
.lexicon-detail-section small { padding-top:4px; color:var(--muted); font-size:12px; font-weight:850; }
.lexicon-detail-meanings { display:block; }
.lexicon-detail-meanings small { display:block; margin-bottom:9px; }
.lexicon-detail-meanings p { margin:6px 0; line-height:1.65; }
.lexicon-detail-meanings p b { display:inline-block; min-width:32px; margin-right:5px; color:var(--yellow-dark); }
.lexicon-word-form ul { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin:0; padding:0; list-style:none; }
.lexicon-word-form ul label { display:flex; grid-template-columns:none; align-items:center; gap:8px; padding:9px 11px; border:1px solid var(--line); border-radius:13px; background:#fffdf8; font-weight:750; }
.lexicon-word-form ul input { width:auto; margin:0; }
.lexicon-word-list { display:grid; gap:14px; }
.lexicon-word-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:start; padding:22px; border:1px solid var(--line); border-radius:25px; background:#fff; box-shadow:var(--shadow); }
.lexicon-word-main { min-width:0; }
.lexicon-word-title { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.lexicon-word-title>div { display:flex; align-items:baseline; flex-wrap:wrap; gap:10px; }
.lexicon-word-title h3 { margin:0; }
.lexicon-word-title b { color:var(--muted); font-weight:750; }
.lexicon-pronunciation { display:inline-flex; align-items:center; gap:5px; }
.lexicon-audio-button { width:32px; height:32px; display:grid; place-items:center; padding:0; border:0; border-radius:10px; color:var(--yellow-dark); background:var(--yellow-light); cursor:pointer; }
.lexicon-audio-button:hover,.lexicon-audio-button:focus-visible,.lexicon-audio-button.is-playing { color:#3a2c05; background:var(--yellow); }
.lexicon-audio-button .ui-icon { --ui-icon-size:18px; }
.lexicon-word-details { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(180px,.8fr); gap:24px; margin-top:16px; padding-top:14px; border-top:1px solid #f5e9c9; }
.lexicon-word-details small { display:block; margin-bottom:7px; color:var(--muted); font-size:11px; font-weight:950; letter-spacing:.08em; }
.lexicon-word-details p { margin:4px 0; }
.lexicon-word-details p b { display:inline-flex; margin-right:7px; color:var(--yellow-dark); }
.lexicon-levels { display:flex; flex-wrap:wrap; gap:6px; }
.lexicon-levels span { padding:6px 9px; border-radius:999px; background:#fff8dc; border:1px solid var(--line); color:var(--yellow-dark); font-size:12px; font-weight:850; }
@media (max-width:1100px) {
  .lexicon-master-browser { grid-template-columns:1fr; }
  .lexicon-master-detail { position:static; }
}
@media (max-width:820px) {
  .lexicon-collection-grid { grid-template-columns:1fr; }
  .lexicon-editor-grid { grid-template-columns:1fr; }
  .lexicon-add-dialog { width:calc(100vw - 20px); max-height:calc(100vh - 20px); border-radius:22px; }
  .lexicon-add-dialog__header { min-height:78px; padding:16px 18px; }
  .lexicon-add-dialog__header h2 { font-size:22px; }
  .lexicon-add-dialog__body { max-height:calc(100vh - 99px); padding:0 16px 18px; }
  .lexicon-master-search__query,.lexicon-master-filters { grid-template-columns:1fr; }
  .lexicon-master-search__query label { grid-column:auto; }
  .lexicon-master-browser,.lexicon-word-card { grid-template-columns:1fr; }
  .lexicon-master-detail { position:static; grid-row:1; min-height:0; }
  .lexicon-word-card>form { grid-column:1; }
  .lexicon-word-title,.lexicon-word-details { align-items:flex-start; grid-template-columns:1fr; flex-direction:column; }
}

/* Minimal student mobile home */
[hidden].mobile-page-launcher { display:none!important; }
.student-mobile-dashboard {
  --student-home-bg:#f6f8fc;
  --student-home-surface:#ffffff;
  --student-home-text:#172033;
  --student-home-muted:#7b8497;
  position:relative;
  isolation:isolate;
  width:min(100%,470px);
  min-height:calc(100dvh - 40px);
  margin:0 auto;
  overflow:hidden;
  padding:20px 20px calc(34px + env(safe-area-inset-bottom));
  border:1px solid rgba(34,52,84,.06);
  border-radius:32px;
  color:var(--student-home-text);
  background:var(--student-home-bg);
  box-shadow:0 18px 55px rgba(30,43,69,.08);
}
.student-mobile-dashboard__glow {
  position:absolute;
  z-index:-1;
  top:-90px;
  right:-90px;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(150,171,255,.17),transparent 68%);
}
.student-home-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:46px;
  padding-right:52px;
}
.student-home-brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:16px;
  letter-spacing:-.02em;
}
.student-home-brand>span {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:11px;
  color:#fff;
  background:#6179ec;
  box-shadow:0 7px 16px rgba(75,99,216,.18);
  font-size:16px;
  font-weight:950;
}
.student-home-avatar {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:3px solid var(--student-home-surface);
  border-radius:14px;
  color:#5f6d87;
  background:#e8ecf6;
  box-shadow:0 6px 18px rgba(38,52,80,.1);
  font-size:14px;
  font-weight:900;
}
.student-home-avatar img { width:100%; height:100%; object-fit:cover; }
.student-home-actions {
  display:flex;
  align-items:center;
  gap:8px;
}
.student-home-actions>form {
  display:flex;
  margin:0;
}
.student-home-actions .theme-toggle,
.student-home-logout {
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(29,42,63,.09);
  border-radius:14px;
  color:var(--student-home-text);
  background:rgba(255,255,255,.72);
  box-shadow:0 6px 18px rgba(38,52,80,.07);
  cursor:pointer;
}
.student-home-actions .theme-toggle {
  border-radius:14px;
}
.student-home-actions .theme-toggle__icon {
  width:19px;
  height:19px;
}
.student-home-logout svg {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.student-home-actions :is(.theme-toggle,.student-home-logout):focus-visible {
  outline:3px solid color-mix(in srgb,var(--carousel-active-accent,#E8B93F) 45%,transparent);
  outline-offset:2px;
}
.student-home-actions :is(.theme-toggle,.student-home-logout):hover {
  color:var(--carousel-active-button,#3D6EF7);
  border-color:var(--carousel-active-accent,#E8B93F);
}
.teacher-mobile-dashboard {
  display:none!important;
}
.student-home-intro { padding:28px 2px 20px; }
.student-home-intro p {
  margin:0 0 7px;
  color:var(--student-home-muted);
  font-size:13px;
  font-weight:700;
}
.student-home-intro h1 {
  margin:0;
  font-size:clamp(32px,9.4vw,42px);
  line-height:1.08;
  letter-spacing:-.045em;
}
.student-home-progress {
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  margin-bottom:26px;
  padding:15px 16px 19px;
  border:1px solid rgba(52,72,106,.06);
  border-radius:20px;
  background:var(--student-home-surface);
  box-shadow:0 8px 24px rgba(32,49,82,.045);
}
.student-home-progress__icon {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#657bea;
  background:#edf0ff;
}
.student-home-progress svg,
.student-entry-card svg {
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.student-home-progress__copy { min-width:0; }
.student-home-progress__copy span,
.student-home-progress__copy strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.student-home-progress__copy span {
  margin-bottom:3px;
  color:var(--student-home-muted);
  font-size:10px;
  font-weight:800;
}
.student-home-progress__copy strong { font-size:13px; }
.student-home-progress__value {
  display:flex;
  align-items:center;
  gap:7px;
  color:#657bea;
  font-size:12px;
}
.student-home-progress__value>span { font-size:18px; }
.student-home-progress__track {
  position:absolute;
  right:16px;
  bottom:10px;
  left:70px;
  height:4px;
  overflow:hidden;
  border-radius:99px;
  background:#edf0f5;
}
.student-home-progress__track i {
  display:block;
  height:100%;
  border-radius:inherit;
  background:#657bea;
}
.student-entry-section__heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:0 2px 13px;
}
.student-entry-section__heading h2 { margin:0; font-size:17px; letter-spacing:-.02em; }
.student-entry-section__heading span { color:var(--student-home-muted); font-size:11px; font-weight:700; }
.student-entry-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.student-entry-card {
  --entry-ink:#5269df;
  --entry-soft:#e9edff;
  position:relative;
  min-width:0;
  min-height:164px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  overflow:hidden;
  padding:16px;
  border:1px solid color-mix(in srgb,var(--entry-ink) 8%,transparent);
  border-radius:22px;
  background:var(--student-home-surface);
  box-shadow:0 7px 22px rgba(31,48,79,.04);
  transition:transform .18s ease,box-shadow .18s ease;
}
.student-entry-card:hover,
.student-entry-card:focus-visible {
  transform:translateY(-2px);
  box-shadow:0 12px 28px color-mix(in srgb,var(--entry-ink) 13%,transparent);
  outline:none;
}
.student-entry-card__icon {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  margin-bottom:19px;
  border-radius:15px;
  color:var(--entry-ink);
  background:var(--entry-soft);
}
.student-entry-card__meta {
  position:absolute;
  top:18px;
  right:15px;
  max-width:70px;
  overflow:hidden;
  color:var(--entry-ink);
  font-size:9px;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.student-entry-card>strong { margin-bottom:5px; font-size:15px; letter-spacing:-.02em; }
.student-entry-card>small {
  max-width:calc(100% - 22px);
  overflow:hidden;
  color:var(--student-home-muted);
  font-size:10px;
  font-weight:650;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.student-entry-card__arrow {
  position:absolute;
  right:15px;
  bottom:14px;
  color:var(--entry-ink);
  font-size:17px;
  transition:transform .18s ease;
}
.student-entry-card:hover .student-entry-card__arrow { transform:translateX(3px); }
.student-entry-card__puzzle {
  position:absolute;
  right:-22px;
  bottom:-23px;
  width:65px;
  height:65px;
  border-radius:19px;
  background:var(--entry-soft);
  opacity:.72;
  transform:rotate(12deg);
}
.student-entry-card__puzzle::before,
.student-entry-card__puzzle::after {
  content:"";
  position:absolute;
  border-radius:50%;
}
.student-entry-card__puzzle::before {
  top:21px;
  left:-9px;
  width:20px;
  height:20px;
  background:var(--entry-soft);
}
.student-entry-card__puzzle::after {
  top:-8px;
  left:22px;
  width:20px;
  height:20px;
  background:var(--student-home-surface);
}
.student-entry-card--blue { --entry-ink:#5572df; --entry-soft:#e8edff; }
.student-entry-card--green { --entry-ink:#329064; --entry-soft:#e4f5eb; }
.student-entry-card--orange { --entry-ink:#d47a35; --entry-soft:#fff0df; }
.student-entry-card--purple { --entry-ink:#8565d5; --entry-soft:#f0e9ff; }
.student-entry-card--teal { --entry-ink:#2b928e; --entry-soft:#def4f2; }
.student-entry-card--rose { --entry-ink:#cd6d82; --entry-soft:#fbe8ed; }
.student-home-continue { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

html[data-theme="dark"] .student-mobile-dashboard {
  --student-home-bg:#111722;
  --student-home-surface:#19212e;
  --student-home-text:#f1f4fa;
  --student-home-muted:#929caf;
  border-color:rgba(255,255,255,.045);
  box-shadow:0 20px 60px rgba(0,0,0,.3);
}
html[data-theme="dark"] .student-home-progress,
html[data-theme="dark"] .student-entry-card { border-color:rgba(255,255,255,.045); box-shadow:0 8px 24px rgba(0,0,0,.13); }
html[data-theme="dark"] .student-home-avatar { border-color:#19212e; background:#273246; color:#cbd3e3; }
html[data-theme="dark"] .student-home-progress__track { background:#2a3444; }

@media (max-width:700px) {
  .student-mobile-dashboard {
    width:100%;
    min-height:100dvh;
    padding:16px 16px calc(28px + env(safe-area-inset-bottom));
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  .student-home-header { padding-top:env(safe-area-inset-top); padding-right:52px; }
  .student-home-intro { padding-top:23px; }
  .student-entry-grid { gap:10px; }
  .student-entry-card { min-height:158px; padding:14px; border-radius:20px; }
  .student-entry-card__meta { right:13px; }
}

@media (max-width:350px) {
  .student-entry-grid { grid-template-columns:1fr; }
  .student-entry-card { min-height:142px; }
}

@media (prefers-reduced-motion:reduce) {
  .student-entry-card,
  .student-entry-card__arrow { transition:none; }
}
.upload-layout { display:grid; grid-template-columns:minmax(0,680px) minmax(280px,1fr); gap:24px; align-items:start; margin-top:24px; }.upload-card { margin:0; max-width:none; }.upload-guide { border:1px solid var(--line); border-radius:28px; background:var(--yellow-light); padding:26px; }.upload-guide pre { overflow:auto; padding:18px; border-radius:18px; background:#332d20; color:#fff8dc; line-height:1.65; }.upload-guide p { color:var(--muted); line-height:1.7; }.upload-guide code { color:var(--yellow-dark); font-weight:850; }
.portal-grid { margin-top:24px; }

/* Compact, widget-based dashboard home */
.dashboard-home { min-height:620px; display:grid; grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr); overflow:hidden; border:1px solid var(--line); border-radius:34px; background:var(--card); box-shadow:var(--shadow); }
.dashboard-column { min-width:0; display:flex; flex-direction:column; gap:13px; padding:clamp(18px,2vw,27px); overflow:hidden; }
.dashboard-column--accent { position:relative; background:var(--yellow-light); }
.dashboard-column--plain { background:var(--card); }
.dashboard-hero { min-height:126px; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.dashboard-hero h1 { max-width:620px; margin-bottom:8px; font-size:clamp(29px,3.25vw,46px); line-height:1.04; }
.dashboard-hero p { margin:0; color:var(--muted); line-height:1.55; }
.dashboard-hero-icon { flex:0 0 auto; font-size:clamp(46px,5vw,72px); line-height:1; opacity:.2; transform:rotate(-7deg); }
.dashboard-widget { min-width:0; padding:15px 16px; border:1px solid var(--line); border-radius:22px; background:var(--card); box-shadow:0 10px 26px rgba(130,96,20,.06); }
.continue-widget { min-height:132px; display:grid; grid-template-columns:76px minmax(0,1fr) 42px; align-items:center; gap:15px; }
.widget-copy { min-width:0; }
.widget-copy h2,.widget-heading h2 { margin:2px 0 5px; font-size:clamp(20px,2vw,27px); line-height:1.12; }
.widget-copy p,.insight-widget p { margin:0; color:var(--muted); font-size:13px; line-height:1.45; }
.widget-kicker { color:var(--yellow-dark); font-size:10px; font-weight:1000; letter-spacing:.12em; }
.widget-arrow { width:40px; height:40px; display:grid; place-items:center; border-radius:13px; background:var(--yellow); font-size:21px; font-weight:900; }
.widget-symbol { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:var(--yellow-light); font-size:25px; }
.progress-ring { position:relative; width:52px; height:52px; flex:0 0 52px; display:grid; place-items:center; }
.progress-ring--large { width:70px; height:70px; flex-basis:70px; }
.progress-ring svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; transform:rotate(-90deg); }
.progress-ring circle { fill:none; stroke-width:5; }
.progress-ring__track { stroke:#f0e5c7; }
.progress-ring__value { stroke:var(--yellow-strong); stroke-linecap:round; }
.progress-ring strong { position:relative; z-index:1; font-size:11px; }
.progress-ring--large strong { font-size:14px; }
.dashboard-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.metric-widget { min-height:82px; display:grid; grid-template-columns:auto 1fr; grid-template-rows:1fr 1fr; column-gap:9px; align-items:center; padding:11px 13px; border:1px solid var(--line); border-radius:19px; background:var(--card); }
.metric-widget>span { grid-row:1/-1; font-size:24px; }
.metric-widget strong { align-self:end; font-size:25px; line-height:1; }
.metric-widget small { align-self:start; color:var(--muted); font-weight:800; }
.quick-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:auto; }
.quick-actions a { min-height:46px; display:flex; align-items:center; justify-content:center; gap:7px; padding:8px; border:1px solid var(--line); border-radius:15px; background:var(--card); font-size:13px; font-weight:900; }
.quick-actions a:hover { border-color:var(--yellow-strong); }
.widget-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:9px; }
.widget-heading h2 { margin-bottom:0; }
.widget-heading>a { color:var(--yellow-dark); font-size:12px; font-weight:900; }
.dashboard-list-widget { min-height:0; display:flex; flex-direction:column; }
.compact-list,.activity-list { min-height:0; display:grid; gap:7px; }
.compact-row { min-width:0; min-height:58px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:11px; padding:7px 9px; border-radius:16px; background:var(--yellow-light); }
.compact-row>div:not(.progress-ring),.activity-row>div { min-width:0; }
.compact-row strong,.compact-row small,.activity-row strong,.activity-row small,.teacher-chip strong,.teacher-chip small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.compact-row small,.activity-row small,.teacher-chip small { margin-top:3px; color:var(--muted); font-size:11px; }
.compact-row>span:last-child { color:var(--yellow-dark); font-weight:900; }
.compact-empty { display:grid; place-items:center; min-height:58px; padding:10px; border:1px dashed var(--line); border-radius:15px; color:var(--muted); font-size:13px; text-align:center; }
.teacher-widget { margin-top:auto; }
.teacher-chips { display:flex; flex-wrap:wrap; gap:8px; }
.teacher-chip { min-width:0; flex:1 1 130px; display:flex; align-items:center; gap:9px; padding:8px 10px; border-radius:15px; background:var(--yellow-light); }
.teacher-chip>span { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:10px; background:var(--yellow); font-weight:900; }
.teacher-chip>div { min-width:0; }
.class-code { min-width:58px; padding:7px 8px; border-radius:11px; background:var(--yellow); color:#5c4508; font-size:11px; font-weight:950; text-align:center; }
.activity-widget { min-height:0; flex:1; display:flex; flex-direction:column; }
.activity-list { align-content:start; }
.activity-row { min-width:0; min-height:62px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; padding:8px 9px; border-bottom:1px solid var(--line); }
.activity-row:last-child { border-bottom:0; }
.activity-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:var(--yellow); font-weight:900; }
.activity-row time { color:var(--muted); font-size:10px; white-space:nowrap; }
.dashboard-side-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.insight-widget { display:flex; align-items:flex-start; gap:11px; }
.insight-widget h3 { margin:2px 0 4px; font-size:18px; }
.dashboard-wide-action { min-height:48px; display:flex; align-items:center; justify-content:space-between; padding:10px 16px; border-radius:16px; background:var(--yellow); font-weight:900; }
.dashboard-wide-action strong { font-size:23px; }

/* Reference-inspired dashboard: three compact columns with expandable widgets. */
.dashboard-top-hero { position:relative; height:clamp(170px,22vh,210px); display:flex; align-items:center; overflow:hidden; margin-bottom:14px; padding:clamp(24px,3.6vw,44px); border:1px solid var(--line); border-radius:30px; background:var(--yellow-light); box-shadow:var(--shadow); }
.dashboard-top-hero>div:first-child { position:relative; z-index:2; max-width:820px; }
.dashboard-top-hero h1 { margin:6px 0 10px; font-size:clamp(38px,4.7vw,64px); line-height:1.02; letter-spacing:-.035em; }
.dashboard-top-hero p { margin:0; color:var(--muted); font-size:clamp(14px,1.5vw,18px); line-height:1.55; }
.dashboard-top-hero__scale { position:absolute; z-index:1; right:clamp(28px,6vw,80px); top:50%; font-size:clamp(70px,9vw,120px); line-height:1; opacity:.1; transform:translateY(-50%) rotate(-7deg); }
.dashboard-top-hero__blocks { position:absolute; right:28px; bottom:24px; display:flex; align-items:end; gap:7px; opacity:.24; transform:rotate(5deg); }
.dashboard-top-hero__blocks i { width:19px; height:19px; border-radius:5px; background:var(--yellow-strong); }
.dashboard-top-hero__blocks i:nth-child(2) { height:29px; }
.dashboard-top-hero__blocks i:nth-child(3) { height:13px; }
.widget-dashboard { height:calc(100vh - 80px); min-height:600px; display:grid; grid-template-columns:minmax(190px,.72fr) minmax(340px,1.42fr) minmax(270px,1fr); gap:14px; padding:15px; overflow:hidden; border:1px solid var(--line); border-radius:34px; background:#f8f5ec; box-shadow:var(--shadow); }
.dashboard-top-hero+.widget-dashboard { height:calc(100vh - 94px - clamp(170px,22vh,210px)); min-height:420px; }
.widget-dashboard .widget-column { min-height:0; gap:14px; padding:0; overflow:visible; }
.widget-dashboard .dashboard-widget { position:relative; min-height:0; flex:1 1 0; overflow:hidden; padding:17px; border-radius:20px; transition:flex-grow .22s cubic-bezier(.2,.75,.25,1),opacity .16s linear,filter .16s linear,transform .2s ease,box-shadow .2s ease; }
.widget-dashboard .widget-column--main .expandable-widget:first-child { flex-grow:1.08; }
.widget-dashboard .expandable-widget:is(:hover,:focus-within,.is-widget-open) { z-index:3; flex-grow:1.72; overflow:auto; transform:translateY(-2px); box-shadow:0 20px 42px rgba(75,56,17,.14); outline:none; }
.widget-details { max-height:0; margin-top:0; overflow:hidden; opacity:0; transform:translateY(6px); transition:max-height .22s ease,margin .22s ease,opacity .14s linear,transform .2s ease; color:var(--muted); font-size:12px; line-height:1.55; }
.widget-details p { margin:4px 0; }
.widget-details a { color:var(--yellow-dark); font-weight:900; }
.expandable-widget:is(:hover,:focus-within,.is-widget-open) .widget-details { max-height:180px; margin-top:12px; opacity:1; transform:none; }
.profile-widget { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.profile-widget h1 { margin:5px 0 8px; font-size:clamp(24px,2.3vw,34px); }
.profile-widget>p { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.profile-mark { width:70px; height:70px; display:grid; place-items:center; margin-bottom:14px; border-radius:18px; background:var(--yellow); box-shadow:0 10px 24px rgba(130,96,20,.12); font-size:28px; font-weight:950; }
.widget-card-head { display:flex; align-items:center; gap:10px; margin-bottom:13px; }
.widget-card-head>div { min-width:0; flex:1; }
.widget-card-head h2 { margin:2px 0 0; font-size:clamp(19px,1.8vw,25px); line-height:1.1; }
.widget-card-head>a { color:var(--yellow-dark); font-size:11px; font-weight:900; }
.widget-primary-link { min-height:43px; display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; padding:9px 12px; border-radius:13px; background:var(--yellow); font-size:13px; font-weight:900; }
.action-widget { display:flex; flex-direction:column; justify-content:center; }
.action-links { display:grid; grid-template-columns:1fr; gap:7px; }
.action-links a { padding:8px 10px; border-radius:11px; background:var(--yellow-light); }
.continue-summary { display:grid; grid-template-columns:70px minmax(0,1fr) auto; align-items:center; gap:13px; }
.continue-summary>div:not(.progress-ring) { min-width:0; }
.continue-summary>div>strong,.continue-summary>div>small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.continue-summary>div>small { margin-top:5px; color:var(--muted); }
.widget-summary-list { min-height:0; display:grid; gap:8px; }
.widget-summary-list>a,.widget-summary-list>div:not(.compact-empty) { min-width:0; display:block; padding:10px 11px; border-radius:13px; background:var(--yellow-light); }
.widget-summary-list span,.widget-summary-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.widget-summary-list span { font-size:13px; font-weight:900; }
.widget-summary-list small { margin-top:4px; color:var(--muted); font-size:11px; }
.widget-description { margin:0; color:var(--muted); font-size:13px; line-height:1.55; }

html[data-theme="dark"] .widget-dashboard { background:#0c1528; }
html[data-theme="dark"] .dashboard-top-hero { background:var(--yellow-light); }

@media (hover:none),(pointer:coarse) {
  .widget-dashboard { height:auto; min-height:0; }
  .widget-dashboard:has(.expandable-widget:is(:hover,:focus-within)) .expandable-widget:not(:is(:hover,:focus-within)) { opacity:1; filter:none; transform:none; }
  .widget-dashboard .expandable-widget { flex:auto; overflow:visible; }
  .widget-dashboard .widget-details { max-height:180px; margin-top:10px; opacity:1; transform:none; }
}

html.reduce-effects .widget-dashboard.has-open-widget .expandable-widget:not(.is-widget-open) { filter:none; }

/* Calm dashboard refinement: fixed geometry, detail drawers, no reflow. */
.widget-dashboard { grid-template-columns:minmax(200px,.72fr) minmax(360px,1.42fr) minmax(280px,1fr); gap:16px; padding:18px; background:#f3f4f8; }
.widget-dashboard .widget-column { display:grid; gap:16px; }
.widget-dashboard .widget-column--side { grid-template-rows:1.08fr .92fr; }
.widget-dashboard .widget-column--main { grid-template-rows:.92fr 1.08fr; }
.widget-dashboard .widget-column--right { grid-template-rows:1.08fr .92fr; }
.widget-dashboard .dashboard-widget,
.widget-dashboard .widget-column--main .expandable-widget:first-child { flex:none; min-height:0; padding:19px; border-color:rgba(210,204,185,.72); border-radius:24px; box-shadow:0 12px 30px rgba(54,45,24,.075); transition:opacity .16s linear,filter .16s linear,transform .2s cubic-bezier(.2,.8,.25,1),box-shadow .2s ease,border-color .2s ease; }
.widget-dashboard .widget-column--side .dashboard-widget:first-child { background:#fff3c9; }
.widget-dashboard .widget-column--side .dashboard-widget:last-child { background:#f2efff; }
.widget-dashboard .widget-column--main .dashboard-widget:first-child { background:#eaf5ff; }
.widget-dashboard .widget-column--main .dashboard-widget:last-child { background:var(--card); }
.widget-dashboard .widget-column--right .dashboard-widget:first-child { background:#fff7e4; }
.widget-dashboard .widget-column--right .dashboard-widget:last-child { background:#eaf8ef; }
.widget-dashboard.has-open-widget .expandable-widget:not(.is-widget-open) { opacity:.38; filter:blur(1px); transform:scale(.99); }
.widget-dashboard .expandable-widget:is(:hover,:focus-within,.is-widget-open) { z-index:5; flex:none; overflow:hidden; transform:translateY(-4px) scale(1.025); border-color:var(--yellow-strong); box-shadow:0 24px 52px rgba(49,39,16,.16); }
.widget-dashboard .widget-card-head { padding-bottom:12px; border-bottom:1px solid rgba(122,108,73,.12); }
.widget-dashboard .widget-symbol { width:42px; height:42px; border-radius:13px; background:rgba(255,255,255,.72); font-size:21px; }
.widget-dashboard .profile-mark { width:76px; height:76px; border-radius:22px; background:#fff; box-shadow:0 12px 28px rgba(73,56,15,.1); }
.widget-dashboard .profile-widget h1 { font-size:clamp(23px,2vw,31px); }
.widget-dashboard .widget-summary-list { gap:9px; }
.widget-dashboard .widget-summary-list>a,
.widget-dashboard .widget-summary-list>div:not(.compact-empty) { padding:11px 12px; border:1px solid rgba(122,108,73,.08); background:rgba(255,255,255,.68); }
.widget-dashboard .widget-primary-link { background:#fff; border:1px solid rgba(122,108,73,.12); box-shadow:0 7px 18px rgba(53,43,18,.06); }
.widget-dashboard .widget-details { position:absolute; z-index:4; left:12px; right:12px; bottom:12px; max-height:none; margin:0; padding:13px 14px; border:1px solid var(--line); border-radius:16px; background:var(--card); box-shadow:0 16px 34px rgba(49,39,16,.14); opacity:0; transform:translate3d(0,calc(100% + 18px),0); transition:opacity .14s linear,transform .22s cubic-bezier(.2,.8,.25,1); }
.widget-dashboard .expandable-widget:is(:hover,:focus-within,.is-widget-open) .widget-details { max-height:none; margin:0; opacity:1; transform:translate3d(0,0,0); }
.widget-dashboard .action-links { display:grid; }
.widget-dashboard .action-links a { background:var(--yellow-light); }

html[data-theme="dark"] .widget-dashboard { background:#091224; }
html[data-theme="dark"] .widget-dashboard .widget-column--side .dashboard-widget:first-child,
html[data-theme="dark"] .widget-dashboard .widget-column--side .dashboard-widget:last-child,
html[data-theme="dark"] .widget-dashboard .widget-column--main .dashboard-widget:first-child,
html[data-theme="dark"] .widget-dashboard .widget-column--main .dashboard-widget:last-child,
html[data-theme="dark"] .widget-dashboard .widget-column--right .dashboard-widget:first-child,
html[data-theme="dark"] .widget-dashboard .widget-column--right .dashboard-widget:last-child { background:var(--card); border-color:var(--line); }
html[data-theme="dark"] .widget-dashboard .widget-summary-list>a,
html[data-theme="dark"] .widget-dashboard .widget-summary-list>div:not(.compact-empty),
html[data-theme="dark"] .widget-dashboard .widget-primary-link,
html[data-theme="dark"] .widget-dashboard .widget-symbol,
html[data-theme="dark"] .widget-dashboard .profile-mark { background:var(--yellow-light); }

/* Reference dashboard shell. Navigation and widget interactions stay independent. */
.dashboard-reference-page {
  height:calc(100vh - 40px);
  min-height:640px;
  display:grid;
  grid-template-rows:auto 116px minmax(0,1fr);
  gap:16px;
}
.dashboard-reference-header {
  min-height:104px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:8px 4px 2px;
}
.dashboard-greeting { min-width:0; }
.dashboard-greeting .eyebrow { margin-bottom:5px; }
.dashboard-greeting h1 {
  margin:0 0 7px;
  font-size:clamp(34px,4vw,50px);
  line-height:1.05;
  letter-spacing:-.04em;
}
.dashboard-greeting h1 span {
  display:inline-block;
  margin-left:5px;
  font-size:.55em;
  transform:rotate(-8deg);
}
.dashboard-greeting p {
  margin:0;
  color:var(--muted);
  font-size:14px;
}
.dashboard-user-tools {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:12px;
  padding:7px 8px 7px 10px;
  border:1px solid rgba(122,108,73,.13);
  border-radius:18px;
  background:rgba(255,255,255,.7);
  box-shadow:0 10px 28px rgba(54,45,24,.06);
}
.dashboard-notification {
  position:relative;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:12px;
  color:var(--text);
  background:transparent;
  cursor:pointer;
}
.dashboard-notification:hover,
.dashboard-notification:focus-visible {
  background:var(--yellow-light);
  outline:2px solid var(--yellow-strong);
  outline-offset:2px;
}
.dashboard-notification::after {
  content:"";
  position:absolute;
  top:7px;
  right:7px;
  width:6px;
  height:6px;
  border:2px solid var(--card);
  border-radius:50%;
  background:#e65b4f;
}
.dashboard-user-copy { min-width:0; }
.dashboard-user-copy strong,
.dashboard-user-copy small {
  display:block;
  max-width:180px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-user-copy strong { font-size:13px; }
.dashboard-user-copy small {
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
}
.dashboard-user-avatar {
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#fff;
  background:#6550a8;
  font-size:16px;
  font-weight:950;
}
.dashboard-workflow-panel {
  min-width:0;
  padding:12px 18px 13px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--card);
  box-shadow:0 12px 32px rgba(54,45,24,.065);
}
.dashboard-workflow-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:8px;
}
.dashboard-workflow-heading>div {
  display:flex;
  align-items:center;
  gap:8px;
}
.dashboard-workflow-icon { font-size:18px; }
.dashboard-workflow-heading strong { font-size:13px; }
.dashboard-workflow-heading>a {
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  color:var(--yellow-dark);
  font-size:10px;
  font-weight:900;
}
.dashboard-workflow-track {
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:start;
  padding:0 5%;
}
.dashboard-workflow-line {
  position:absolute;
  z-index:0;
  top:13px;
  left:12%;
  right:12%;
  height:2px;
  background:#e5e4e0;
}
.workflow-step {
  position:relative;
  z-index:1;
  min-width:0;
  display:grid;
  justify-items:center;
  color:#a39f96;
}
.workflow-step>span {
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border:2px solid #deddd9;
  border-radius:50%;
  background:var(--card);
  font-size:10px;
  font-weight:950;
}
.workflow-step>small {
  margin-top:3px;
  color:inherit;
  font-size:8px;
  font-weight:900;
}
.workflow-step>strong {
  max-width:100%;
  overflow:hidden;
  color:inherit;
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workflow-step.is-complete,
.workflow-step.is-current { color:var(--text); }
.workflow-step.is-complete>span {
  border-color:var(--yellow-strong);
  background:var(--yellow-strong);
}
.workflow-step.is-current>span {
  border-color:var(--yellow-strong);
  color:var(--yellow-dark);
  background:var(--yellow-light);
}
.dashboard-reference-page>.widget-dashboard {
  width:100%;
  height:auto;
  min-height:0;
}

html[data-theme="dark"] .dashboard-user-tools,
html[data-theme="dark"] .dashboard-workflow-panel,
html[data-theme="dark"] .workflow-step>span {
  background:var(--card);
}
html[data-theme="dark"] .dashboard-user-tools { border-color:var(--line); }

@media (max-width:980px),(max-height:679px) {
  .dashboard-reference-page {
    height:auto;
    min-height:0;
    grid-template-rows:auto auto auto;
  }
  .dashboard-reference-header { min-height:92px; }
  .dashboard-reference-page>.widget-dashboard { height:auto; min-height:0; }
}

@media (max-width:720px) {
  .dashboard-reference-header {
    align-items:flex-start;
    flex-direction:column;
    gap:14px;
  }
  .dashboard-user-tools {
    width:100%;
    justify-content:flex-start;
  }
  .dashboard-user-copy { flex:1; }
  .dashboard-greeting h1 { font-size:32px; }
  .dashboard-workflow-panel {
    overflow-x:auto;
    padding-inline:13px;
  }
  .dashboard-workflow-heading {
    position:sticky;
    left:0;
  }
  .dashboard-workflow-track {
    min-width:480px;
    padding-inline:18px;
  }
  .dashboard-workflow-line {
    left:54px;
    right:54px;
  }
}

@media (hover:none),(pointer:coarse) {
  .widget-dashboard .widget-column { grid-template-rows:none; }
  .widget-dashboard .dashboard-widget { overflow:visible; transform:none; }
  .widget-dashboard .widget-details { position:relative; left:auto; right:auto; bottom:auto; max-height:none; margin-top:12px; opacity:1; transform:none; box-shadow:none; }
  .widget-dashboard.has-open-widget .expandable-widget:not(.is-widget-open) { opacity:.45; filter:none; }
}

@media (min-width:981px) and (min-height:680px) {
  .dashboard-home { height:calc(100vh - 80px); min-height:0; }
}

@media (max-width:980px),(max-height:679px) {
  .dashboard-top-hero { height:auto; min-height:170px; }
  .dashboard-top-hero+.widget-dashboard { height:auto; min-height:0; }
  .dashboard-home { min-height:0; grid-template-columns:1fr; overflow:visible; }
  .dashboard-column { overflow:visible; }
  .widget-dashboard { height:auto; min-height:0; grid-template-columns:1fr; overflow:visible; }
  .widget-dashboard .widget-column { overflow:visible; }
  .widget-dashboard .expandable-widget { min-height:170px; flex:auto; }
}

@media (max-width:900px) { .site-content{width:calc(100% - 106px);margin-left:91px}.card-grid{grid-template-columns:repeat(2,1fr)}.welcome-card,.page-heading,.course-row{align-items:flex-start;flex-direction:column}.row-actions{justify-content:flex-start}.upload-layout{grid-template-columns:1fr} }
@media (max-width:600px) { .app-sidebar{width:64px;padding:12px 7px}.app-sidebar:is(:hover,:focus-within,.is-held-open),html.nav-held .app-sidebar{width:min(238px,calc(100vw - 18px))}.site-content{width:calc(100% - 82px);margin-left:73px;padding-top:10px}.brand{padding-left:4px}.brand img{width:40px;height:40px;flex-basis:40px}.main-nav a,.sidebar-action,.account-menu{padding-left:8px}.nav-icon{width:30px;flex-basis:30px}.card-grid,.stats-grid{grid-template-columns:1fr}.welcome-card,.page-heading{padding:24px;border-radius:27px}.feature-card{align-items:stretch;flex-direction:column}.primary-button,.secondary-button{width:100%}.inline-form{flex-direction:column}.section-heading{align-items:flex-start;flex-direction:column}.lesson-list a{grid-template-columns:1fr}.invite-code{width:100%}.row-actions,.row-actions form{width:100%}.row-actions .secondary-button,.row-actions .danger-button{flex:1}.narrow-card{margin:20px auto;padding:24px}.dashboard-home{border-radius:24px}.dashboard-column{padding:17px}.dashboard-hero{min-height:auto}.dashboard-hero h1{font-size:30px}.dashboard-hero-icon{display:none}.continue-widget{grid-template-columns:62px minmax(0,1fr) 38px}.progress-ring--large{width:58px;height:58px}.dashboard-metrics,.quick-actions,.dashboard-side-grid{grid-template-columns:1fr}.metric-widget{min-height:68px}.teacher-chips{display:grid}.activity-row{grid-template-columns:auto minmax(0,1fr)}.activity-row time{display:none} }

@media (hover:none),(pointer:coarse) {
  .app-sidebar { transition-duration:.12s; }
  .app-sidebar:is(:hover,:focus-within,.is-held-open)~.site-content { filter:none; }
  .site-content::after { background:rgba(255,250,240,.58); }
}

::view-transition-old(cowlish-sidebar),
::view-transition-new(cowlish-sidebar) {
  animation:none;
}

::view-transition-group(cowlish-sidebar) {
  z-index:100;
}

::view-transition-group(root) {
  z-index:1;
  overflow:clip;
}

html:is(.page-transition-down,.page-transition-up)::view-transition-old(root) {
  animation:cowlish-soft-out .12s cubic-bezier(.4,0,1,1) both;
}
html:is(.page-transition-down,.page-transition-up)::view-transition-new(root) {
  animation:cowlish-soft-in .15s .08s cubic-bezier(0,.7,.25,1) both;
}

@keyframes cowlish-soft-out {
  from { opacity:1; }
  to { opacity:.18; }
}
@keyframes cowlish-soft-in {
  from { opacity:.18; }
  to { opacity:1; }
}

html.reduce-effects.page-transition-down::view-transition-old(root),
html.reduce-effects.page-transition-up::view-transition-old(root) {
  animation-duration:.09s;
}
html.reduce-effects.page-transition-down::view-transition-new(root),
html.reduce-effects.page-transition-up::view-transition-new(root) {
  animation-duration:.12s;
  animation-delay:.06s;
}

@media (prefers-reduced-motion:reduce) {
  .dashboard-intro { animation-duration:.12s; }
  .dashboard-intro__content,.dashboard-intro__mark,.dashboard-intro__blocks i { animation:none; }
  .app-sidebar,.nav-label,.site-content::after { transition:none; }
  .page-enter-down .site-content,.page-enter-up .site-content { opacity:1; }
  ::view-transition-old(root),
  ::view-transition-new(root) { animation:none!important; }
}

/* Compact dashboard replica */
.replica-dashboard {
  height:calc(100vh - 40px);
  min-height:650px;
  display:grid;
  grid-template-rows:62px 140px minmax(0,1fr);
  gap:14px;
}
.replica-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 3px;
}
.replica-header>div:first-child { min-width:0; }
.replica-header h1 {
  margin:0 0 5px;
  font-size:clamp(29px,3.3vw,42px);
  line-height:1;
  letter-spacing:-.045em;
}
.replica-header h1 span {
  display:inline-block;
  font-size:.65em;
  transform:rotate(-8deg);
}
.replica-header p {
  margin:0;
  color:var(--muted);
  font-size:12px;
}
.replica-userbar {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:9px;
}
.replica-profile-link {
  display:flex;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:4px 8px;
  border:1px solid transparent;
  border-radius:15px;
  transition:background-color .16s ease,border-color .16s ease,transform .16s ease;
}
.replica-profile-link:hover,
.replica-profile-link:focus-visible {
  border-color:var(--line);
  background:var(--yellow-light);
  outline:none;
  transform:translateY(-1px);
}
.replica-tool-button {
  position:relative;
  width:35px;
  height:35px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:11px;
  background:transparent;
  cursor:pointer;
}
.replica-tool-button:hover,
.replica-tool-button:focus-visible {
  background:var(--yellow-light);
  outline:2px solid var(--yellow-strong);
  outline-offset:1px;
}
.replica-tool-button i {
  position:absolute;
  top:4px;
  right:3px;
  width:8px;
  height:8px;
  border:2px solid var(--bg);
  border-radius:50%;
  background:#ef4545;
}
.replica-tool-button[data-notification-count="0"] i { display:none; }
.replica-avatar {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#6743c4;
  font-size:13px;
  font-weight:950;
}
.replica-avatar--image { object-fit:cover; }
.replica-user-name {
  display:flex;
  flex-direction:column;
  max-width:150px;
}
.replica-user-name strong,
.replica-user-name small {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-user-name strong { font-size:12px; }
.replica-user-name small {
  color:var(--muted);
  font-size:9px;
  font-weight:800;
}
.replica-chevron {
  color:var(--muted);
  font-size:14px;
}

/* Personal center */
.profile-center { display:grid; gap:22px; }
.profile-hero {
  min-height:170px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:30px 34px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:30px;
  background:var(--card);
  box-shadow:var(--shadow);
}
.profile-identity { display:flex; align-items:center; gap:22px; min-width:0; }
.profile-avatar {
  width:92px;
  height:92px;
  flex:0 0 92px;
  border:5px solid #fff;
  border-radius:28px;
  object-fit:cover;
  box-shadow:0 13px 30px rgba(86,62,13,.16);
}
.profile-avatar--fallback {
  display:grid;
  place-items:center;
  color:#fff;
  background:#6743c4;
  font-size:35px;
  font-weight:950;
}
.profile-identity h1 { margin:0 0 7px; font-size:clamp(31px,4vw,48px); }
.profile-identity p { margin:0; color:var(--muted); font-weight:750; }
.profile-stat-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.profile-stat-grid--teacher { grid-template-columns:repeat(3,minmax(0,1fr)); }
.profile-stat-grid article {
  min-height:112px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:1fr 1fr;
  align-items:center;
  column-gap:13px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:23px;
  background:var(--card);
  box-shadow:0 10px 25px rgba(130,96,20,.06);
}
.profile-stat-grid article>span { grid-row:1/-1; font-size:30px; }
.profile-stat-grid strong { align-self:end; font-size:30px; line-height:1; }
.profile-stat-grid small { align-self:start; margin-top:5px; color:var(--muted); font-weight:800; }
.profile-layout {
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);
  gap:20px;
  align-items:start;
}
.profile-card {
  padding:26px;
  border:1px solid var(--line);
  border-radius:27px;
  background:var(--card);
  box-shadow:var(--shadow);
}
.profile-card>header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px;
}
.profile-card>header h2 { margin:0; font-size:26px; }
.profile-card>header>.eyebrow,
.profile-card>header div>.eyebrow { margin-bottom:5px; }
.profile-card>header>span { font-size:27px; }
.profile-form { display:grid; gap:23px; }
.profile-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.profile-form label { display:grid; align-content:start; gap:7px; min-width:0; font-weight:850; }
.profile-form input,
.profile-form textarea {
  width:100%;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fffdf8;
  padding:12px 14px;
  color:var(--text);
  outline:none;
}
.profile-form input:focus,
.profile-form textarea:focus { border-color:var(--yellow-strong); box-shadow:0 0 0 3px rgba(255,201,63,.17); }
.profile-form label small { color:var(--muted); font-size:11px; font-weight:600; line-height:1.45; }
.profile-form label em { color:var(--danger); font-size:12px; font-style:normal; }
.profile-form-wide { grid-column:1/-1; }
.profile-form footer { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-top:3px; }
.profile-form footer small { color:var(--muted); line-height:1.5; }
.profile-side { display:grid; gap:20px; }
.profile-growth dl { display:grid; gap:0; margin:0; }
.profile-growth dl>div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}
.profile-growth dt { color:var(--muted); font-size:13px; font-weight:750; }
.profile-growth dd { margin:0; font-weight:900; text-align:right; }
.profile-growth>p { margin:17px 0 0; color:var(--muted); font-size:12px; line-height:1.6; }
.profile-recent>div { display:grid; gap:5px; }
.profile-recent article { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
.profile-recent article:last-child { border-bottom:0; }
.profile-recent article>span {
  width:30px;
  height:30px;
  flex:0 0 30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:var(--yellow-light);
  color:var(--yellow-dark);
  font-weight:950;
}
.profile-recent article>div { min-width:0; }
.profile-recent strong,
.profile-recent small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.profile-recent strong { font-size:13px; }
.profile-recent small { margin-top:3px; color:var(--muted); font-size:11px; }
.profile-empty { margin:0; padding:20px; border:1px dashed var(--line); border-radius:16px; color:var(--muted); text-align:center; }
.account-menu.active { border-radius:16px; background:var(--yellow-light); color:var(--text); }

@media (max-width:900px) {
  .profile-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .profile-stat-grid--teacher { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .profile-layout { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .profile-hero { align-items:flex-start; flex-direction:column; padding:24px; }
  .profile-avatar { width:74px; height:74px; flex-basis:74px; border-radius:22px; }
  .profile-stat-grid,
  .profile-stat-grid--teacher { grid-template-columns:1fr 1fr; }
  .profile-stat-grid article { min-height:94px; padding:15px; }
  .profile-form-grid { grid-template-columns:1fr; }
  .profile-form-wide { grid-column:auto; }
  .profile-form footer { align-items:stretch; flex-direction:column; }
}
.replica-overview {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(440px,1.75fr) minmax(160px,.55fr) minmax(170px,.55fr);
  gap:14px;
}
.replica-progress-panel,
.replica-stat-panel,
.replica-next-panel {
  min-width:0;
  overflow:hidden;
  padding:14px 16px;
  border:1px solid rgba(220,205,169,.68);
  border-radius:18px;
  background:var(--card);
  box-shadow:0 9px 28px rgba(63,49,18,.055);
}
.replica-progress-panel>header,
.replica-stat-panel>header,
.replica-next-panel>header {
  min-height:21px;
  display:flex;
  align-items:center;
  gap:7px;
}
.replica-progress-panel>header {
  justify-content:space-between;
}
.replica-progress-panel>header>div {
  display:flex;
  align-items:center;
  gap:7px;
}
.replica-progress-panel header strong,
.replica-stat-panel header strong,
.replica-next-panel header strong { font-size:12px; }
.replica-progress-panel header small {
  padding:5px 9px;
  border-radius:9px;
  color:var(--muted);
  background:#f4f4f5;
  font-size:9px;
  font-weight:850;
}
.replica-stat-panel header small {
  color:#38a94d;
  font-size:9px;
}
.replica-steps {
  position:relative;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  margin-top:10px;
}
.replica-step-line {
  position:absolute;
  z-index:0;
  top:13px;
  left:8%;
  right:8%;
  height:2px;
  background:#dfe3e8;
}
.replica-step {
  position:relative;
  z-index:1;
  display:grid;
  justify-items:center;
  color:#777c87;
}
.replica-step b {
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border:2px solid #cfd5df;
  border-radius:50%;
  color:#657083;
  background:var(--card);
  font-size:10px;
}
.replica-step small {
  margin-top:3px;
  font-size:8px;
}
.replica-step strong {
  max-width:72px;
  overflow:hidden;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-step.is-done b {
  border-color:#26ad45;
  color:#fff;
  background:#26ad45;
}
.replica-step.is-current b {
  border:3px solid #ffae16;
  color:#fff;
  background:#ffae16;
  box-shadow:0 0 0 3px #fff0bd;
}
.replica-empty-panel {
  display:flex;
  flex-direction:column;
}
.replica-empty-panel>div {
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  color:var(--muted);
}
.replica-empty-panel>div b {
  color:#b8b9bd;
  font-size:32px;
  line-height:1;
}
.replica-empty-panel>div span {
  margin-top:5px;
  font-size:10px;
}
.replica-next-panel {
  display:flex;
  flex-direction:column;
}
.replica-next-panel>div {
  min-height:0;
  flex:1;
  display:flex;
  justify-content:center;
  flex-direction:column;
  padding:4px 0;
}
.replica-next-panel>div b,
.replica-next-panel>div span { display:block; }
.replica-next-panel>div b {
  overflow:hidden;
  font-size:15px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-next-panel>div span {
  margin-top:4px;
  overflow:hidden;
  color:var(--muted);
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-next-panel>a {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:27px;
  border-radius:10px;
  background:#fff0c8;
  font-size:9px;
  font-weight:900;
}
.replica-card-grid.widget-dashboard {
  width:100%;
  height:auto;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(275px,1fr) minmax(285px,1.05fr);
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:14px;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.replica-card-grid.widget-dashboard .replica-card {
  min-height:0;
  padding:14px 15px;
  overflow:hidden;
  border:1px solid rgba(220,205,169,.58);
  border-radius:18px;
  box-shadow:0 9px 27px rgba(63,49,18,.05);
}
.replica-card-grid .replica-card--today { background:#fff5d5!important; }
.replica-card-grid .replica-card--classes { background:#edf6ff!important; }
.replica-card-grid .replica-card--recent { background:#fff8ee!important; }
.replica-card-grid .replica-card--quick { background:#f4f1ff!important; }
.replica-card-grid .replica-card--content { background:var(--card)!important; }
.replica-card-grid .replica-card--follow { background:#ebf8ef!important; }
.replica-card-grid.widget-dashboard .expandable-widget:is(:hover,:focus-within,.is-widget-open) {
  z-index:7;
  overflow:hidden;
  transform:translateY(-3px) scale(1.018);
}
.replica-card-title {
  display:flex;
  align-items:center;
  gap:9px;
  min-height:38px;
  margin-bottom:8px;
  padding:0 0 8px;
  border-bottom:1px solid rgba(105,96,75,.1);
}
.replica-card-title>span {
  width:31px;
  height:31px;
  flex:0 0 31px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:rgba(255,255,255,.84);
  font-size:16px;
}
.replica-card-title>div {
  min-width:0;
  flex:1;
}
.replica-card-title small {
  display:block;
  color:#7055d0;
  font-size:7px;
  font-weight:1000;
  letter-spacing:.1em;
}
.replica-card-title h2 {
  margin:1px 0 0;
  font-size:16px;
  line-height:1.05;
}
.replica-card-title>a {
  color:#3a73d9;
  font-size:8px;
  font-weight:900;
}
.replica-card>p {
  margin:0;
  color:#615c51;
  font-size:10px;
  line-height:1.55;
}
.replica-card-action {
  width:max-content;
  min-width:76px;
  min-height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:10px;
  padding:6px 12px;
  border-radius:9px;
  background:#ffd978;
  font-size:9px;
  font-weight:900;
}
.replica-data-list,
.replica-activity-list {
  display:grid;
  gap:5px;
}
.replica-data-list>a {
  position:relative;
  min-height:39px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  padding:7px 10px;
  border:1px solid rgba(92,121,158,.09);
  border-radius:9px;
  background:rgba(255,255,255,.8);
}
.replica-data-list>a strong,
.replica-data-list>a small {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-data-list>a strong { font-size:9px; }
.replica-data-list>a small {
  grid-column:1;
  margin-top:2px;
  color:var(--muted);
  font-size:7px;
}
.replica-data-list>a>b,
.replica-data-list>a>em {
  grid-column:2;
  grid-row:1/3;
  color:#2caf4a;
  font-size:9px;
  font-style:normal;
}
.replica-list-empty {
  min-height:48px;
  display:grid;
  place-items:center;
  border:1px dashed rgba(122,108,73,.22);
  border-radius:10px;
  color:var(--muted);
  background:rgba(255,255,255,.52);
  font-size:9px;
}
.replica-activity-list>a,
.replica-activity-list>div:not(.replica-list-empty) {
  min-width:0;
  min-height:23px;
  display:grid;
  grid-template-columns:18px auto minmax(0,1fr) auto;
  align-items:center;
  gap:4px;
  padding:4px 6px;
  border-radius:7px;
  background:rgba(255,255,255,.74);
}
.replica-activity-list span { font-size:10px; }
.replica-activity-list strong {
  overflow:hidden;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-activity-list small {
  overflow:hidden;
  color:#48443c;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-activity-list time {
  color:var(--muted);
  font-size:7px;
  white-space:nowrap;
}
.replica-quick-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}
.replica-quick-grid>a {
  min-height:48px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:3px;
  border:1px solid rgba(112,86,202,.08);
  border-radius:9px;
  background:rgba(255,255,255,.8);
}
.replica-quick-grid>a span { font-size:17px; }
.replica-quick-grid>a strong { font-size:8px; }
.replica-course-row {
  min-height:48px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  margin-top:7px;
  padding:7px 9px;
  border:1px solid rgba(122,108,73,.12);
  border-radius:9px;
  background:rgba(255,255,255,.76);
}
.replica-course-row>span { font-size:23px; }
.replica-course-row>div { min-width:0; }
.replica-course-row strong,
.replica-course-row small {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-course-row strong { font-size:9px; }
.replica-course-row small {
  margin-top:2px;
  color:var(--muted);
  font-size:7px;
}
.replica-course-row>div>i {
  height:3px;
  display:block;
  overflow:hidden;
  margin-top:5px;
  border-radius:3px;
  background:#e6e6e6;
}
.replica-course-row>div>i b {
  height:100%;
  display:block;
  background:#34b44f;
}
.replica-course-row>em,
.replica-course-row>b {
  color:var(--muted);
  font-size:8px;
  font-style:normal;
}
.replica-split-actions {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin-top:7px;
}
.replica-split-actions a {
  min-height:25px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#305fae;
  background:#eff5ff;
  font-size:8px;
  font-weight:900;
}
.replica-follow-list {
  display:grid;
  gap:5px;
  margin-top:7px;
}
.replica-follow-list>div:not(.replica-list-empty) {
  min-height:25px;
  display:grid;
  grid-template-columns:18px minmax(0,1fr) auto;
  align-items:center;
  gap:6px;
  padding:4px 8px;
  border-radius:8px;
  background:rgba(255,255,255,.78);
}
.replica-follow-list span {
  width:15px;
  height:15px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#2db94c;
  font-size:8px;
}
.replica-follow-list strong {
  overflow:hidden;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-follow-list b {
  max-width:90px;
  overflow:hidden;
  color:#36a849;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-card-grid.widget-dashboard .widget-details {
  left:9px;
  right:9px;
  bottom:9px;
  padding:10px 11px;
  border-radius:12px;
  font-size:9px;
}

html[data-theme="dark"] .replica-card-grid .replica-card,
html[data-theme="dark"] .replica-progress-panel,
html[data-theme="dark"] .replica-stat-panel,
html[data-theme="dark"] .replica-next-panel {
  background:var(--card)!important;
  border-color:var(--line);
}

@media (max-width:1050px),(max-height:699px) {
  .replica-dashboard {
    height:auto;
    min-height:0;
    grid-template-rows:auto auto auto;
  }
  .replica-header { min-height:66px; }
  .replica-overview {
    grid-template-columns:2fr 1fr;
  }
  .replica-progress-panel { grid-column:1/-1; }
  .replica-card-grid.widget-dashboard {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:none;
  }
  .replica-card-grid.widget-dashboard .replica-card { min-height:180px; }
}

@media (max-width:700px) {
  .replica-header {
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
    padding-bottom:4px;
  }
  .replica-userbar { width:100%; }
  .replica-user-name { flex:1; }
  .replica-overview,
  .replica-card-grid.widget-dashboard {
    grid-template-columns:1fr;
  }
  .replica-progress-panel {
    overflow-x:auto;
  }
  .replica-steps { min-width:480px; }
  .replica-stat-panel,
  .replica-next-panel { min-height:130px; }
  .replica-card-grid.widget-dashboard .replica-card { min-height:185px; }
}

@media (hover:none),(pointer:coarse) {
  .replica-card-grid.widget-dashboard .dashboard-widget { overflow:hidden; }
  .replica-card-grid.widget-dashboard .widget-details {
    position:absolute;
    left:9px;
    right:9px;
    bottom:9px;
    margin:0;
    box-shadow:0 14px 30px rgba(49,39,16,.14);
    opacity:0;
    transform:translate3d(0,calc(100% + 14px),0);
  }
  .replica-card-grid.widget-dashboard .is-widget-open .widget-details {
    opacity:1;
    transform:none;
  }
}

/* Reference sidebar: compact icons, structured expanded navigation. */
.app-sidebar {
  width:72px;
  gap:10px;
  padding:17px 10px;
  border-right-color:#eee5d3;
  box-shadow:8px 0 24px rgba(70,57,26,.055);
}
.app-sidebar:is(:hover,:focus-within,.is-held-open),
html.nav-held .app-sidebar {
  width:184px;
}
.app-sidebar .brand {
  min-height:44px;
  gap:0;
  padding:1px 5px 8px;
}
.app-sidebar .brand img {
  width:40px;
  height:40px;
  flex-basis:40px;
  border-radius:10px;
  box-shadow:none;
  transition:width .16s ease,flex-basis .16s ease,opacity .1s linear;
}
.app-sidebar .brand-wordmark {
  color:#171717;
  font-size:17px;
  font-weight:1000;
  letter-spacing:-.055em;
}
.app-sidebar:is(:hover,:focus-within,.is-held-open) .brand,
html.nav-held .app-sidebar .brand {
  justify-content:flex-start;
  padding-left:12px;
}
.app-sidebar:is(:hover,:focus-within,.is-held-open) .brand img,
html.nav-held .app-sidebar .brand img {
  width:0;
  flex-basis:0;
  opacity:0;
}
.app-sidebar .main-nav {
  gap:8px;
  padding-top:5px;
}
.app-sidebar .main-nav a,
.app-sidebar .sidebar-action {
  min-height:47px;
  gap:10px;
  padding:7px 9px;
  border-radius:13px;
  font-size:13px;
}
.app-sidebar .nav-icon {
  width:34px;
  flex-basis:34px;
  font-size:20px;
}
.app-sidebar .nav-active-indicator {
  height:47px;
  border-radius:13px;
  background:#fff1c7;
}
.app-sidebar .main-nav a.active { color:#171717; }
.app-sidebar .account-menu {
  min-height:58px;
  gap:10px;
  padding:10px 9px 5px;
  border-top:1px solid #eee3cc;
}
.app-sidebar .account-menu>div {
  min-width:0;
  flex:1;
}
.app-sidebar .account-avatar {
  display:none;
  overflow:hidden;
  border-radius:11px;
  background:var(--yellow);
  color:#28231c;
  font-size:14px;
  font-weight:950;
}
.app-sidebar .account-avatar img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.app-sidebar .account-menu strong {
  display:block;
  color:#28231c;
  font-size:13px;
}
.app-sidebar .account-meta {
  display:block;
  max-width:104px;
  overflow:hidden;
  margin-top:2px;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app-sidebar>form { margin:0; }
.app-sidebar .sidebar-action {
  color:#36322a;
  font-weight:800;
}
.app-sidebar .sidebar-action:hover { background:#fff6dd; }

/* Student learning summary from the current available progress data. */
.replica-learning-stat {
  display:flex;
  flex-direction:column;
}
.replica-learning-stat__body {
  min-height:0;
  flex:1;
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  align-items:center;
  gap:8px;
}
.replica-progress-ring {
  position:relative;
  width:70px;
  height:70px;
  display:grid;
  place-items:center;
  align-content:center;
}
.replica-progress-ring svg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  transform:rotate(-90deg);
}
.replica-progress-ring circle {
  fill:none;
  stroke-width:6;
}
.replica-progress-ring__track { stroke:#edf0f2; }
.replica-progress-ring__value {
  stroke:#2db75a;
  stroke-linecap:butt;
}
.replica-progress-ring strong {
  position:relative;
  font-size:15px;
  line-height:1;
}
.replica-progress-ring small {
  position:relative;
  margin-top:3px;
  color:var(--muted);
  font-size:7px;
}
.replica-learning-stat ul {
  display:grid;
  gap:5px;
  margin:0;
  padding:0;
  list-style:none;
}
.replica-learning-stat li {
  min-width:0;
  display:grid;
  grid-template-columns:6px minmax(0,1fr) auto;
  align-items:center;
  gap:5px;
  font-size:7px;
}
.replica-learning-stat li i {
  width:5px;
  height:5px;
  border-radius:50%;
  background:#2db75a;
}
.replica-learning-stat li:nth-child(2) i { background:#4a7df0; }
.replica-learning-stat li:nth-child(3) i { background:#f1ac25; }
.replica-learning-stat li span {
  overflow:hidden;
  color:var(--muted);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.replica-learning-stat li b { font-size:7px; }
.replica-stat-empty {
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  color:var(--muted);
}
.replica-stat-empty b {
  color:#b8b9bd;
  font-size:32px;
  line-height:1;
}
.replica-stat-empty span {
  margin-top:5px;
  font-size:10px;
}
.replica-dashboard--student .replica-next-panel>a {
  color:#fff;
  background:#386ef1;
}

@media (max-width:600px) {
  .app-sidebar { width:62px; padding-inline:7px; }
  .app-sidebar:is(:hover,:focus-within,.is-held-open),
  html.nav-held .app-sidebar { width:min(184px,calc(100vw - 18px)); }
  .app-sidebar .nav-icon { width:32px; flex-basis:32px; }
}

/* Dashboard readability pass */
.replica-header p { font-size:15px; }
.replica-user-name strong { font-size:15px; }
.replica-user-name small { font-size:11px; }
.replica-progress-panel header strong,
.replica-stat-panel header strong,
.replica-next-panel header strong { font-size:16px; }
.replica-progress-panel header small,
.replica-stat-panel header small { font-size:11px; }
.replica-step small { font-size:10px; }
.replica-step strong { font-size:13px; }
.replica-next-panel>div b { font-size:19px; }
.replica-next-panel>div span { font-size:13px; }
.replica-next-panel>a { font-size:13px; }
.replica-card-title small { font-size:10px; }
.replica-card-title h2 { font-size:21px; }
.replica-card-title>a { font-size:12px; }
.replica-card>p {
  font-size:14px;
  line-height:1.5;
}
.replica-card-action {
  min-height:34px;
  font-size:13px;
}
.replica-data-list>a strong { font-size:13px; }
.replica-data-list>a small { font-size:11px; }
.replica-data-list>a>b,
.replica-data-list>a>em { font-size:13px; }
.replica-list-empty { font-size:13px; }
.replica-activity-list span { font-size:13px; }
.replica-activity-list strong,
.replica-activity-list small { font-size:12px; }
.replica-activity-list time { font-size:10px; }
.replica-quick-grid>a strong { font-size:12px; }
.replica-course-row strong { font-size:13px; }
.replica-course-row small,
.replica-course-row>em { font-size:11px; }
.replica-course-row>b { font-size:12px; }
.replica-split-actions a { font-size:12px; }
.replica-follow-list strong,
.replica-follow-list b { font-size:12px; }
.replica-card-grid.widget-dashboard .widget-details { font-size:13px; }
.replica-progress-ring small,
.replica-learning-stat li,
.replica-learning-stat li b { font-size:11px; }
.replica-learning-stat li { grid-template-columns:7px minmax(0,1fr) auto; }
.replica-stat-empty span,
.replica-empty-panel>div span { font-size:13px; }
.app-sidebar .main-nav a,
.app-sidebar .sidebar-action { font-size:15px; }
.app-sidebar .account-menu strong { font-size:15px; }
.app-sidebar .account-meta { font-size:10px; }

/* GPU-friendly 3D game cover flow */
.game-showcase {
  min-height:calc(100vh - 40px);
  display:grid;
  grid-template-rows:auto minmax(420px,1fr) auto;
  overflow:hidden;
}
.game-showcase__header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:12px 8px 0;
}
.game-showcase__header h1 {
  margin:2px 0 8px;
  font-size:clamp(34px,4vw,52px);
}
.game-showcase__header p {
  margin:0;
  color:var(--muted);
  font-size:14px;
}
.game-carousel {
  position:relative;
  min-height:420px;
}
.game-carousel__stage {
  position:absolute;
  inset:0 54px;
  overflow:visible;
  perspective:1100px;
  perspective-origin:50% 46%;
  outline:none;
  touch-action:pan-y;
}
.game-carousel__stage:focus-visible {
  outline:2px solid var(--yellow-strong);
  outline-offset:-5px;
  border-radius:28px;
}
.game-carousel__card {
  position:absolute;
  top:50%;
  left:50%;
  z-index:0;
  width:clamp(310px,38vw,430px);
  height:clamp(330px,48vh,420px);
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:28px;
  border:1px solid rgba(184,166,121,.42);
  border-radius:32px;
  background:#fff7df;
  box-shadow:0 18px 38px rgba(52,42,17,.1);
  opacity:0;
  transform:translate3d(-50%,-50%,-260px) scale(.72);
  transform-style:preserve-3d;
  backface-visibility:hidden;
  pointer-events:none;
  transition:transform .38s cubic-bezier(.2,.78,.25,1),opacity .2s linear,box-shadow .3s ease,border-color .3s ease;
  will-change:auto;
}
.game-carousel__card:nth-child(3n+2) { background:#eef6ff; }
.game-carousel__card:nth-child(3n) { background:#f2efff; }
.game-carousel__card.is-active {
  z-index:10;
  opacity:1;
  transform:translate3d(-50%,-50%,70px) rotateY(0) scale(1);
  border-color:var(--yellow-strong);
  box-shadow:0 32px 66px rgba(44,34,12,.2);
  pointer-events:auto;
}
.game-carousel__card.is-previous {
  z-index:5;
  opacity:.68;
  transform:translate3d(calc(-50% - clamp(190px,24vw,290px)),-50%,-140px) rotateY(34deg) scale(.82);
  cursor:pointer;
  pointer-events:auto;
}
.game-carousel__card.is-next {
  z-index:5;
  opacity:.68;
  transform:translate3d(calc(-50% + clamp(190px,24vw,290px)),-50%,-140px) rotateY(-34deg) scale(.82);
  cursor:pointer;
  pointer-events:auto;
}
.game-carousel__card:is(.is-active,.is-previous,.is-next) {
  will-change:transform,opacity;
}
.game-carousel__card.is-far[data-side="left"] {
  transform:translate3d(calc(-50% - clamp(260px,34vw,420px)),-50%,-300px) rotateY(40deg) scale(.65);
}
.game-carousel__card.is-far[data-side="right"] {
  transform:translate3d(calc(-50% + clamp(260px,34vw,420px)),-50%,-300px) rotateY(-40deg) scale(.65);
}
.game-carousel__card-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.game-carousel__icon {
  width:70px;
  height:70px;
  display:grid;
  place-items:center;
  border-radius:22px;
  background:rgba(255,255,255,.82);
  box-shadow:0 12px 26px rgba(60,45,14,.08);
  font-size:38px;
}
.game-carousel__label {
  padding:8px 11px;
  border:1px solid rgba(116,99,61,.12);
  border-radius:10px;
  color:var(--yellow-dark);
  background:rgba(255,255,255,.62);
  font-size:10px;
  font-weight:950;
  letter-spacing:.09em;
}
.game-carousel__copy {
  display:flex;
  flex:1;
  justify-content:center;
  flex-direction:column;
  padding:22px 0 18px;
}
.game-carousel__copy small {
  color:var(--yellow-dark);
  font-size:11px;
  font-weight:1000;
  letter-spacing:.16em;
}
.game-carousel__copy h2 {
  margin:8px 0 10px;
  font-size:clamp(28px,3.2vw,42px);
  line-height:1.06;
}
.game-carousel__copy p {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
}
.game-carousel__launch {
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 17px;
  border-radius:15px;
  color:#fff;
  background:#386ef1;
  font-size:14px;
  font-weight:950;
}
.game-carousel__control {
  position:absolute;
  top:50%;
  z-index:20;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  padding:0 0 5px;
  border:1px solid var(--line);
  border-radius:16px;
  color:var(--text);
  background:var(--card);
  box-shadow:0 12px 28px rgba(50,39,14,.12);
  font-size:36px;
  line-height:1;
  cursor:pointer;
  transform:translateY(-50%);
}
.game-carousel__control:hover,
.game-carousel__control:focus-visible {
  border-color:var(--yellow-strong);
  background:var(--yellow-light);
  outline:none;
}
.game-carousel__control--prev { left:4px; }
.game-carousel__control--next { right:4px; }
.game-carousel__footer {
  display:grid;
  justify-items:center;
  gap:8px;
  padding:2px 0 10px;
}
.game-carousel__dots {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.game-carousel__dots button {
  width:8px;
  height:8px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#d5d0c5;
  cursor:pointer;
  transition:width .18s ease,background-color .18s ease;
}
.game-carousel__dots button.is-active {
  width:26px;
  border-radius:8px;
  background:var(--yellow-strong);
}
.game-carousel__footer p {
  margin:0;
  color:var(--muted);
  font-size:11px;
}
html.reduce-effects .game-carousel__card { transition-duration:.22s,.12s,.18s,.18s; }
html[data-theme="dark"] .game-carousel__card,
html[data-theme="dark"] .game-carousel__card:nth-child(3n+2),
html[data-theme="dark"] .game-carousel__card:nth-child(3n) {
  background:var(--card);
  border-color:var(--line);
}

@media (max-width:700px) {
  .game-showcase {
    grid-template-rows:auto minmax(440px,1fr) auto;
  }
  .game-showcase__header {
    align-items:flex-start;
    flex-direction:column;
    padding-inline:2px;
  }
  .game-carousel__stage { inset-inline:0; }
  .game-carousel__card {
    width:min(76vw,350px);
    height:390px;
    padding:22px;
  }
  .game-carousel__card.is-previous {
    transform:translate3d(calc(-50% - 34vw),-50%,-150px) rotateY(30deg) scale(.78);
  }
  .game-carousel__card.is-next {
    transform:translate3d(calc(-50% + 34vw),-50%,-150px) rotateY(-30deg) scale(.78);
  }
  .game-carousel__control {
    top:auto;
    bottom:3px;
    width:42px;
    height:42px;
    transform:none;
  }
  .game-carousel__control--prev { left:20%; }
  .game-carousel__control--next { right:20%; }
  .game-carousel__footer { padding-top:8px; }
}

@media (prefers-reduced-motion:reduce) {
  .game-carousel__card,
  .game-carousel__dots button { transition-duration:.01ms!important; }
}

/* Teacher classroom management board */
.classroom-manager {
  height:calc(100vh - 40px);
  min-height:650px;
  display:grid;
  grid-template-rows:auto 58px 48px minmax(0,1fr);
  gap:9px;
}
.classroom-manager__hero {
  min-height:118px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px 30px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--card);
  box-shadow:0 9px 27px rgba(64,49,17,.055);
}
.classroom-manager__hero .eyebrow { margin-bottom:5px; }
.classroom-manager__hero h1 {
  margin:0 0 9px;
  font-size:clamp(38px,4.2vw,56px);
}
.classroom-manager__totals {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px;
  color:var(--muted);
  font-size:13px;
}
.classroom-manager__totals b { color:var(--text); }
.classroom-manager__create {
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 22px;
  border-radius:12px;
  background:var(--yellow-strong);
  color:#392a04;
  font-size:14px;
  font-weight:950;
}
.classroom-manager__toolbar {
  display:grid;
  grid-template-columns:minmax(250px,1fr) 150px 160px auto;
  align-items:center;
  gap:14px;
  padding:9px 16px;
  border:1px solid rgba(228,216,185,.72);
  border-radius:16px;
  background:var(--card);
}
.classroom-search {
  min-height:38px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 12px;
  border:1px solid #ebe7de;
  border-radius:11px;
  background:#fcfcfb;
}
.classroom-search span { font-size:22px; }
.classroom-search input {
  width:100%;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  font-size:12px;
}
.classroom-manager__toolbar select {
  min-height:38px;
  padding:0 11px;
  border:1px solid #ebe7de;
  border-radius:10px;
  color:var(--text);
  background:var(--card);
  font-size:12px;
  font-weight:800;
}
.classroom-view-switch {
  display:flex;
  overflow:hidden;
  border:1px solid #ebe7de;
  border-radius:10px;
}
.classroom-view-switch button {
  min-height:36px;
  padding:0 12px;
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:12px;
  cursor:pointer;
}
.classroom-view-switch button.is-active {
  color:var(--yellow-dark);
  background:var(--yellow-light);
  font-weight:900;
}
.classroom-favorites {
  min-width:0;
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:6px 13px;
  border-bottom:1px solid rgba(228,216,185,.8);
}
.classroom-favorites>strong { font-size:12px; }
.classroom-favorites>div {
  min-width:0;
  display:flex;
  gap:9px;
  overflow-x:auto;
  scrollbar-width:none;
}
.classroom-favorites>div::-webkit-scrollbar { display:none; }
.classroom-favorites button {
  min-width:135px;
  min-height:36px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 11px;
  border:1px solid #ece7dc;
  border-radius:9px;
  background:var(--card);
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
}
.classroom-favorites button.is-active {
  border-color:var(--yellow-strong);
  color:#765200;
  background:var(--yellow-light);
}
.classroom-manager__body {
  min-height:0;
  display:grid;
  grid-template-columns:130px minmax(0,1fr) 318px;
  gap:12px;
}
.classroom-filter-rail,
.classroom-card-area,
.classroom-detail-stack {
  min-height:0;
  border:1px solid rgba(228,216,185,.72);
  border-radius:17px;
  background:var(--card);
}
.classroom-filter-rail {
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:11px 8px;
}
.classroom-filter-rail button {
  min-height:43px;
  display:grid;
  grid-template-columns:24px minmax(0,1fr) auto;
  align-items:center;
  gap:5px;
  padding:7px 8px;
  border:0;
  border-radius:9px;
  color:var(--muted);
  background:transparent;
  text-align:left;
  cursor:pointer;
}
.classroom-filter-rail button.is-active {
  color:var(--text);
  background:var(--yellow-light);
}
.classroom-filter-rail strong { font-size:12px; }
.classroom-filter-rail b {
  min-width:20px;
  padding:3px 5px;
  border-radius:7px;
  background:rgba(255,255,255,.8);
  font-size:10px;
  text-align:center;
}
.classroom-card-area {
  overflow:auto;
  padding:9px;
  scrollbar-width:thin;
}
.classroom-card-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.classroom-management-card {
  position:relative;
  min-height:176px;
  display:flex;
  flex-direction:column;
  padding:13px;
  overflow:hidden;
  border:1px solid #e9e5dc;
  border-radius:13px;
  color:var(--text);
  background:var(--card);
  text-align:left;
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.classroom-management-card:hover {
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(60,45,14,.08);
}
.classroom-management-card.is-selected {
  border-color:var(--yellow-strong);
  box-shadow:0 0 0 2px rgba(255,196,40,.1);
}
.classroom-management-card__check {
  position:absolute;
  top:9px;
  right:9px;
  width:21px;
  height:21px;
  display:none;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#ffb611;
  font-size:11px;
  font-weight:950;
}
.classroom-management-card.is-selected .classroom-management-card__check { display:grid; }
.classroom-management-card>header {
  display:flex;
  align-items:center;
  gap:7px;
}
.classroom-management-card__icon {
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:var(--yellow-light);
}
.classroom-management-card__code {
  padding:4px 7px;
  border-radius:7px;
  color:var(--muted);
  background:#f5f5f3;
  font-size:10px;
  font-weight:850;
}
.classroom-management-card__menu {
  margin-left:auto;
  font-weight:900;
}
.classroom-management-card.is-selected .classroom-management-card__menu { visibility:hidden; }
.classroom-management-card h2 {
  margin:11px 0 5px;
  overflow:hidden;
  font-size:17px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.classroom-management-card>p {
  margin:0;
  color:var(--muted);
  font-size:11px;
}
.classroom-management-card__metrics {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:end;
  gap:8px;
  margin-top:10px;
}
.classroom-management-card__metrics span small,
.classroom-management-card__metrics span strong {
  display:block;
}
.classroom-management-card__metrics small {
  color:var(--muted);
  font-size:10px;
}
.classroom-management-card__metrics strong {
  margin-top:2px;
  color:#2cab4d;
  font-size:12px;
}
.classroom-management-card__metrics>i,
.classroom-preview__stats i {
  height:4px;
  display:block;
  overflow:hidden;
  border-radius:4px;
  background:#e7e7e3;
}
.classroom-management-card__metrics>i b,
.classroom-preview__stats i b {
  height:100%;
  display:block;
  background:#36b757;
}
.classroom-management-card>footer {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:8px;
  margin-top:auto;
  padding-top:9px;
  border-top:1px solid #efede8;
}
.classroom-management-card>footer span small,
.classroom-management-card>footer span strong {
  display:block;
}
.classroom-management-card>footer small {
  color:var(--muted);
  font-size:10px;
}
.classroom-management-card>footer strong {
  margin-top:2px;
  font-size:11px;
}
.classroom-management-card>footer em {
  padding:4px 7px;
  border-radius:7px;
  color:#239146;
  background:#eaf9ee;
  font-size:10px;
  font-style:normal;
  font-weight:850;
}
.classroom-search-empty {
  padding:50px 20px;
  color:var(--muted);
  text-align:center;
}
.classroom-manager.is-list-view .classroom-card-grid { grid-template-columns:1fr; }
.classroom-manager.is-list-view .classroom-management-card { min-height:130px; }
.classroom-detail-stack {
  overflow:auto;
  padding:12px;
  scrollbar-width:thin;
}
.classroom-preview[hidden] { display:none; }
.classroom-preview__head {
  display:grid;
  grid-template-columns:45px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
}
.classroom-preview__icon {
  width:45px;
  height:45px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:var(--yellow);
  font-size:23px;
}
.classroom-preview__head h2 {
  margin:0 0 5px;
  overflow:hidden;
  font-size:19px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.classroom-preview__head p {
  margin:0;
  color:var(--muted);
  font-size:10px;
}
.classroom-preview__head p span {
  padding:3px 5px;
  border-radius:5px;
  background:#f2f2ef;
}
.classroom-preview__head>em {
  align-self:start;
  padding:4px 6px;
  border-radius:6px;
  color:#248e43;
  background:#eaf9ee;
  font-size:10px;
  font-style:normal;
  font-weight:850;
}
.classroom-preview__stats {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:15px;
}
.classroom-preview__stats>span {
  min-width:0;
  padding:0 8px;
  border-right:1px solid #eeeae2;
  text-align:center;
}
.classroom-preview__stats>span:last-child { border-right:0; }
.classroom-preview__stats strong,
.classroom-preview__stats small {
  display:block;
}
.classroom-preview__stats strong { font-size:17px; }
.classroom-preview__stats small {
  margin-top:4px;
  color:var(--muted);
  font-size:10px;
}
.classroom-preview__stats i { margin-top:5px; }
.classroom-preview__panel {
  margin-top:13px;
  padding:12px;
  border:1px solid #ece8df;
  border-radius:11px;
}
.classroom-preview__panel span,
.classroom-preview__panel strong,
.classroom-preview__panel small {
  display:block;
}
.classroom-preview__panel span {
  color:var(--muted);
  font-size:10px;
}
.classroom-preview__panel strong {
  margin-top:7px;
  font-size:12px;
}
.classroom-preview__panel small {
  margin-top:4px;
  color:var(--muted);
  font-size:10px;
}
.classroom-preview__actions { margin-top:14px; }
.classroom-preview__actions>strong { font-size:11px; }
.classroom-preview__actions>div {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin-top:8px;
}
.classroom-preview__actions a {
  min-height:58px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:5px;
  border-radius:10px;
  background:#f1f5fb;
  font-size:10px;
  font-weight:850;
}
.classroom-preview__actions a span { font-size:18px; }
.classroom-preview__open {
  min-height:35px;
  display:grid;
  place-items:center;
  margin-top:10px;
  border-radius:9px;
  color:#315fa4;
  background:#edf5ff;
  font-size:11px;
  font-weight:900;
}
.classroom-preview--empty {
  display:grid;
  place-items:center;
  align-content:center;
  min-height:100%;
  text-align:center;
}
.classroom-preview--empty>span { font-size:42px; }
.classroom-preview--empty h2 { margin:12px 0 5px; }
.classroom-preview--empty p { color:var(--muted); }

/* Student 3/4-circle classroom wheel */
.student-classroom-page {
  height:calc(100vh - 40px);
  min-height:640px;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:13px;
}
.student-classroom-header {
  min-height:102px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:17px 26px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--card);
}
.student-classroom-header .eyebrow { margin-bottom:4px; }
.student-classroom-header h1 {
  margin:0 0 5px;
  font-size:clamp(36px,4vw,50px);
}
.student-classroom-header p {
  margin:0;
  color:var(--muted);
  font-size:13px;
}
.student-classroom-header>a {
  min-height:43px;
  display:grid;
  place-items:center;
  padding:10px 18px;
  border-radius:11px;
  background:var(--yellow-strong);
  font-size:13px;
  font-weight:950;
}
.student-classroom-layout {
  min-height:0;
  display:grid;
  grid-template-columns:330px minmax(0,1fr);
  gap:13px;
}
.class-wheel-panel,
.student-class-detail-area {
  min-height:0;
  border:1px solid rgba(228,216,185,.78);
  border-radius:23px;
  background:var(--card);
}
.class-wheel-panel {
  position:relative;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  padding:17px 0 13px;
}
.class-wheel-copy {
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 18px;
}
.class-wheel-copy>span {
  color:var(--yellow-dark);
  font-size:11px;
  font-weight:1000;
  letter-spacing:.12em;
}
.class-wheel-copy>strong {
  color:var(--muted);
  font-size:12px;
}
.class-wheel {
  position:relative;
  min-height:0;
  outline:none;
  touch-action:pan-y;
}
.class-wheel:focus-visible { outline:2px solid var(--yellow-strong); outline-offset:-5px; }
.class-wheel__circle {
  position:absolute;
  top:50%;
  left:-115px;
  width:460px;
  height:460px;
  border:28px solid #fff3c9;
  border-radius:50%;
  box-shadow:inset 0 0 0 2px var(--line),0 18px 40px rgba(77,57,14,.08);
  transform:translateY(-50%);
}
.class-wheel__circle::before,
.class-wheel__circle::after {
  content:"";
  position:absolute;
  border-radius:50%;
}
.class-wheel__circle::before {
  inset:43px;
  border:2px dashed rgba(208,160,36,.34);
}
.class-wheel__circle::after {
  inset:105px;
  background:#fffaf0;
}
.class-wheel__hub {
  position:absolute;
  z-index:2;
  top:50%;
  left:115px;
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border:8px solid var(--yellow);
  border-radius:50%;
  color:#fff;
  background:#5e48a1;
  box-shadow:0 10px 24px rgba(70,52,130,.18);
  font-size:20px;
  font-weight:1000;
  transform:translate(-50%,-50%);
}
.class-wheel__item {
  position:absolute;
  z-index:4;
  top:50%;
  left:115px;
  width:155px;
  min-height:58px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  padding:8px 10px;
  border:1px solid #e7e1d4;
  border-radius:14px;
  color:var(--text);
  background:var(--card);
  box-shadow:0 10px 22px rgba(66,49,14,.08);
  text-align:left;
  cursor:pointer;
  transform:rotate(var(--wheel-angle)) translateX(145px) rotate(var(--wheel-reverse)) translate(-50%,-50%) scale(.88);
  transform-origin:0 0;
  transition:transform .34s cubic-bezier(.2,.8,.25,1),opacity .2s linear,border-color .2s ease;
  will-change:transform;
}
.class-wheel__item>span {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#eff5ff;
}
.class-wheel__item strong {
  overflow:hidden;
  font-size:12px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.class-wheel__item small {
  color:#2eae4e;
  font-size:10px;
  font-weight:900;
}
.class-wheel__item.is-active {
  z-index:7;
  min-height:68px;
  border-color:var(--yellow-strong);
  background:var(--yellow-light);
  box-shadow:0 18px 34px rgba(92,67,12,.16);
  transform:rotate(var(--wheel-angle)) translateX(145px) rotate(var(--wheel-reverse)) translate(-50%,-50%) scale(1.06);
}
.class-wheel__item.is-near { opacity:.78; }
.class-wheel__item.is-far {
  opacity:0;
  pointer-events:none;
}
.class-wheel-controls {
  z-index:5;
  display:grid;
  grid-template-columns:38px 1fr 38px;
  align-items:center;
  gap:7px;
  padding:0 17px;
}
.class-wheel-controls button {
  width:38px;
  height:38px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--card);
  font-size:18px;
  cursor:pointer;
}
.class-wheel-controls span {
  color:var(--muted);
  font-size:11px;
  text-align:center;
}
.student-class-detail-area {
  overflow:auto;
  padding:17px;
  scrollbar-width:thin;
}
.student-class-detail[hidden] { display:none; }
.student-class-detail__hero {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:3px 2px 16px;
  border-bottom:1px solid #ece8df;
}
.student-class-detail__code {
  display:inline-flex;
  padding:5px 8px;
  border-radius:7px;
  color:#6d58ac;
  background:#f2efff;
  font-size:10px;
  font-weight:900;
}
.student-class-detail__hero h2 {
  margin:8px 0 5px;
  font-size:clamp(27px,3vw,39px);
}
.student-class-detail__hero p {
  margin:0;
  color:var(--muted);
  font-size:12px;
}
.student-class-teacher {
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px 12px;
  border-radius:13px;
  background:#f5f7fb;
}
.student-class-teacher>span {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#6a50b0;
  font-weight:950;
}
.student-class-teacher small,
.student-class-teacher strong { display:block; }
.student-class-teacher small {
  color:var(--muted);
  font-size:10px;
}
.student-class-teacher strong {
  margin-top:2px;
  font-size:12px;
}
.student-class-detail__stats {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin:14px 0;
  padding:13px 4px;
  border:1px solid #ece8df;
  border-radius:15px;
}
.student-class-detail__stats>span {
  min-width:0;
  padding:0 12px;
  border-right:1px solid #ece8df;
  text-align:center;
}
.student-class-detail__stats>span:last-child { border:0; }
.student-class-detail__stats strong,
.student-class-detail__stats small {
  display:block;
}
.student-class-detail__stats strong { font-size:21px; }
.student-class-detail__stats small {
  margin-top:4px;
  color:var(--muted);
  font-size:10px;
}
.student-class-detail__stats i {
  height:4px;
  display:block;
  overflow:hidden;
  margin-top:6px;
  border-radius:4px;
  background:#e5e6e4;
}
.student-class-detail__stats i b {
  height:100%;
  display:block;
  background:#35b756;
}
.student-class-courses {
  padding:14px;
  border-radius:17px;
  background:#edf6ff;
}
.student-class-courses>header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:9px;
}
.student-class-courses>header>div {
  display:flex;
  align-items:center;
  gap:8px;
}
.student-class-courses>header strong { font-size:14px; }
.student-class-courses>header small {
  color:var(--muted);
  font-size:10px;
}
.student-class-courses>div {
  display:grid;
  gap:7px;
}
.student-class-courses>div>a,
.student-class-courses>div>div:not(.student-class-empty) {
  min-width:0;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:9px 11px;
  border:1px solid rgba(102,139,178,.12);
  border-radius:11px;
  background:rgba(255,255,255,.82);
}
.student-course-icon {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#eef3ff;
}
.student-class-courses strong,
.student-class-courses small { display:block; }
.student-class-courses strong {
  overflow:hidden;
  font-size:12px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.student-class-courses small {
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
}
.student-class-courses i {
  height:4px;
  display:block;
  overflow:hidden;
  margin-top:5px;
  border-radius:4px;
  background:#e4e7e8;
}
.student-class-courses i b {
  height:100%;
  display:block;
  background:#376ff0;
}
.student-class-courses em {
  color:#2eae4e;
  font-size:10px;
  font-style:normal;
  font-weight:900;
}
.student-class-empty {
  min-height:55px;
  display:grid;
  place-items:center;
  color:var(--muted);
  font-size:11px;
}
.student-class-bottom {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:12px;
}
.student-class-bottom section {
  padding:13px;
  border:1px solid #ece8df;
  border-radius:13px;
}
.student-class-bottom span,
.student-class-bottom strong,
.student-class-bottom small { display:block; }
.student-class-bottom span {
  color:var(--muted);
  font-size:10px;
}
.student-class-bottom strong {
  margin-top:7px;
  font-size:13px;
}
.student-class-bottom small {
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
}
.student-class-detail__actions {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:12px;
}
.student-class-detail__actions a {
  min-height:38px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:#fff;
  background:#386ef1;
  font-size:11px;
  font-weight:900;
}
.student-class-detail__actions a:last-child {
  color:#315e9e;
  background:#edf5ff;
}
.student-classes-empty {
  min-height:420px;
  display:grid;
  place-items:center;
  align-content:center;
  padding:30px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--card);
  text-align:center;
}
.student-classes-empty>span { font-size:54px; }
.student-classes-empty h2 { margin:15px 0 5px; }
.student-classes-empty p { color:var(--muted); }
.student-classes-empty a {
  margin-top:14px;
  padding:11px 17px;
  border-radius:10px;
  background:var(--yellow-strong);
  font-weight:900;
}

html[data-theme="dark"] :is(
  .classroom-manager__hero,.classroom-manager__toolbar,.classroom-favorites button,
  .classroom-filter-rail,.classroom-card-area,.classroom-detail-stack,
  .classroom-management-card,.student-classroom-header,.class-wheel-panel,
  .student-class-detail-area,.student-classes-empty
) { background:var(--card); border-color:var(--line); }

@media (max-width:1050px),(max-height:680px) {
  .classroom-manager,
  .student-classroom-page {
    height:auto;
    min-height:0;
  }
  .classroom-manager { grid-template-rows:auto auto auto auto; }
  .classroom-manager__body { grid-template-columns:110px minmax(0,1fr); }
  .classroom-detail-stack { grid-column:1/-1; min-height:390px; }
  .student-classroom-layout { grid-template-columns:300px minmax(0,1fr); }
}

@media (max-width:760px) {
  .classroom-manager__hero,
  .student-classroom-header {
    align-items:flex-start;
    flex-direction:column;
  }
  .classroom-manager__create,
  .student-classroom-header>a { width:100%; }
  .classroom-manager__toolbar { grid-template-columns:1fr 1fr; }
  .classroom-search { grid-column:1/-1; }
  .classroom-manager__body { grid-template-columns:1fr; }
  .classroom-filter-rail {
    flex-direction:row;
    overflow-x:auto;
  }
  .classroom-filter-rail button { min-width:125px; }
  .classroom-card-grid { grid-template-columns:1fr; }
  .classroom-detail-stack { grid-column:auto; }
  .student-classroom-layout { grid-template-columns:1fr; }
  .class-wheel-panel { min-height:490px; }
  .class-wheel__circle { top:50%; }
  .student-class-detail-area { overflow:visible; }
}

/* Keep the student wheel compact after the shared mobile launcher rules. */
@media (max-width:600px) {
  .teacher-mobile-dashboard {
    display:grid!important;
  }
  .teacher-mobile-dashboard + .replica-dashboard--teacher {
    display:none!important;
  }
  .student-mobile-dashboard .student-entry-wheel {
    min-height:0;
    grid-template-rows:auto minmax(320px,1fr) auto;
  }
  .student-mobile-dashboard .student-entry-wheel .game-carousel__footer {
    padding:0 0 max(1px,env(safe-area-inset-bottom));
  }
}
@media (max-width:380px), (max-height:720px) {
  .student-mobile-dashboard .student-entry-wheel {
    grid-template-rows:auto minmax(278px,1fr) auto;
  }
}

/* Homework assignments */
.assignment-page { padding-top:6px; }
.assignment-mobile-header,.teacher-assignment-hero-art,.student-assignment-hero-art,.student-assignment-row__mobile-meta { display:none; }
.homework-hero { padding:clamp(28px,5vw,48px); border:1px solid var(--line); border-radius:32px; background:linear-gradient(135deg,#fff 0%,#fff9e7 100%); box-shadow:var(--shadow); display:flex; align-items:center; justify-content:space-between; gap:26px; }
.homework-hero h1 { margin-bottom:10px; }
.homework-hero p { max-width:720px; margin-bottom:0; color:var(--muted); line-height:1.7; }
.assignment-hero { min-height:196px; padding:38px 44px; border-color:#efbd43; border-radius:22px; background:#fffdf9; box-shadow:0 14px 36px rgba(130,96,20,.055); }
.assignment-hero .eyebrow { margin-bottom:15px; color:#ec9800; font-size:11px; letter-spacing:.16em; }
.assignment-hero h1 { margin-bottom:9px; color:#111; font-size:clamp(40px,4.4vw,56px); letter-spacing:-.055em; }
.assignment-hero p { color:#4f4b43; font-size:14px; }
.assignment-create-button { min-height:50px; padding:12px 25px; background:#ffcc27; color:#191300; box-shadow:0 13px 27px rgba(221,151,0,.23); font-size:16px; }
.assignment-create-button span { margin-right:4px; font-size:20px; font-weight:500; line-height:1; }
.assignment-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:20px; }
.assignment-overview-card { min-width:0; min-height:79px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; padding:13px 18px 13px 16px; border:1px solid #f1eadb; border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(76,56,15,.045); transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.assignment-overview-card:hover,.assignment-overview-card:focus-visible { border-color:#e8c66c; box-shadow:0 12px 28px rgba(76,56,15,.09); outline:none; transform:translateY(-2px); }
.assignment-overview-card__icon { --ui-icon-size:28px; width:52px; height:52px; border-radius:50%; color:#1d1b17; background:#fff7e5; }
.assignment-overview-card__icon--published { transform:rotate(-8deg); }
.assignment-overview-card__copy { min-width:0; display:flex; flex-direction:column; align-items:flex-start; }
.assignment-overview-card__copy small { color:#292721; font-size:12px; }
.assignment-overview-card__copy strong { margin-top:2px; color:#050505; font-size:24px; line-height:1; }
.assignment-overview-card__arrow { align-self:stretch; display:flex; align-items:center; padding-left:18px; border-left:1px solid #e5e1d8; color:#1c1b18; font-size:23px; font-weight:300; }
.assignment-published { margin-top:25px; }
.assignment-published .section-heading { margin-bottom:12px; }
.assignment-published .section-heading .eyebrow { margin-bottom:5px; color:#ec9800; font-size:11px; letter-spacing:.15em; }
.assignment-published .section-heading h2 { color:#12110f; font-size:31px; letter-spacing:-.035em; }
.assignment-template-link { display:inline-flex; align-items:center; gap:5px; padding-bottom:5px; color:#ef9b00!important; font-size:13px; }
.assignment-template-link span { font-size:19px; font-weight:400; }
.assignment-empty { min-height:169px; display:flex; align-items:center; justify-content:center; flex-direction:column; padding:22px; border:1px dashed #efac1e; border-radius:18px; background:rgba(255,255,255,.48); text-align:center; }
.assignment-empty__illustration { position:relative; width:86px; height:65px; margin-bottom:2px; }
.assignment-empty__sheet { position:absolute; top:3px; left:27px; width:39px; height:52px; border:2px solid #171717; border-radius:2px; background:#fff; }
.assignment-empty__sheet::before { content:""; position:absolute; top:-2px; right:-2px; width:13px; height:13px; border-left:2px solid #171717; border-bottom:2px solid #171717; background:#fffdf9; clip-path:polygon(0 0,100% 100%,0 100%); }
.assignment-empty__sheet b { position:absolute; left:-9px; bottom:5px; padding:4px 5px; border-radius:2px; color:#181300; background:#ffcc27; font-size:8px; line-height:1; }
.assignment-empty__upload { position:absolute; right:4px; bottom:4px; width:29px; height:29px; display:grid; place-items:center; border-radius:50%; color:#201800; background:#ffcc27; font-size:22px; font-weight:900; line-height:1; }
.assignment-empty__spark { position:absolute; color:#efa300; font-size:14px; font-weight:900; line-height:1; }
.assignment-empty__spark--one { left:2px; top:14px; }
.assignment-empty__spark--two { right:0; top:13px; width:9px; height:9px; background:#efa300; clip-path:polygon(50% 0,63% 37%,100% 50%,63% 63%,50% 100%,37% 63%,0 50%,37% 37%); }
.assignment-empty__spark--three { left:3px; bottom:9px; font-size:11px; }
.assignment-empty>strong { color:#111; font-size:17px; }
.assignment-empty>p { margin:7px 0 0; color:#6d6961; font-size:12px; }
.student-assignment-page { padding-top:0; }
.student-assignment-hero { min-height:156px; padding:27px 36px; }
.student-assignment-hero h1 { font-size:clamp(40px,4.2vw,52px); }
.student-assignment-resume { min-width:169px; min-height:45px; gap:18px; padding:10px 20px; background:#ffcc27; box-shadow:0 12px 24px rgba(221,151,0,.22); color:#191300; font-size:14px; }
.student-assignment-resume span { margin-left:auto; font-size:24px; font-weight:400; line-height:1; }
.student-assignment-resume--empty { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:#eaf6e8; box-shadow:none; color:#34733e; font-weight:900; }
.student-assignment-overview { margin-top:17px; }
.student-assignment-overview .assignment-overview-card { min-height:80px; }
.student-assignment-overview .assignment-overview-card__copy strong { font-size:26px; }
.student-assignment-section { margin-top:16px; }
.student-assignment-section .section-heading { margin-bottom:8px; }
.student-assignment-section .section-heading .eyebrow { margin-bottom:3px; color:#ec9800; font-size:11px; letter-spacing:.15em; }
.student-assignment-section .section-heading h2 { color:#12110f; font-size:29px; letter-spacing:-.035em; }
.student-assignment-list { display:grid; gap:2px; }
.student-assignment-row { min-width:0; min-height:57px; display:grid; grid-template-columns:58px minmax(180px,1.1fr) minmax(125px,.65fr) minmax(155px,.78fr) 90px 90px; align-items:center; border:1px solid #eee7da; border-radius:13px; background:#fff; box-shadow:0 5px 16px rgba(76,56,15,.035); transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.student-assignment-row:hover,.student-assignment-row:focus-visible { z-index:1; border-color:#e5bd55; box-shadow:0 10px 24px rgba(76,56,15,.09); outline:none; transform:translateY(-1px); }
.student-assignment-row__icon { --ui-icon-size:25px; width:42px; height:42px; justify-self:center; border-radius:50%; color:#17150f; background:#fff4d8; }
.student-assignment-row__title { min-width:0; overflow:hidden; padding-right:15px; color:#161511; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.student-assignment-row__meta { min-width:0; overflow:hidden; padding:0 18px; border-left:1px solid #e5e1d8; color:#5f5b53; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.student-assignment-row__status { justify-self:center; min-width:70px; padding:7px 12px; border:1px solid #cfc9bc; border-radius:999px; color:#35322d; background:#fff; font-size:12px; font-weight:900; text-align:center; white-space:nowrap; }
.student-assignment-row__status.is-progress { border-color:#ffe18a; background:#fff0af; }
.student-assignment-row__status.is-completed { border-color:#cce8c1; background:#e8f6df; color:#37693a; }
.student-assignment-row__action { justify-self:end; min-width:75px; display:flex; align-items:center; justify-content:center; gap:12px; margin-right:11px; padding:8px 10px; border-radius:999px; color:#161511; font-size:12px; font-weight:950; white-space:nowrap; }
.student-assignment-row__action.is-primary { background:#ffcc27; box-shadow:0 7px 16px rgba(221,151,0,.17); }
.student-assignment-row__action b { font-size:19px; font-weight:400; line-height:.7; }
.student-assignment-empty { min-height:190px; display:flex; align-items:center; justify-content:center; flex-direction:column; border:1px dashed #efac1e; border-radius:18px; background:rgba(255,255,255,.48); text-align:center; }
.student-assignment-empty>.ui-icon { --ui-icon-size:32px; width:56px; height:56px; margin-bottom:10px; border-radius:50%; color:#1d1b17; background:#fff4d8; }
.student-assignment-empty>strong { color:#161511; font-size:17px; }
.student-assignment-empty>p { margin:7px 0 0; color:var(--muted); font-size:12px; }
.homework-hero--detail { align-items:flex-start; }
.homework-byline { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }
.homework-byline span { padding:7px 11px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.75); color:var(--muted); font-size:13px; font-weight:800; }
.homework-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.homework-card { min-width:0; padding:24px; border:1px solid var(--line); border-radius:26px; background:#fff; box-shadow:var(--shadow); transition:transform .18s ease,box-shadow .18s ease; }
.homework-card:hover { transform:translateY(-3px); box-shadow:0 24px 50px rgba(130,96,20,.13); }
.homework-card>header { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; color:var(--muted); font-size:13px; font-weight:850; }
.homework-card>header .badge { margin-bottom:16px; }
.homework-card h2 { font-size:26px; }
.homework-card>p { min-height:52px; color:var(--muted); line-height:1.6; }
.homework-card__meta { display:grid; gap:8px; margin-top:18px; color:var(--muted); font-size:13px; font-weight:750; }
.homework-card__meta span { display:flex; align-items:center; gap:8px; }
.homework-card__meta .ui-icon { flex:0 0 auto; color:var(--yellow-dark); }
.homework-status-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:20px; }
.homework-status-summary span { padding:10px 8px; border-radius:14px; background:#faf7ef; text-align:center; color:var(--muted); font-size:12px; font-weight:850; }
.homework-status-summary b { display:block; margin-bottom:2px; color:var(--text); font-size:20px; }
.homework-status-summary .is-completed { background:#edf8ef; color:#397448; }
.homework-status-summary .is-read { background:#eef5ff; color:#3f6696; }
.homework-status-summary .is-unfinished { background:#fff5e7; color:#976019; }
.homework-status { display:inline-flex; width:fit-content; padding:7px 11px; border-radius:999px; font-size:12px; font-weight:950; white-space:nowrap; }
.homework-status.is-completed { color:#2f7240; background:#e9f7ec; }
.homework-status.is-read { color:#3c6391; background:#eaf3ff; }
.homework-status.is-unfinished { color:#94601c; background:#fff1d9; }
.homework-result-link { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:7px 12px; border:1px solid #e5bd55; border-radius:999px; color:#7b5700; background:#fff8dc; font-size:12px; font-weight:900; white-space:nowrap; }
.homework-result-link:hover,.homework-result-link:focus-visible { border-color:#dca400; background:#ffedaa; outline:none; }
.teacher-result-side { display:grid; justify-items:stretch; gap:10px; }
.teacher-result-side .secondary-button { min-width:200px; }
.homework-create-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr); gap:22px; align-items:start; }
.homework-create-main,.homework-import-guide { padding:clamp(25px,4vw,42px); border:1px solid var(--line); border-radius:30px; background:#fff; box-shadow:var(--shadow); }
.homework-create-main h1 { font-size:clamp(36px,5vw,54px); }
.homework-create-main>p,.homework-import-guide p,.homework-import-guide li { color:var(--muted); line-height:1.65; }
.homework-upload-form .primary-button { width:fit-content; }
.homework-preview-button { gap:16px; }
.homework-preview-button span { font-size:21px; font-weight:400; line-height:1; }
.homework-preview-note { margin-top:-8px; }
.homework-file-field { padding:18px; border:1px dashed #d9bd6c; border-radius:18px; background:#fffaf0; }
.homework-file-field input { border:0!important; padding:6px 0!important; background:transparent!important; }
.homework-import-guide { position:sticky; top:20px; }
.homework-import-guide>.ui-icon { --ui-icon-size:42px; color:var(--yellow-dark); }
.homework-import-guide h2 { margin-top:18px; font-size:28px; }
.homework-import-guide ul { padding-left:20px; margin:18px 0 24px; }
.homework-import-guide li+li { margin-top:8px; }
.homework-preview-page { padding-bottom:90px; }
.homework-preview-hero { min-height:160px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px 36px; border:1px solid #efbd43; border-radius:25px; background:#fff; box-shadow:var(--shadow); }
.homework-preview-hero h1 { margin-bottom:8px; font-size:clamp(36px,4.4vw,52px); }
.homework-preview-hero p { margin:0; color:var(--muted); line-height:1.6; }
.homework-preview-file { max-width:280px; display:flex; align-items:center; gap:10px; padding:11px 15px; overflow:hidden; border:1px solid var(--line); border-radius:15px; background:#fffaf0; color:var(--muted); font-size:12px; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.homework-preview-file>.ui-icon { --ui-icon-size:22px; flex:0 0 auto; color:var(--yellow-dark); }
.homework-preview-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:16px; }
.homework-preview-summary article { min-width:0; padding:17px 19px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 8px 22px rgba(76,56,15,.045); }
.homework-preview-summary small,.homework-preview-summary strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.homework-preview-summary small { margin-bottom:5px; color:var(--muted); font-size:11px; font-weight:800; }
.homework-preview-summary strong { font-size:15px; }
.homework-preview-instructions { display:flex; gap:14px; margin:14px 0 0; padding:15px 18px; border-radius:16px; color:var(--muted); background:#fff9e8; line-height:1.6; }
.homework-preview-instructions strong { flex:0 0 auto; color:var(--text); }
.homework-preview-heading>span { color:var(--muted); font-size:12px; font-weight:800; }
.homework-preview-actions { position:fixed; z-index:20; right:max(20px,calc((100vw - 1180px)/2 - 76px)); bottom:16px; width:min(1180px,calc(100% - 116px)); display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 20px; border:1px solid var(--line); border-radius:22px; background:rgba(255,255,255,.95); box-shadow:0 18px 45px rgba(79,58,8,.16); backdrop-filter:blur(12px); }
.homework-preview-actions>div:first-child { display:grid; gap:3px; }
.homework-preview-actions>div:first-child span { color:var(--muted); font-size:12px; }
.homework-preview-actions>div:last-child { display:flex; align-items:center; gap:10px; }
.homework-preview-actions form { margin:0; }
.homework-stats { grid-template-columns:repeat(4,1fr); }
.homework-stats article.is-completed { background:#f2fbf3; }
.homework-stats article.is-read { background:#f1f7ff; }
.homework-stats article.is-unfinished { background:#fff8ea; }
.homework-question-list { display:grid; gap:17px; }
.homework-question { padding:24px; border:1px solid var(--line); border-radius:25px; background:#fff; box-shadow:var(--shadow); }
.homework-question>header { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:16px; color:var(--muted); font-size:13px; font-weight:900; }
.homework-question h3 { font-size:21px; line-height:1.5; }
.homework-question--compact { padding:20px 22px; }
.homework-options-preview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:15px; }
.homework-options-preview span { padding:11px 13px; border:1px solid #eee3c4; border-radius:14px; background:#fffdf8; }
.homework-options-preview b,.homework-choice-options b { display:inline-grid; place-items:center; width:28px; height:28px; margin-right:9px; border-radius:9px; background:#f4ead0; }
.homework-options-preview .is-answer { border-color:#8ccb99; background:#effaf1; }
.homework-question footer { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:16px; padding-top:14px; border-top:1px solid #f4ead0; color:var(--muted); }
.homework-question footer span { flex-basis:100%; }
.homework-teacher-line { display:flex; align-items:center; gap:12px; margin:18px 0; padding:14px; border-radius:18px; background:#fff9e8; }
.homework-teacher-line>.ui-icon { --ui-icon-size:28px; color:var(--yellow-dark); }
.homework-teacher-line div { display:grid; grid-template-columns:auto auto; gap:2px 10px; align-items:center; }
.homework-teacher-line small { grid-column:1/-1; color:var(--muted); }
.homework-teacher-line em { color:var(--muted); font-size:13px; font-style:normal; }
.homework-score-line { display:flex; justify-content:space-between; align-items:center; margin-top:18px; padding-top:15px; border-top:1px solid var(--line); }
.homework-score-line strong { font-size:22px; color:#397448; }
.homework-result-card { min-width:200px; padding:20px; border:1px solid #a9d8b0; border-radius:24px; background:#f0faf2; text-align:center; }
.homework-result-card small,.homework-result-card em { display:block; color:#55745b; font-style:normal; }
.homework-result-card>strong { display:block; margin:5px 0; color:#2f7240; font-size:38px; }
.homework-result-card>strong span { font-size:16px; }
.homework-answer-form { margin-top:25px; }
.homework-choice-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.homework-choice-options label { cursor:pointer; }
.homework-choice-options input { position:absolute; opacity:0; pointer-events:none; }
.homework-choice-options label>span { display:block; padding:14px; border:1px solid var(--line); border-radius:16px; background:#fffdf8; transition:border-color .15s,background .15s,transform .15s; }
.homework-choice-options input:checked+span { border-color:#e6b52e; background:#fff4cd; transform:translateY(-1px); }
.homework-choice-options input:focus-visible+span { outline:3px solid rgba(255,201,63,.35); }
.homework-blank-answer input { width:100%; max-width:560px; padding:13px 15px; border:1px solid var(--line); border-radius:15px; background:#fffdf8; }
.homework-submit-bar { position:sticky; z-index:10; bottom:16px; display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:22px; padding:17px 20px; border:1px solid var(--line); border-radius:22px; background:rgba(255,255,255,.94); box-shadow:0 18px 45px rgba(79,58,8,.15); backdrop-filter:blur(12px); }
.homework-submit-bar div { display:grid; gap:3px; }
.homework-submit-bar span { color:var(--muted); font-size:13px; }
.homework-question.is-correct { border-color:#a9d8b0; }
.homework-question.is-wrong { border-color:#e4aaa5; }
.homework-submitted-answer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 15px; border-radius:15px; background:#f8f5ed; }
.homework-submitted-answer em { color:var(--muted); font-style:normal; font-weight:800; }
.homework-question.is-correct .homework-submitted-answer { background:#eef9f0; }
.homework-question.is-wrong .homework-submitted-answer { background:#fff3f1; }
.homework-explanation { margin-top:15px; padding:15px; border-radius:16px; background:#f8f5ed; }
.homework-explanation p { margin:7px 0 0; color:var(--muted); line-height:1.6; }
@media (max-width:850px) { .homework-grid,.homework-create-layout { grid-template-columns:1fr; } .homework-import-guide { position:static; } .homework-stats { grid-template-columns:repeat(2,1fr); } .assignment-hero { padding:32px; } .assignment-overview-card { padding-inline:13px; gap:10px; } .assignment-overview-card__arrow { padding-left:12px; } .homework-preview-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .homework-preview-actions { right:20px; width:calc(100% - 116px); } }
@media (max-width:1050px) { .student-assignment-row { grid-template-columns:54px minmax(165px,1fr) minmax(115px,.65fr) minmax(135px,.72fr) 82px 82px; } .student-assignment-row__meta { padding-inline:12px; } }
@media (max-width:700px) { .assignment-overview { grid-template-columns:1fr; } }
@media (max-width:760px) { .student-assignment-row { grid-template-columns:54px minmax(0,1fr) auto; grid-template-rows:auto auto; padding:10px 8px 10px 0; row-gap:5px; } .student-assignment-row__icon { grid-row:1/-1; } .student-assignment-row__title { grid-column:2; align-self:end; } .student-assignment-row__meta { grid-column:2; padding:0; border:0; font-size:11px; } .student-assignment-row__deadline { display:none; } .student-assignment-row__status { grid-column:3; grid-row:1; align-self:end; min-width:64px; } .student-assignment-row__action { grid-column:3; grid-row:2; align-self:start; min-width:64px; margin:0; padding:5px 8px; } }
@media (max-width:620px) { .homework-hero,.homework-submit-bar,.homework-submitted-answer { align-items:stretch; flex-direction:column; } .homework-choice-options,.homework-options-preview { grid-template-columns:1fr; } .homework-stats { gap:10px; } .homework-stats article { padding:17px; } .assignment-hero { min-height:0; padding:25px 23px; } .assignment-hero h1 { font-size:38px; } .assignment-create-button { align-self:flex-start; } .assignment-published .section-heading { align-items:flex-start; flex-direction:column; } .assignment-empty { min-height:220px; padding-inline:18px; } .student-assignment-resume { align-self:stretch; width:100%; } .student-assignment-section .section-heading { align-items:flex-end; flex-direction:row; } .homework-preview-page { padding-bottom:150px; } .homework-preview-hero { align-items:flex-start; flex-direction:column; padding:24px; } .homework-preview-file { width:100%; max-width:none; } .homework-preview-summary { grid-template-columns:1fr; } .homework-preview-actions { right:10px; bottom:10px; width:calc(100% - 20px); align-items:stretch; flex-direction:column; } .homework-preview-actions>div:last-child { width:100%; } .homework-preview-actions>div:last-child>* { flex:1; } .homework-preview-actions form button { width:100%; } }

/* Homework mobile layouts. Desktop rules above remain unchanged. */
@media (max-width:600px) {
  body:has(.teacher-assignment-page) .theme-toggle--floating,
  body:has(.student-assignment-page) .theme-toggle--floating,
  body:has(.student-assignment-page) .mobile-home-back { display:none!important; }
  body:has(.teacher-assignment-page) .mobile-home-back + .site-content { padding-top:14px; }
  body:has(.student-assignment-page) .mobile-home-back + .site-content { padding-top:10px; }

  .assignment-mobile-header {
    height:49px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:14px;
    padding:0 6px;
  }
  .assignment-mobile-header strong { font-size:21px; letter-spacing:-.03em; }
  .assignment-mobile-header>span {
    position:absolute;
    right:0;
    width:39px;
    height:39px;
    display:grid;
    place-items:center;
    padding-bottom:7px;
    border:1px solid #eee7da;
    border-radius:12px;
    background:#fff;
    box-shadow:0 7px 18px rgba(76,56,15,.07);
    font-size:18px;
    letter-spacing:.04em;
  }

  .teacher-assignment-page .assignment-hero {
    min-height:261px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 104px;
    grid-template-rows:1fr auto;
    align-items:center;
    gap:16px 8px;
    padding:27px 21px 26px;
    border-radius:18px;
  }
  .teacher-assignment-page .assignment-hero>div:first-child { min-width:0; }
  .teacher-assignment-page .assignment-hero h1 { margin-bottom:10px; font-size:38px; }
  .teacher-assignment-page .assignment-hero p { max-width:250px; font-size:13px; line-height:1.7; }
  .teacher-assignment-page .assignment-hero .eyebrow { margin-bottom:11px; font-size:10px; }
  .teacher-assignment-hero-art {
    position:relative;
    width:104px;
    height:122px;
    display:block;
    align-self:center;
    justify-self:end;
  }
  .teacher-assignment-hero-art__sheet {
    position:absolute;
    top:5px;
    left:7px;
    width:73px;
    height:91px;
    padding:30px 14px 0;
    border-radius:9px;
    background:#fff2d0;
    box-shadow:0 10px 22px rgba(181,121,0,.12);
  }
  .teacher-assignment-hero-art__sheet::before {
    content:"";
    position:absolute;
    top:0;
    right:0;
    width:25px;
    height:25px;
    background:#fff;
    clip-path:polygon(0 0,100% 100%,0 100%);
  }
  .teacher-assignment-hero-art__sheet i { display:block; height:5px; margin-bottom:9px; border-radius:4px; background:#f5d89a; }
  .teacher-assignment-hero-art__sheet i:nth-child(2) { width:78%; }
  .teacher-assignment-hero-art__upload {
    position:absolute;
    right:0;
    bottom:10px;
    width:45px;
    height:45px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#211800;
    background:#ffcc27;
    box-shadow:0 9px 18px rgba(211,144,0,.22);
    font-size:31px;
    font-weight:900;
    line-height:1;
  }
  .teacher-assignment-page .assignment-create-button { grid-column:1/-1; width:100%; min-height:49px; }
  .teacher-assignment-page .assignment-overview {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
    margin-top:20px;
  }
  .teacher-assignment-page .assignment-overview-card {
    min-height:140px;
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-rows:55px 23px 34px;
    gap:0;
    padding:14px 12px 10px;
    border-radius:13px;
  }
  .teacher-assignment-page .assignment-overview-card__icon { grid-column:1/-1; grid-row:1; width:47px; height:47px; --ui-icon-size:25px; }
  .teacher-assignment-page .assignment-overview-card__copy { display:contents; }
  .teacher-assignment-page .assignment-overview-card__copy small { grid-column:1/-1; grid-row:2; align-self:end; font-size:11px; }
  .teacher-assignment-page .assignment-overview-card__copy strong { grid-column:1; grid-row:3; align-self:end; font-size:27px; }
  .teacher-assignment-page .assignment-overview-card__arrow { grid-column:2; grid-row:3; align-self:end; padding:0; border:0; font-size:23px; }
  .teacher-assignment-page .assignment-published { margin-top:27px; }
  .teacher-assignment-page .assignment-published .section-heading { align-items:center; flex-direction:row; margin-bottom:12px; }
  .teacher-assignment-page .assignment-published .section-heading .eyebrow { display:none; }
  .teacher-assignment-page .assignment-published .section-heading h2 { font-size:25px; }
  .teacher-assignment-page .assignment-template-link { padding:0; font-size:12px; }
  .teacher-assignment-page .assignment-empty { min-height:260px; border-radius:17px; }

  .student-assignment-page .student-assignment-hero {
    min-height:220px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 125px;
    grid-template-rows:1fr auto;
    align-items:center;
    gap:8px 3px;
    padding:23px 23px 25px;
    border-radius:17px;
  }
  .student-assignment-hero>div:first-child { min-width:0; }
  .student-assignment-hero .eyebrow { margin-bottom:8px; font-size:9px; }
  .student-assignment-hero h1 { margin-bottom:8px; font-size:37px; }
  .student-assignment-hero p { max-width:235px; font-size:11px; line-height:1.65; }
  .student-assignment-resume { grid-column:1; grid-row:2; align-self:end; width:154px; min-width:0; min-height:39px; padding:8px 16px; font-size:12px; }
  .student-assignment-hero-art {
    position:relative;
    grid-column:2;
    grid-row:1/-1;
    width:125px;
    height:161px;
    display:block;
    justify-self:end;
  }
  .student-assignment-hero-art::before { content:""; position:absolute; inset:12px 0 0; border-radius:50%; background:#fff7e9; }
  .student-assignment-hero-art__paper {
    position:absolute;
    top:25px;
    left:26px;
    width:77px;
    height:112px;
    padding:35px 18px 0 28px;
    border:1px solid #f1e3c4;
    border-radius:10px;
    background:#fffdf8;
    box-shadow:0 12px 24px rgba(96,68,10,.12);
    transform:rotate(5deg);
  }
  .student-assignment-hero-art__paper i { position:relative; display:block; height:4px; margin-bottom:16px; border-radius:4px; background:#e5cda4; }
  .student-assignment-hero-art__paper i::before { content:""; position:absolute; left:-19px; top:-3px; width:9px; height:6px; border-left:3px solid #3b3a35; border-bottom:3px solid #3b3a35; transform:rotate(-45deg); }
  .student-assignment-hero-art__clip { position:absolute; z-index:2; top:14px; left:47px; width:48px; height:19px; border-radius:8px 8px 4px 4px; background:#6f716f; box-shadow:inset 0 -4px 0 #50524f; }
  .student-assignment-hero-art__clip::before { content:""; position:absolute; top:-10px; left:15px; width:17px; height:15px; border:5px solid #777976; border-bottom:0; border-radius:9px 9px 0 0; }
  .student-assignment-hero-art__check { --ui-icon-size:24px; position:absolute; z-index:3; right:4px; bottom:2px; width:49px; height:49px; border:1px solid #e4a800; border-radius:50%; color:#17140a; background:#ffcc27; box-shadow:0 9px 18px rgba(211,144,0,.23); }
  .student-assignment-page .student-assignment-overview { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-top:16px; }
  .student-assignment-page .student-assignment-overview .assignment-overview-card { min-height:70px; grid-template-columns:41px minmax(0,1fr); gap:7px; padding:8px 7px; border-radius:12px; }
  .student-assignment-page .student-assignment-overview .assignment-overview-card__icon { width:41px; height:41px; --ui-icon-size:23px; }
  .student-assignment-page .student-assignment-overview .assignment-overview-card__copy small { font-size:9px; white-space:nowrap; }
  .student-assignment-page .student-assignment-overview .assignment-overview-card__copy strong { font-size:20px; }
  .student-assignment-page .student-assignment-overview .assignment-overview-card__arrow { display:none; }
  .student-assignment-page .student-assignment-section { margin-top:26px; }
  .student-assignment-page .student-assignment-section .section-heading h2 { font-size:23px; }
  .student-assignment-page .student-assignment-section .section-heading .eyebrow { display:none; }
  .student-assignment-page .student-assignment-row {
    min-height:72px;
    grid-template-columns:49px minmax(0,1fr) 67px;
    grid-template-rows:1fr 1fr;
    gap:0 5px;
    padding:7px 8px 7px 3px;
    border-radius:12px;
  }
  .student-assignment-page .student-assignment-row__icon { grid-column:1; grid-row:1/-1; width:40px; height:40px; --ui-icon-size:23px; }
  .student-assignment-page .student-assignment-row__title { grid-column:2; grid-row:1; align-self:end; padding:0; font-size:14px; }
  .student-assignment-page .student-assignment-row__meta { display:none; }
  .student-assignment-page .student-assignment-row__mobile-meta { grid-column:2; grid-row:2; align-self:start; display:block; overflow:hidden; color:var(--muted); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
  .student-assignment-page .student-assignment-row__status { grid-column:3; grid-row:1; align-self:end; min-width:57px; padding:5px 7px; font-size:9px; }
  .student-assignment-page .student-assignment-row__action { grid-column:3; grid-row:2; align-self:start; min-width:57px; min-height:28px; margin:0; padding:5px 7px; border:1px solid #e5e0d5; font-size:10px; }
  .student-assignment-page .student-assignment-row__action.is-new,
  .student-assignment-page .student-assignment-row__action.is-progress { border-color:#ffcc27; background:#ffcc27; box-shadow:0 6px 13px rgba(211,144,0,.14); }
  .teacher-result-side { width:100%; }
  .teacher-result-side .secondary-button { min-width:0; }
}

/* Student home uses a full dashboard on desktop and the wheel on phones. */
@media (min-width:601px) {
  .student-mobile-dashboard:not(.teacher-mobile-dashboard) {
    display:none!important;
  }
}
@media (max-width:600px) {
  .student-mobile-dashboard:not(.teacher-mobile-dashboard) {
    display:grid!important;
  }
  .student-desktop-dashboard {
    display:none!important;
  }
}

/* Student home navigation wheel */
.student-mobile-dashboard:has(.student-entry-wheel) {
  --student-home-bg:var(--carousel-page-bg,#F8F5ED);
  --student-home-surface:#FFFDF8;
  --student-home-text:#1D2A3F;
  --student-home-muted:#7C7A73;
  min-height:calc(100dvh - 40px);
  display:grid;
  grid-template-rows:auto auto auto minmax(0,1fr);
  padding-bottom:18px;
  background:var(--student-home-bg);
  transition:background-color .32s ease;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-mobile-dashboard__glow {
  top:-100px;
  right:-110px;
  background:radial-gradient(circle,color-mix(in srgb,var(--carousel-active-accent,#E8B93F) 20%,transparent),transparent 68%);
  transition:background .32s ease;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-header {
  padding-right:0;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-brand>span {
  background:var(--carousel-active-button,#3D6EF7);
  box-shadow:0 7px 16px color-mix(in srgb,var(--carousel-active-button,#3D6EF7) 24%,transparent);
  transition:background-color .28s ease,box-shadow .28s ease;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-avatar {
  border-color:rgba(255,255,255,.88);
  background:rgba(255,255,255,.72);
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-intro {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  padding:20px 2px 13px;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-intro h1 {
  font-size:clamp(27px,7.7vw,36px);
  line-height:1.08;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-intro>span {
  flex:0 0 auto;
  padding-bottom:3px;
  color:var(--student-home-muted);
  font-size:10px;
  font-weight:800;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-progress {
  margin-bottom:12px;
  padding:11px 14px 15px;
  border-color:color-mix(in srgb,var(--carousel-active-accent,#E8B93F) 18%,transparent);
  background:color-mix(in srgb,#fff 78%,transparent);
  box-shadow:0 8px 24px rgba(32,49,82,.035);
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-progress__icon {
  width:38px;
  height:38px;
  border-radius:12px;
  color:var(--carousel-active-button,#3D6EF7);
  background:color-mix(in srgb,var(--carousel-active-accent,#E8B93F) 16%,#fff);
  transition:color .28s ease,background-color .28s ease;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-progress__value {
  color:var(--carousel-active-button,#3D6EF7);
  transition:color .28s ease;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-progress__track {
  left:64px;
  bottom:8px;
}
.student-mobile-dashboard:has(.student-entry-wheel) .student-home-progress__track i {
  background:var(--carousel-active-accent,#E8B93F);
  transition:background-color .28s ease;
}
.student-entry-wheel {
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(320px,1fr) auto;
  overflow:hidden;
}
.student-entry-wheel__heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  padding:0 2px;
}
.student-entry-wheel__heading>div>span {
  color:var(--carousel-active-button,#3D6EF7);
  font-size:9px;
  font-weight:950;
  letter-spacing:.14em;
  transition:color .28s ease;
}
.student-entry-wheel__heading h2 {
  margin:2px 0 0;
  font-size:18px;
}
.student-entry-wheel__heading>strong {
  padding-bottom:2px;
  color:var(--student-home-muted);
  font-size:10px;
  letter-spacing:.08em;
}
.student-entry-wheel__heading>strong>span {
  color:var(--student-home-text);
  font-size:16px;
}
.student-entry-carousel {
  min-height:320px;
}
.student-entry-carousel .game-carousel__stage {
  inset:0;
  perspective:1000px;
}
.student-entry-carousel .student-wheel-card {
  --wheel-page:#F8F5ED;
  --wheel-card:#FFFDF8;
  --wheel-text:#1D2A3F;
  --wheel-muted:#7C7A73;
  --wheel-accent:#E8B93F;
  --wheel-button:#3D6EF7;
  --wheel-button-text:#FFFFFF;
  --wheel-border:#E6DFD2;
  width:min(77vw,328px);
  height:min(40dvh,350px);
  min-height:310px;
  padding:21px;
  border-color:var(--wheel-border);
  border-radius:28px;
  color:var(--wheel-text);
  background:var(--wheel-card);
  box-shadow:0 18px 40px color-mix(in srgb,var(--wheel-text) 10%,transparent);
}
.student-entry-carousel .student-wheel-card:nth-child(n) {
  background:var(--wheel-card);
}
.student-entry-carousel .student-wheel-card.is-active {
  border-color:var(--wheel-accent);
  box-shadow:0 25px 50px color-mix(in srgb,var(--wheel-text) 16%,transparent);
}
.student-entry-carousel .student-wheel-card.is-previous {
  transform:translate3d(calc(-50% - 36vw),-50%,-150px) rotateY(31deg) scale(.77);
}
.student-entry-carousel .student-wheel-card.is-next {
  transform:translate3d(calc(-50% + 36vw),-50%,-150px) rotateY(-31deg) scale(.77);
}
.student-entry-carousel .game-carousel__icon {
  width:58px;
  height:58px;
  border-radius:18px;
  color:var(--wheel-button);
  background:color-mix(in srgb,var(--wheel-accent) 18%,#fff);
  box-shadow:none;
}
.student-entry-carousel .game-carousel__icon svg {
  width:27px;
  height:27px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.student-entry-carousel .game-carousel__label {
  border-color:var(--wheel-border);
  color:var(--wheel-text);
  background:color-mix(in srgb,var(--wheel-page) 72%,#fff);
  letter-spacing:.02em;
}
.student-entry-carousel .game-carousel__copy {
  padding:17px 0 14px;
}
.student-entry-carousel .game-carousel__copy small {
  color:var(--wheel-accent);
  font-size:9px;
}
.student-entry-carousel .game-carousel__copy h2 {
  margin:7px 0 8px;
  color:var(--wheel-text);
  font-size:30px;
}
.student-entry-carousel .game-carousel__copy p {
  color:var(--wheel-muted);
  font-size:12px;
  line-height:1.65;
}
.student-entry-carousel .game-carousel__launch {
  min-height:45px;
  border-radius:14px;
  color:var(--wheel-button-text);
  background:var(--wheel-button);
}
.student-entry-carousel .game-carousel__control {
  width:39px;
  height:39px;
  border-color:var(--carousel-active-accent,#E8B93F);
  border-radius:13px;
  color:var(--carousel-active-button,#3D6EF7);
  background:rgba(255,255,255,.88);
  box-shadow:0 8px 20px rgba(29,42,63,.09);
  font-size:29px;
}
.student-entry-carousel .game-carousel__control--prev { left:0; }
.student-entry-carousel .game-carousel__control--next { right:0; }
.student-entry-wheel .game-carousel__footer {
  gap:5px;
  padding:0 0 max(1px,env(safe-area-inset-bottom));
}
.student-entry-wheel .game-carousel__dots button {
  background:color-mix(in srgb,var(--student-home-muted) 35%,transparent);
}
.student-entry-wheel .game-carousel__dots button.is-active {
  background:var(--carousel-active-accent,#E8B93F);
}
.student-entry-wheel .game-carousel__footer p {
  color:var(--student-home-muted);
  font-size:9px;
}
.student-wheel-card--mist {
  --wheel-page:#F3F6FA!important;
  --wheel-card:#FFFFFF!important;
  --wheel-text:#17233D!important;
  --wheel-muted:#748096!important;
  --wheel-accent:#6E8DEB!important;
  --wheel-button:#456FE8!important;
  --wheel-border:#DCE4F0!important;
}
.student-wheel-card--homework {
  --wheel-page:#FFF7ED!important;
  --wheel-card:#FFFDFA!important;
  --wheel-text:#4A3022!important;
  --wheel-muted:#8B7467!important;
  --wheel-accent:#F2A65A!important;
  --wheel-button:#D97732!important;
  --wheel-border:#F0DAC4!important;
}
.student-wheel-card--mint {
  --wheel-page:#F3F8F5!important;
  --wheel-card:#FCFFFD!important;
  --wheel-text:#203C32!important;
  --wheel-muted:#71847B!important;
  --wheel-accent:#65B98B!important;
  --wheel-button:#3C9B70!important;
  --wheel-border:#D5E8DE!important;
}
.student-wheel-card--violet {
  --wheel-page:#F6F3FA!important;
  --wheel-card:#FEFCFF!important;
  --wheel-text:#342B4D!important;
  --wheel-muted:#7E758F!important;
  --wheel-accent:#9A82D8!important;
  --wheel-button:#765DC2!important;
  --wheel-border:#E1D9EF!important;
}
.student-wheel-card--apricot {
  --wheel-page:#FAF5EF!important;
  --wheel-card:#FFFDF9!important;
  --wheel-text:#493428!important;
  --wheel-muted:#88766A!important;
  --wheel-accent:#E6A45C!important;
  --wheel-button:#D9873C!important;
  --wheel-border:#EADAC8!important;
}
@media (max-width:600px) {
  .student-mobile-dashboard:has(.student-entry-wheel) {
    width:calc(100% + 20px);
    min-height:calc(100dvh - 28px);
    margin:-14px -10px;
    padding:14px 16px calc(10px + env(safe-area-inset-bottom));
  }
  .student-mobile-dashboard:has(.student-entry-wheel) .student-home-header {
    padding-top:env(safe-area-inset-top);
  }
}
@media (max-width:380px), (max-height:720px) {
  .student-mobile-dashboard:has(.student-entry-wheel) .student-home-intro {
    padding-block:12px 8px;
  }
  .student-mobile-dashboard:has(.student-entry-wheel) .student-home-intro h1 {
    font-size:25px;
  }
  .student-mobile-dashboard:has(.student-entry-wheel) .student-home-progress {
    margin-bottom:8px;
    padding-block:8px 12px;
  }
  .student-entry-wheel {
    grid-template-rows:auto minmax(278px,1fr) auto;
  }
  .student-entry-carousel {
    min-height:278px;
  }
  .student-entry-carousel .student-wheel-card {
    height:min(39dvh,305px);
    min-height:278px;
    padding:17px;
  }
  .student-entry-carousel .game-carousel__icon {
    width:49px;
    height:49px;
  }
  .student-entry-carousel .game-carousel__copy {
    padding:11px 0 9px;
  }
  .student-entry-carousel .game-carousel__copy h2 {
    font-size:26px;
  }
}

@media (hover:none),(pointer:coarse) {
  .class-wheel__item { will-change:auto; }
}

/* Student radial class selector: one wheel + one continuous detail sheet */
.student-classroom-layout {
  grid-template-columns:410px minmax(0,1fr);
}
.class-wheel-panel {
  padding:18px 0 14px;
  background:#fffdf7;
}
.class-wheel {
  isolation:isolate;
  overflow:hidden;
}
.class-wheel__disc {
  position:absolute;
  top:50%;
  left:-130px;
  width:540px;
  height:540px;
  border:2px solid #e9b82f;
  border-radius:50%;
  background:#ffd863;
  box-shadow:inset -22px 0 0 #f6c844,0 18px 44px rgba(91,66,12,.13);
  transform:translateY(-50%) rotate(var(--wheel-disc-rotation,0deg));
  transition:transform .42s cubic-bezier(.18,.78,.22,1);
  will-change:transform;
}
.class-wheel__disc::before,
.class-wheel__disc::after,
.class-wheel__disc i {
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.class-wheel__disc::before {
  inset:28px;
  border:1px solid rgba(97,69,10,.18);
}
.class-wheel__disc::after {
  inset:92px;
  border:2px dashed rgba(97,69,10,.2);
}
.class-wheel__disc i:nth-child(1) {
  inset:153px;
  border:1px solid rgba(97,69,10,.17);
}
.class-wheel__disc i:nth-child(2) {
  top:50%;
  left:50%;
  width:430px;
  height:1px;
  border-radius:0;
  background:rgba(97,69,10,.12);
  transform:translate(-50%,-50%);
}
.class-wheel__disc i:nth-child(3) {
  top:50%;
  left:50%;
  width:1px;
  height:430px;
  border-radius:0;
  background:rgba(97,69,10,.12);
  transform:translate(-50%,-50%);
}
.class-wheel__item {
  top:50%;
  left:140px;
  width:118px;
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:5px 7px;
  border:0;
  border-radius:8px;
  background:transparent;
  box-shadow:none;
  transform:rotate(var(--wheel-angle)) translateX(212px) rotate(var(--wheel-reverse)) translate(-50%,-50%);
  transition:transform .42s cubic-bezier(.18,.78,.22,1),opacity .2s linear,background-color .2s ease,color .2s ease;
}
.class-wheel__item:hover {
  color:#6d4b00;
  background:rgba(255,255,255,.38);
}
.class-wheel__item span {
  width:auto;
  height:auto;
  display:block;
  overflow:hidden;
  border-radius:0;
  background:transparent;
  font-size:12px;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.class-wheel__item small {
  flex:none;
  color:#805b00;
  font-size:9px;
}
.class-wheel__item.is-near { opacity:.72; }
.class-wheel__item.is-far {
  opacity:.42;
  pointer-events:auto;
}
.class-wheel__item.is-active {
  min-height:38px;
  color:#fff;
  background:#342e25;
  box-shadow:0 9px 20px rgba(61,46,13,.2);
  transform:rotate(var(--wheel-angle)) translateX(212px) rotate(var(--wheel-reverse)) translate(-50%,-50%) scale(1.08);
}
.class-wheel__item.is-active small { color:#ffdf79; }
.class-wheel__pointer {
  position:absolute;
  z-index:6;
  top:50%;
  left:140px;
  width:190px;
  height:8px;
  border-radius:0 6px 6px 0;
  background:#342e25;
  box-shadow:0 4px 10px rgba(64,47,9,.16);
  transform:translateY(-50%);
  pointer-events:none;
}
.class-wheel__pointer::after {
  content:"";
  position:absolute;
  top:50%;
  right:-22px;
  width:0;
  height:0;
  border-top:13px solid transparent;
  border-bottom:13px solid transparent;
  border-left:24px solid #342e25;
  transform:translateY(-50%);
}
.class-wheel__pointer i {
  position:absolute;
  top:50%;
  right:18px;
  width:44px;
  height:3px;
  border-radius:2px;
  background:#ffda64;
  transform:translateY(-50%);
}
.class-wheel__hub {
  left:140px;
  width:82px;
  height:82px;
  border:8px solid #fff2bd;
  color:inherit;
  background:#fffaf0;
  box-shadow:0 12px 25px rgba(74,54,10,.22);
  font-size:37px;
}
.student-class-detail-area {
  display:grid;
  overflow:auto;
  padding:0;
  border-color:var(--line);
  background:var(--card);
}
.student-class-detail {
  min-height:100%;
}
.student-class-sheet {
  min-height:100%;
  display:flex;
  flex-direction:column;
  padding:28px 34px 24px;
}
.student-class-sheet>header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:28px;
}
.student-class-sheet>header h2 {
  margin:10px 0 7px;
  font-size:clamp(34px,3.8vw,52px);
  line-height:1.04;
}
.student-class-sheet>header p {
  max-width:620px;
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.7;
}
.student-class-overview {
  display:flex;
  align-items:center;
  gap:36px;
  margin-top:25px;
  padding:20px 0;
  border-top:1px solid #e9e4d9;
  border-bottom:1px solid #e9e4d9;
}
.student-class-progress {
  min-width:180px;
}
.student-class-progress>strong {
  display:block;
  font-size:39px;
  line-height:1;
}
.student-class-progress>strong small {
  margin-left:2px;
  font-size:17px;
}
.student-class-progress>span {
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:11px;
}
.student-class-progress>i,
.student-class-course-list a>i,
.student-class-course-list>div:not(.student-class-list-title)>i {
  height:5px;
  display:block;
  overflow:hidden;
  border-radius:5px;
  background:#e8e7e2;
}
.student-class-progress>i {
  width:155px;
  margin-top:10px;
}
.student-class-progress i b,
.student-class-course-list i b {
  height:100%;
  display:block;
  background:#38b65a;
}
.student-class-overview dl {
  flex:1;
  display:grid;
  grid-template-columns:repeat(4,minmax(80px,1fr));
  gap:18px;
  margin:0;
}
.student-class-overview dl>div {
  min-width:0;
}
.student-class-overview dt {
  color:var(--muted);
  font-size:10px;
}
.student-class-overview dd {
  margin:5px 0 0;
  overflow:hidden;
  font-size:18px;
  font-weight:950;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.student-class-course-list {
  margin-top:22px;
}
.student-class-list-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:3px;
}
.student-class-list-title strong {
  font-size:17px;
}
.student-class-list-title span {
  color:var(--muted);
  font-size:11px;
}
.student-class-course-list>a,
.student-class-course-list>div:not(.student-class-list-title) {
  min-height:63px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) minmax(80px,170px) 44px;
  align-items:center;
  gap:13px;
  padding:10px 3px;
  border-bottom:1px solid #ece8df;
}
.student-course-index {
  color:#b78b20;
  font-size:13px;
  font-weight:950;
}
.student-class-course-list a>div strong,
.student-class-course-list>div:not(.student-class-list-title)>div strong {
  display:block;
  overflow:hidden;
  font-size:13px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.student-class-course-list a>div small,
.student-class-course-list>div:not(.student-class-list-title)>div small {
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:10px;
}
.student-class-course-list em {
  color:#29984a;
  font-size:11px;
  font-style:normal;
  font-weight:900;
  text-align:right;
}
.student-class-course-list .student-class-empty {
  min-height:100px;
  display:grid;
  place-items:center;
  margin:0;
  border-bottom:1px solid #ece8df;
  color:var(--muted);
  font-size:13px;
}
.student-class-sheet__footer {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  align-items:end;
  gap:26px;
  margin-top:auto;
  padding-top:20px;
}
.student-class-sheet__footer>div span,
.student-class-sheet__footer>div strong,
.student-class-sheet__footer>div small {
  display:block;
}
.student-class-sheet__footer>div span {
  color:var(--muted);
  font-size:10px;
}
.student-class-sheet__footer>div strong {
  margin-top:6px;
  font-size:13px;
}
.student-class-sheet__footer>div small {
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
}
.student-class-sheet__footer nav {
  display:flex;
  gap:8px;
}
.student-class-sheet__footer nav a {
  min-height:38px;
  display:grid;
  place-items:center;
  padding:8px 13px;
  border-radius:9px;
  color:#fff;
  background:#342e25;
  font-size:11px;
  font-weight:900;
}
.student-class-sheet__footer nav a:last-child {
  color:#342e25;
  background:var(--yellow-light);
}
html[data-theme="dark"] .class-wheel-panel {
  background:var(--card);
}
html[data-theme="dark"] .class-wheel__disc {
  border-color:#9c771d;
  background:#7b601d;
  box-shadow:inset -22px 0 0 #654d15,0 18px 44px rgba(0,0,0,.22);
}
html[data-theme="dark"] .class-wheel__hub {
  border-color:#8e732c;
  background:#221f18;
}

@media (max-width:1050px),(max-height:680px) {
  .student-classroom-layout {
    grid-template-columns:360px minmax(0,1fr);
  }
  .class-wheel__disc {
    left:-180px;
  }
  .class-wheel__item,
  .class-wheel__hub,
  .class-wheel__pointer {
    left:90px;
  }
  .student-class-overview {
    align-items:flex-start;
    flex-direction:column;
    gap:20px;
  }
  .student-class-overview dl {
    width:100%;
  }
}

/* Simple one-screen course library */
.course-simple-page {
  height:calc(100vh - 80px);
  min-height:560px;
  display:grid;
  grid-template-rows:104px minmax(0,1fr);
  gap:11px;
  overflow:hidden;
}
.course-simple-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:16px 25px;
  border:1px solid var(--line);
  border-radius:21px;
  background:var(--card);
}
.course-simple-header .eyebrow {
  margin-bottom:3px;
}
.course-simple-header h1 {
  margin:0 0 4px;
  font-size:clamp(33px,3.6vw,47px);
}
.course-simple-header p {
  margin:0;
  color:var(--muted);
  font-size:12px;
}
.course-simple-header>a {
  min-height:42px;
  display:grid;
  place-items:center;
  padding:9px 17px;
  border-radius:10px;
  background:var(--yellow-strong);
  font-size:12px;
  font-weight:950;
}
.course-simple-workspace {
  min-height:0;
  display:grid;
  grid-template-columns:310px minmax(0,1fr);
  gap:11px;
}
.course-simple-picker,
.course-simple-detail,
.course-simple-empty {
  min-height:0;
  border:1px solid var(--line);
  border-radius:21px;
  background:var(--card);
}
.course-simple-picker {
  display:grid;
  grid-template-rows:43px minmax(0,1fr) 35px;
  gap:10px;
  padding:14px;
  overflow:hidden;
}
.course-simple-picker>label {
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 11px;
  border:1px solid #e8e4da;
  border-radius:10px;
  background:#fbfbf9;
}
.course-simple-picker>label span {
  font-size:19px;
}
.course-simple-picker input {
  min-width:0;
  width:100%;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  font-size:12px;
}
.course-simple-list {
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:7px;
  overflow:hidden;
}
.course-simple-list button {
  min-height:59px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:8px 10px;
  border:1px solid transparent;
  border-radius:11px;
  color:var(--text);
  background:#f7f7f4;
  text-align:left;
  cursor:pointer;
}
.course-simple-list button[hidden] {
  display:none;
}
.course-simple-list button.is-active {
  border-color:#e2b33e;
  background:var(--yellow-light);
}
.course-simple-list button>span {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:var(--card);
}
.course-simple-list button strong {
  overflow:hidden;
  font-size:12px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.course-simple-list button small {
  color:var(--muted);
  font-size:9px;
}
.course-simple-picker>footer {
  display:grid;
  grid-template-columns:34px 1fr 34px;
  align-items:center;
  gap:7px;
}
.course-simple-picker>footer button {
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--card);
  cursor:pointer;
}
.course-simple-picker>footer button:disabled {
  opacity:.32;
  cursor:default;
}
.course-simple-picker>footer span {
  color:var(--muted);
  font-size:10px;
  text-align:center;
}
.course-simple-detail {
  overflow:hidden;
}
.course-simple-detail>article {
  min-height:100%;
  display:flex;
  flex-direction:column;
  padding:28px 32px;
}
.course-simple-detail>article[hidden] {
  display:none;
}
.course-simple-detail__top {
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.course-simple-detail__top small {
  color:#299447;
  font-size:10px;
  font-weight:900;
}
.course-simple-detail__main {
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  align-items:center;
  gap:17px;
  margin-top:24px;
}
.course-simple-detail__main>span {
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:var(--yellow-light);
  font-size:34px;
}
.course-simple-detail__main h2 {
  margin:0 0 7px;
  font-size:clamp(31px,4vw,49px);
  line-height:1.08;
}
.course-simple-detail__main p {
  max-width:650px;
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.7;
}
.course-simple-detail dl {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin:28px 0 0;
  padding:21px 0;
  border-top:1px solid #ebe7dd;
  border-bottom:1px solid #ebe7dd;
}
.course-simple-detail dl>div {
  padding:0 16px;
  border-right:1px solid #ebe7dd;
}
.course-simple-detail dl>div:first-child {
  padding-left:0;
}
.course-simple-detail dl>div:last-child {
  border:0;
}
.course-simple-detail dt {
  color:var(--muted);
  font-size:10px;
}
.course-simple-detail dd {
  margin:7px 0 0;
  font-size:18px;
  font-weight:950;
}
.course-simple-detail>article>footer {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-top:auto;
}
.course-simple-detail>article>footer span,
.course-simple-detail>article>footer strong {
  display:block;
}
.course-simple-detail>article>footer span {
  color:var(--muted);
  font-size:10px;
}
.course-simple-detail>article>footer strong {
  margin-top:5px;
  font-size:13px;
}
.course-simple-detail>article>footer a {
  min-height:41px;
  display:grid;
  place-items:center;
  padding:9px 17px;
  border-radius:10px;
  color:#fff;
  background:#342e25;
  font-size:12px;
  font-weight:900;
}
.course-simple-no-results,
.course-simple-empty {
  place-items:center;
  align-content:center;
  text-align:center;
}
.course-simple-no-results:not([hidden]),
.course-simple-empty {
  display:grid;
}
.course-simple-no-results>span,
.course-simple-empty>span {
  font-size:45px;
}
.course-simple-no-results strong,
.course-simple-no-results small {
  display:block;
}
.course-simple-no-results strong {
  margin-top:10px;
}
.course-simple-no-results small,
.course-simple-empty p {
  margin-top:5px;
  color:var(--muted);
}

/* Compact student class page */
.student-classroom-page--simple {
  height:calc(100vh - 80px);
  min-height:560px;
  grid-template-rows:96px minmax(0,1fr);
  gap:11px;
  overflow:hidden;
}
.student-classroom-page--simple .student-classroom-header {
  min-height:96px;
  padding:14px 24px;
}
.student-classroom-page--simple .student-classroom-header h1 {
  margin-bottom:3px;
  font-size:clamp(32px,3.6vw,46px);
}
.student-classroom-page--simple .student-classroom-layout {
  grid-template-columns:350px minmax(0,1fr);
  gap:11px;
}
.student-classroom-page--simple .class-wheel-panel {
  padding-top:14px;
}
.student-classroom-page--simple .class-wheel__disc {
  left:-190px;
  width:500px;
  height:500px;
}
.student-classroom-page--simple .class-wheel__item,
.student-classroom-page--simple .class-wheel__hub,
.student-classroom-page--simple .class-wheel__pointer {
  left:60px;
}
.student-classroom-page--simple .class-wheel__item {
  transform:rotate(var(--wheel-angle)) translateX(202px) rotate(var(--wheel-reverse)) translate(-50%,-50%);
}
.student-classroom-page--simple .class-wheel__item.is-active {
  transform:rotate(var(--wheel-angle)) translateX(202px) rotate(var(--wheel-reverse)) translate(-50%,-50%) scale(1.08);
}
.student-classroom-page--simple .class-wheel__pointer {
  width:180px;
}
.student-classroom-page--simple .student-class-detail-area {
  overflow:hidden;
}
.student-class-simple[hidden] {
  display:none;
}
.student-class-simple {
  min-height:100%;
  display:flex;
  flex-direction:column;
  padding:24px 29px 21px;
}
.student-class-simple>header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
}
.student-class-simple>header h2 {
  margin:8px 0 5px;
  font-size:clamp(31px,3.8vw,48px);
  line-height:1.05;
}
.student-class-simple>header p {
  max-width:600px;
  margin:0;
  color:var(--muted);
  font-size:11px;
}
.student-class-simple__progress {
  display:grid;
  grid-template-columns:100px minmax(90px,1fr) auto;
  align-items:center;
  gap:20px;
  margin-top:19px;
  padding:16px 0;
  border-top:1px solid #ebe7dd;
  border-bottom:1px solid #ebe7dd;
}
.student-class-simple__progress>div>strong,
.student-class-simple__progress>div>span {
  display:block;
}
.student-class-simple__progress>div>strong {
  font-size:29px;
  line-height:1;
}
.student-class-simple__progress>div>strong small {
  font-size:13px;
}
.student-class-simple__progress>div>span {
  margin-top:4px;
  color:var(--muted);
  font-size:9px;
}
.student-class-simple__progress>i {
  height:6px;
  display:block;
  overflow:hidden;
  border-radius:6px;
  background:#e7e7e2;
}
.student-class-simple__progress>i b {
  height:100%;
  display:block;
  background:#36b757;
}
.student-class-simple__progress dl {
  display:flex;
  gap:22px;
  margin:0;
}
.student-class-simple__progress dl>div {
  min-width:45px;
}
.student-class-simple__progress dt {
  color:var(--muted);
  font-size:9px;
}
.student-class-simple__progress dd {
  margin:4px 0 0;
  font-size:15px;
  font-weight:950;
}
.student-class-simple__courses {
  min-height:0;
  margin-top:17px;
}
.student-class-simple__courses>header {
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.student-class-simple__courses>header strong {
  font-size:14px;
}
.student-class-simple__courses>header span {
  color:var(--muted);
  font-size:9px;
}
.student-class-simple__courses>div {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px 10px;
  margin-top:8px;
}
.student-class-simple__courses a {
  min-width:0;
  min-height:55px;
  display:grid;
  grid-template-columns:31px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:7px 9px;
  border:1px solid #ebe7dd;
  border-radius:10px;
}
.student-class-simple__courses a>span {
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:var(--yellow-light);
}
.student-class-simple__courses a strong,
.student-class-simple__courses a small {
  display:block;
}
.student-class-simple__courses a strong {
  overflow:hidden;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.student-class-simple__courses a small {
  margin-top:3px;
  color:var(--muted);
  font-size:8px;
}
.student-class-simple__courses a em {
  color:#2a9b4b;
  font-size:9px;
  font-style:normal;
  font-weight:900;
}
.student-class-simple__courses>div>p {
  grid-column:1/-1;
  min-height:70px;
  display:grid;
  place-items:center;
  margin:0;
  color:var(--muted);
  font-size:11px;
}
.student-class-simple>footer {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-top:auto;
  padding-top:15px;
}
.student-class-simple>footer>div span,
.student-class-simple>footer>div strong,
.student-class-simple>footer>div small {
  display:block;
}
.student-class-simple>footer>div span {
  color:var(--muted);
  font-size:9px;
}
.student-class-simple>footer>div strong {
  margin-top:4px;
  font-size:11px;
}
.student-class-simple>footer>div small {
  margin-top:2px;
  color:var(--muted);
  font-size:9px;
}
.student-class-simple>footer nav {
  display:flex;
  gap:8px;
}
.student-class-simple>footer nav a {
  min-height:36px;
  display:grid;
  place-items:center;
  padding:7px 12px;
  border-radius:9px;
  background:var(--yellow-light);
  font-size:10px;
  font-weight:900;
}
.student-class-simple>footer nav a:last-child {
  color:#fff;
  background:#342e25;
}

@media (max-width:760px) {
  .course-simple-page,
  .student-classroom-page--simple {
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .course-simple-header {
    align-items:flex-start;
    flex-direction:column;
    height:auto;
  }
  .course-simple-header>a {
    width:100%;
  }
  .course-simple-workspace {
    grid-template-columns:1fr;
  }
  .course-simple-picker {
    min-height:430px;
  }
  .course-simple-detail {
    min-height:480px;
  }
  .course-simple-detail dl {
    grid-template-columns:1fr 1fr;
    gap:18px 0;
  }
  .course-simple-detail dl>div:nth-child(2) {
    border-right:0;
  }
  .student-classroom-page--simple .student-classroom-layout {
    grid-template-columns:1fr;
  }
  .student-classroom-page--simple .class-wheel__disc {
    left:calc(50% - 400px);
  }
  .student-classroom-page--simple .class-wheel__item,
  .student-classroom-page--simple .class-wheel__hub,
  .student-classroom-page--simple .class-wheel__pointer {
    left:calc(50% - 150px);
  }
  .student-class-simple {
    padding:21px 18px;
  }
  .student-class-simple>header {
    flex-direction:column;
  }
  .student-class-simple__progress {
    grid-template-columns:90px minmax(80px,1fr);
  }
  .student-class-simple__progress dl {
    grid-column:1/-1;
  }
  .student-class-simple__courses>div {
    grid-template-columns:1fr;
  }
}

@media (max-width:760px) {
  .student-classroom-layout {
    grid-template-columns:1fr;
  }
  .class-wheel-panel {
    min-height:500px;
  }
  .class-wheel__disc {
    left:calc(50% - 400px);
  }
  .class-wheel__item,
  .class-wheel__hub,
  .class-wheel__pointer {
    left:calc(50% - 130px);
  }
  .student-class-sheet {
    padding:22px 19px;
  }
  .student-class-sheet>header {
    flex-direction:column;
  }
  .student-class-overview dl {
    grid-template-columns:1fr 1fr;
  }
  .student-class-course-list>a,
  .student-class-course-list>div:not(.student-class-list-title) {
    grid-template-columns:30px minmax(0,1fr) 42px;
  }
  .student-class-course-list>a>i,
  .student-class-course-list>div:not(.student-class-list-title)>i {
    display:none;
  }
  .student-class-sheet__footer {
    grid-template-columns:1fr 1fr;
  }
  .student-class-sheet__footer nav {
    grid-column:1/-1;
  }
  .student-classroom-page--simple .class-wheel__item,
  .student-classroom-page--simple .class-wheel__hub,
  .student-classroom-page--simple .class-wheel__pointer {
    left:calc(50% - 150px);
  }
}

/* Student 3D class orbit */
.student-classroom-page--orbit {
  height:calc(100vh - 80px);
  min-height:560px;
  grid-template-rows:96px minmax(0,1fr);
  gap:11px;
  overflow:hidden;
}
.student-classroom-page--orbit .student-classroom-header {
  min-height:96px;
  padding:14px 24px;
}
.student-classroom-page--orbit .student-classroom-header h1 {
  margin-bottom:3px;
  font-size:clamp(32px,3.6vw,46px);
}
.student-classroom-orbit-layout {
  grid-template-columns:370px minmax(0,1fr);
  gap:11px;
}
.class-orbit-panel {
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  padding:15px 0 13px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--card);
}
.class-orbit-panel .class-wheel-copy {
  padding:0 17px;
}
.class-orbit {
  position:relative;
  min-height:0;
  overflow:hidden;
  outline:none;
  perspective:760px;
  transform-style:preserve-3d;
  touch-action:none;
  cursor:grab;
  user-select:none;
}
.class-orbit.is-dragging {
  cursor:grabbing;
}
.class-orbit:focus-visible {
  outline:2px solid var(--yellow-strong);
  outline-offset:-5px;
}
.class-orbit__arc {
  position:absolute;
  top:50%;
  left:-215px;
  width:485px;
  height:485px;
  border:1px solid rgba(194,151,40,.25);
  border-radius:50%;
  transform:translateY(-50%);
  pointer-events:none;
}
.class-orbit__arc::before,
.class-orbit__arc::after {
  content:"";
  position:absolute;
  border-radius:50%;
}
.class-orbit__arc::before {
  inset:36px;
  border:1px dashed rgba(194,151,40,.18);
}
.class-orbit__arc::after {
  inset:112px;
  border:1px solid rgba(194,151,40,.13);
}
.class-orbit__focus {
  position:absolute;
  z-index:1;
  top:50%;
  left:calc(54% - 149px);
  width:298px;
  height:76px;
  border:1px dashed rgba(218,164,29,.34);
  border-radius:16px;
  transform:translateY(-50%);
  pointer-events:none;
}
.class-orbit__item {
  position:absolute;
  top:50%;
  left:54%;
  width:286px;
  min-height:68px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border:1px solid #e8e4da;
  border-radius:15px;
  color:var(--text);
  background:var(--card);
  box-shadow:0 12px 25px rgba(62,47,14,.09);
  text-align:left;
  opacity:var(--orbit-opacity,0);
  transform:
    translate3d(
      calc(-50% + var(--orbit-x,0px)),
      calc(-50% + var(--orbit-y,0px)),
      var(--orbit-z,0px)
    )
    rotateX(var(--orbit-tilt-x,var(--orbit-tilt,0deg)))
    rotateY(var(--orbit-tilt-y,0deg))
    scale(var(--orbit-scale,1));
  transition:
    transform .46s cubic-bezier(.18,.78,.22,1),
    opacity .24s linear,
    border-color .2s ease,
    background-color .2s ease,
    box-shadow .2s ease;
  will-change:transform,opacity;
  cursor:pointer;
  transform-style:preserve-3d;
}
.class-orbit.is-dragging .class-orbit__item {
  transition:none;
}
.class-orbit.is-orbit-animating .class-orbit__item {
  transition:none;
}
.class-orbit__item.is-far {
  pointer-events:none;
}
.class-orbit__item.is-active {
  z-index:6;
  border-color:#e4ad28;
  background:#fff7d9;
  box-shadow:0 17px 30px rgba(104,76,12,.16);
}
.class-orbit__icon {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#fff;
  box-shadow:0 5px 13px rgba(69,52,14,.07);
  font-size:20px;
}
.class-orbit__copy {
  min-width:0;
}
.class-orbit__copy strong,
.class-orbit__copy small {
  display:block;
}
.class-orbit__copy strong {
  overflow:hidden;
  font-size:13px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.class-orbit__copy small {
  margin-top:4px;
  overflow:hidden;
  color:var(--muted);
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.class-orbit__item em {
  color:var(--muted);
  font-size:11px;
  font-style:normal;
  white-space:nowrap;
}
.class-orbit-controls {
  padding:0 16px;
}
.orbit-arrow-mobile,
.orbit-help-mobile {
  display:none;
}
.class-orbit-controls i {
  font-style:normal;
}
.student-class-orbit-detail {
  overflow:hidden;
}
.student-orbit-detail[hidden] {
  display:none;
}
.student-orbit-detail {
  min-height:100%;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  gap:14px;
  padding:22px 27px 18px;
}
.student-orbit-detail__header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
}
.student-orbit-detail__header h2 {
  margin:7px 0 4px;
  font-size:clamp(29px,3.5vw,43px);
  line-height:1.05;
}
.student-orbit-detail__header p {
  max-width:550px;
  margin:0;
  color:var(--muted);
  font-size:11px;
}
.student-orbit-detail__summary {
  display:grid;
  grid-template-columns:minmax(150px,1fr) auto;
  align-items:center;
  gap:25px;
  padding:12px 0;
  border-top:1px solid #ebe7dd;
  border-bottom:1px solid #ebe7dd;
}
.student-orbit-progress {
  display:grid;
  grid-template-columns:auto minmax(80px,1fr);
  align-items:center;
  gap:3px 15px;
}
.student-orbit-progress>strong {
  grid-row:1/3;
  font-size:28px;
  line-height:1;
}
.student-orbit-progress>strong small {
  font-size:12px;
}
.student-orbit-progress>span {
  color:var(--muted);
  font-size:9px;
}
.student-orbit-progress>i,
.student-course-detail footer>i {
  height:5px;
  display:block;
  overflow:hidden;
  border-radius:5px;
  background:#e7e7e2;
}
.student-orbit-progress i b,
.student-course-detail footer i b {
  height:100%;
  display:block;
  background:#36b757;
}
.student-orbit-detail__summary>dl {
  display:flex;
  gap:24px;
  margin:0;
}
.student-orbit-detail__summary dt {
  color:var(--muted);
  font-size:10px;
}
.student-orbit-detail__summary dd {
  margin:4px 0 0;
  font-size:16px;
  font-weight:950;
}
.student-course-browser {
  min-height:0;
  display:grid;
  grid-template-columns:340px minmax(0,1fr);
  gap:17px;
  align-items:stretch;
}
.student-course-switcher {
  min-width:0;
  display:grid;
  grid-template-columns:33px minmax(0,1fr) 33px;
  align-items:center;
  align-content:center;
  gap:8px;
}
.student-course-switcher>button {
  width:33px;
  height:38px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--card);
  cursor:pointer;
}
.student-course-switcher>button:disabled {
  opacity:.28;
  cursor:default;
}
.student-course-switcher>div {
  min-width:0;
}
.student-course-box {
  width:100%;
  min-height:74px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid #e4ad28;
  border-radius:15px;
  color:var(--text);
  background:#fff7d9;
  text-align:left;
  cursor:pointer;
}
.student-course-box[hidden] {
  display:none;
}
.student-course-box>span {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#fff;
  font-size:20px;
}
.student-course-box strong {
  overflow:hidden;
  font-size:13px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.student-course-box small {
  color:var(--muted);
  font-size:10px;
  white-space:nowrap;
}
.student-course-switcher>span {
  grid-column:1/-1;
  color:var(--muted);
  font-size:9px;
  text-align:center;
}
.student-course-detail-stack {
  min-width:0;
}
.student-course-detail[hidden] {
  display:none;
}
.student-course-detail {
  min-height:100%;
  display:flex;
  flex-direction:column;
  padding:13px 15px;
  border-left:1px solid #ebe7dd;
}
.student-course-detail>div>span {
  color:var(--yellow-dark);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
}
.student-course-detail h3 {
  margin:6px 0 4px;
  font-size:20px;
}
.student-course-detail p {
  margin:0;
  color:var(--muted);
  font-size:10px;
  line-height:1.55;
}
.student-course-detail dl {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin:13px 0 0;
}
.student-course-detail dt {
  color:var(--muted);
  font-size:9px;
}
.student-course-detail dd {
  margin:3px 0 0;
  font-size:13px;
  font-weight:950;
}
.student-course-detail footer {
  display:grid;
  grid-template-columns:minmax(80px,1fr) auto;
  align-items:center;
  gap:12px;
  margin-top:auto;
  padding-top:12px;
}
.student-course-detail footer a {
  min-height:35px;
  display:grid;
  place-items:center;
  padding:7px 12px;
  border-radius:9px;
  color:#fff;
  background:#342e25;
  font-size:11px;
  font-weight:900;
}
.student-orbit-empty {
  display:grid;
  place-items:center;
  align-content:center;
  color:var(--muted);
}
.student-orbit-empty>span {
  font-size:36px;
}
.student-orbit-empty strong,
.student-orbit-empty small {
  display:block;
  margin-top:6px;
}
.student-orbit-detail__footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
}
.student-orbit-detail__footer>span {
  color:var(--muted);
  font-size:10px;
}
.student-orbit-detail__footer>span strong {
  color:var(--text);
}
.student-orbit-detail__footer nav {
  display:flex;
  gap:7px;
}
.student-orbit-detail__footer nav a {
  padding:7px 11px;
  border-radius:8px;
  background:var(--yellow-light);
  font-size:10px;
  font-weight:900;
}
.student-orbit-detail__footer nav a:last-child {
  color:#fff;
  background:#342e25;
}
html[data-theme="dark"] .class-orbit__item {
  background:var(--card);
  border-color:var(--line);
}
html[data-theme="dark"] .class-orbit__item.is-active,
html[data-theme="dark"] .student-course-box {
  color:#30270f;
  background:#dbc168;
  border-color:#e6bc47;
}

@media (max-width:900px) {
  .student-classroom-orbit-layout {
    grid-template-columns:320px minmax(0,1fr);
  }
  .class-orbit__item {
    width:246px;
  }
  .class-orbit__focus {
    left:calc(54% - 129px);
    width:258px;
  }
  .student-course-browser {
    grid-template-columns:240px minmax(0,1fr);
  }
}

@media (max-width:760px) {
  .student-classroom-page--orbit {
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .student-classroom-orbit-layout {
    grid-template-columns:1fr;
  }
  .class-orbit-panel {
    min-height:500px;
  }
  .student-class-orbit-detail {
    min-height:520px;
  }
  .student-orbit-detail {
    padding:20px 17px;
  }
  .student-orbit-detail__header {
    flex-direction:column;
  }
  .student-course-browser {
    grid-template-columns:1fr;
  }
  .student-course-detail {
    border-top:1px solid #ebe7dd;
    border-left:0;
  }
}

@media (hover:none),(pointer:coarse) {
  .class-orbit__item {
    will-change:auto;
  }
}

@media (prefers-reduced-motion:reduce) {
  .class-orbit__item {
    transition-duration:.12s;
  }
}

/* Classroom and course page readability */
.classroom-search input,
.classroom-manager__toolbar select,
.classroom-view-switch button {
  font-size:14px;
}
.classroom-favorites>strong,
.classroom-favorites button {
  font-size:13px;
}
.classroom-filter-rail strong {
  font-size:13px;
}
.classroom-filter-rail b {
  font-size:11px;
}
.classroom-management-card__code {
  font-size:11px;
}
.classroom-management-card h2 {
  font-size:19px;
}
.classroom-management-card>p {
  font-size:12px;
}
.classroom-management-card__metrics small,
.classroom-management-card>footer small {
  font-size:11px;
}
.classroom-management-card__metrics strong {
  font-size:14px;
}
.classroom-management-card>footer strong {
  font-size:12px;
}
.classroom-management-card>footer em {
  font-size:11px;
}
.classroom-preview__head p,
.classroom-preview__head>em {
  font-size:11px;
}
.classroom-preview__stats small,
.classroom-preview__panel span,
.classroom-preview__panel small {
  font-size:11px;
}
.classroom-preview__panel strong {
  font-size:14px;
}
.classroom-preview__actions>strong {
  font-size:13px;
}
.classroom-preview__actions a {
  font-size:11px;
}
.classroom-preview__open {
  font-size:12px;
}
.course-simple-header p {
  font-size:14px;
}
.course-simple-picker input {
  font-size:14px;
}
.course-simple-list button strong {
  font-size:14px;
}
.course-simple-list button small {
  font-size:11px;
}
.course-simple-picker>footer span {
  font-size:12px;
}
.course-simple-detail__top small {
  font-size:12px;
}
.course-simple-detail__main p {
  font-size:14px;
}
.course-simple-detail dt {
  font-size:12px;
}
.course-simple-detail dd {
  font-size:20px;
}
.course-simple-detail>article>footer span {
  font-size:12px;
}
.course-simple-detail>article>footer strong {
  font-size:15px;
}
.course-simple-detail>article>footer a {
  font-size:14px;
}
.student-classroom-page--orbit .student-classroom-header p {
  font-size:13px;
}
.class-orbit__copy strong {
  font-size:15px;
}
.class-orbit__copy small,
.class-orbit__item em {
  font-size:12px;
}
.student-orbit-detail__header p {
  font-size:13px;
}
.student-orbit-progress>span {
  font-size:11px;
}
.student-orbit-detail__summary dt {
  font-size:11px;
}
.student-orbit-detail__summary dd {
  font-size:18px;
}
.student-course-box strong {
  font-size:15px;
}
.student-course-box small {
  font-size:12px;
}
.student-course-switcher>span {
  font-size:11px;
}
.student-course-detail>div>span {
  font-size:11px;
}
.student-course-detail h3 {
  font-size:22px;
}
.student-course-detail p {
  font-size:12px;
}
.student-course-detail dt {
  font-size:11px;
}
.student-course-detail dd {
  font-size:15px;
}
.student-course-detail footer a {
  font-size:13px;
}
.student-orbit-detail__footer>span {
  font-size:11px;
}
.student-orbit-detail__footer nav a {
  font-size:12px;
}

/* Student dashboard readability */
.replica-dashboard--student .replica-header h1 {
  font-size:clamp(32px,3.6vw,46px);
}
.replica-dashboard--student .replica-header p {
  font-size:17px;
}
.replica-dashboard--student .replica-user-name strong {
  font-size:17px;
}
.replica-dashboard--student .replica-user-name small {
  font-size:13px;
}
.replica-dashboard--student :is(
  .replica-progress-panel,
  .replica-stat-panel,
  .replica-next-panel
) header strong {
  font-size:18px;
}
.replica-dashboard--student :is(
  .replica-progress-panel,
  .replica-stat-panel
) header small {
  font-size:13px;
}
.replica-dashboard--student .replica-step small {
  font-size:12px;
}
.replica-dashboard--student .replica-step strong {
  font-size:15px;
}
.replica-dashboard--student .replica-next-panel>div b {
  font-size:21px;
}
.replica-dashboard--student .replica-next-panel>div span {
  font-size:15px;
}
.replica-dashboard--student .replica-next-panel>a {
  font-size:15px;
}
.replica-dashboard--student .replica-card-title small {
  font-size:12px;
}
.replica-dashboard--student .replica-card-title h2 {
  font-size:23px;
}
.replica-dashboard--student .replica-card-title>a {
  font-size:13px;
}
.replica-dashboard--student .replica-card>p {
  font-size:15px;
}
.replica-dashboard--student .replica-card-action {
  font-size:15px;
}
.replica-dashboard--student .replica-data-list>a strong {
  font-size:15px;
}
.replica-dashboard--student .replica-data-list>a small {
  font-size:13px;
}
.replica-dashboard--student .replica-data-list>a>b,
.replica-dashboard--student .replica-data-list>a>em {
  font-size:15px;
}
.replica-dashboard--student .replica-list-empty {
  font-size:14px;
}
.replica-dashboard--student .replica-activity-list span {
  font-size:15px;
}
.replica-dashboard--student .replica-activity-list strong,
.replica-dashboard--student .replica-activity-list small {
  font-size:14px;
}
.replica-dashboard--student .replica-activity-list time {
  font-size:12px;
}
.replica-dashboard--student .replica-quick-grid>a strong {
  font-size:14px;
}
.replica-dashboard--student .replica-course-row strong {
  font-size:15px;
}
.replica-dashboard--student .replica-course-row small,
.replica-dashboard--student .replica-course-row>em {
  font-size:13px;
}
.replica-dashboard--student .replica-split-actions a {
  font-size:13px;
}
.replica-dashboard--student .replica-follow-list strong,
.replica-dashboard--student .replica-follow-list b {
  font-size:14px;
}
.replica-dashboard--student .widget-details {
  font-size:14px;
}
.replica-dashboard--student .replica-progress-ring small,
.replica-dashboard--student .replica-learning-stat li,
.replica-dashboard--student .replica-learning-stat li b {
  font-size:13px;
}
.replica-dashboard--student .replica-stat-empty span {
  font-size:14px;
}

.mobile-page-launcher,
.mobile-home-back {
  display:none;
}

.game-carousel__stage {
  transform:translate3d(var(--carousel-drag-x,0),0,0);
  transition:transform .2s cubic-bezier(.2,.78,.22,1);
}
.game-carousel__stage.is-dragging {
  transition:none;
}

/* Mobile application chrome: compact header actions + bottom navigation. */
@media (max-width:600px) {
  html {
    -webkit-tap-highlight-color:transparent;
    overscroll-behavior-y:none;
  }
  body {
    padding-bottom:0;
  }

  .app-sidebar,
  .app-sidebar:is(:hover,:focus-within,.is-held-open),
  html.nav-held .app-sidebar {
    display:none!important;
  }

  .app-sidebar .brand {
    display:none!important;
  }
  .app-sidebar .brand img,
  .app-sidebar:is(:hover,:focus-within,.is-held-open) .brand img,
  html.nav-held .app-sidebar .brand img {
    width:34px;
    height:34px;
    flex-basis:34px;
    opacity:1;
    transition:none;
  }
  .app-sidebar .brand .nav-label { display:none; }

  .app-sidebar .main-nav {
    min-width:0;
    height:100%;
    flex:1;
    flex-direction:row;
    align-items:stretch;
    gap:1px;
    padding:0;
  }
  .app-sidebar .main-nav a,
  .app-sidebar .sidebar-action {
    min-width:0;
    min-height:0;
    height:100%;
    flex:1 1 0;
    flex-direction:column;
    justify-content:center;
    gap:3px;
    padding:4px 2px;
    border-radius:11px;
    font-size:9px;
    line-height:1.05;
    text-align:center;
    transition:none!important;
    transform:none!important;
    -webkit-tap-highlight-color:transparent;
    outline:none!important;
  }
  .app-sidebar .main-nav a:hover,
  .app-sidebar .main-nav a:focus,
  .app-sidebar .main-nav a:focus-visible,
  .app-sidebar .sidebar-action:hover,
  .app-sidebar .sidebar-action:focus,
  .app-sidebar .sidebar-action:focus-visible {
    color:var(--muted);
    background:transparent!important;
    transform:none!important;
    box-shadow:none!important;
  }
  .app-sidebar .main-nav a.active {
    color:var(--text);
    background:var(--yellow-light)!important;
  }
  .app-sidebar .nav-active-indicator { display:none; }
  .app-sidebar .nav-icon {
    width:27px;
    height:27px;
    flex:0 0 27px;
    font-size:19px;
  }
  .app-sidebar .nav-label {
    max-width:100%;
    overflow:hidden;
    opacity:1;
    transform:none;
    transition:none;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .app-sidebar .account-menu {
    position:fixed;
    top:max(10px,env(safe-area-inset-top));
    right:12px;
    z-index:102;
    width:44px;
    min-height:44px;
    display:grid;
    place-items:center;
    padding:3px;
    border:1px solid var(--line);
    border-radius:15px;
    background:var(--card);
    box-shadow:0 5px 16px rgba(54,45,24,.08);
    transition:none!important;
    transform:none!important;
    -webkit-tap-highlight-color:transparent;
    outline:none!important;
  }
  .app-sidebar .account-menu:hover,
  .app-sidebar .account-menu:focus,
  .app-sidebar .account-menu:focus-visible {
    background:var(--card)!important;
    transform:none!important;
    box-shadow:0 5px 16px rgba(54,45,24,.08)!important;
  }
  .app-sidebar .account-menu>div { display:none; }
  .app-sidebar .account-avatar {
    display:grid;
    width:36px;
    height:36px;
    flex-basis:36px;
    border-radius:12px;
  }
  .app-sidebar .account-default-icon { display:none; }

  .app-sidebar .account-switch-link,
  .app-sidebar>form { display:none!important; }

  .site-content {
    width:calc(100% - 20px);
    margin-left:10px;
    padding:14px 0 24px;
    filter:none!important;
    transition:none!important;
    touch-action:pan-y;
    transform:translate3d(var(--page-swipe-x,0),0,0);
    opacity:var(--page-swipe-opacity,1);
    will-change:auto;
  }
  .site-content.is-swipe-tracking {
    will-change:transform,opacity;
    transition:none!important;
  }
  .site-content.is-swipe-settling {
    will-change:transform,opacity;
    transition:transform .2s cubic-bezier(.2,.78,.22,1),opacity .16s linear!important;
  }
  .site-content::after,
  .app-sidebar:is(:hover,:focus-within,.is-held-open)~.site-content::after,
  html.nav-held .app-sidebar~.site-content::after {
    display:none!important;
    opacity:0!important;
    visibility:hidden!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }

  .replica-header .replica-profile-link { display:none!important; }

  .mobile-home-back {
    position:fixed;
    top:max(12px,env(safe-area-inset-top));
    left:12px;
    z-index:2147483600;
    min-height:42px;
    display:flex;
    align-items:center;
    gap:7px;
    padding:8px 13px;
    border:1px solid var(--line);
    border-radius:14px;
    color:var(--text);
    background:var(--card);
    box-shadow:0 7px 20px rgba(54,45,24,.1);
    font-size:12px;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-home-back:focus,
  .mobile-home-back:focus-visible {
    outline:none;
  }
  .mobile-home-back>span {
    font-size:20px;
    line-height:1;
  }
  .mobile-home-back + .site-content {
    padding-top:68px;
  }

  .mobile-page-launcher {
    min-height:calc(100dvh - 28px);
    display:grid;
    grid-template-rows:auto minmax(410px,1fr) auto;
    overflow:hidden;
  }
  .mobile-page-launcher + .replica-dashboard {
    display:none!important;
  }
  .mobile-page-launcher__header {
    padding:8px 58px 0 4px;
  }
  .mobile-page-launcher__header h1 {
    margin:3px 0 5px;
    font-size:clamp(27px,8vw,36px);
    line-height:1.08;
  }
  .mobile-page-launcher__header p {
    margin:0;
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
  }
  .mobile-page-carousel {
    min-height:410px;
  }
  .mobile-page-carousel .game-carousel__stage {
    inset-inline:0;
    outline:none!important;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-page-carousel .game-carousel__card {
    width:min(77vw,320px);
    height:min(54dvh,380px);
    min-height:340px;
    padding:21px;
    border-radius:28px;
    transition:transform .32s cubic-bezier(.18,.82,.22,1),opacity .18s linear,box-shadow .24s ease,border-color .24s ease;
  }
  .mobile-page-carousel .game-carousel__card.is-previous {
    transform:translate3d(calc(-50% - 35vw),-50%,-150px) rotateY(31deg) scale(.78);
  }
  .mobile-page-carousel .game-carousel__card.is-next {
    transform:translate3d(calc(-50% + 35vw),-50%,-150px) rotateY(-31deg) scale(.78);
  }
  .mobile-page-carousel .game-carousel__icon {
    width:62px;
    height:62px;
    border-radius:19px;
    font-size:33px;
  }
  .mobile-page-carousel .game-carousel__copy {
    padding:18px 0 14px;
  }
  .mobile-page-carousel .game-carousel__copy h2 {
    font-size:31px;
  }
  .mobile-page-carousel .game-carousel__copy p {
    font-size:13px;
  }
  .mobile-page-launcher .game-carousel__footer {
    padding:2px 0 max(6px,env(safe-area-inset-bottom));
  }
}

/* Student classes on phones/tablets: horizontal lower-half orbit with compact detail. */
@media (max-width:760px) {
  .student-classroom-page--orbit {
    height:calc(100dvh - 82px);
    min-height:0;
    grid-template-rows:68px minmax(0,1fr);
    gap:7px;
    overflow:hidden;
  }
  .student-classroom-page--orbit .student-classroom-header {
    min-height:0;
    flex-direction:row;
    align-items:center;
    gap:9px;
    padding:7px 11px;
  }
  .student-classroom-page--orbit .student-classroom-header h1 {
    margin:1px 0 2px;
    font-size:26px;
  }
  .student-classroom-page--orbit .student-classroom-header p {
    font-size:10px;
    line-height:1.35;
  }
  .student-classroom-page--orbit .student-classroom-header>a {
    width:auto;
    min-height:36px;
    flex:0 0 auto;
    padding:7px 10px;
    font-size:10px;
  }
  .student-classroom-orbit-layout {
    min-height:0;
    grid-template-columns:1fr;
    grid-template-rows:218px minmax(0,1fr);
    gap:7px;
  }
  .class-orbit-panel {
    height:218px;
    min-height:0;
    grid-template-rows:25px minmax(0,1fr) 30px;
    padding:6px 0 5px;
    border-radius:18px;
  }
  .class-orbit-panel .class-wheel-copy {
    padding:0 11px;
  }
  .class-orbit-panel .class-wheel-copy>span,
  .class-orbit-panel .class-wheel-copy>strong {
    font-size:9px;
  }
  .class-orbit {
    min-height:0;
    touch-action:pan-y;
    cursor:grab;
  }
  .class-orbit__arc {
    top:-105px;
    left:50%;
    width:min(calc(100% - 20px),350px);
    height:210px;
    border-color:rgba(194,151,40,.3);
    transform:translateX(-50%);
  }
  .class-orbit__arc::before { inset:25px; }
  .class-orbit__arc::after { inset:67px; }
  .class-orbit__focus {
    top:77px;
    bottom:auto;
    left:50%;
    width:178px;
    height:57px;
    border-radius:14px;
    transform:translateX(-50%);
  }
  .class-orbit__item {
    top:0;
    left:50%;
    width:170px;
    min-height:54px;
    grid-template-columns:34px minmax(0,1fr);
    gap:7px;
    padding:7px 9px;
    border-radius:13px;
    transform:
      translate3d(
        calc(-50% + var(--orbit-x,0px)),
        calc(-50% + var(--orbit-y,0px)),
        var(--orbit-z,0px)
      )
      rotateX(var(--orbit-tilt-x,0deg))
      rotateY(var(--orbit-tilt-y,0deg))
      scale(var(--orbit-scale,1));
    transition:transform .32s cubic-bezier(.18,.82,.22,1),opacity .17s linear,border-color .17s ease,background-color .17s ease,box-shadow .17s ease;
  }
  .class-orbit__icon {
    width:34px;
    height:34px;
    border-radius:9px;
    font-size:17px;
  }
  .class-orbit__copy strong { font-size:11px; }
  .class-orbit__copy small { margin-top:2px; font-size:8px; }
  .class-orbit__item em {
    display:none;
  }
  .class-orbit-controls {
    padding:0 11px;
  }
  .class-orbit-controls button {
    width:29px;
    height:27px;
    border-radius:8px;
  }
  .class-orbit-controls>span {
    font-size:8px;
  }
  .orbit-arrow-desktop,
  .orbit-help-desktop {
    display:none;
  }
  .orbit-arrow-mobile,
  .orbit-help-mobile {
    display:inline;
  }

  .student-class-orbit-detail {
    min-height:0;
    overflow:hidden;
  }
  .student-orbit-detail {
    min-height:0;
    height:100%;
    grid-template-rows:auto auto minmax(0,1fr) auto;
    gap:6px;
    overflow:hidden;
    padding:10px 12px 9px;
  }
  .student-orbit-detail__header {
    min-height:0;
    flex-direction:row;
    align-items:center;
    gap:8px;
  }
  .student-orbit-detail__header h2 {
    margin:3px 0 0;
    font-size:21px;
  }
  .student-orbit-detail__header p {
    display:none;
  }
  .student-class-detail__code {
    font-size:8px;
  }
  .student-class-teacher {
    flex:0 0 auto;
  }
  .student-class-teacher>span {
    width:32px;
    height:32px;
    border-radius:9px;
    font-size:12px;
  }
  .student-class-teacher small { font-size:7px; }
  .student-class-teacher strong { font-size:9px; }
  .student-orbit-detail__summary {
    grid-template-columns:minmax(0,1fr) auto;
    gap:9px;
    padding:5px 0;
  }
  .student-orbit-progress {
    grid-template-columns:auto minmax(55px,1fr);
    gap:2px 7px;
  }
  .student-orbit-progress>strong { font-size:21px; }
  .student-orbit-progress>span { font-size:7px; }
  .student-orbit-detail__summary>dl { gap:9px; }
  .student-orbit-detail__summary dt { font-size:7px; }
  .student-orbit-detail__summary dd { margin-top:1px; font-size:12px; }
  .student-course-browser {
    min-height:0;
    grid-template-columns:1fr;
    grid-template-rows:auto minmax(0,1fr);
    gap:4px;
    overflow:hidden;
  }
  .student-course-switcher {
    grid-template-columns:28px minmax(0,1fr) 28px;
    gap:5px;
  }
  .student-course-switcher>button {
    width:28px;
    height:31px;
  }
  .student-course-box {
    min-height:48px;
    grid-template-columns:31px minmax(0,1fr) auto;
    gap:6px;
    padding:5px 8px;
    border-radius:11px;
  }
  .student-course-box>span {
    width:31px;
    height:31px;
    border-radius:8px;
    font-size:15px;
  }
  .student-course-box strong { font-size:10px; }
  .student-course-box small { font-size:8px; }
  .student-course-switcher>span { display:none; }
  .student-course-detail {
    min-height:0;
    padding:5px 7px;
    border-top:1px solid #ebe7dd;
    border-left:0;
  }
  .student-course-detail>div>span,
  .student-course-detail p {
    display:none;
  }
  .student-course-detail h3 {
    margin:0 0 3px;
    font-size:14px;
  }
  .student-course-detail dl {
    gap:5px;
    margin:2px 0 0;
  }
  .student-course-detail dt { font-size:7px; }
  .student-course-detail dd { margin-top:1px; font-size:10px; }
  .student-course-detail footer {
    gap:7px;
    padding-top:5px;
  }
  .student-course-detail footer a {
    min-height:28px;
    padding:5px 8px;
    font-size:9px;
  }
  .student-orbit-detail__footer {
    min-height:28px;
  }
  .student-orbit-detail__footer>span {
    display:none;
  }
  .student-orbit-detail__footer nav {
    width:100%;
    justify-content:flex-end;
  }
  .student-orbit-detail__footer nav a {
    padding:6px 9px;
    font-size:8px;
  }
}

/* Final mobile-home overrides: shared launcher styles are declared above. */
@media (max-width:600px) {
  .student-mobile-dashboard .student-entry-wheel {
    min-height:0;
    grid-template-rows:auto minmax(320px,1fr) auto;
  }
  .student-mobile-dashboard .student-entry-wheel .game-carousel__footer {
    padding:0 0 max(1px,env(safe-area-inset-bottom));
  }
}
@media (max-width:380px), (max-height:720px) {
  .student-mobile-dashboard .student-entry-wheel {
    grid-template-rows:auto minmax(278px,1fr) auto;
  }
}
