:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--bg: #f6f8fb;--paper: #ffffff;--ink: #07172f;--muted: #66748a;--line: #dde5ef;--nav: #07172f;--nav-soft: #11223d;--nav-ink: #edf4ff;--teal: #27b8bd;--teal-dark: #178a94;--teal-soft: #e7f8f8;--crimson: #b4232a;--green: #087f5b;--amber: #b45309;--blue: #2563eb;--blue-soft: #dce8ff;--ice: #eef3ff;--shadow: 0 20px 50px rgba(7, 23, 47, .08);--radius-surface: 6px;--radius-control: 4px;--radius-chip: 3px}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(circle at 82% 0%,rgba(37,99,235,.12),transparent 32%),radial-gradient(circle at 2% 24%,rgba(39,184,189,.1),transparent 28%),linear-gradient(180deg,rgba(238,243,255,.88),transparent 320px),var(--bg);color:var(--ink)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.portal-shell{--sidebar-detail-opacity: 0;--sidebar-width: 76px;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s ease}.portal-shell:has(.portal-sidebar:hover),.portal-shell:has(.portal-sidebar:focus-within),.portal-shell.is-sidebar-expanded{--sidebar-detail-opacity: 1;--sidebar-width: 268px}.portal-sidebar{background:linear-gradient(180deg,rgba(37,99,235,.12),transparent 220px),linear-gradient(180deg,#07172f,#0b1d38);border-right:1px solid rgba(255,255,255,.06);color:var(--nav-ink);display:flex;flex-direction:column;min-height:100vh;overflow:hidden;padding:18px 10px;position:sticky;top:0;transition:padding .18s ease;width:100%}.portal-shell:has(.portal-sidebar:hover) .portal-sidebar,.portal-shell:has(.portal-sidebar:focus-within) .portal-sidebar,.portal-shell.is-sidebar-expanded .portal-sidebar{padding:18px 14px}.portal-brand{align-items:center;display:flex;gap:11px;justify-content:center;padding:8px 0 22px;width:56px}.portal-shell:has(.portal-sidebar:hover) .portal-brand,.portal-shell:has(.portal-sidebar:focus-within) .portal-brand,.portal-shell.is-sidebar-expanded .portal-brand{justify-content:flex-start;padding:8px 10px 22px;width:240px}.portal-brand-mark{align-items:center;background:linear-gradient(145deg,#fff,#edf4ff);border:0;border-radius:8px;box-shadow:0 12px 28px #07172f29;color:#07172f;display:grid;flex:0 0 42px;height:42px;place-items:center;width:42px}.portal-brand-mark:hover{background:#fff}.portal-brand>.ikasyn-logo{max-width:0;min-width:0;opacity:var(--sidebar-detail-opacity);overflow:hidden;transform:translate(-8px);transition:max-width .14s ease,opacity .14s ease,transform .14s ease;white-space:nowrap}.portal-shell:has(.portal-sidebar:hover) .portal-brand>.ikasyn-logo,.portal-shell:has(.portal-sidebar:focus-within) .portal-brand>.ikasyn-logo,.portal-shell.is-sidebar-expanded .portal-brand>.ikasyn-logo{max-width:200px;transform:translate(0)}.ikasyn-logo{align-items:center;display:inline-flex;gap:10px}.ikasyn-logo-mark{display:block;height:28px;width:28px}.portal-brand-mark .ikasyn-logo-mark{height:31px;width:31px}.logo-stem{fill:#07172f}.logo-chevron{fill:#2563eb}.logo-dot{fill:#27b8bd}.ikasyn-logo-word{display:grid;gap:2px;line-height:1}.ikasyn-logo-word strong{color:#f8fbff;font-size:17px;font-weight:850;letter-spacing:.28em}.ikasyn-logo-word small{color:#6aa2ff;font-size:8px;font-weight:850;letter-spacing:.27em}.portal-nav{display:grid;gap:4px;width:56px}.portal-shell:has(.portal-sidebar:hover) .portal-nav,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav,.portal-shell.is-sidebar-expanded .portal-nav{width:240px}.portal-nav-item{align-items:center;background:transparent;border:0;border-radius:8px;color:#cbd8ea;display:grid;gap:0;grid-template-columns:1fr;min-height:40px;justify-items:center;padding:9px;text-align:left;width:56px}.portal-shell:has(.portal-sidebar:hover) .portal-nav-item,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav-item,.portal-shell.is-sidebar-expanded .portal-nav-item{gap:10px;grid-template-columns:22px minmax(0,1fr) auto;justify-items:start;padding:9px 10px;width:100%}.portal-nav-item:hover,.portal-nav-item.is-active{background:linear-gradient(135deg,#2563eb57,#27b8bd29),#ffffff0f;box-shadow:inset 3px 0 #27b8bd;color:#fff}.portal-nav-item span{font-size:13px;font-weight:750;max-height:0;max-width:0;opacity:var(--sidebar-detail-opacity);overflow:hidden;text-overflow:ellipsis;transition:max-height .14s ease,max-width .14s ease,opacity .14s ease;white-space:nowrap}.portal-shell:has(.portal-sidebar:hover) .portal-nav-item span,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav-item span,.portal-shell.is-sidebar-expanded .portal-nav-item span{max-height:24px;max-width:170px}.portal-nav-item i{align-items:center;background:var(--crimson);border-radius:999px;color:#fff;display:inline-flex;font-size:10px;font-style:normal;font-weight:800;justify-content:center;min-width:19px;padding:3px 5px}.sidebar-course-panel{border-top:1px solid rgba(255,255,255,.1);display:grid;gap:7px;margin-top:16px;padding:14px 0 0;width:56px}.portal-shell:has(.portal-sidebar:hover) .sidebar-course-panel,.portal-shell:has(.portal-sidebar:focus-within) .sidebar-course-panel,.portal-shell.is-sidebar-expanded .sidebar-course-panel{padding:14px 4px 0;width:240px}.sidebar-section-title{color:#91a2bb;font-size:11px;font-weight:900;letter-spacing:0;opacity:var(--sidebar-detail-opacity);padding:0 6px;text-transform:uppercase;transition:opacity .14s ease}.sidebar-course-button{align-items:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#dce8f8;display:grid;gap:0;grid-template-columns:1fr;min-height:48px;justify-items:center;padding:9px;text-align:left;width:56px}.portal-shell:has(.portal-sidebar:hover) .sidebar-course-button,.portal-shell:has(.portal-sidebar:focus-within) .sidebar-course-button,.portal-shell.is-sidebar-expanded .sidebar-course-button{gap:9px;grid-template-columns:18px minmax(0,1fr);justify-items:start;padding:9px 10px;width:100%}.sidebar-course-button:hover,.sidebar-course-button.is-active{background:#e6f7fb;border-color:#b7dce7;color:#06384b}.sidebar-course-button span{display:grid;gap:2px;max-height:0;max-width:0;min-width:0;opacity:var(--sidebar-detail-opacity);overflow:hidden;transition:max-height .14s ease,max-width .14s ease,opacity .14s ease}.portal-shell:has(.portal-sidebar:hover) .sidebar-course-button span,.portal-shell:has(.portal-sidebar:focus-within) .sidebar-course-button span,.portal-shell.is-sidebar-expanded .sidebar-course-button span{max-height:44px;max-width:180px}.sidebar-course-button strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-course-button small{color:#91a2bb;font-size:10px;font-weight:850}.sidebar-course-button.is-active small,.sidebar-course-button:hover small{color:#20705b}.portal-sidebar-footer{border-top:1px solid rgba(255,255,255,.12);display:grid;gap:4px;margin-top:auto;opacity:var(--sidebar-detail-opacity);padding:16px 10px 4px;transition:opacity .14s ease;width:56px}.portal-shell:has(.portal-sidebar:hover) .portal-sidebar-footer,.portal-shell:has(.portal-sidebar:focus-within) .portal-sidebar-footer,.portal-shell.is-sidebar-expanded .portal-sidebar-footer{width:240px}.portal-sidebar-footer span{color:#fff;font-size:12px;font-weight:850}.portal-sidebar-footer small{color:#91a2bb;font-size:11px}.portal-main{display:grid;gap:20px;grid-template-rows:auto minmax(0,1fr);min-width:0;padding:18px 22px 28px}.portal-topbar{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(210px,.8fr) minmax(260px,1.35fr) auto auto auto}.portal-topbar.minimal-topbar{grid-template-columns:minmax(0,1fr) auto}.portal-title h1{font-size:24px;line-height:1.08;margin:0}.breadcrumb{color:#6e7d94;display:block;font-size:11px;font-weight:850;margin-bottom:4px}.portal-title span{color:var(--muted);display:block;font-size:12px;font-weight:720;margin-top:4px}.portal-title .breadcrumb{margin-top:0}.topbar-actions{align-items:center;display:flex;gap:10px;justify-content:flex-end;min-width:0}.portal-search{align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0f172a0a;color:#7b8798;display:grid;gap:9px;grid-template-columns:auto minmax(0,1fr) auto;height:42px;padding:0 12px}.portal-search input{border:0;color:var(--ink);min-width:0;outline:0}.portal-search input::placeholder{color:#8c97a8}.portal-search kbd{background:#f0f3f7;border:1px solid #d7dee8;border-radius:6px;color:#647084;font-size:11px;font-weight:800;padding:3px 6px}.role-switch,.icon-button,.profile-chip,.quick-actions button,.code-modules button,.ai-prompts button,.ai-input button,.link-button,.run-button,.check-button,.reset-button{border-radius:8px}.role-switch{align-items:center;background:var(--paper);border:1px solid var(--line);color:#344054;display:flex;gap:8px;height:42px;padding:0 12px}.role-switch.is-on{background:#effafa;border-color:#91d9dc;color:var(--teal-dark)}.role-switch strong{color:var(--teal-dark)}.role-switch>span:last-child{align-items:baseline;display:inline-flex;gap:5px;white-space:nowrap}.switch-track{align-items:center;background:#dbe3ef;border-radius:999px;display:inline-flex;height:20px;padding:2px;transition:background .16s ease;width:38px}.switch-track i{background:#fff;border-radius:999px;box-shadow:0 3px 8px #07172f2e;display:block;height:16px;transform:translate(0);transition:transform .16s ease;width:16px}.role-switch.is-on .switch-track{background:var(--teal)}.role-switch.is-on .switch-track i{transform:translate(18px)}.icon-button{align-items:center;background:var(--paper);border:1px solid var(--line);color:#344054;display:grid;height:42px;place-items:center;position:relative;width:42px}.icon-button span{align-items:center;background:var(--crimson);border-radius:999px;color:#fff;display:grid;font-size:10px;font-weight:900;height:18px;place-items:center;position:absolute;right:-5px;top:-5px;width:18px}.profile-chip{align-items:center;background:var(--paper);border:1px solid var(--line);display:flex;gap:10px;height:42px;padding:5px 10px 5px 6px}button.profile-chip:hover,.role-switch:hover{border-color:#b8c5d8;box-shadow:0 10px 24px #0f172a0f}.profile-chip b,.avatar{align-items:center;background:linear-gradient(135deg,var(--blue),var(--teal));border-radius:8px;color:#fff;display:grid;font-size:12px;height:30px;place-items:center;width:30px}.profile-chip span,.message-item span{display:grid;min-width:0}.profile-chip span{color:#253044;font-size:12px;font-weight:850;line-height:1.2}.profile-chip small{color:var(--muted);font-size:11px;font-weight:720}.dashboard{align-content:start;display:grid;gap:16px}.page-stack{gap:18px}.narrow-stack{max-width:920px}.section-heading{align-items:center;background:#ffffffb8;border:1px solid rgba(221,229,239,.8);border-radius:8px;display:grid;gap:14px;grid-template-columns:44px minmax(0,1fr);padding:16px}.section-heading>svg{align-self:start;background:var(--blue-soft);border-radius:8px;color:var(--blue);height:44px;padding:10px;width:44px}.section-heading h2,.section-heading p{margin:0}.section-heading h2{font-size:22px;line-height:1.15}.section-heading p{color:var(--muted);font-size:13px;line-height:1.45;margin-top:4px}.welcome-strip{align-items:start;background:radial-gradient(circle at 12% 20%,rgba(39,184,189,.28),transparent 26%),linear-gradient(135deg,#07172ffa,#0e254cf5 58%,#2563ebe6),#07172f;border-radius:8px;box-shadow:var(--shadow);color:#fff;display:grid;gap:16px;grid-template-columns:minmax(245px,.34fr) minmax(520px,1fr);min-height:0;overflow:hidden;padding:22px;position:relative}.home-welcome{grid-template-columns:minmax(280px,.55fr) minmax(320px,.45fr)}.welcome-strip:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.12)),repeating-linear-gradient(90deg,transparent 0 30px,rgba(255,255,255,.09) 30px 31px);content:"";inset:0 0 0 auto;position:absolute;width:34%}.welcome-left,.welcome-calendar-panel{position:relative;z-index:1}.welcome-left{align-content:start;display:grid;gap:16px;min-width:0}.welcome-copy h2,.welcome-copy p{margin:0}.welcome-copy h2{font-size:31px;font-weight:800;letter-spacing:-.01em;line-height:1.05}.welcome-copy p{color:#d8e7ff;font-size:14px;line-height:1.45;margin-top:8px;max-width:620px}.welcome-calendar-panel{background:#f8fbfff7;border:1px solid rgba(255,255,255,.5);border-radius:8px;box-shadow:0 18px 44px #030a1838;color:var(--ink);display:grid;gap:12px;min-width:0;padding:14px}.academic-calendar-toolbar{align-items:start;display:flex;gap:12px;justify-content:space-between}.academic-calendar-controls{display:flex;flex-wrap:wrap;gap:8px}.academic-calendar-controls select{background:#f8fafc;border:1px solid #dce3ed;border-radius:8px;color:#253044;font-size:12px;font-weight:850;min-height:34px;padding:0 9px}.weather-card{align-items:center;background:#ffffff1f;border:1px solid rgba(255,255,255,.24);border-radius:8px;color:#fff;display:grid;gap:10px;grid-template-columns:24px minmax(0,1fr) auto;min-width:245px;padding:12px}.weather-card span{display:grid;gap:2px;min-width:0}.weather-card strong{font-size:13px}.weather-card small{color:#d6eef6;font-size:12px;font-weight:750}.weather-card b{background:#ffffff29;border-radius:999px;font-size:12px;padding:6px 8px;white-space:nowrap}.today-brief-panel{background:#f8fbfff7;border:1px solid rgba(255,255,255,.5);border-radius:8px;box-shadow:0 18px 44px #030a1838;color:var(--ink);display:grid;gap:16px;min-width:0;padding:16px;position:relative;z-index:1}.today-action{align-items:center;background:#f3f7ff;border:1px solid #dfe8f8;border-radius:8px;display:grid;gap:12px;grid-template-columns:34px minmax(0,1fr);padding:14px}.today-action svg{color:var(--blue)}.today-action span{display:grid;gap:3px;min-width:0}.today-action strong{font-size:14px}.today-action small{color:var(--muted);font-size:12px;font-weight:750}.today-brief-panel button,.teacher-entry-panel button,.workspace-panel button,.agenda-panel button,.settings-panel button,.role-gate-panel button,.learning-hero-actions button{align-items:center;background:var(--ink);border:0;border-radius:8px;color:#fff;display:inline-flex;font-size:13px;font-weight:850;gap:8px;justify-content:center;min-height:38px;padding:0 13px;width:fit-content}.learning-desk{gap:18px}.learning-hero{background:linear-gradient(90deg,#07172ff5,#0a1d3df0 58%,#2563ebdb),#07172f;border-radius:8px;box-shadow:var(--shadow);color:#fff;display:grid;gap:20px;grid-template-columns:minmax(0,1fr) minmax(320px,.42fr);overflow:hidden;padding:24px;position:relative}.learning-hero:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1)),repeating-linear-gradient(90deg,transparent 0 30px,rgba(255,255,255,.08) 30px 31px);content:"";inset:0 0 0 auto;position:absolute;width:32%}.learning-hero-copy,.next-action-card{position:relative;z-index:1}.learning-hero-copy{align-content:center;display:grid;gap:14px;min-height:250px}.learning-hero-copy>span{color:#7fdde1;font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.learning-hero-copy h2,.learning-hero-copy p{margin:0}.learning-hero-copy h2{font-size:42px;line-height:1.02;max-width:760px}.learning-hero-copy p{color:#d8e7ff;font-size:15px;line-height:1.5;max-width:720px}.learning-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.learning-hero-actions .primary{background:var(--teal)}.learning-hero-actions button:not(.primary){background:#ffffff1f;border:1px solid rgba(255,255,255,.22)}.next-action-card{align-self:center;background:#f8fbfff7;border:1px solid rgba(255,255,255,.5);border-radius:8px;box-shadow:0 18px 44px #030a1838;color:var(--ink);display:grid;gap:16px;min-width:0;padding:16px}.next-action-main{align-items:center;background:#f3f7ff;border:1px solid #dfe8f8;border-radius:8px;display:grid;gap:12px;grid-template-columns:38px minmax(0,1fr);padding:14px}.next-action-main svg{color:var(--blue)}.next-action-main span,.next-action-progress{display:grid;gap:4px;min-width:0}.next-action-main strong{font-size:15px}.next-action-main small,.next-action-progress span{color:var(--muted);font-size:12px;font-weight:760}.next-action-progress i{background:#e3e9f2;border-radius:999px;display:block;height:8px;overflow:hidden}.next-action-progress b{background:linear-gradient(90deg,var(--teal),var(--blue));display:block;height:100%}.learning-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(430px,1.2fr) minmax(260px,.7fr) minmax(260px,.7fr)}.route-panel{grid-row:span 2}.route-track{display:grid;gap:10px}.program-list{display:grid;gap:12px}.program-card{background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;display:grid;gap:12px;padding:12px}.program-card header{align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.program-card header span{display:grid;gap:4px;min-width:0}.program-card header strong{font-size:15px}.program-card header small,.program-card p{color:var(--muted);font-size:12px;font-weight:740;line-height:1.4}.program-card header b{background:var(--teal-soft);border-radius:999px;color:var(--teal-dark);font-size:11px;padding:6px 9px;white-space:nowrap}.program-card.is-empty header b{background:#eef3ff;color:var(--blue)}.program-card p{margin:0}.program-subjects{display:grid;gap:8px}.program-subject{align-items:center;background:#fff;border:1px solid #dce5f0;border-radius:8px;color:var(--ink);display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;min-height:54px;padding:10px 12px;text-align:left}.program-subject:hover{background:#eef8fb;border-color:#b7dce7}.program-subject span{display:grid;gap:3px;min-width:0}.program-subject strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.program-subject small{color:var(--muted);font-size:11px;font-weight:800}.program-subject em{color:#536176;font-size:12px;font-style:normal;font-weight:900}.program-empty-state{display:grid;gap:10px}.program-empty-state button,.program-menu-button,.videogames-subject-card footer button{align-items:center;background:var(--teal);border:0;border-radius:8px;color:#fff;display:inline-flex;font-size:12px;font-weight:900;gap:7px;height:36px;justify-content:center;justify-self:start;padding:0 12px}.videogames-subject-card footer button:disabled{background:#e7edf5;color:#607087;cursor:not-allowed}.videogames-public{display:grid;gap:18px}.videogames-hero{background:linear-gradient(135deg,#07172ff7,#0d2c4bf0 58%,#187888e6),#07172f;border-radius:8px;color:#fff;display:grid;gap:22px;grid-template-columns:minmax(0,1fr) minmax(340px,.42fr);min-height:420px;overflow:hidden;padding:26px;position:relative}.videogames-hero:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08)),repeating-linear-gradient(90deg,transparent 0 34px,rgba(255,255,255,.08) 34px 35px);content:"";inset:0 0 0 auto;pointer-events:none;position:absolute;width:32%}.videogames-hero-copy,.videogames-slide-panel{position:relative;z-index:1}.videogames-hero-copy{align-content:center;display:grid;gap:16px;max-width:760px}.videogames-hero-copy h2,.videogames-hero-copy p,.videogames-program-header h3,.videogames-program-header p,.videogames-area-card p,.videogames-subject-card p{margin:0}.videogames-hero-copy h2{font-size:42px;line-height:1.02;max-width:820px}.videogames-hero-copy p{color:#d8e7ff;font-size:15px;font-weight:660;line-height:1.55;max-width:650px}.videogames-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px}.videogames-hero-actions button{align-items:center;background:var(--teal);border:0;border-radius:8px;color:#fff;display:inline-flex;font-size:13px;font-weight:900;gap:8px;min-height:40px;padding:0 14px}.videogames-hero-actions button.is-secondary{background:#ffffff1f;border:1px solid rgba(255,255,255,.24)}.videogames-slide-panel{align-self:center;background:#f8fbfff7;border:1px solid rgba(255,255,255,.52);border-radius:8px;box-shadow:0 18px 44px #030a1859;color:var(--ink);display:grid;gap:14px;min-width:0;padding:16px}.videogames-slide-panel header{display:grid;gap:4px}.videogames-slide-panel header span{color:var(--teal-dark);font-size:11px;font-weight:950;letter-spacing:0;text-transform:uppercase}.videogames-slide-panel header strong{font-size:20px;line-height:1.15}.videogames-slide-tabs{display:grid;gap:7px;grid-template-columns:repeat(4,minmax(0,1fr))}.videogames-slide-tabs button{background:#eef3ff;border:1px solid #d7e1f4;border-radius:8px;color:#3a4f6e;font-size:12px;font-weight:950;min-height:34px}.videogames-slide-tabs button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff}.videogames-slide-stack{display:grid;gap:9px}.videogames-slide-card{align-items:center;background:#fff;border:1px solid #dfe7f0;border-radius:8px;color:var(--ink);display:grid;gap:12px;grid-template-columns:34px minmax(0,1fr);min-height:68px;padding:10px;text-align:left}.videogames-slide-card:hover{background:#eef8fb;border-color:#b7dce7}.videogames-slide-card>small{align-items:center;background:var(--blue-soft);border-radius:8px;color:var(--blue);display:inline-flex;font-size:11px;font-weight:950;height:34px;justify-content:center;width:34px}.videogames-slide-card span{display:grid;gap:4px;min-width:0}.videogames-slide-card strong{font-size:13px;line-height:1.2}.videogames-slide-card em{color:var(--muted);font-size:11px;font-style:normal;font-weight:900}.videogames-public-cards{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.videogames-public-cards article{align-items:start;background:#fff;border:1px solid #dfe7f0;border-radius:8px;box-shadow:0 12px 34px #0f172a0d;display:grid;gap:12px;grid-template-columns:34px minmax(0,1fr);padding:14px}.videogames-public-cards svg{background:#e9f8f9;border-radius:8px;color:var(--teal-dark);height:34px;padding:7px;width:34px}.videogames-public-cards span{display:grid;gap:4px;min-width:0}.videogames-public-cards strong{font-size:14px;line-height:1.25}.videogames-public-cards small,.videogames-area-card p,.videogames-subject-card p,.videogames-subject-card header small,.videogames-subject-card footer span{color:var(--muted);font-size:12px;font-weight:760;line-height:1.45}.videogames-stats{display:grid;gap:9px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.videogames-stats.hero-stats{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:4px;max-width:720px}.videogames-stats span{background:#ffffff1a;border:1px solid rgba(255,255,255,.16);border-radius:8px;display:grid;gap:3px;min-height:62px;padding:10px}.videogames-stats b{color:#fff;font-size:22px}.videogames-stats small{color:#cbd8ea;font-size:11px;font-weight:850}.videogames-open-course{align-items:center;background:var(--ink);border:0;border-radius:8px;color:#fff;display:inline-flex;font-size:12px;font-weight:900;gap:7px;height:38px;justify-content:center;margin-top:14px;padding:0 13px}.videogames-program-header{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #0f172a0d;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto;padding:16px;scroll-margin-top:18px}.videogames-program-header h3{font-size:22px;line-height:1.15}.videogames-program-header p{color:var(--muted);font-size:13px;font-weight:720;line-height:1.45;margin-top:5px}.videogames-area-list{display:grid;gap:20px;grid-column:1 / -1}.videogames-area-card{display:grid;gap:12px}.videogames-area-card>header{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;padding-bottom:8px}.videogames-area-card>header span{align-items:center;display:flex;gap:9px;min-width:0}.videogames-area-card>header svg{color:var(--blue)}.videogames-area-card>header strong{font-size:17px}.videogames-area-card>header small{background:#eef7fb;border-radius:999px;color:var(--teal-dark);font-size:11px;font-weight:900;padding:6px 9px;white-space:nowrap}.videogames-area-card p,.videogames-subject-card p{margin:0}.videogames-subject-list{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.videogames-subject-card{background:#fff;border:1px solid #dfe7f0;border-radius:8px;display:grid;gap:11px;min-width:0;padding:13px}.videogames-subject-card.is-linked{border-color:#abdfe3;box-shadow:inset 4px 0 0 var(--teal)}.videogames-subject-card header{align-items:start;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.videogames-subject-card header span{display:grid;gap:3px;min-width:0}.videogames-subject-card header strong{font-size:14px}.videogames-subject-card header b{background:#eff4ff;border-radius:999px;color:var(--blue);font-size:10px;font-weight:950;padding:5px 8px;white-space:nowrap}.videogames-subject-card.is-linked header b{background:var(--teal-soft);color:var(--teal-dark)}.videogames-module-list{display:flex;flex-wrap:wrap;gap:7px}.videogames-module-list span{background:#f5f7fb;border:1px solid #e0e7f0;border-radius:999px;color:#4d5d72;font-size:11px;font-weight:850;padding:6px 8px}.videogames-subject-card footer{align-items:center;border-top:1px solid #eef2f6;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;padding-top:11px}.videogames-subject-card footer span{align-items:center;display:flex;gap:7px;min-width:0}.videogames-subject-card footer svg{color:var(--blue);flex:0 0 auto}.videogames-student-shell{display:grid;gap:16px}.videogames-student-hero{background:linear-gradient(135deg,#07172ffa,#0a2540f5 56%,#0c5860f0),#07172f;border-radius:8px;color:#fff;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 340px;min-height:260px;overflow:hidden;padding:22px;position:relative}.videogames-student-hero:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08)),repeating-linear-gradient(90deg,transparent 0 36px,rgba(255,255,255,.08) 36px 37px);content:"";inset:0 0 0 auto;pointer-events:none;position:absolute;width:34%}.videogames-student-copy,.student-command-panel{position:relative;z-index:1}.videogames-student-copy{align-content:center;display:grid;gap:14px;max-width:760px}.videogames-student-copy h2,.videogames-student-copy p,.dvu-timeline-shell h3,.dvu-timeline-shell p,.dvu-module-detail h3,.dvu-module-detail p,.virtual-session-plan strong{margin:0}.videogames-student-copy h2{font-size:38px;line-height:1.05}.videogames-student-copy p{color:#d8e7ff;font-size:15px;font-weight:700;line-height:1.55;max-width:660px}.student-hero-metrics{display:grid;gap:9px;grid-template-columns:repeat(4,minmax(0,1fr));max-width:640px}.student-hero-metrics span{background:#ffffff1a;border:1px solid rgba(255,255,255,.16);border-radius:8px;display:grid;gap:3px;min-height:58px;padding:10px}.student-hero-metrics strong{color:#fff;font-size:22px}.student-hero-metrics small{color:#cbd8ea;font-size:11px;font-weight:850}.student-command-panel{align-self:center;background:#f8fbfff7;border:1px solid rgba(255,255,255,.52);border-radius:8px;box-shadow:0 18px 44px #030a1859;color:var(--ink);display:grid;gap:14px;min-width:0;padding:16px}.student-command-main{align-items:center;display:grid;gap:12px;grid-template-columns:42px minmax(0,1fr)}.student-command-main svg{background:var(--teal-soft);border-radius:8px;color:var(--teal-dark);height:42px;padding:8px;width:42px}.student-command-main span,.student-progress-line{display:grid;gap:5px;min-width:0}.student-command-main strong{font-size:15px;line-height:1.25}.student-command-main small,.student-progress-line span,.student-progress-line small{color:var(--muted);font-size:11px;font-weight:850}.student-progress-line i,.virtual-player-bar i{background:#dfe8f3;border-radius:999px;display:block;height:7px;overflow:hidden}.student-progress-line b,.virtual-player-bar b{background:linear-gradient(90deg,var(--teal),var(--blue));border-radius:inherit;display:block;height:100%}.dvu-timeline-shell,.dvu-module-detail,.dvu-virtual-classroom{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #0f172a0d}.dvu-timeline-shell{display:grid;gap:16px;padding:16px}.dvu-timeline-shell>header,.dvu-module-detail>header,.dvu-virtual-classroom>header{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.dvu-timeline-shell h3,.dvu-module-detail h3{font-size:22px;line-height:1.15}.dvu-timeline-shell p,.dvu-module-detail p{color:var(--muted);font-size:13px;font-weight:720;line-height:1.5;margin-top:5px}.dvu-timeline-shell>header>span,.dvu-module-detail>header b,.dvu-virtual-classroom>header strong{background:#eef8fb;border-radius:999px;color:var(--teal-dark);font-size:11px;font-weight:950;padding:7px 10px;white-space:nowrap}.dvu-semester-visuals{display:grid;align-items:stretch;gap:12px;grid-auto-rows:minmax(340px,1fr);grid-template-columns:repeat(2,minmax(0,1fr))}.dvu-semester-mosaic-card{background:#fff;border:1px solid #dfe7f0;border-radius:8px;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;position:relative}.dvu-semester-mosaic-card.is-active{border-color:#abdfe3;box-shadow:0 14px 34px #0f172a14}.dvu-semester-mosaic-card>header{align-items:center;background:#f8fafc;border-bottom:1px solid #dfe7f0;border-radius:8px 8px 0 0;display:flex;gap:8px;justify-content:space-between;min-height:48px;padding:10px 12px}.dvu-semester-mosaic-card>header span{color:#253044;font-size:12px;font-weight:950}.dvu-semester-mosaic-card>header strong{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase}.dvu-semester-mosaic{display:grid;gap:0;grid-template-columns:repeat(var(--mosaic-count),minmax(0,1fr));min-height:292px;position:relative}.dvu-semester-mosaic-card.has-1-modules .dvu-semester-mosaic{grid-template-columns:1fr}.dvu-semester-mosaic-card.has-2-modules .dvu-semester-mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}.dvu-semester-mosaic-card.has-3-modules .dvu-semester-mosaic{grid-template-columns:repeat(3,minmax(0,1fr))}.dvu-mosaic-tile{min-height:292px;min-width:0;position:relative}.dvu-mosaic-tile:only-child{min-height:292px}.dvu-mosaic-tile+.dvu-mosaic-tile .dvu-mosaic-image{border-left:1px solid rgba(255,255,255,.24)}.dvu-mosaic-image{background:linear-gradient(135deg,color-mix(in srgb,var(--art-accent) 32%,transparent),transparent 54%),var(--art-image),linear-gradient(160deg,var(--art-bg),#0f172a);background-position:center,var(--art-image-position, center),center;background-size:cover;border:0;border-radius:0;color:#fff;display:grid;gap:7px;height:100%;min-height:292px;overflow:hidden;padding:16px;place-items:end start;position:relative;text-align:left;transition:border-color .16s ease,filter .16s ease,transform .16s ease;width:100%}.dvu-mosaic-tile:first-child .dvu-mosaic-image{border-bottom-left-radius:8px}.dvu-mosaic-tile:last-child .dvu-mosaic-image{border-bottom-right-radius:8px}.dvu-mosaic-image:after{background:linear-gradient(180deg,#0f172a2e,#0f172a8f),#e2e8f06b;content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .16s ease;z-index:1}.dvu-mosaic-tile:not(.is-active) .dvu-mosaic-image{border-color:#d8e1ec;filter:grayscale(1) saturate(.25) brightness(1.05)}.dvu-mosaic-tile:not(.is-active) .dvu-mosaic-image:after{opacity:1}.dvu-mosaic-tile:hover .dvu-mosaic-image:after,.dvu-mosaic-tile:focus-within .dvu-mosaic-image:after,.dvu-mosaic-tile.is-active .dvu-mosaic-image:after{opacity:0}.dvu-mosaic-tile:hover .dvu-mosaic-image,.dvu-mosaic-tile:focus-within .dvu-mosaic-image,.dvu-mosaic-tile.is-active .dvu-mosaic-image{filter:grayscale(0) saturate(1);transform:none}.dvu-mosaic-tile.is-active .dvu-mosaic-image{box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--art-accent) 72%,#ffffff)}.art-orbit,.art-grid,.art-core{pointer-events:none;position:absolute}.art-orbit{border:1px solid color-mix(in srgb,var(--art-accent-2) 70%,transparent);border-radius:999px;height:76px;right:-20px;top:-18px;width:126px}.art-grid{background:linear-gradient(color-mix(in srgb,#ffffff 10%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,#ffffff 10%,transparent) 1px,transparent 1px);background-size:18px 18px;inset:0;-webkit-mask-image:linear-gradient(135deg,transparent,#000 30%,#000 72%,transparent);mask-image:linear-gradient(135deg,transparent,#000 30%,#000 72%,transparent);opacity:.7}.art-core{align-items:center;background:color-mix(in srgb,var(--art-accent) 78%,#ffffff);border:1px solid rgba(255,255,255,.38);border-radius:8px;color:#fff;display:grid;height:40px;place-items:center;right:9px;top:9px;width:40px}.dvu-mosaic-image strong,.dvu-mosaic-image small{position:relative;z-index:1}.dvu-mosaic-image strong{color:#fff;font-size:24px;font-weight:950;line-height:.95;text-shadow:0 4px 14px rgba(0,0,0,.3)}.dvu-mosaic-tile.is-active .dvu-mosaic-image strong,.dvu-mosaic-tile:hover .dvu-mosaic-image strong,.dvu-mosaic-tile:focus-within .dvu-mosaic-image strong{color:#fff;text-shadow:0 0 16px color-mix(in srgb,var(--art-accent) 78%,transparent),0 5px 18px rgba(0,0,0,.38)}.dvu-mosaic-image small{color:#f8fbff;font-size:17px;font-weight:900;line-height:1.05;max-width:100%;text-wrap:balance;z-index:2}.dvu-mosaic-image strong{z-index:2}.dvu-mosaic-tile:not(.is-active) .dvu-mosaic-image small{color:#e6edf7}.dvu-mosaic-tile.is-active .dvu-mosaic-image small,.dvu-mosaic-tile:hover .dvu-mosaic-image small,.dvu-mosaic-tile:focus-within .dvu-mosaic-image small{color:#fff;text-shadow:0 0 14px color-mix(in srgb,var(--art-accent) 70%,transparent)}.dvu-module-popover{background:#fff;border:1px solid #dfe7f0;border-radius:8px;box-shadow:0 22px 58px #07172f38;display:grid;gap:12px;grid-template-columns:190px minmax(220px,1fr);left:50%;opacity:0;padding:10px;pointer-events:none;position:absolute;top:calc(100% + 10px);transform:translate(-50%,8px);transition:opacity .14s ease,transform .14s ease;width:min(520px,calc(100vw - 48px));z-index:20}.dvu-mosaic-tile:hover .dvu-module-popover,.dvu-mosaic-tile:focus-within .dvu-module-popover{opacity:1;pointer-events:auto;transform:translate(-50%)}.popover-image{background:linear-gradient(135deg,color-mix(in srgb,var(--art-accent) 34%,transparent),transparent 54%),var(--art-image),linear-gradient(160deg,var(--art-bg),#0f172a);background-position:center,var(--art-image-position, center),center;background-size:cover;border-radius:8px;color:#fff;display:grid;min-height:190px;overflow:hidden;padding:14px;place-items:end start;position:relative}.popover-image .art-core{height:58px;width:58px}.popover-image strong{font-size:16px;line-height:1.15;max-width:150px;position:relative;text-shadow:0 5px 18px rgba(0,0,0,.35);z-index:1}.popover-copy{align-content:start;display:grid;gap:9px;min-width:0;padding:4px 2px}.popover-copy>span{color:var(--teal-dark);font-size:11px;font-weight:950;text-transform:uppercase}.popover-copy p{color:#3b4a61;font-size:12px;font-weight:760;line-height:1.45;margin:0}.popover-copy div{display:flex;flex-wrap:wrap;gap:6px}.popover-copy small{background:#f4f7fb;border:1px solid #e0e7f0;border-radius:999px;color:#536176;font-size:10px;font-weight:900;padding:5px 7px}.popover-copy footer{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px}.popover-copy footer button{background:var(--ink);border:0;border-radius:8px;color:#fff;font-size:11px;font-weight:950;min-height:32px;padding:0 10px}.popover-copy footer button+button{background:var(--teal)}.popover-copy footer button:nth-child(3){background:#eef8fb;border:1px solid #b7dce7;color:var(--teal-dark)}.dvu-semester-timeline{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.dvu-semester-column{display:grid;gap:10px;min-width:0}.dvu-semester-node{background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#253044;display:grid;gap:4px;min-height:86px;padding:12px;text-align:left}.dvu-semester-column.is-active .dvu-semester-node,.dvu-semester-node:hover{background:#eef8fb;border-color:#abdfe3}.dvu-semester-node span{color:var(--teal-dark);font-size:11px;font-weight:950}.dvu-semester-node strong{font-size:15px}.dvu-semester-node small{color:var(--muted);font-size:11px;font-weight:850}.dvu-module-track{border-left:2px solid #dfe7f0;display:grid;gap:8px;margin-left:12px;padding-left:10px}.dvu-module-node{background:#fff;border:1px solid #dfe7f0;border-radius:8px;color:#253044;display:grid;gap:4px;min-height:86px;padding:10px;position:relative;text-align:left}.dvu-module-node:before{background:#c8d3e2;border:2px solid #ffffff;border-radius:999px;content:"";height:10px;left:-17px;position:absolute;top:18px;width:10px}.dvu-module-node:hover,.dvu-module-node.is-active{background:var(--teal-soft);border-color:#abdfe3}.dvu-module-node.is-active:before{background:var(--teal)}.module-node-index{color:var(--teal-dark);font-size:10px;font-weight:950}.dvu-module-node strong{font-size:13px;line-height:1.2}.dvu-module-node small,.dvu-module-node i{color:var(--muted);font-size:11px;font-style:normal;font-weight:800;line-height:1.3}.dvu-module-node i{color:#3b6f78}.dvu-student-detail-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) 390px}.dvu-module-detail{display:grid;gap:14px;padding:16px;scroll-margin-top:16px}.dvu-module-detail>header small{color:var(--teal-dark);font-size:11px;font-weight:950;text-transform:uppercase}.dvu-module-metas,.dvu-tag-cloud{display:flex;flex-wrap:wrap;gap:8px}.dvu-module-metas span,.dvu-tag-cloud span{align-items:center;background:#f7fafc;border:1px solid #e1e8f0;border-radius:999px;color:#344054;display:inline-flex;font-size:12px;font-weight:850;gap:7px;padding:7px 10px}.dvu-module-metas svg,.dvu-tag-cloud svg{color:var(--teal-dark)}.dvu-learning-beats{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.dvu-learning-beats button{background:#fff;border:1px solid #dfe7f0;border-radius:8px;color:#253044;display:grid;gap:5px;grid-template-columns:32px minmax(0,1fr);min-height:72px;padding:10px;text-align:left}.dvu-learning-beats button:hover,.dvu-learning-beats button.is-current{background:#eef8fb;border-color:#abdfe3}.dvu-learning-beats span{align-items:center;background:var(--ink);border-radius:8px;color:#fff;display:grid;font-size:11px;font-weight:950;height:32px;place-items:center;width:32px}.dvu-learning-beats strong{font-size:12px;line-height:1.25}.dvu-learning-beats small{color:var(--muted);font-size:11px;font-weight:800;grid-column:2}.dvu-tag-cloud{align-items:center}.dvu-tag-cloud>svg{flex:0 0 auto}.dvu-virtual-classroom{display:grid;gap:14px;padding:16px}.dvu-virtual-classroom>header span{align-items:center;color:var(--teal-dark);display:inline-flex;font-size:11px;font-weight:950;gap:6px;text-transform:uppercase}.virtual-player{background:#f7fafc;border:1px solid #e1e8f0;border-radius:8px;display:grid;gap:10px;padding:10px;scroll-margin-top:16px}.virtual-player-screen{background:#07172f;border-radius:8px;color:#fff;display:grid;gap:12px;grid-template-columns:128px minmax(0,1fr);min-height:154px;overflow:hidden;padding:12px}.virtual-player-art{background:linear-gradient(135deg,color-mix(in srgb,var(--art-accent) 34%,transparent),transparent 54%),var(--art-image),linear-gradient(160deg,var(--art-bg),#0f172a);background-position:center,var(--art-image-position, center),center;background-size:cover;border-radius:8px;min-height:130px;overflow:hidden;position:relative}.virtual-player-art .art-core{height:56px;width:56px}.virtual-player-screen>span{align-content:end;display:grid;gap:6px;min-width:0}.virtual-player-screen strong{color:#fff;font-size:18px;line-height:1.15}.virtual-player-screen small{color:#cbd8ea;font-size:12px;font-weight:850}.virtual-player-bar{display:grid;gap:6px}.virtual-resource-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.virtual-resource-grid article{align-items:start;background:#fff;border:1px solid #dfe7f0;border-radius:8px;display:grid;gap:9px;grid-template-columns:28px minmax(0,1fr);min-width:0;padding:10px}.virtual-resource-grid svg{background:var(--teal-soft);border-radius:8px;color:var(--teal-dark);height:28px;padding:6px;width:28px}.virtual-resource-grid span{display:grid;gap:3px;min-width:0}.virtual-resource-grid strong{font-size:12px;line-height:1.2}.virtual-resource-grid small,.virtual-session-plan span{color:var(--muted);font-size:11px;font-weight:820;line-height:1.35}.virtual-session-plan{background:#eef8fb;border:1px solid #cbe9df;border-radius:8px;display:grid;gap:5px;padding:12px}.virtual-session-plan strong{color:#1f3d45;font-size:13px;line-height:1.45}.route-step{align-items:center;background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:var(--ink);display:grid;gap:12px;grid-template-columns:34px minmax(0,1fr) auto;min-height:56px;padding:10px 12px;text-align:left}.route-step:hover,.route-step.is-current{background:#eef8fb;border-color:#b7dce7}.route-step span{align-items:center;background:var(--ink);border-radius:8px;color:#fff;display:grid;font-size:12px;font-weight:900;height:32px;place-items:center;width:32px}.route-step.is-current span{background:linear-gradient(135deg,var(--blue),var(--teal))}.route-step strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-nav-item .nav-label-short{display:none}.route-step small{color:var(--muted);font-size:12px;font-weight:850}.workspace-panel,.agenda-panel,.focus-panel,.teacher-entry-panel{display:grid;gap:14px}.workspace-body{background:#f6f9fd;border:1px solid #e0e8f2;border-radius:8px;display:grid;gap:10px;padding:16px}.workspace-body svg{color:var(--teal)}.workspace-body h3,.workspace-body p{margin:0}.workspace-body h3{font-size:19px}.workspace-body p,.teacher-entry-panel p{color:#536176;font-size:13px;line-height:1.45}.agenda-body{align-items:center;background:#f3f7ff;border:1px solid #dfe8f8;border-radius:8px;display:grid;gap:12px;grid-template-columns:38px minmax(0,1fr);padding:14px}.agenda-body svg{color:var(--blue)}.agenda-body span{display:grid;gap:3px}.agenda-body strong{font-size:14px}.agenda-body small{color:var(--muted);font-size:12px;font-weight:760}.focus-list{display:grid;gap:8px}.focus-list span{align-items:center;background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#344054;display:grid;font-size:12px;font-weight:800;gap:8px;grid-template-columns:18px minmax(0,1fr);min-height:38px;padding:8px 10px}.focus-list svg{color:var(--teal-dark)}.focus-panel .weather-card{background:linear-gradient(135deg,#07172ffa,#0e254cf0),var(--ink);border-color:transparent;min-width:0}.quick-actions{display:flex;gap:9px;position:relative;z-index:1}.quick-actions button,.code-modules button,.ai-prompts button,.ai-input button{align-items:center;border:0;display:inline-flex;font-size:13px;font-weight:850;gap:8px;justify-content:center}.quick-actions button{background:#ffffff1f;border:1px solid rgba(255,255,255,.22);color:#fff;min-height:38px;padding:0 13px}.quick-actions .primary,.code-modules button,.ai-input button{background:var(--teal);color:#fff}.dashboard-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1.5fr) minmax(270px,.78fr) minmax(270px,.78fr)}.dashboard-grid.minimal{align-items:start;grid-template-columns:minmax(420px,1.25fr) minmax(240px,.55fr) minmax(270px,.65fr)}.home-grid{align-items:start;grid-template-columns:minmax(420px,1.1fr) minmax(270px,.65fr) minmax(270px,.65fr)}.tools-grid{align-items:start;grid-template-columns:repeat(3,minmax(250px,1fr))}.dashboard-grid.lower{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr) minmax(300px,1fr) minmax(250px,.75fr)}.portal-panel{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #0f172a0f;min-width:0;padding:16px}.courses-panel{min-height:260px}.panel-heading{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.panel-heading.compact{margin-bottom:12px}.panel-heading h3{color:#182235;font-size:15px;line-height:1.2;margin:0}.panel-heading span{color:var(--muted);font-size:12px;font-weight:800}.sparkline{background:#e8edf4;border-radius:999px;overflow:hidden}.list-item,.message-item{align-items:center;border-top:1px solid #edf1f6;display:grid;gap:10px;min-height:48px}.list-item{color:#516075;grid-template-columns:22px minmax(0,1fr) auto}.list-item:first-of-type,.message-item:first-of-type{border-top:0}.list-item strong,.message-item strong{color:#263246;font-size:13px;line-height:1.25}.tag{background:var(--teal-soft);border-radius:999px;color:var(--teal-dark);font-size:11px;font-weight:900;padding:5px 8px;white-space:nowrap}.tag.red{background:#fff1f2;color:var(--crimson)}.message-item{grid-template-columns:32px minmax(0,1fr) 8px}.message-item small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-item i{background:var(--teal);border-radius:999px;height:8px;width:8px}.avatar.red{background:var(--crimson)}.avatar.green{background:var(--green)}.avatar.blue{background:var(--blue)}.tool-actions{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.tool-actions button{align-items:center;background:#f8fafc;border:1px solid #e3e9f1;border-radius:8px;color:#233149;display:grid;font-size:13px;font-weight:850;gap:9px;justify-items:start;min-height:88px;padding:12px;text-align:left}.tool-actions button span{line-height:1.22;overflow-wrap:break-word}.tool-actions button:hover,.code-modules button:hover,.ai-prompts button:hover,.quick-actions button:hover{filter:brightness(.97)}.tool-actions svg{color:var(--teal)}.teacher-tools-panel{grid-column:span 2}.teacher-tool-grid{display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-tool-grid button{align-items:center;background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#253044;display:grid;gap:10px;grid-template-columns:22px minmax(0,1fr) auto;min-height:62px;padding:10px;text-align:left}.teacher-tool-grid button:hover{background:#eef8fb;border-color:#b7dce7}.teacher-entry-panel,.role-gate-panel,.settings-panel{display:grid;gap:14px}.settings-row{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto;padding:4px 0 14px}.settings-row:last-child{border-bottom:0;padding-bottom:4px}.settings-row span{display:grid;gap:3px;min-width:0}.settings-row strong{font-size:14px}.settings-row small{color:var(--muted);font-size:12px;font-weight:720;line-height:1.4}.settings-row b{background:var(--teal-soft);border-radius:999px;color:var(--teal-dark);font-size:12px;padding:7px 10px}.teacher-tool-grid svg{color:var(--teal)}.teacher-tool-grid span{display:grid;gap:3px;min-width:0}.teacher-tool-grid strong{color:#253044;font-size:12px;line-height:1.2}.teacher-tool-grid small{color:var(--muted);font-size:11px;font-weight:760;line-height:1.25}.ai-card{align-items:flex-start;background:#f1f7fa;border:1px solid #d8ecf3;border-radius:8px;color:#264458;display:flex;gap:10px;padding:13px}.ai-card p{font-size:13px;line-height:1.45;margin:0}.ai-prompts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.ai-prompts button{background:#f8fafc;border:1px solid #dfe6ef;color:#344054;min-height:32px;padding:0 9px}.ai-input{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 38px}.ai-input input{border:1px solid #dfe6ef;border-radius:8px;height:38px;min-width:0;outline:0;padding:0 10px}.ai-input button{border:0;height:38px}.code-modules{display:grid;gap:12px;grid-template-columns:1fr 1fr}.code-modules.single{grid-template-columns:1fr}.code-modules div{background:#f8fafc;border:1px solid #e3e9f1;border-radius:8px;min-height:215px;padding:16px}.code-modules svg{color:var(--teal)}.code-modules h3{font-size:18px;margin:14px 0 6px}.code-modules p{color:var(--muted);font-size:13px;line-height:1.45;min-height:38px;margin:0 0 14px}.code-modules button{border:0;min-height:36px;padding:0 12px}.code-modules button:disabled{background:#d9e0ea;color:#667085}.similarity{align-items:baseline;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:var(--amber);display:flex;gap:8px;margin-bottom:7px;padding:12px}.similarity strong{font-size:28px}.similarity span{color:#7c4a03;font-size:12px;font-weight:850}.jplag-run-button{align-items:center;background:var(--teal);border:0;border-radius:8px;color:#fff;display:inline-flex;font-size:12px;font-weight:900;gap:7px;justify-content:center;margin-bottom:8px;min-height:36px;padding:0 12px;width:100%}.mail-run-button{align-items:center;background:#24364f;border:0;border-radius:8px;color:#fff;display:inline-flex;font-size:12px;font-weight:900;gap:7px;justify-content:center;margin:12px 0 8px;min-height:36px;padding:0 12px;width:100%}.mail-run-button:disabled{opacity:.72}.mail-categories{display:grid;gap:8px;margin-bottom:12px}.mail-categories button{align-items:center;background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#253044;display:grid;gap:8px;grid-template-columns:20px minmax(0,1fr) auto;min-height:48px;padding:9px 10px;text-align:left}.mail-categories svg{color:var(--teal)}.mail-categories span{display:grid;gap:2px;min-width:0}.mail-categories strong{font-size:12px}.mail-categories small{color:var(--muted);font-size:11px}.mail-categories b{align-items:center;background:var(--crimson);border-radius:999px;color:#fff;display:inline-flex;font-size:11px;font-weight:900;height:22px;justify-content:center;min-width:22px;padding:0 6px}.jplag-run-button:disabled{opacity:.72}.jplag-result,.mail-result{border:1px solid #dce3ed;border-radius:8px;display:grid;gap:8px;padding:10px}.mail-result.completed{background:#f8fafc}.mail-result.configuration_required,.mail-result.failed{background:#fff7ed;border-color:#fed7aa}.mail-result strong{color:#263246;font-size:12px;line-height:1.35}.mail-result span{border-top:1px solid #e7edf5;display:grid;gap:3px;padding-top:8px}.mail-result b{color:#253044;font-size:12px}.mail-result small{color:var(--muted);font-size:11px}.assistant-panel{display:grid;gap:12px}.assistant-intro{align-items:center;background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#253044;display:grid;gap:9px;grid-template-columns:24px minmax(0,1fr);padding:10px}.assistant-intro svg{color:var(--teal)}.assistant-avatar{align-self:center;background:#fff;border:1px solid #e1e8f0;border-radius:50%;box-shadow:0 8px 18px #1018281a;height:34px;justify-self:center;object-fit:contain;padding:2px;width:34px}.assistant-intro span,.assistant-question,.assistant-result,.assistant-sources span{display:grid;gap:4px;min-width:0}.assistant-intro strong,.assistant-result strong{color:#253044;font-size:12px}.assistant-intro small,.assistant-runtime small,.assistant-result small,.assistant-sources small{color:var(--muted);font-size:11px;line-height:1.35}.assistant-runtime{align-items:center;display:flex;gap:8px;justify-content:space-between;min-width:0}.assistant-runtime-pill{background:#ecfeff;border:1px solid #bae6fd;border-radius:999px;color:#075985;flex:0 0 auto;font-size:11px;font-weight:900;max-width:58%;overflow:hidden;padding:5px 8px;text-overflow:ellipsis;white-space:nowrap}.assistant-runtime-pill.browser_llm{background:#ecfeff;border-color:#bae6fd;color:#075985}.assistant-runtime-pill.retrieval_only{background:#f8fafc;border-color:#dce3ed;color:#475467}.assistant-runtime-pill.blocked{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.assistant-runtime small{min-width:0;text-align:right}.assistant-thread{display:grid;gap:8px;max-height:280px;overflow:auto;padding-right:2px}.assistant-turn{border:1px solid #dce3ed;border-radius:8px;display:grid;gap:4px;max-width:92%;padding:9px 10px}.assistant-turn.user{background:#eef6ff;border-color:#bfdbfe;justify-self:end}.assistant-turn.assistant{background:#fff;justify-self:start}.assistant-turn small{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.assistant-turn p{color:#253044;font-size:12px;line-height:1.45;margin:0;white-space:pre-wrap}.assistant-question{color:#344054;font-size:12px;font-weight:900}.assistant-question textarea{background:#fff;border:1px solid #dce3ed;border-radius:8px;color:#253044;font:inherit;line-height:1.35;min-height:94px;padding:10px;resize:vertical}.assistant-run-button{align-items:center;background:var(--teal);border:0;border-radius:8px;color:#fff;display:inline-flex;font-size:12px;font-weight:900;gap:7px;justify-content:center;min-height:36px;padding:0 12px;width:100%}.assistant-run-button:disabled{opacity:.72}.assistant-result{background:#f8fafc;border:1px solid #dce3ed;border-radius:8px;padding:10px}.assistant-result.configuration_required{background:#fff7ed;border-color:#fed7aa}.assistant-result p{color:#344054;font-size:12px;line-height:1.45;margin:0;white-space:pre-wrap}.assistant-sources{display:grid;gap:7px}.assistant-sources span{border-top:1px solid #e7edf5;padding-top:7px}.assistant-sources b{color:#253044;font-size:12px;line-height:1.25}.calendar-panel{grid-column:1 / -1}.teaching-calendar{display:grid;gap:12px;min-width:0}.calendar-settings{position:relative}.calendar-settings-trigger{align-items:center;background:#fff;border:1px solid #dce7f4;border-radius:8px;color:#27405f;display:inline-flex;height:34px;justify-content:center;width:34px}.calendar-settings-trigger:hover,.calendar-settings-trigger[aria-expanded=true]{background:var(--blue);border-color:var(--blue);color:#fff}.calendar-settings-menu{background:#fff;border:1px solid #dce7f4;border-radius:8px;box-shadow:0 18px 44px #07172f29;display:grid;gap:4px;min-width:250px;padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:25}.calendar-settings-menu a,.calendar-settings-menu button{align-items:center;background:transparent;border:0;border-radius:7px;color:#27405f;display:inline-flex;font-size:12px;font-weight:850;gap:8px;justify-content:flex-start;min-height:34px;padding:0 9px;text-align:left;text-decoration:none}.calendar-settings-menu a:hover,.calendar-settings-menu button:hover{background:#f1f5fb;color:#07172f}.calendar-settings-menu button:disabled{color:#98a7ba}.calendar-settings-menu span{border-top:1px solid #e8eef6;color:var(--muted);font-size:11px;font-weight:750;line-height:1.35;margin-top:4px;padding:8px 9px 2px}.full-calendar-shell{background:#fff;border:1px solid #dce7f4;border-radius:8px;overflow:hidden;padding:12px;position:relative}.calendar-loading,.editor-loading,.view-loading{align-items:center;color:var(--muted);display:grid;font-size:13px;font-weight:800;min-height:220px;place-items:center}.editor-loading{background:#101827;color:#d7e3f4;height:100%}.full-calendar-shell .fc{color:#253044;font-family:inherit}.full-calendar-shell .fc .fc-toolbar{align-items:center;gap:8px;margin-bottom:10px}.full-calendar-shell .fc .fc-toolbar-title{color:#07172f;font-size:18px;font-weight:800}.full-calendar-shell .fc .fc-button{background:#fff;border:1px solid #dce7f4;border-radius:7px;color:#27405f;font-size:12px;font-weight:800;min-height:30px;padding:4px 9px}.full-calendar-shell .fc .fc-button-primary:not(:disabled).fc-button-active,.full-calendar-shell .fc .fc-button-primary:not(:disabled):active,.full-calendar-shell .fc .fc-button:hover{background:var(--blue);border-color:var(--blue);color:#fff}.full-calendar-shell .fc-theme-standard td,.full-calendar-shell .fc-theme-standard th,.full-calendar-shell .fc-theme-standard .fc-scrollgrid{border-color:#e8eef6}.full-calendar-shell .fc .fc-daygrid-day-number,.full-calendar-shell .fc .fc-col-header-cell-cushion{color:#48617f;font-size:12px;font-weight:800;text-decoration:none}.full-calendar-shell .fc .fc-daygrid-day:hover{background:#f8fbff}.full-calendar-shell .fc .fc-event{background:var(--blue);border-color:var(--blue);border-radius:6px;cursor:pointer;font-size:12px;font-weight:800;padding:2px 4px}.full-calendar-shell .fc .fc-event.is-academic{background:#e7f8f8;border-color:#9ddadd;color:#07172f}.full-calendar-shell .fc .fc-event.is-local{background:#07172f;border-color:#07172f;color:#fff}.full-calendar-shell .fc .fc-event.is-google{background:var(--blue);border-color:var(--blue)}.full-calendar-shell .fc .fc-highlight{background:#2563eb24}.calendar-hover-card{background:#07172f;border:1px solid rgba(255,255,255,.12);border-radius:8px;box-shadow:0 18px 44px #07172f38;color:#fff;display:grid;gap:4px;max-width:260px;padding:10px 11px;pointer-events:none;position:fixed;z-index:40}.calendar-hover-card strong{font-size:12px}.calendar-hover-card span,.calendar-hover-card p{color:#cbd8ea;font-size:11px;font-weight:750;line-height:1.35;margin:0}.jplag-result.completed{background:#f0fdf4;border-color:#bbf7d0}.jplag-result.configuration_required,.jplag-result.failed{background:#fff7ed;border-color:#fed7aa}.jplag-result strong{color:#263246;font-size:12px;line-height:1.35}.jplag-result span{align-items:center;color:#344054;display:flex;font-size:12px;font-weight:800;justify-content:space-between}.jplag-result b{background:#dff7ef;border-radius:999px;color:var(--green);padding:4px 7px}.jplag-result small{color:var(--muted);font-size:11px;font-weight:800}.panel-note{color:var(--muted);font-size:13px;line-height:1.45;margin:0}.analytics-panel{display:grid;grid-template-columns:minmax(0,1fr) 250px}.analytics-panel .panel-heading{grid-column:1 / -1}.metric-row{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.metric{border-left:3px solid var(--teal);display:grid;gap:4px;padding-left:12px}.metric span{color:var(--muted);font-size:12px;font-weight:800}.metric strong{font-size:20px}.metric small{color:var(--green);font-size:12px;font-weight:900}.metric small.negative{color:var(--crimson)}.sparkline{align-items:end;align-self:stretch;display:flex;gap:8px;justify-content:center;padding:12px}.sparkline i{background:var(--teal);border-radius:999px 999px 0 0;display:block;width:14px}.pyxom-page,.course-content-page{display:grid;gap:16px}.tool-header{align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:flex;justify-content:space-between;padding:16px}.tool-header h2,.tool-header p{margin:0}.tool-header h2{font-size:24px;margin-top:5px}.tool-header p{color:var(--muted);font-size:13px;line-height:1.45;margin-top:5px}.link-button{background:transparent;border:0;color:var(--teal-dark);font-size:13px;font-weight:900;padding:0}.tool-chip-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.tool-chip-row span{align-items:center;background:#f7fafc;border:1px solid #e1e8f0;border-radius:999px;color:#344054;display:inline-flex;font-size:12px;font-weight:850;gap:7px;padding:7px 10px}.pyxom-layout{display:grid;gap:16px;grid-template-columns:260px minmax(0,1fr)}.course-content-layout{display:grid;gap:16px;grid-template-columns:300px minmax(0,1fr)}.module-browser,.course-content-main,.pyxom-workspace,.practice-surface{min-width:0}.course-content-main{display:grid;gap:12px}.module-browser{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #0f172a0d;height:fit-content;padding:14px}.module-browser-group{display:grid;gap:7px;margin-top:12px}.module-browser-group-toggle{align-items:center;background:#f7fafc;border:1px solid #e1e8f0;border-radius:8px;color:#344054;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto auto;min-height:38px;padding:8px 10px;text-align:left;width:100%}.module-browser-group-toggle:hover{background:#eef8fb;border-color:#b7dce7}.module-browser-group-toggle span{font-size:12px;font-weight:950;letter-spacing:0;text-transform:uppercase}.module-browser-group-toggle small{align-items:center;background:#edf7f4;border-radius:999px;color:#20705b;display:inline-flex;font-size:10px;font-weight:900;justify-content:center;min-width:22px;padding:3px 6px}.module-browser-group-toggle svg{color:#667085;transition:transform .16s ease}.module-browser-group-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.module-browser-group-items{display:grid;gap:6px}.module-browser-row{background:transparent;border:1px solid transparent;border-radius:8px;color:#344054;display:grid;gap:4px;padding:10px;text-align:left;width:100%}.module-row-meta{align-items:center;display:flex;flex-wrap:wrap;gap:6px;min-width:0}.module-browser-row strong{font-size:13px}.module-browser-row small{color:var(--muted);font-size:11px;font-weight:750}.module-browser-row em{background:#edf7f4;border:1px solid #cbe9df;border-radius:999px;color:#20705b;font-size:10px;font-style:normal;font-weight:900;padding:3px 6px}.module-browser-row:hover,.module-browser-row.is-active{background:var(--teal-soft);border-color:#b7dce7;color:var(--teal-dark)}.pyxom-workspace{display:grid;gap:12px}.module-summary{align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:8px;display:flex;justify-content:space-between;padding:16px}.module-summary h3,.module-summary p{margin:0}.module-summary h3{font-size:18px}.module-summary p{color:var(--muted);font-size:13px;line-height:1.45;margin-top:4px}.module-summary strong{color:var(--teal-dark);font-size:28px}.reserved-note{align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#7c4a03;display:flex;gap:10px;padding:12px}.reserved-note span{font-size:13px;font-weight:800;line-height:1.4}.related-strip{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #0f172a0d;display:grid;gap:12px;padding:14px}.related-strip header{align-items:center;display:flex;gap:12px;justify-content:space-between}.related-strip h3{color:#182235;font-size:15px;margin:0}.related-strip header span{color:var(--muted);font-size:11px;font-weight:850}.related-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.related-grid button{background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#253044;display:grid;gap:4px;min-height:62px;padding:10px;text-align:left}.related-grid button:hover{background:#eef8fb;border-color:#b7dce7}.related-grid span{color:var(--teal-dark);font-size:11px;font-weight:900}.related-grid strong{font-size:13px;line-height:1.25}.content-section{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #0f172a0d;min-width:0;padding:16px}.content-section header{align-items:flex-start;border-bottom:1px solid #e7edf5;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px;padding-bottom:10px}.content-section h3{color:#182235;font-size:16px;line-height:1.25;margin:0}.content-section header span{color:var(--muted);font-size:11px;font-weight:850;text-align:right}.markdown-body{color:#334155;display:grid;gap:10px;font-size:13px;line-height:1.58}.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body p,.markdown-body ul{margin:0}.markdown-body h2{color:#182235;font-size:18px}.markdown-body h3{color:#233149;font-size:15px}.markdown-body h4{color:#344054;font-size:13px;font-weight:900}.markdown-body ul{display:grid;gap:5px;padding-left:20px}.markdown-body pre{background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#1f2937;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.5;margin:0;overflow:auto;padding:12px;white-space:pre-wrap}.resource-list{display:grid;gap:8px}.resource-list a,.resource-list button,.locked-resource{align-items:center;background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#253044;display:grid;gap:10px;grid-template-columns:18px minmax(0,1fr) auto;min-height:52px;padding:9px 10px;text-decoration:none;width:100%}.resource-list button{cursor:pointer;font:inherit;text-align:left}.resource-list a:hover,.resource-list button:hover{background:#eef8fb}.locked-resource{color:#7c4a03}.resource-list span,.locked-resource span{display:grid;gap:2px;min-width:0}.resource-list strong,.locked-resource strong{font-size:12px}.resource-list small,.locked-resource small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-list b,.locked-resource b{background:var(--teal-soft);border-radius:999px;color:var(--teal-dark);font-size:10px;font-weight:900;padding:5px 7px;text-transform:uppercase}.locked-resource b{background:#fff7ed;color:#9a3412}.practice-surface{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-template-columns:248px minmax(0,1fr);min-height:570px;overflow:hidden}.exercise-rail{background:#fbfcfe;border-right:1px solid var(--line);padding:14px}.exercise-button{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:#344054;display:flex;gap:9px;margin-top:7px;padding:9px;text-align:left;width:100%}.exercise-button span{display:grid;gap:3px;min-width:0}.exercise-button strong{font-size:12px;line-height:1.25}.exercise-button small{color:#7b8798;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exercise-button:hover,.exercise-button.is-active{background:#eef8fb;border-color:#c6e6ef;color:var(--teal-dark)}.exercise-button.passed{color:var(--green)}.exercise-button.failed{color:var(--crimson)}.exercise-button.draft{color:var(--amber)}.editor-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0}.editor-toolbar{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto auto;padding:13px 14px}.editor-toolbar p,.editor-toolbar h3{margin:0}.editor-toolbar p{color:var(--teal-dark);font-size:11px;font-weight:900;text-transform:uppercase}.editor-toolbar h3{font-size:16px;line-height:1.2;margin-top:3px}.exercise-meta-row,.exercise-tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.exercise-meta-row span,.exercise-tag-row span{background:#f1f5f9;border:1px solid #dbe4ef;border-radius:999px;color:#475569;font-size:11px;font-weight:900;line-height:1;padding:6px 8px}.exercise-tag-row{border-bottom:1px solid var(--line);margin:0;padding:10px 14px}.runtime-list,.editor-actions{display:flex;flex-wrap:wrap;gap:7px}.runtime-pill,.status-pill{align-items:center;border:1px solid #cbd5e1;border-radius:999px;color:#475569;display:inline-flex;font-size:11px;font-weight:900;gap:6px;padding:6px 8px}.runtime-pill.configured,.runtime-pill.available{border-color:#9ad8bd;color:var(--green)}.runtime-pill.unconfigured{border-color:#f2d7a4;color:var(--amber)}.status-pill.pending{background:#f8fafc;border-color:#d7deea;color:#64748b}.status-pill.draft{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.status-pill.passed{background:#ecfdf5;border-color:#a7f3d0;color:var(--green)}.status-pill.failed{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.run-button,.check-button,.reset-button{align-items:center;border:0;display:inline-flex;font-size:12px;font-weight:900;gap:7px;justify-content:center;min-height:36px;padding:0 11px}.run-button{background:var(--teal);color:#fff}.check-button{background:var(--green);color:#fff}.reset-button{background:#f8fafc;border:1px solid #dce3ed;color:#334155}.run-button:disabled,.check-button:disabled{opacity:.7}.exercise-prompt{border-bottom:1px solid var(--line);color:#4a5568;font-size:13px;line-height:1.5;margin:0;padding:12px 14px;white-space:pre-wrap}.visible-tests{border-bottom:1px solid var(--line);color:#334155;font-size:13px;padding:10px 14px}.visible-tests summary{cursor:pointer;font-weight:900}.visible-tests ul{margin:10px 0 0;padding-left:18px}.visible-tests li+li{margin-top:6px}.visible-tests pre{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.5;margin:10px 0 0;max-height:180px;overflow:auto;padding:12px;white-space:pre-wrap}.editor-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);min-height:0}.monaco-frame{min-height:460px}.output-pane{background:#101827;color:#d9e8ff;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.55;margin:0;overflow:auto;padding:16px;white-space:pre-wrap}.output-pane.passed{background:#052e1b;color:#d1fae5}.output-pane.failed{background:#3b0d12;color:#ffe4e6}.output-pane.draft,.output-pane.pending{background:#101827}body button:not(.portal-brand-mark){border-radius:var(--radius-control)}body :is(input,textarea,select){border-radius:var(--radius-control)}body :is(.portal-brand-mark,.portal-search,.portal-panel,.learning-hero,.next-action-card,.workspace-panel,.agenda-panel,.assistant-panel,.focus-panel,.teacher-entry-panel,.course-card,.module-card,.practice-surface,.visible-tests pre,.videogames-hero,.videogames-slide-panel,.videogames-public-cards article,.videogames-public-cards svg,.videogames-stats span,.videogames-program-header,.videogames-subject-card,.calendar-panel,.settings-card,.mail-result,.assistant-result){border-radius:var(--radius-surface)}body :is(.portal-nav-item i,.icon-button span,.videogames-area-card>header small,.videogames-subject-card footer span,.exercise-meta-row span,.exercise-tag-row span,.runtime-pill,.status-pill,.assistant-runtime-pill){border-radius:var(--radius-chip)}@media(max-width:1260px){.portal-topbar{grid-template-columns:minmax(210px,.8fr) minmax(220px,1fr) auto auto}.welcome-strip{grid-template-columns:minmax(220px,.32fr) minmax(460px,1fr)}.profile-chip{display:none}.dashboard-grid,.dashboard-grid.lower{grid-template-columns:repeat(2,minmax(0,1fr))}.courses-panel,.analytics-panel{grid-column:1 / -1}}@media(max-width:980px){.portal-main{padding:16px}.welcome-strip,.learning-hero,.learning-grid,.videogames-hero,.videogames-public-cards,.videogames-student-hero,.dvu-student-detail-grid{grid-template-columns:1fr}.welcome-calendar-panel{grid-column:1;grid-row:auto}.portal-topbar,.dashboard-grid,.dashboard-grid.minimal,.home-grid,.tools-grid,.dashboard-grid.lower,.dvu-semester-timeline,.pyxom-layout,.course-content-layout,.practice-surface,.editor-grid,.analytics-panel,.metric-row{grid-template-columns:1fr}.portal-search{order:2}.welcome-strip,.tool-header,.module-summary,.videogames-program-header{align-items:flex-start;gap:14px}.weather-card{width:100%}.exercise-rail{border-bottom:1px solid var(--line);border-right:0}.editor-toolbar{align-items:stretch;grid-template-columns:1fr}}@media(max-width:760px){.dvu-semester-visuals{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.portal-shell,.portal-shell:has(.portal-sidebar:hover),.portal-shell:has(.portal-sidebar:focus-within),.portal-shell.is-sidebar-expanded{--sidebar-detail-opacity: 1;--sidebar-width: 100%;grid-template-columns:1fr}.portal-sidebar{bottom:0;min-height:auto;overflow:visible;padding:8px 10px calc(8px + env(safe-area-inset-bottom));position:fixed;top:auto;z-index:30}.portal-brand,.portal-nav,.sidebar-course-panel,.portal-sidebar-footer,.portal-shell:has(.portal-sidebar:hover) .portal-brand,.portal-shell:has(.portal-sidebar:focus-within) .portal-brand,.portal-shell.is-sidebar-expanded .portal-brand,.portal-shell:has(.portal-sidebar:hover) .portal-nav,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav,.portal-shell.is-sidebar-expanded .portal-nav,.portal-shell:has(.portal-sidebar:hover) .sidebar-course-panel,.portal-shell:has(.portal-sidebar:focus-within) .sidebar-course-panel,.portal-shell.is-sidebar-expanded .sidebar-course-panel,.portal-shell:has(.portal-sidebar:hover) .portal-sidebar-footer,.portal-shell:has(.portal-sidebar:focus-within) .portal-sidebar-footer,.portal-shell.is-sidebar-expanded .portal-sidebar-footer{width:100%}.portal-brand,.portal-shell:has(.portal-sidebar:hover) .portal-brand,.portal-shell:has(.portal-sidebar:focus-within) .portal-brand,.portal-shell.is-sidebar-expanded .portal-brand{display:none}.portal-nav,.portal-shell:has(.portal-sidebar:hover) .portal-nav,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav,.portal-shell.is-sidebar-expanded .portal-nav{display:grid;gap:4px;grid-template-columns:repeat(8,minmax(58px,1fr));overflow-x:auto}.portal-nav-item,.portal-shell:has(.portal-sidebar:hover) .portal-nav-item,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav-item,.portal-shell.is-sidebar-expanded .portal-nav-item{gap:10px;grid-template-columns:1fr;justify-items:center;min-height:50px;padding:7px 3px;text-align:center;width:100%}.portal-nav-item .nav-label-full,.portal-shell:has(.portal-sidebar:hover) .portal-nav-item .nav-label-full,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav-item .nav-label-full,.portal-shell.is-sidebar-expanded .portal-nav-item .nav-label-full{display:none}.portal-nav-item .nav-label-short,.portal-shell:has(.portal-sidebar:hover) .portal-nav-item .nav-label-short,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav-item .nav-label-short,.portal-shell.is-sidebar-expanded .portal-nav-item .nav-label-short{display:inline;font-size:9px;max-height:16px;max-width:48px;overflow:hidden;text-overflow:clip}.sidebar-course-panel,.portal-sidebar-footer,.portal-shell:has(.portal-sidebar:hover) .sidebar-course-panel,.portal-shell:has(.portal-sidebar:focus-within) .sidebar-course-panel,.portal-shell.is-sidebar-expanded .sidebar-course-panel,.portal-shell:has(.portal-sidebar:hover) .portal-sidebar-footer,.portal-shell:has(.portal-sidebar:focus-within) .portal-sidebar-footer,.portal-shell.is-sidebar-expanded .portal-sidebar-footer{display:none}.sidebar-course-button,.portal-shell:has(.portal-sidebar:hover) .sidebar-course-button,.portal-shell:has(.portal-sidebar:focus-within) .sidebar-course-button,.portal-shell.is-sidebar-expanded .sidebar-course-button{gap:9px;grid-template-columns:18px minmax(0,1fr);justify-items:start;padding:9px 10px;width:100%}.sidebar-course-button span,.portal-shell:has(.portal-sidebar:hover) .sidebar-course-button span,.portal-shell:has(.portal-sidebar:focus-within) .sidebar-course-button span,.portal-shell.is-sidebar-expanded .sidebar-course-button span{max-height:44px;max-width:260px}.portal-main{padding:12px 12px calc(92px + env(safe-area-inset-bottom))}.portal-topbar.minimal-topbar{align-items:start;grid-template-columns:1fr}.topbar-actions{justify-content:flex-start;width:100%}.profile-chip{display:flex}.section-heading,.tool-actions,.teacher-tool-grid,.code-modules{grid-template-columns:1fr}.welcome-strip{padding:14px}.dashboard-grid,.dashboard-grid.minimal,.home-grid,.tools-grid,.dashboard-grid.lower,.videogames-hero,.videogames-student-hero,.videogames-public-cards,.videogames-program-header,.videogames-subject-list,.dvu-semester-visuals,.dvu-semester-timeline,.dvu-student-detail-grid,.dvu-learning-beats,.virtual-player-screen,.virtual-resource-grid{grid-template-columns:minmax(0,1fr)!important}.dashboard-grid>.portal-panel,.dashboard-grid.minimal>.portal-panel,.home-grid>.portal-panel,.tools-grid>.portal-panel,.dashboard-grid.lower>.portal-panel{grid-column:1 / -1;width:100%}.assistant-runtime{align-items:flex-start;flex-direction:column}.assistant-runtime-pill{max-width:100%}.assistant-runtime small{text-align:left}.welcome-strip:after{display:none}.academic-calendar-toolbar{align-items:stretch;display:grid}.academic-calendar-controls select{flex:1;min-width:0}.full-calendar-shell{overflow-x:auto;padding:8px}.full-calendar-shell .fc{min-width:620px}.welcome-copy h2{font-size:24px}.learning-hero{padding:16px}.learning-hero-copy{min-height:0}.learning-hero-copy h2{font-size:30px}.learning-hero:after{display:none}.videogames-hero,.videogames-student-hero{min-height:0;padding:16px}.videogames-hero:after,.videogames-student-hero:after{display:none}.videogames-hero-copy h2,.videogames-student-copy h2{font-size:30px}.videogames-hero-actions,.videogames-hero-actions button,.videogames-stats.hero-stats{width:100%}.videogames-stats.hero-stats,.student-hero-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dvu-module-popover{grid-template-columns:1fr;left:0;max-height:none;position:static;transform:none;width:100%}.dvu-mosaic-tile:hover .dvu-module-popover,.dvu-mosaic-tile:focus-within .dvu-module-popover{transform:none}.popover-image{min-height:160px}.learning-hero-actions{width:100%}.learning-hero-actions button{flex:1}.route-step{grid-template-columns:32px minmax(0,1fr)}.route-step small{grid-column:2}.settings-row{align-items:start;grid-template-columns:1fr}.quick-actions,.editor-actions,.tool-chip-row{width:100%}.quick-actions button,.editor-actions button{flex:1}.portal-search kbd{display:none}}
