:root,html.is-theme-docente{color-scheme:light;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-family:var(--font-sans);--bg: #eef1f5;--bg-glow-1: rgba(30, 58, 95, .2);--bg-glow-2: rgba(124, 58, 237, .14);--paper: #ffffff;--ink: #122033;--muted: #5c6b7a;--line: #d5dde6;--nav: #1e3a5f;--nav-soft: #194866;--nav-ink: #e8eef5;--nav-glow: rgba(124, 58, 237, .16);--teal: #0f766e;--teal-dark: #0d5c56;--teal-soft: #e6f4f3;--crimson: #b4232a;--green: #047857;--amber: #b45309;--action: #0f766e;--action-ink: #ffffff;--blue: #2d4059;--blue-soft: #dce3ec;--ice: #e4e9f0;--accent: #7c3aed;--shadow: 0 20px 50px rgba(18, 32, 51, .1);--radius-surface: 6px;--radius-control: 4px;--radius-chip: 3px;--topbar-accent: #1e3a5f;--line-soft: var(--line);--text-muted: var(--muted);--surface-raised: var(--paper)}html.is-theme-alumno{--bg: #f3f9fd;--bg-glow-1: rgba(0, 142, 226, .22);--bg-glow-2: rgba(30, 144, 255, .16);--paper: #ffffff;--ink: #12324f;--muted: #5b6b80;--line: #e2e8f0;--nav: #1e426e;--nav-soft: #17355a;--nav-ink: #f0f7ff;--nav-glow: rgba(0, 142, 226, .28);--teal: #0f766e;--teal-dark: #0d5c56;--teal-soft: #e6f7f5;--green: #047857;--amber: #b45309;--action: #b45309;--action-ink: #ffffff;--blue: #035388;--blue-soft: #d7effc;--ice: #e8f4fb;--accent: #1d4ed8;--shadow: 0 20px 50px rgba(18, 50, 79, .08);--topbar-accent: #035388;--line-soft: var(--line);--text-muted: var(--muted);--surface-raised: var(--paper)}*{box-sizing:border-box}html{background-color:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%;transition:background-color .35s ease}body{margin:0;background-color:var(--bg);background-image:radial-gradient(circle at 82% 0%,var(--bg-glow-1),transparent 38%),radial-gradient(circle at 6% 92%,var(--bg-glow-2),transparent 34%),linear-gradient(180deg,var(--ice),var(--bg) 48%);background-attachment:fixed;color:var(--ink);transition:background-color .35s ease,background-image .35s ease}:root{--sidebar-detail-opacity: 0;--sidebar-width: 76px}.sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:root:has(.portal-shell.is-sidebar-expanded),:root:has(.portal-shell .portal-sidebar:hover),:root:has(.portal-shell .portal-sidebar:focus-within){--sidebar-detail-opacity: 1;--sidebar-width: 268px}.portal-shell{--sidebar-bottom-height: 48px;--sidebar-detail-opacity: 0;--sidebar-width: 76px;background-color:transparent;display:block;min-height:100vh;min-height:100dvh}.skip-link{background:var(--ink);color:#fff;font-weight:700;left:.75rem;padding:.6rem .9rem;position:absolute;top:-100px;z-index:2000}.skip-link:focus{outline:2px solid #fff;outline-offset:2px;top:.75rem}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.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,var(--nav-glow),transparent 220px),linear-gradient(180deg,var(--nav),var(--nav-soft));border-right:1px solid rgba(255,255,255,.08);box-sizing:border-box;color:var(--nav-ink);display:flex;flex-direction:column;height:100vh;height:100dvh;left:0;overflow:visible;padding:18px 10px;position:fixed;top:0;transition:padding .18s ease,width .18s ease;width:var(--sidebar-width);z-index:40}.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{align-content:start;display:grid;flex:1 1 auto;gap:4px;min-height:0;overflow-x:hidden;overflow-y:auto;position:relative;scrollbar-gutter:stable;z-index:1}.portal-nav-cluster{display:grid;gap:4px}.portal-nav-item.is-sub{min-height:36px}.portal-shell:has(.portal-sidebar:hover) .portal-nav-item.is-sub,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav-item.is-sub,.portal-shell.is-sidebar-expanded .portal-nav-item.is-sub{padding-left:18px}.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-shell:has(.portal-sidebar:hover) .portal-nav-item.is-mail,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav-item.is-mail,.portal-shell.is-sidebar-expanded .portal-nav-item.is-mail{grid-template-columns:auto minmax(0,1fr)}.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}.portal-nav-item .portal-mail-mark,.portal-nav-item .mail-orb-cluster,.portal-nav-item .mail-orb{max-height:none;max-width:none;opacity:1;overflow:visible}.portal-mail-mark{align-items:center;display:inline-flex;gap:4px;justify-content:center}.mail-orb-cluster{display:flex;flex-direction:column;gap:2px}.portal-shell:has(.portal-sidebar:hover) .mail-orb-cluster,.portal-shell:has(.portal-sidebar:focus-within) .mail-orb-cluster,.portal-shell.is-sidebar-expanded .mail-orb-cluster{flex-direction:row}.portal-nav-item .mail-orb{align-items:center;border-radius:999px;box-shadow:0 0 0 1px #ffffff47;color:#fff;display:inline-flex;font-size:8px;font-weight:800;height:14px;justify-content:center;letter-spacing:0;line-height:1;min-width:14px;padding:0 3px;white-space:nowrap}.portal-nav-item .mail-orb.is-alumno{background:#15803d}.portal-nav-item .mail-orb.is-companero{background:#b45309}.portal-nav-item .mail-orb.is-resto{background:#1d4ed8}.portal-sidebar-bottom{display:flex;flex:0 0 var(--sidebar-bottom-height);flex-direction:column;height:var(--sidebar-bottom-height);isolation:isolate;justify-content:flex-end;min-height:var(--sidebar-bottom-height);overflow:visible;position:relative;width:56px;z-index:4}.portal-shell:has(.portal-sidebar:hover) .portal-sidebar-bottom,.portal-shell:has(.portal-sidebar:focus-within) .portal-sidebar-bottom,.portal-shell.is-sidebar-expanded .portal-sidebar-bottom{width:240px}.portal-sidebar-footer{border-top:1px solid rgba(255,255,255,.12);box-sizing:border-box;display:grid;flex:0 0 48px;gap:4px;height:48px;max-height:48px;min-height:48px;opacity:var(--sidebar-detail-opacity);overflow:hidden;padding:8px 10px 4px;transition:opacity .14s ease;white-space:nowrap;width:100%}.portal-sidebar-legal{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:2px 10px;justify-content:center;opacity:var(--sidebar-detail-opacity);padding:6px 10px;transition:opacity .14s ease;width:100%}.portal-sidebar-legal a{color:#91a2bb;font-size:11px;text-decoration:none;white-space:nowrap}.portal-sidebar-legal a:hover,.portal-sidebar-legal a:focus-visible{color:#fff;text-decoration:underline}.portal-sidebar-footer span{color:#fff;font-size:12px;font-weight:850}.portal-sidebar-footer small{color:#91a2bb;font-size:11px}.portal-sidebar-alai-layer{--alai-hitbox: 40px;--alai-size: 64px;bottom:calc(66px + env(safe-area-inset-bottom,0px));height:var(--alai-size);left:calc((var(--sidebar-width) - var(--alai-size)) / 2);overflow:visible;pointer-events:none;position:fixed;width:var(--alai-size);z-index:300}.portal-sidebar-alai-layer>*{pointer-events:auto}.portal-main{display:grid;gap:20px;grid-template-rows:auto minmax(0,1fr);margin-left:var(--sidebar-width);min-width:0;padding:18px 22px 28px;position:relative;transition:margin-left .18s ease;z-index:1}.portal-topbar{align-items:center;border-bottom:3px solid var(--topbar-accent);display:grid;gap:12px;grid-template-columns:minmax(210px,.8fr) minmax(260px,1.35fr) auto auto auto;padding-bottom:12px}.portal-topbar.minimal-topbar{grid-template-columns:minmax(0,1fr) auto}.portal-title h1{font-size:24px;line-height:1.08;margin:0}.program-context-chip{align-items:center;background:transparent;border:0;border-radius:0;box-shadow:none;display:inline-flex;gap:8px;margin-bottom:4px;max-width:100%;min-height:0;padding:0}.portal-shell.is-videogames-subportal .program-context-chip{border-left-color:var(--teal)}.program-context-chip b{color:#475569;font-size:11px;font-weight:900;letter-spacing:.02em;white-space:nowrap}.program-context-chip span{color:var(--muted);display:inline;font-size:11px;font-weight:800;margin-top:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.program-context-chip small{background:#f2f6fb;border:1px solid #d9e3ef;border-radius:5px;color:#44546b;font-size:11px;font-weight:900;padding:3px 6px;white-space:nowrap}.portal-shell.is-videogames-subportal .program-context-chip small{background:#eefafa;border-color:#bee7e9;color:#0f6671}.program-subpage-switch{align-items:center;background:#fff;border:1px solid #c7d4e6;border-radius:8px;box-shadow:0 12px 28px #07172f12;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;max-width:760px;padding:5px;width:fit-content}.program-subpage-switch button{background:transparent;border:1px solid transparent;border-radius:6px;color:#44546b;cursor:pointer;font-size:12px;font-weight:900;min-height:38px;padding:0 14px;position:relative}.program-subpage-switch button:hover{background:#fff;border-color:#c5d2e3;color:#143352}.program-subpage-switch button.is-active{background:#143352;border-color:#143352;box-shadow:0 10px 22px #14335229;color:#fff}.portal-shell.is-videogames-subportal .program-subpage-switch button.is-active{background:#0f6671;border-color:#0f6671;box-shadow:0 10px 22px #0f667129}.breadcrumb{align-items:center;color:#475569;display:flex;flex-wrap:wrap;font-size:11.5px;font-weight:850;gap:5px;margin-bottom:4px}.breadcrumb span{align-items:center;display:inline-flex;gap:5px}.breadcrumb span+span:before{color:#64748b;content:"/"}.breadcrumb button{background:transparent;border:0;color:#475569;cursor:pointer;font:inherit;padding:0}.breadcrumb button:hover{color:#143352}.breadcrumb b{color:#1e293b;font-weight:900}.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;flex-wrap:wrap;gap:10px;justify-content:flex-end;min-width:0}.service-status{align-items:center;border:1px solid var(--line);border-radius:999px;display:inline-flex;font-size:11px;font-weight:850;height:30px;padding:0 10px;white-space:nowrap}.service-status.is-online{background:#edf8f4;border-color:#9bd7c3;color:#0f6d4e}.service-status.is-degraded{background:#fff5e6;border-color:#f3c778;color:#9a5a00}.sync-status{align-items:center;border:1px solid var(--line);border-radius:999px;display:inline-flex;font-size:11px;font-weight:850;height:30px;padding:0 10px;white-space:nowrap}.sync-status.is-synced{background:#edf8f4;border-color:#9bd7c3;color:#0f6d4e}.sync-status.is-syncing{background:#eef5ff;border-color:#a8c7f7;color:#235aa8}.sync-status.is-local_only{background:#f6f7fb;border-color:#d9deea;color:#52627a}.sync-status.is-failed{background:#fff0f0;border-color:#f4aaaa;color:#a83333}.role-switch,.profile-chip,.link-button,.run-button,.check-button,.submit-button,.reset-button{border-radius:8px}.role-switch{align-items:center;background:var(--paper);border:1px solid var(--line);color:#344054;display:grid;gap:10px;grid-template-columns:auto 38px auto;height:42px;padding:0 12px}.role-switch-side{color:#52627a;font-size:12px;font-weight:700;white-space:nowrap}.role-switch.is-alumno .role-switch-side.is-alumno,.role-switch.is-docente .role-switch-side.is-docente{color:var(--ink);font-weight:800}.switch-track{align-items:center;background:var(--blue);border-radius:999px;display:inline-flex;height:20px;justify-self:center;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(18px);transition:transform .16s ease;width:16px}.role-switch.is-alumno .switch-track i{transform:translate(0)}.locale-switch{align-items:center;background:var(--paper);border:1px solid var(--line);color:#344054;display:grid;gap:8px;grid-template-columns:auto 38px auto;height:42px;padding:0 10px}.locale-switch-side{color:#52627a;font-size:12px;font-weight:750;white-space:nowrap}.locale-switch.is-en .locale-switch-side.is-en,.locale-switch.is-es .locale-switch-side.is-es{color:var(--ink);font-weight:800}.locale-switch.is-en .switch-track i{transform:translate(0)}.locale-switch.is-es .switch-track i{transform:translate(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{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}.portal-shell.is-videogames-subportal{--topbar-accent: var(--teal)}.academic-subportal-page{border-top:0;padding-top:2px}.academic-subportal-page.is-videogames,.academic-subportal-page.is-student-space{border-top:0}.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}.settings-panel 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}.degree-public{display:grid;gap:18px}.degree-hero{background:linear-gradient(135deg,#061329fa,#0e3160f0 56%,#2563ebdb),#07172f;border-radius:8px;color:#fff;display:grid;gap:22px;grid-template-columns:minmax(0,1fr) minmax(340px,.42fr);min-height:410px;overflow:hidden;padding:26px;position:relative}.degree-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%}.degree-hero-copy,.degree-route-panel{position:relative;z-index:1}.degree-hero-copy{align-content:center;display:grid;gap:16px;max-width:760px}.degree-hero-copy h2,.degree-hero-copy p{margin:0}.degree-hero-copy h2{font-size:42px;line-height:1.02;max-width:820px}.degree-hero-copy p{color:#d8e7ff;font-size:15px;font-weight:660;line-height:1.55;max-width:650px}.degree-hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:2px}.degree-hero-actions button{align-items:center;background:#2563eb;border:0;border-radius:8px;color:#fff;display:inline-flex;font-size:13px;font-weight:900;gap:8px;min-height:40px;padding:0 14px}.degree-hero-actions span{background:#ffffff1f;border:1px solid rgba(255,255,255,.22);border-radius:8px;color:#d8e7ff;font-size:12px;font-weight:850;min-height:40px;padding:11px 13px}.degree-route-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}.degree-route-panel header{display:grid;gap:4px}.degree-route-panel header span{color:var(--blue);font-size:11px;font-weight:950;text-transform:uppercase}.degree-route-panel header strong{font-size:20px;line-height:1.15}.degree-route-list{display:grid;gap:9px}.degree-route-list button{align-items:center;background:#fff;border:1px solid #dce5f0;border-radius:8px;color:var(--ink);display:grid;gap:11px;grid-template-columns:32px minmax(0,1fr) auto;min-height:64px;padding:10px 11px;text-align:left}.degree-route-list button:hover{background:#eef5ff;border-color:#b9cff4}.degree-route-list small{background:#eef3ff;border-radius:8px;color:#2554a8;font-size:11px;font-weight:950;padding:8px 0;text-align:center}.degree-route-list span{display:grid;gap:4px;min-width:0}.degree-route-list strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.degree-route-list em{color:var(--muted);font-size:11px;font-style:normal;font-weight:800}.degree-route-list b{color:#253044;font-size:12px;font-weight:950}.degree-public-cards{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.degree-public-cards article{align-items:center;background:#fff;border:1px solid #dce5f0;border-radius:8px;display:grid;gap:12px;grid-template-columns:42px minmax(0,1fr);min-height:88px;padding:14px}.degree-public-cards svg{background:#eef3ff;border-radius:8px;color:var(--blue);height:42px;padding:10px;width:42px}.degree-public-cards span{display:grid;gap:4px;min-width:0}.degree-public-cards strong{color:#111827;font-size:14px}.degree-public-cards small{color:var(--muted);font-size:12px;font-weight:740;line-height:1.42}.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.is-single-column{grid-template-columns:minmax(0,1fr);min-height:auto;padding:26px 28px}.videogames-hero.is-single-column .videogames-hero-copy{max-width:980px}.videogames-hero.is-single-column .videogames-hero-copy p{max-width:860px}.videogames-hero.is-single-column .videogames-stats.hero-stats{max-width:960px;margin-top:8px}.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,.videogames-hero-actions a.videogames-cta-link{align-items:center;background:var(--teal);border:0;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:900;gap:8px;min-height:40px;padding:0 14px;text-decoration:none}.videogames-hero-actions button.is-secondary,.videogames-hero-actions a.videogames-cta-link.is-secondary{background:#ffffff1f;border:1px solid rgba(255,255,255,.34)}.videogames-hero-actions button.is-secondary:hover,.videogames-hero-actions a.videogames-cta-link.is-secondary:hover{background:#fff3}.videogames-hero .course-group-tools button,.videogames-student-hero .course-group-tools button{background:#ffffff1f;border:1px solid rgba(255,255,255,.28);color:#fff;font-size:12px;min-height:34px;padding:0 12px}.videogames-hero .course-group-tools button:hover,.videogames-student-hero .course-group-tools button:hover{background:#ffffff38}.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(5,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);cursor:pointer;display:grid;font:inherit;gap:12px;grid-template-columns:34px minmax(0,1fr);min-height:68px;padding:10px;text-align:left;width:100%}.videogames-slide-card:hover,.videogames-slide-card.is-active{background:#eef8fb;border-color:var(--teal)}.videogames-slide-card.is-active{box-shadow:inset 3px 0 0 var(--teal)}.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.25}.videogames-slide-card em{color:var(--teal-dark);display:block;font-size:11px;font-style:normal;font-weight:850;line-height:1.32}.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-left:3px solid var(--teal);border-radius:8px;box-shadow:0 12px 34px #0f172a0d;display:grid;gap:8px;grid-template-columns:minmax(0,1fr);padding:15px 16px}.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:12.5px;font-weight:700;line-height:1.48}.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(4,minmax(0,1fr));margin-top:4px;max-width:820px}.videogames-stats span{background:#07172f8a;border:1px solid rgba(255,255,255,.34);border-radius:8px;display:grid;gap:3px;min-height:62px;padding:10px}.videogames-stats b{color:#fff;font-size:17px;line-height:1.15}.videogames-stats small{color:#f1f5f9;font-size:11.5px;font-weight:800;line-height:1.25}.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-public-detail{background:#fff;border:1px solid #dbe5f1;border-left:4px solid var(--teal-dark);border-radius:10px;box-shadow:0 12px 32px #0f172a0a;display:grid;gap:16px;padding:20px;scroll-margin-top:18px}.videogames-public-detail>header{display:grid;gap:6px}.videogames-public-detail>header>span{color:var(--teal-dark);font-size:11.5px;font-weight:950;text-transform:uppercase}.videogames-public-detail h3{color:#102033;font-size:22px;line-height:1.15;margin:0}.videogames-public-detail p{color:#344054;font-size:13.5px;font-weight:680;line-height:1.5;margin:0}.videogames-public-detail-grid{display:grid;gap:16px;grid-template-columns:minmax(230px,.34fr) minmax(0,1fr)}.videogames-public-detail aside{background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;display:grid;gap:10px;align-content:start;padding:14px}.videogames-public-detail aside strong{color:#102033;font-size:13px}.videogames-public-detail aside span{color:#475569;font-size:12px;font-weight:850}.videogames-public-detail aside .public-detail-stat-row{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}.public-detail-stat-row>span{align-items:start;background:#fff;border:1px solid #e2e8f0;border-radius:6px;display:grid;gap:8px;grid-template-columns:16px minmax(0,1fr);padding:8px 10px}.public-detail-stat-row>span>div{display:grid;gap:2px}.public-detail-stat-row svg{color:var(--teal-dark);flex:0 0 auto;margin-top:2px}.public-detail-stat-row b{background:transparent;border:0;border-radius:0;color:#102033;font-size:12px;font-weight:850;line-height:1.35;padding:0}.public-detail-stat-row small{color:#64748b;font-size:11px;font-weight:700;line-height:1.35}.videogames-public-detail aside .detail-deliverable-badge{background:#eefafa;border:1px solid #b7dce7;border-left:3px solid var(--teal);border-radius:6px;color:#0f5259;display:grid;gap:4px;padding:10px 11px}.videogames-public-detail aside .detail-deliverable-badge>span{align-items:center;color:#0a3d42;display:flex;font-size:10.5px;font-weight:900;gap:5px;text-transform:uppercase}.videogames-public-detail aside .detail-deliverable-badge p{color:#0f5259;font-size:12px;font-weight:750;line-height:1.4;margin:0}.public-detail-tags{display:flex;flex-wrap:wrap;gap:6px}.public-detail-tags b{background:#e8f8f9;border:1px solid #c7edf0;border-radius:999px;color:#0f6671;font-size:11px;padding:4px 8px}.public-detail-upna-link{align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:6px;color:var(--ink);display:inline-flex;font-size:11.5px;font-weight:850;gap:6px;justify-content:center;margin-top:2px;padding:8px 10px;text-decoration:none;transition:border-color .15s ease,background .15s ease}.public-detail-upna-link:hover{background:#f1f5f9;border-color:var(--teal-dark);color:var(--teal-dark)}.videogames-public-section-list,.videogames-detail-sections{display:grid;gap:12px}.videogames-public-section-list article,.videogames-detail-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:10px;padding:14px}.videogames-public-section-list article header{align-items:center;display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:space-between}.videogames-public-section-list article strong,.videogames-public-section-list article h4,.videogames-detail-section h4{color:#102033;font-size:13.5px;font-weight:900;margin:0}.videogames-public-section-list article small{color:#52627a;font-size:11px;font-weight:850}.dvu-pillars-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.dvu-pillar-item{align-items:start;background:#fff;border:1px solid #dbe5f1;border-left:3px solid var(--teal);border-radius:6px;display:grid;gap:8px;grid-template-columns:16px minmax(0,1fr);padding:9px 11px}.dvu-pillar-item svg{color:var(--teal-dark);margin-top:2px}.dvu-pillar-item span{color:#1e293b;font-size:12.5px;font-weight:760;line-height:1.4}.dvu-subblock-cards-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.dvu-subblock-card{background:#fff;border:1px solid #dbe5f1;border-radius:8px;display:grid;gap:6px;align-content:start;padding:11px 12px}.dvu-subblock-card-top{align-items:center;display:flex;gap:6px;justify-content:space-between}.subblock-code-badge{background:#eff6ff;border:1px solid #bfdbfe;border-radius:5px;color:#1d4ed8;font-size:10.5px;font-weight:950;padding:2px 7px}.subblock-hours-pill{background:#f1f5f9;border-radius:999px;color:#475569;font-size:10.5px;font-weight:850;padding:2px 8px}.dvu-subblock-card strong{color:#0f172a;font-size:13px;font-weight:850;line-height:1.3}.dvu-subblock-card p{color:#475569;font-size:12px;font-weight:660;line-height:1.42;margin:0}.dvu-session-cards-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.dvu-session-card{background:#fff;border:1px solid #dbe5f1;border-radius:7px;display:grid;gap:5px;align-content:start;padding:10px 11px}.dvu-session-card-top{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.session-code-badge{background:#eefafa;border:1px solid #b7dce7;border-radius:5px;color:var(--teal-dark);font-size:10.5px;font-weight:950;padding:2px 6px}.session-subblock-tag{background:#f1f5f9;border-radius:4px;color:#475569;font-size:10px;font-weight:850;padding:2px 6px}.session-hours-pill{color:#64748b;font-size:10.5px;font-weight:850;margin-left:auto}.dvu-session-card strong{color:#102033;font-size:12.5px;font-weight:850;line-height:1.3}.dvu-session-card p{color:#475569;font-size:11.5px;font-weight:650;line-height:1.4;margin:0}.public-detail-login-notice{align-items:center;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;color:#0c4a6e;display:flex;gap:8px;padding:10px 12px}.public-detail-login-notice svg{color:#0284c7;flex:0 0 auto}.public-detail-login-notice span{font-size:12px;font-weight:760;line-height:1.4}.footer-upna-cta{align-items:center;display:inline-flex;gap:5px}.videogames-public-more{background:#f8fafc;border:1px solid #dbe5f1;border-radius:8px;overflow:hidden}.videogames-public-more>summary{align-items:center;color:var(--teal-dark);cursor:pointer;display:flex;font-size:13px;font-weight:900;justify-content:space-between;list-style:none;padding:12px 14px;-webkit-user-select:none;user-select:none}.videogames-public-more>summary::-webkit-details-marker{display:none}.videogames-public-more>summary:after{content:"+";font-size:16px;font-weight:900;line-height:1}.videogames-public-more[open]>summary{border-bottom:1px solid #e2e8f0}.videogames-public-more[open]>summary:after{content:"−"}.videogames-public-more-body{display:grid;gap:10px;padding:12px}.videogames-public-more-body article{background:#fff}.videogames-public-footer{background:#fff;border:1px solid #dbe5f1;border-radius:8px;display:grid;gap:14px;padding:18px 20px}.videogames-public-footer-grid{display:grid;gap:18px;grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr)}.videogames-public-footer-grid strong{color:#102033;display:block;font-size:13.5px;font-weight:900;margin-bottom:4px}.videogames-public-footer-grid p{color:#475569;font-size:12.5px;font-weight:680;line-height:1.5;margin:0}.videogames-public-footer-grid p+p{margin-top:6px}.videogames-public-footer-links{align-items:center;border-top:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:10px 18px;padding-top:12px}.videogames-public-footer-links a{color:var(--teal-dark);font-size:12px;font-weight:850;text-decoration:none}.videogames-public-footer-links a:hover{text-decoration:underline}.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,.videogames-area-card>header h4{font-size:17px;font-weight:850;margin:0}.videogames-area-card>header small{background:#eef7fb;border-radius:999px;color:var(--teal-dark);font-size:11.5px;font-weight:900;padding:6px 10px;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{align-content:start;background:#fff;border:1px solid #dfe7f0;border-radius:8px;display:grid;gap:11px;grid-template-rows:auto auto 1fr auto;min-width:0;padding:14px}.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,.videogames-subject-card header h4{font-size:14.5px;font-weight:850;margin:0}.videogames-subject-title-btn{background:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:left}.videogames-subject-title-btn:hover h4{color:var(--teal-dark);text-decoration:underline}.videogames-subject-card header b{background:#eff4ff;border-radius:999px;color:var(--blue);font-size:11px;font-weight:900;padding:5px 9px;white-space:nowrap}.videogames-subject-card.is-linked header b{background:var(--teal-soft);color:var(--teal-dark)}.videogames-module-list{align-content:start;display:grid;gap:6px}.videogames-module-list span{background:#f8fafc;border:1px solid #e2e8f0;border-left:3px solid var(--teal);border-radius:6px;color:#253044;font-size:12.5px;font-weight:650;line-height:1.4;padding:7px 10px}.videogames-module-list.is-compact{display:flex;flex-wrap:wrap;gap:7px}.videogames-module-list.is-compact span{border-left-width:1px;border-radius:999px;font-size:11.5px;font-weight:800;padding:5px 10px}.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:#cbd5e1;border:1px solid #64748b;border-radius:999px;display:block;height:8px;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:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.dvu-semester-visuals.is-paired-grid .dvu-semester-mosaic-card.is-precourse-row{grid-column:1 / -1}.dvu-semester-mosaic-card.is-precourse-row .dvu-semester-mosaic,.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-tile,.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-image{min-height:76px}.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-image,.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-tile:not(.is-active) .dvu-mosaic-image,.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-tile:hover .dvu-mosaic-image,.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-tile.is-active .dvu-mosaic-image{align-items:center;background-image:linear-gradient(90deg,#071222f5,#0a203aeb 60%,#071222c2),var(--art-image);background-position:center,right center;background-size:cover,380px auto;display:grid;gap:16px;grid-template-columns:auto auto minmax(0,1fr);grid-template-rows:1fr;padding:14px 20px}.dvu-semester-mosaic-card.is-precourse-row .dvu-tile-top{width:auto;gap:10px}.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-image small{align-self:center;color:#fff;font-size:14px;font-weight:900;white-space:nowrap}.dvu-precourse-inline-summary{border-left:1px solid rgba(255,255,255,.24);color:#e2e8f0;font-size:12.5px;font-style:normal;font-weight:700;line-height:1.4;padding-left:16px;position:relative;text-shadow:0 1px 2px rgba(0,0,0,.75);z-index:2}@media(max-width:980px){.dvu-semester-visuals{grid-template-columns:minmax(0,1fr)}.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-image,.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-tile:not(.is-active) .dvu-mosaic-image,.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-tile:hover .dvu-mosaic-image,.dvu-semester-mosaic-card.is-precourse-row .dvu-mosaic-tile.is-active .dvu-mosaic-image{grid-template-columns:minmax(0,1fr);gap:8px}.dvu-precourse-inline-summary{border-left:0;padding-left:0}}.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:#8fd4db;box-shadow:0 12px 28px #0f172a14}.dvu-semester-mosaic-card>header{align-items:center;background:#f8fafc;border-bottom:1px solid #dfe7f0;border-radius:8px 8px 0 0;display:flex;flex-wrap:wrap;gap:4px 8px;justify-content:space-between;min-height:40px;padding:8px 12px}.dvu-semester-mosaic-card>header span{color:#1e293b;font-size:12px;font-weight:950}.dvu-semester-mosaic-card>header strong{color:var(--muted);font-size:10.5px;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:156px;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:156px;min-width:0;position:relative}.dvu-mosaic-tile:only-child{min-height:156px}.dvu-mosaic-tile+.dvu-mosaic-tile .dvu-mosaic-image{border-left:1px solid rgba(255,255,255,.16)}.dvu-mosaic-image{align-content:space-between;background-color:var(--art-bg);background-image:linear-gradient(180deg,#071222c7,#07122270 44%,#071222eb),var(--art-image);background-position:center,var(--art-image-pos, center);background-repeat:no-repeat;background-size:cover;border:0;border-radius:0;box-sizing:border-box;color:#fff;cursor:pointer;display:grid;gap:10px;grid-template-rows:auto 1fr;height:100%;justify-items:start;min-height:156px;overflow:hidden;padding:12px 11px;position:relative;text-align:left;transition:background-image .16s ease,box-shadow .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-tile:not(.is-active) .dvu-mosaic-image{background-image:linear-gradient(180deg,#071222cc,#07122275 44%,#071222ed),var(--art-image)}.dvu-mosaic-tile:hover .dvu-mosaic-image,.dvu-mosaic-tile:focus-within .dvu-mosaic-image,.dvu-mosaic-tile.is-active .dvu-mosaic-image{background-image:linear-gradient(180deg,color-mix(in srgb,var(--art-accent) 24%,rgba(7,18,34,.68)),#07122252 44%,#071222e0),var(--art-image)}.dvu-mosaic-tile.is-active .dvu-mosaic-image{box-shadow:inset 0 3px 0 var(--art-accent),inset 0 0 0 1px color-mix(in srgb,var(--art-accent) 65%,transparent)}.dvu-tile-top{align-items:center;display:flex;gap:6px;justify-content:space-between;width:100%;z-index:2}.dvu-tile-hours{background:#0712228f;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#f1f5f9;font-size:10px;font-weight:850;padding:2px 6px;white-space:nowrap}.dvu-mosaic-image strong,.dvu-mosaic-image small{position:relative;text-shadow:0 1px 3px rgba(0,0,0,.75);z-index:2}.dvu-mosaic-image strong{color:#fff;font-size:16px;font-weight:950;line-height:1}.dvu-mosaic-image small{align-self:end;color:#f1f5f9;font-size:11.5px;font-weight:780;-webkit-hyphens:none;hyphens:none;line-height:1.25;max-width:100%;overflow-wrap:break-word;word-break:normal}.dvu-mosaic-tile:not(.is-active) .dvu-mosaic-image small{color:#cbd5e1}.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}.dvu-module-popover{background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 20px 48px #07172f3d;display:grid;gap:10px;grid-template-columns:minmax(0,1fr);left:50%;max-width:calc(100vw - 32px);opacity:0;padding:12px;pointer-events:none;position:absolute;top:calc(100% + 10px);transform:translate(-50%,8px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease;visibility:hidden;width:min(380px,calc(100vw - 48px));z-index:20}.dvu-semester-mosaic-card:first-child .dvu-module-popover,.dvu-semester-mosaic-card:nth-child(2) .dvu-module-popover,.dvu-semester-mosaic-card:nth-child(4) .dvu-module-popover{left:0;right:auto;transform:translateY(8px)}.dvu-semester-mosaic-card:nth-child(3) .dvu-module-popover,.dvu-semester-mosaic-card:last-child .dvu-module-popover{left:auto;right:0;transform:translateY(8px)}.dvu-mosaic-tile:hover .dvu-module-popover,.dvu-mosaic-tile:focus-within .dvu-module-popover{opacity:1;pointer-events:auto;transform:translate(-50%);visibility:visible}.dvu-semester-mosaic-card:first-child .dvu-mosaic-tile:hover .dvu-module-popover,.dvu-semester-mosaic-card:first-child .dvu-mosaic-tile:focus-within .dvu-module-popover,.dvu-semester-mosaic-card:nth-child(2) .dvu-mosaic-tile:hover .dvu-module-popover,.dvu-semester-mosaic-card:nth-child(2) .dvu-mosaic-tile:focus-within .dvu-module-popover,.dvu-semester-mosaic-card:nth-child(3) .dvu-mosaic-tile:hover .dvu-module-popover,.dvu-semester-mosaic-card:nth-child(3) .dvu-mosaic-tile:focus-within .dvu-module-popover,.dvu-semester-mosaic-card:nth-child(4) .dvu-mosaic-tile:hover .dvu-module-popover,.dvu-semester-mosaic-card:nth-child(4) .dvu-mosaic-tile:focus-within .dvu-module-popover,.dvu-semester-mosaic-card:last-child .dvu-mosaic-tile:hover .dvu-module-popover,.dvu-semester-mosaic-card:last-child .dvu-mosaic-tile:focus-within .dvu-module-popover{transform:translate(0)}@media(max-width:980px){.dvu-module-popover,.dvu-semester-mosaic-card:nth-child(3) .dvu-module-popover,.dvu-semester-mosaic-card:last-child .dvu-module-popover{left:0;right:auto;transform:translateY(8px);width:min(360px,calc(100vw - 48px))}.dvu-mosaic-tile:hover .dvu-module-popover,.dvu-mosaic-tile:focus-within .dvu-module-popover{transform:translate(0)}}@media(max-width:760px){.videogames-public-detail-grid,.dvu-pillars-grid,.dvu-subblock-cards-grid,.dvu-session-cards-grid{grid-template-columns:minmax(0,1fr)}}.popover-image{align-items:end;background-color:var(--art-bg);background-image:linear-gradient(180deg,#07122261,#071222db),var(--art-image);background-position:center,var(--art-image-pos, center);background-repeat:no-repeat;background-size:cover;border-radius:6px;color:#fff;display:grid;grid-template-columns:minmax(0,1fr);min-height:78px;overflow:hidden;padding:12px;position:relative}.popover-image>div{display:grid;gap:3px;min-width:0;position:relative;text-shadow:0 1px 3px rgba(0,0,0,.75);z-index:2}.popover-code-badge{color:#cbd5e1;font-size:10.5px;font-weight:850;text-transform:uppercase}.popover-image strong{color:#fff;font-size:13.5px;line-height:1.22;position:relative;z-index:2}.popover-copy{align-content:start;display:grid;gap:8px;min-width:0;padding:2px}.popover-copy>span{color:var(--teal-dark);font-size:11px;font-weight:950;text-transform:uppercase}.popover-copy p{color:#334155;font-size:12px;font-weight:700;line-height:1.45;margin:0}.popover-pillar-list{display:grid;gap:4px;list-style:none;margin:0;padding:0}.popover-pillar-list li{color:#334155;font-size:11.5px;font-weight:700;line-height:1.35;padding-left:12px;position:relative}.popover-pillar-list li:before{background:var(--teal);border-radius:999px;content:"";height:5px;left:0;position:absolute;top:6px;width:5px}.popover-copy p.popover-deliverable{background:#f0fdfa;border-left:3px solid var(--teal);border-radius:4px;color:#0f5259;font-size:11.5px;padding:6px 8px}.popover-copy div{display:flex;flex-wrap:wrap;gap:6px}.popover-copy small{background:#f4f7fb;border:1px solid #e0e7f0;border-radius:999px;color:#475569;font-size:11px;font-weight:850;padding:4px 8px}.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:11.5px;font-weight:900;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(5,minmax(0,1fr))}@media(max-width:1100px){.dvu-semester-timeline{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.dvu-semester-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}}.dvu-semester-column{align-content:start;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{align-content:start;border-left:2px solid #dfe7f0;display:grid;gap:8px;margin-left:12px;padding-left:10px}.is-videogames-subportal button:focus-visible,.is-videogames-subportal a:focus-visible,.videogames-public button:focus-visible,.videogames-public a:focus-visible,.videogames-student-shell button:focus-visible,.videogames-student-shell a:focus-visible{outline:2px solid var(--teal-dark);outline-offset:2px}.videogames-hero-copy button:focus-visible,.videogames-hero-copy a:focus-visible,.videogames-student-copy button:focus-visible,.dvu-mosaic-image:focus-visible{outline:2px solid #5eead4;outline-offset:2px}.videogames-slide-panel button:focus-visible,.student-command-panel button:focus-visible{outline:2px solid var(--teal-dark);outline-offset:2px}.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-pos, 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-player-note{color:#cbd8ea;font-size:12px;font-weight:650;line-height:1.45;margin:0}.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}.portal-nav-item .nav-label-short{display:none}.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}.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)}.avatar.red{background:var(--crimson)}.avatar.green{background:var(--green)}.avatar.blue{background:var(--blue)}.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}.platform-readiness-row{border-bottom:0;padding-bottom:0}.readiness-grid{display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:14px}.readiness-card{background:#f8fafc;border:1px solid #dce5ef;border-radius:8px;display:grid;gap:8px;min-width:0;padding:11px}.readiness-card.is-ready{background:#eefbf6;border-color:#a6dec8}.readiness-card.is-degraded{background:#fff7ed;border-color:#fed7aa}.readiness-card>span{align-items:center;display:flex;gap:8px;justify-content:space-between;min-width:0}.readiness-card strong{color:#172033;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.readiness-card small{color:#64748b;font-size:11px;font-weight:850}.readiness-card b{justify-self:start}.readiness-card p{color:#475569;font-size:12px;font-weight:720;line-height:1.35;margin:0}.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:auto 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:68px;justify-self:center;object-fit:contain;padding:4px;width:68px}.assistant-intro span,.assistant-question{display:grid;gap:4px;min-width:0}.assistant-intro strong{color:#253044;font-size:12px}.assistant-intro small,.assistant-runtime 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.server_llm{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.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-attempt-context{background:#f8fafc;border:1px solid #dbe4ef;border-left:4px solid var(--blue);border-radius:8px;display:grid;gap:4px;padding:10px 11px}.assistant-attempt-context strong{color:#172033;font-size:13px}.assistant-attempt-context small,.assistant-attempt-context span{color:#536176;font-size:12px;font-weight:740;line-height:1.35}.assistant-attempt-context span{color:#334155}.assistant-model-picker{background:#f8fafc;border:1px solid #dce3ed;border-radius:8px;display:grid;gap:8px;padding:10px}.assistant-model-picker label{color:#344054;display:grid;font-size:11px;font-weight:900;gap:5px}.assistant-model-picker select{background:#fff;border:1px solid #cbd5e1;border-radius:7px;color:#253044;font:inherit;min-height:34px;padding:0 9px}.assistant-model-picker small{color:var(--muted);font-size:11px;line-height:1.35}.assistant-compare-toggle{align-items:center;display:flex!important;flex-direction:row;gap:8px!important}.assistant-compare-toggle input{height:16px;margin:0;width:16px}.assistant-model-candidates{display:flex;flex-wrap:wrap;gap:6px}.assistant-model-candidates span{align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;color:#9a3412;display:inline-flex;gap:6px;min-height:26px;padding:0 8px}.assistant-model-candidates b,.assistant-model-candidates small{font-size:10px;line-height:1}.assistant-chat{display:grid;gap:8px}.assistant-chat-main{background:#fff;border:1px solid #dce3ed;border-radius:8px;padding:10px}.assistant-thread{display:grid;gap:8px;max-height:280px;overflow:auto;padding-right:2px;position:relative;scrollbar-color:transparent transparent;scrollbar-gutter:stable}.assistant-turn{border:1px solid #dce3ed;border-radius:8px;display:grid;gap:4px;max-width:92%;opacity:1;padding:9px 10px;transition:opacity .16s ease,transform .16s ease}.assistant-turn.user{background:#eef6ff;border-color:#bfdbfe;justify-self:end}.assistant-turn.assistant{background:#fff;justify-self:start}.assistant-turn.pending{border-style:dashed;color:#475569}.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-chat-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.assistant-chat-status{color:#9a3412;font-size:11px;font-weight:800}.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}.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}.panel-note{color:var(--muted);font-size:13px;line-height:1.45;margin:0}.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}.course-compass{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.course-compass-card{background:#fff;border:1px solid #dce6f1;border-left:4px solid #9aa8bb;border-radius:8px;box-shadow:0 14px 34px #07172f0d;display:grid;gap:4px;min-height:78px;padding:10px 12px}.course-compass-card.ready{border-left-color:var(--green)}.course-compass-card.local{border-left-color:var(--blue)}.course-compass-card.pending{border-left-color:#c46b1f}.course-compass-card span{color:#52627a;font-size:10px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.course-compass-card strong{color:#07172f;font-size:15px;line-height:1.2}.course-compass-card small{color:#52627a;font-size:12px;font-weight:720;line-height:1.4}.course-group-tools{display:flex;flex-wrap:wrap;gap:8px}.course-group-tools button{background:#fff;border:1px solid #dce6f1;border-radius:8px;color:#1e3a5f;cursor:pointer;font-size:13px;font-weight:800;padding:8px 12px}.course-group-tools button:hover{background:#eef3f8}.course-students-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.course-students-tabs button{background:#fff;border:1px solid #dce6f1;border-radius:999px;color:#1e3a5f;cursor:pointer;font-size:13px;font-weight:800;padding:8px 14px}.course-students-tabs button.is-active{background:#1e3a5f;border-color:#1e3a5f;color:#fff}.course-students-layout{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}.course-students-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));list-style:none;margin:0;padding:0}.course-student-card{align-items:center;background:#fff;border:1px solid #dce6f1;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:12px;text-align:center;width:100%}.course-student-card.is-selected,.course-student-card:hover{border-color:#1e3a5f;box-shadow:0 0 0 1px #1e3a5f}.course-student-card strong{font-size:14px}.course-student-card span,.course-student-card small{color:#667085;font-size:12px;word-break:break-word}.course-student-detail{background:#f8fafc;border:1px solid #dce6f1;border-radius:12px;padding:16px}.course-student-detail-close{margin-bottom:8px}.course-student-photo{height:96px;margin-bottom:8px;width:96px}.course-student-metrics{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:12px 0 0}.course-student-metrics dt{color:#667085;font-size:12px;font-weight:700}.course-student-metrics dd{font-size:16px;font-weight:800;margin:2px 0 0}@media(min-width:960px){.course-students-layout{grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr)}}.content-primary-action:disabled{background:#e7edf5;border-color:#d6e0eb;color:#667085;cursor:not-allowed}.module-learning-studio{background:#fff;border:1px solid #d7e0ea;border-radius:8px;box-shadow:0 18px 46px #07172f0f;display:grid;gap:18px;padding:18px}.module-learning-studio>header{align-items:start;border-bottom:1px solid #e4ebf3;display:flex;gap:18px;justify-content:space-between;padding-bottom:15px}.module-learning-studio>header div{display:grid;gap:5px;min-width:0}.module-learning-studio>header span{color:#52627a;font-size:11px;font-weight:950;letter-spacing:.03em;text-transform:uppercase}.module-learning-studio h3,.module-learning-studio h4,.module-learning-studio p{margin:0}.module-learning-studio h3{color:#07172f;font-size:clamp(24px,3vw,36px);line-height:1.08}.module-learning-studio>header p{color:#52627a;font-size:14px;line-height:1.45;max-width:720px}.module-learning-grid{display:grid;gap:16px;grid-template-columns:minmax(170px,.42fr) minmax(0,1fr) minmax(220px,.46fr)}.module-theory-index{align-content:start;display:grid;gap:8px}.module-theory-index>strong,.module-understanding-panel>strong{color:#172033;font-size:13px;font-weight:950}.module-theory-index button{align-items:center;background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#334155;display:grid;font-size:12px;font-weight:850;gap:8px;grid-template-columns:28px minmax(0,1fr);min-height:42px;padding:8px 10px;text-align:left}.module-theory-index button span{color:#728096;font-size:11px;font-weight:950}.module-theory-index button:hover,.module-theory-index button.is-active{background:#eef8fb;border-color:#a9d8e4;color:#0f6671}.module-theory-reader{border-left:1px solid #e4ebf3;display:grid;gap:12px;min-width:0;padding-left:16px}.theory-reader-heading{align-items:center;color:#52627a;display:flex;flex-wrap:wrap;font-size:11px;font-weight:900;gap:8px;text-transform:uppercase}.theory-reader-heading small{background:#eef8fb;border:1px solid #c7e5ed;border-radius:999px;color:#0f6671;font-size:10px;font-weight:950;padding:3px 7px}.module-theory-reader h4{color:#07172f;font-size:19px;line-height:1.2}.theory-interaction-card{background:#f6fafc;border:1px solid #dbe7ef;border-radius:8px;display:grid;gap:0;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.theory-interaction-card section{display:grid;gap:6px;padding:12px}.theory-interaction-card section+section{border-left:1px solid #dbe7ef}.theory-interaction-card span{color:#0f6671;font-size:10px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.theory-interaction-card p{color:#334155;font-size:12px;font-weight:760;line-height:1.42;margin:0}.theory-visual-map{background:#fff;border:1px solid #dbe7ef;border-radius:8px;display:grid;gap:12px;overflow:hidden;padding:13px}.theory-visual-map header{align-items:center;display:flex;gap:10px;justify-content:space-between}.theory-visual-map header span{color:#0f6671;font-size:10px;font-weight:950;letter-spacing:.05em;text-transform:uppercase}.theory-visual-map header strong{color:#172033;font-size:14px}.theory-visual-flow{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.theory-visual-flow section{background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;display:grid;gap:5px;min-height:112px;overflow:hidden;padding:11px;position:relative}.theory-visual-flow section:after{animation:visualPulse 2.8s ease-in-out infinite;animation-delay:calc(var(--step) * .18s);background:linear-gradient(90deg,transparent,rgba(20,107,115,.18),transparent);content:"";inset:0;opacity:0;position:absolute;transform:translate(-70%)}.theory-visual-flow b{color:#0f6671;font-size:11px;font-weight:950}.theory-visual-flow strong{color:#07172f;font-size:13px;line-height:1.2}.theory-visual-flow small{color:#52627a;font-size:11px;font-weight:760;line-height:1.35}@keyframes visualPulse{0%,62%,to{opacity:0;transform:translate(-70%)}18%,42%{opacity:1;transform:translate(70%)}}.module-understanding-panel{align-content:start;background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;display:grid;gap:10px;padding:14px}.module-understanding-panel p,.module-understanding-panel small{color:#52627a;font-size:12px;font-weight:750;line-height:1.45}.module-understanding-panel ul{display:grid;gap:8px;list-style:none;margin:0;padding:0}.module-understanding-panel li{align-items:start;color:#344054;display:grid;font-size:12px;font-weight:800;gap:7px;grid-template-columns:16px minmax(0,1fr);line-height:1.35}.module-understanding-panel li svg{color:var(--green);margin-top:1px}.module-outcome-strip{background:#fff;border:1px solid #e1e8f0;border-radius:8px;display:grid;gap:4px;padding:10px}.module-outcome-strip section{display:grid;gap:3px}.module-outcome-strip section+section{border-top:1px solid #e8eef5;padding-top:8px}.module-outcome-strip span{color:#0f6671;font-size:10px;font-weight:950}.module-outcome-strip b{color:#172033;font-size:13px}.learning-map-hero{background:#f8fbfc;border:1px solid #dce8ee;border-radius:8px;display:grid;gap:14px;grid-template-columns:minmax(0,1.15fr) auto;padding:16px}.learning-map-copy{display:grid;gap:5px;min-width:0}.learning-map-copy h3{font-size:18px;margin:0}.learning-map-copy p{color:#4e5d72;font-size:13px;font-weight:720;line-height:1.45;margin:0}.learning-map-source{border-radius:999px;font-size:10px;font-weight:900;justify-self:start;padding:5px 8px;text-transform:uppercase}.learning-map-source.official{background:#e7f7f1;color:#12664d}.learning-map-source.loading,.learning-map-source.local{background:#eef2f7;color:#52627a}.learning-map-metrics{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(86px,1fr))}.learning-map-metrics span{background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:2px;padding:10px}.learning-map-metrics strong{color:#122033;font-size:17px}.learning-map-metrics small,.learning-map-modules small{color:var(--muted);font-size:11px;font-weight:760}.learning-map-progress{background:#dbe4ef;border-radius:999px;grid-column:1 / -1;height:8px;overflow:hidden}.learning-map-progress b{background:var(--green);display:block;height:100%}.learning-map-actions{align-items:center;display:flex;flex-wrap:wrap;gap:9px;grid-column:1 / 2}.learning-map-actions .content-primary-action,.learning-map-actions .content-secondary-action{min-height:38px}.content-secondary-action{align-items:center;background:#fff;border:1px solid #cbd8ea;color:#26364f;display:inline-flex;font-size:12px;font-weight:900;gap:7px;justify-content:center;padding:0 12px}.content-secondary-action:hover{background:#f3f7ff;border-color:#9bbcf0}.workspace-export-status{color:#52627a;font-size:11px;font-weight:820;grid-column:1 / -1;margin:-4px 0 0}.workspace-export-contract{background:#f8fbff;border:1px solid #dce6f1;border-left:4px solid #2b6f8f;border-radius:8px;display:grid;gap:4px;grid-column:1 / -1;padding:10px 12px}.workspace-export-contract strong{color:#07172f;font-size:13px;font-weight:950}.workspace-export-contract span,.workspace-export-contract small{color:#5c6b82;font-size:12px;font-weight:760;line-height:1.42}.learning-map-modules{display:grid;gap:8px;grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr))}.learning-map-modules button{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#26364f;display:grid;gap:3px;min-height:58px;padding:9px;text-align:left}.learning-map-modules button:hover{border-color:#9bcbd8}.learning-map-modules button.is-locked{background:#f8fafc;border-color:#d7e0ea}.learning-map-modules button.is-complete{border-color:#8fd3b5}.learning-map-modules strong{font-size:12px;line-height:1.25}.learning-support-drawer{display:grid;gap:10px;grid-column:1 / -1}.learning-support-drawer details{background:#fff;border:1px solid #dce6f1;border-radius:8px;overflow:hidden}.learning-support-drawer summary{align-items:center;color:#172033;cursor:pointer;display:flex;gap:12px;justify-content:space-between;list-style:none;min-height:48px;padding:11px 14px}.learning-support-drawer summary::-webkit-details-marker{display:none}.learning-support-drawer summary:after{color:#728096;content:"+";font-size:20px;font-weight:700}.learning-support-drawer details[open] summary{border-bottom:1px solid #e6edf5}.learning-support-drawer details[open] summary:after{content:"-"}.learning-support-drawer summary span{font-size:13px;font-weight:950}.learning-support-drawer summary small{color:#667085;font-size:11px;font-weight:750;margin-left:auto}.learning-support-drawer details>:not(summary){margin:12px}.learning-support-drawer details>:not(summary)+:not(summary){margin-top:0}.runner-readiness-panel{background:#f8fafc;border:1px solid #dfe7f0;border-left:4px solid var(--green);border-radius:8px;display:grid;gap:10px;grid-column:1 / -1;padding:12px}.runner-readiness-panel.is-degraded{border-left-color:var(--amber)}.runner-readiness-panel header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.runner-readiness-panel header strong{color:#102033;font-size:14px}.runner-readiness-panel header small{color:#52627a;font-size:11px;font-weight:800}.runner-readiness-grid{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.runner-readiness-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;border-top:3px solid #94a3b8;display:grid;gap:4px;min-height:76px;padding:9px}.runner-readiness-item.ready,.runner-readiness-item.configured,.runner-readiness-item.available{border-top-color:var(--green)}.runner-readiness-item.mixed,.runner-readiness-item.unconfigured{border-top-color:var(--amber)}.runner-readiness-item b{color:#172033;font-size:12px}.runner-readiness-item small{color:#52627a;font-size:11px;font-weight:760;line-height:1.35}.learning-contract-grid{display:grid;gap:8px;grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr))}.learning-contract-card{background:#fff;border:1px solid #e2e8f0;border-left:4px solid #94a3b8;border-radius:8px;display:grid;gap:4px;min-height:96px;padding:10px}.learning-contract-card.active{border-left-color:var(--blue)}.learning-contract-card.done{border-left-color:var(--green)}.learning-contract-card.pending{border-left-color:var(--amber)}.learning-contract-card span{color:#66748a;font-size:10px;font-weight:900;text-transform:uppercase}.learning-contract-card strong{color:#102033;font-size:13px;line-height:1.2}.learning-contract-card small{color:#536176;font-size:11px;font-weight:720;line-height:1.35}.course-academic-plan{background:#f9fafb;border:1px solid #dde7ee;border-left:4px solid #30445f;border-radius:8px;display:grid;gap:12px;grid-column:1 / -1;padding:13px}.course-academic-plan>header{align-items:end;display:grid;gap:5px;grid-template-columns:minmax(0,1fr) auto}.course-academic-plan>header span{color:#64748b;font-size:10px;font-weight:950;text-transform:uppercase}.course-academic-plan>header strong{color:#102033;font-size:14px}.course-academic-plan>header small{color:#4e5d72;font-size:12px;font-weight:800;grid-column:1 / -1}.course-milestone-track,.course-assessment-contract,.course-learning-outcomes,.course-practice-contract{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.course-milestone-card,.course-assessment-contract article,.course-learning-outcomes article,.course-practice-contract article{background:#fff;border:1px solid #e2e8f0;border-top:3px solid #94a3b8;border-radius:8px;display:grid;gap:6px;min-width:0;padding:10px}.course-milestone-card.formative{border-top-color:#2b6f8f}.course-milestone-card.summative,.course-milestone-card.is-active{border-top-color:var(--green)}.course-milestone-card span,.course-assessment-contract span,.course-learning-outcomes span,.course-practice-contract span{color:#64748b;font-size:10px;font-weight:950;text-transform:uppercase}.course-milestone-card strong,.course-assessment-contract strong,.course-learning-outcomes strong,.course-practice-contract strong{color:#172033;font-size:13px;line-height:1.2}.course-milestone-card small,.course-assessment-contract small,.course-assessment-contract em,.course-learning-outcomes small,.course-learning-outcomes em,.course-practice-contract small,.course-practice-contract em,.course-recovery-rules p{color:#536176;font-size:11px;font-style:normal;font-weight:720;line-height:1.35;margin:0}.course-milestone-card div{display:flex;flex-wrap:wrap;gap:5px}.course-milestone-card button,.course-learning-outcomes button{background:#eef4f7;border:1px solid #d8e5ec;color:#29455a;font-size:10px;font-weight:900;min-height:24px;padding:0 7px;text-transform:uppercase}.course-learning-outcomes{grid-template-columns:minmax(0,.8fr) repeat(3,minmax(0,1fr))}.course-learning-outcomes>div{background:#f3f6f4;border:1px solid #dbe7dd;border-radius:8px;display:grid;gap:5px;padding:10px}.course-learning-outcomes>div strong{color:#102033;font-size:13px}.course-learning-outcomes>div small{color:#536176;font-size:11px;font-weight:760}.course-learning-outcomes article{border-top-color:#50745a}.course-learning-outcomes article div{display:flex;flex-wrap:wrap;gap:5px}.course-assessment-contract{grid-template-columns:minmax(0,.8fr) repeat(2,minmax(0,1fr))}.course-practice-contract{grid-template-columns:minmax(0,.8fr) repeat(4,minmax(0,1fr))}.course-assessment-contract>div,.course-practice-contract>div{background:#eef4f7;border:1px solid #d8e5ec;border-radius:8px;display:grid;gap:5px;padding:10px}.course-assessment-contract>div strong,.course-practice-contract>div strong{color:#102033;font-size:13px}.course-assessment-contract>div small,.course-practice-contract>div small{color:#536176;font-size:11px;font-weight:760}.course-practice-contract article{border-top-color:#2b6f8f}.course-practice-contract article.is-ready{background:#edf8f4;border-color:#9bd7c3;border-top-color:var(--green)}.course-practice-contract button{background:#fffdf7;border:1px solid #f1deae;color:#4a3b10;font-size:11px;font-weight:820;line-height:1.25;min-height:34px;padding:7px;text-align:left}.course-recovery-rules{display:grid;gap:6px}.course-recovery-rules p{background:#fffdf7;border:1px solid #f1deae;border-radius:8px;padding:8px 10px}.course-study-tips-panel{background:#fffdf7;border:1px solid #f1deae;border-left:4px solid var(--amber);border-radius:8px;display:grid;gap:10px;grid-column:1 / -1;padding:12px}.course-study-tips-panel header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.course-study-tips-panel header span{align-items:center;color:#7c4a03;display:inline-flex;font-size:12px;font-weight:950;gap:7px}.course-study-tips-panel header small,.course-study-tips-target small,.course-study-tips-panel p{color:#695b42;font-size:11px;font-weight:800}.course-study-tips-target{background:#ffffffb8;border:1px solid #f2e3bd;border-radius:8px;display:grid;gap:3px;padding:9px 10px}.course-study-tips-target strong{color:#172033;font-size:13px}.course-study-tips-panel ol{display:grid;gap:7px;list-style:none;margin:0;padding:0}.course-study-tips-panel li{align-items:start;background:#fff;border:1px solid #f0e0b8;border-radius:8px;display:grid;gap:8px;grid-template-columns:28px minmax(0,1fr);padding:8px}.course-study-tips-panel li b{align-items:center;background:#fff4d6;border-radius:8px;color:#8a5b09;display:inline-flex;font-size:11px;font-weight:950;height:28px;justify-content:center}.course-study-tips-panel li span{color:#26364f;font-size:12px;font-weight:760;line-height:1.38}.course-study-tips-panel p{line-height:1.4;margin:0}.course-study-tips-panel button{background:#172033;border:0;color:#fff;font-size:12px;font-weight:900;justify-self:start;min-height:34px;padding:0 12px}.course-study-tips-panel button:disabled{background:#e5dcc8;color:#695b42;cursor:not-allowed}.course-points-panel{background:#fff;border:1px solid #dfe7f0;border-left:4px solid var(--blue);border-radius:8px;display:grid;gap:12px;grid-column:1 / -1;padding:12px}.course-points-panel header{align-items:center;display:flex;gap:10px;justify-content:space-between}.course-points-panel header>div{display:grid;gap:3px;text-align:right}.course-points-panel header strong{color:#102033;font-size:14px}.course-points-panel header small{color:#52627a;font-size:11px;font-weight:800}.course-points-grid{display:grid;gap:10px;grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr)}.course-points-module-list{display:grid;gap:7px;max-height:295px;overflow:auto;padding-right:2px}.course-points-module-list button{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#26364f;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;min-height:52px;padding:8px 9px;text-align:left}.course-points-module-list button:hover,.course-points-module-list button.is-active{background:#eef5ff;border-color:#9bbcf0}.course-points-module-list span{display:grid;gap:2px;min-width:0}.course-points-module-list strong{font-size:12px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-points-module-list small{color:#6b7a90;font-size:10px;font-weight:850}.course-points-module-list b{color:#102033;font-size:12px;font-weight:950;white-space:nowrap}.course-points-exercise-list{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:7px;padding:10px}.course-points-active-heading,.course-points-exercise-row{align-items:center;display:grid;gap:8px}.course-points-active-heading{grid-template-columns:minmax(0,1fr) auto;padding:2px 1px 5px}.course-points-active-heading strong{color:#102033;font-size:13px}.course-points-active-heading small{color:#52627a;font-size:11px;font-weight:900}.course-points-exercise-row{background:#fff;border:1px solid #e4eaf2;border-radius:8px;grid-template-columns:20px minmax(0,1fr) auto;min-height:46px;padding:8px}.course-points-exercise-row.passed{border-color:#b6e1c5}.course-points-exercise-row.failed{border-color:#f3c7c7}.course-points-exercise-row svg{color:#64748b}.course-points-exercise-row.passed svg{color:var(--green)}.course-points-exercise-row.failed svg{color:var(--crimson)}.course-points-exercise-row span{display:grid;gap:3px;min-width:0}.course-points-exercise-row strong{color:#172033;font-size:12px;line-height:1.2}.course-points-exercise-row small{color:#64748b;font-size:10px;font-weight:820;text-transform:uppercase}.course-points-exercise-row b{color:#102033;font-size:12px;font-weight:950;white-space:nowrap}.course-approval-guide{align-items:center;background:#f8fafc;border:1px solid #dbe5f1;border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto auto;padding:10px}.course-approval-guide span,.course-approval-guide div{display:grid;gap:2px;min-width:0}.course-approval-guide strong,.course-approval-guide b{color:#102033;font-size:13px;font-weight:950}.course-approval-guide small{color:#5c6b82;font-size:11px;font-weight:800;line-height:1.35}.course-approval-guide button{background:#143352;border:0;border-radius:8px;color:#fff;font-size:12px;font-weight:900;min-height:34px;padding:0 12px}.course-approval-path{display:grid;gap:7px}.course-approval-path button{align-items:center;background:#fff;border:1px solid #e1e8f0;border-radius:8px;color:inherit;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;min-height:48px;padding:8px;text-align:left}.course-approval-path button:hover{border-color:#a9bfdb;box-shadow:0 10px 22px #07172f0f}.course-approval-path button.passed{background:#f3fbf6;border-color:#bfe7cd}.course-approval-path button.failed{background:#fff7f7;border-color:#f0c5c5}.course-approval-path svg{color:#65758c}.course-approval-path button.passed svg{color:var(--green)}.course-approval-path button.failed svg{color:var(--crimson)}.course-approval-path span{display:grid;gap:2px;min-width:0}.course-approval-path strong{color:#172033;font-size:12px;line-height:1.2}.course-approval-path small{color:#5f6f86;font-size:10px;font-weight:850;line-height:1.25}.course-approval-path b{color:#143352;font-size:10px;font-weight:950}.course-review-queue{background:#fff;border:1px solid #d4deea;border-radius:8px;box-shadow:0 14px 34px #07172f12;display:grid;gap:14px;grid-column:1 / -1;padding:16px}.course-review-queue header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.course-review-queue header>span{background:#fff4e3;border:1px solid #f1d19b;border-radius:999px;color:#8f5509;font-size:11px;font-weight:900;padding:5px 9px;text-transform:uppercase}.course-review-queue header div,.course-review-queue article span{display:grid;gap:4px}.course-review-queue header strong,.course-review-queue article strong{color:#07172f;font-size:14px;font-weight:900}.course-review-queue header small,.course-review-queue article small,.course-review-queue p{color:var(--muted);font-size:12px;font-weight:750;line-height:1.45;margin:0}.course-review-list{display:grid;gap:9px}.course-review-list article{align-items:center;background:#f8fbff;border:1px solid #dbe5f0;border-left:4px solid #8ea2bc;border-radius:8px;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;padding:10px}.course-review-list article.failed{border-left-color:#d95959}.course-review-list article.draft{border-left-color:#c99520}.course-review-list article svg{color:#8ea2bc}.course-review-list article.failed svg{color:#d95959}.course-review-list article.draft svg{color:#c99520}.course-review-list em{color:#44546b;font-size:12px;font-style:normal;font-weight:800;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-review-list button{background:#143352;border:1px solid #143352;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:900;min-height:34px;padding:0 12px}.course-review-list button:hover{background:#0c243d}.spaced-review-plan{background:#fff;border:1px solid #d4deea;border-radius:8px;display:grid;gap:14px;grid-column:1 / -1;padding:16px}.spaced-review-plan header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.spaced-review-plan header>span{background:#e9f7f7;border:1px solid #a9d7d7;border-radius:999px;color:#0f6671;font-size:11px;font-weight:900;padding:5px 9px;text-transform:uppercase}.spaced-review-plan header div{display:grid;gap:4px}.spaced-review-plan header strong,.spaced-review-lanes article>strong{color:#07172f;font-size:14px;font-weight:900}.spaced-review-plan header small,.spaced-review-plan p{color:var(--muted);font-size:12px;font-weight:750;line-height:1.45;margin:0}.spaced-review-lanes{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.spaced-review-lanes article{background:#f8fbff;border:1px solid #dce6f1;border-radius:8px;display:grid;gap:9px;min-width:0;padding:10px}.spaced-review-lanes article>div{display:grid;gap:8px}.spaced-review-lanes button{align-items:flex-start;background:#fff;border:1px solid #dbe5f0;border-left:4px solid #8ea2bc;border-radius:7px;color:inherit;cursor:pointer;display:grid;gap:7px;grid-template-columns:auto minmax(0,1fr);padding:9px;text-align:left}.spaced-review-lanes button:hover{border-color:#9fb2cc;box-shadow:0 10px 22px #07172f14}.spaced-review-lanes button.failed{border-left-color:#d95959}.spaced-review-lanes button.draft{border-left-color:#c99520}.spaced-review-lanes button.passed{border-left-color:#1f9c70}.spaced-review-lanes svg{margin-top:2px}.spaced-review-lanes button.failed svg{color:#d95959}.spaced-review-lanes button.draft svg{color:#c99520}.spaced-review-lanes button.passed svg{color:#1f9c70}.spaced-review-lanes span{display:grid;gap:3px;min-width:0}.spaced-review-lanes b{color:#102033;font-size:12px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spaced-review-lanes small{color:#5c6b82;font-size:11px;font-weight:750;line-height:1.35}.concept-mastery-map{background:#fff;border:1px solid #d4deea;border-radius:8px;display:grid;gap:14px;grid-column:1 / -1;padding:16px}.concept-mastery-map header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.concept-mastery-map header>span{background:#edf3ff;border:1px solid #b9ccef;border-radius:999px;color:#244e8f;font-size:11px;font-weight:900;padding:5px 9px;text-transform:uppercase}.concept-mastery-map header div{display:grid;gap:4px}.concept-mastery-map header strong,.concept-mastery-list article strong{color:#07172f;font-size:14px;font-weight:900}.concept-mastery-map header small,.concept-mastery-map p,.concept-mastery-list article small{color:var(--muted);font-size:12px;font-weight:750;line-height:1.45;margin:0}.concept-mastery-list{display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}.concept-mastery-list article{align-items:center;background:#f8fbff;border:1px solid #dce6f1;border-left:4px solid #8ea2bc;border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) minmax(90px,.35fr) auto;min-width:0;padding:10px}.concept-mastery-list article.risk{border-left-color:#d95959}.concept-mastery-list article.practice{border-left-color:#c99520}.concept-mastery-list article.strong{border-left-color:#1f9c70}.concept-mastery-list article>div{display:grid;gap:3px;min-width:0}.concept-mastery-list article>span{background:#e8eef6;border-radius:999px;display:block;height:8px;overflow:hidden}.concept-mastery-list article>span i{background:#244e8f;border-radius:inherit;display:block;height:100%}.concept-mastery-list article.risk>span i{background:#d95959}.concept-mastery-list article.practice>span i{background:#c99520}.concept-mastery-list article.strong>span i{background:#1f9c70}.concept-mastery-list button,.concept-mastery-list b{border-radius:6px;font-size:12px;font-weight:900;min-height:34px;padding:0 11px}.concept-mastery-list button{background:#143352;border:1px solid #143352;color:#fff;cursor:pointer}.concept-mastery-list button:hover{background:#0c243d}.concept-mastery-list b{align-items:center;background:#eef7f3;color:#1f6f52;display:inline-flex}.study-session-plan{background:#fff;border:1px solid #e2e8f0;border-left:4px solid var(--teal-dark);border-radius:8px;display:grid;gap:10px;grid-column:1 / -1;padding:12px}.study-session-plan header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.study-session-plan header span{color:#66748a;font-size:10px;font-weight:900;text-transform:uppercase}.study-session-plan header strong{color:#172033;font-size:13px}.study-session-plan ol{display:grid;gap:8px;list-style:none;margin:0;padding:0}.study-session-contract{background:#f8fbff;border:1px solid #dce6f1;border-left:4px solid #244e8f;border-radius:8px;display:grid;gap:4px;padding:10px}.study-session-contract strong{color:#07172f;font-size:13px;font-weight:950}.study-session-contract span,.study-session-contract small{color:#5c6b82;font-size:12px;font-weight:750;line-height:1.4}.study-session-plan li{display:grid;gap:3px}.study-session-plan li b{color:#0f766e;font-size:12px}.study-session-plan li span{color:#334155;font-size:12px;font-weight:730;line-height:1.35}.study-session-evidence{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:8px;padding:10px}.study-session-evidence label{color:#46566d;display:grid;font-size:11px;font-weight:900;gap:5px;text-transform:uppercase}.study-session-evidence textarea{background:#fff;border:1px solid #d4deea;color:#172033;font-size:12px;line-height:1.4;padding:9px;resize:vertical;text-transform:none}.study-session-evidence .session-complete-check{align-items:center;color:#172033;display:flex;flex-direction:row;font-size:12px;gap:8px;text-transform:none}.study-session-evidence small{color:#64748b;font-size:11px;font-weight:760}.session-export-button{align-items:center;background:#172033;border:0;color:#fff;display:inline-flex;font-size:12px;font-weight:880;gap:7px;justify-content:center;justify-self:start;min-height:34px;padding:0 12px}.session-export-button:hover{background:#26364f}.learning-return-plan{background:#fff;border:1px solid #dbe7ef;border-left:4px solid #0f6671;border-radius:8px;display:grid;gap:10px;padding:11px}.learning-return-plan header{align-items:center;display:flex;gap:8px;justify-content:space-between}.learning-return-plan header span{color:#0f6671;font-size:10px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.learning-return-plan header strong{color:#172033;font-size:13px}.learning-return-plan p,.learning-return-plan small{color:#52627a;font-size:12px;font-weight:740;line-height:1.42;margin:0}.learning-return-plan>div{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.learning-return-plan>div span{background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;color:#334155;display:grid;font-size:12px;font-weight:740;gap:4px;line-height:1.35;padding:9px}.learning-return-plan>div b{color:#172033;font-size:11px;font-weight:950;text-transform:uppercase}.module-browser{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #0f172a0d;height:fit-content;padding:14px}.course-map-card{background:#f8fafc;border:1px solid #e1e8f0;border-radius:8px;display:grid;gap:8px;padding:12px}.course-map-card span{color:#64748b;font-size:11px;font-weight:900;text-transform:uppercase}.course-map-card strong{color:#172033;font-size:18px}.course-map-card i{background:#dbe4ef;border-radius:999px;display:block;height:8px;overflow:hidden}.course-map-card b{background:var(--green);display:block;height:100%}.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}.practice-readiness-panel{background:#f8fafc;border:1px solid #dbe5ef;border-left:4px solid #2b6f8f;border-radius:8px;display:grid;gap:12px;padding:14px}.practice-readiness-panel header{display:grid;gap:3px}.practice-readiness-panel header span{color:#64748b;font-size:10px;font-weight:950;text-transform:uppercase}.practice-readiness-panel header strong{color:#172033;font-size:15px}.practice-readiness-panel header small,.practice-readiness-panel>small,.practice-readiness-panel p{color:#536176;font-size:12px;font-weight:760;line-height:1.4;margin:0}.practice-readiness-panel>div{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.practice-readiness-panel label{align-items:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:9px;min-width:0;padding:10px}.practice-readiness-panel label span{display:grid;gap:3px;min-width:0}.practice-readiness-panel b{color:#172033;font-size:12px}.practice-readiness-panel label small{color:#64748b;font-size:11px;font-weight:760;line-height:1.35}.deliverable-guide{background:#fff;border:1px solid #dde7f1;border-radius:8px;display:grid;gap:10px;padding:12px}.deliverable-guide header{align-items:center;display:flex;justify-content:space-between}.deliverable-guide header strong{color:#172033;font-size:13px}.deliverable-guide header small{color:#64748b;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:11px}.deliverable-guide-grid{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.deliverable-guide-grid span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:3px;padding:9px}.deliverable-file-list{display:flex;flex-wrap:wrap;gap:6px}.deliverable-file-list code{background:#eef8fb;border:1px solid #cce7ef;border-radius:999px;color:var(--teal-dark);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:850;padding:5px 7px}.practice-evidence-export{align-items:center;background:#102032;border:0;border-radius:8px;color:#fff;display:inline-flex;font-size:12px;font-weight:850;gap:7px;justify-content:center;justify-self:start;min-height:34px;padding:0 12px}.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}.exercise-map-section{display:grid;gap:12px}.course-exercise-list{display:grid;gap:8px}.course-exercise-row{align-items:center;background:#f8fafc;border:1px solid #dfe7f1;color:#253044;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr);padding:10px;text-align:left;width:100%}.course-exercise-row span{display:grid;gap:3px}.course-exercise-row strong{color:#172033;font-size:13px}.course-exercise-row small{color:#64748b;font-size:11px;font-weight:800}.course-exercise-row.passed{background:#ecfdf5;border-color:#bbf7d0}.course-exercise-row.failed{background:#fff1f2;border-color:#fecdd3}.content-primary-action{align-items:center;background:var(--ink);border:0;color:#fff;display:inline-flex;font-weight:900;justify-content:center;min-height:40px;padding:0 14px;width:fit-content}.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-group-list{display:grid;gap:12px}.resource-group{display:grid;gap:8px}.resource-group header{align-items:end;border-bottom:0;display:flex;justify-content:space-between;min-height:0;padding:0 2px}.resource-group header strong{color:#1f2937;font-size:12px;font-weight:900}.resource-group header small{color:var(--muted);font-size:11px;text-align:right}.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:flex-start;border-bottom:1px solid var(--line);display:grid;gap:12px;grid-template-columns:minmax(0,1fr);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;justify-content:flex-start}.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,.submit-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}.submit-button{background:var(--action);color:var(--action-ink)}.reset-button{background:#f8fafc;border:1px solid #dce3ed;color:#334155}.run-button:disabled,.check-button:disabled,.submit-button:disabled,.reset-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}.exercise-prompt.compact-note{background:#f8fafc;color:#64748b;font-size:12px;padding:8px 14px}.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}.progressive-hints{background:#fbfcff;border-bottom:1px solid var(--line);display:grid;gap:10px;padding:12px 14px}.official-submission-readiness{background:#fff;border-bottom:1px solid var(--line);display:grid;gap:10px;padding:12px 14px}.local-workspace-readiness{background:#f8fbff;border-bottom:1px solid var(--line);display:grid;gap:6px;padding:12px 14px}.official-submission-readiness header,.local-workspace-readiness header{align-items:center;display:flex;gap:10px;justify-content:space-between}.official-submission-readiness header span,.local-workspace-readiness header span{align-items:center;color:#172033;display:inline-flex;font-size:13px;font-weight:900;gap:7px}.official-submission-readiness header small,.official-submission-readiness p,.official-submission-readiness span small,.local-workspace-readiness header small,.local-workspace-readiness p,.local-workspace-readiness>small{color:#64748b;font-size:12px;font-weight:800}.local-workspace-readiness p,.local-workspace-readiness>small{line-height:1.4;margin:0}.official-submission-readiness>div{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.official-submission-readiness>div>span{align-items:center;background:#f8fafc;border:1px solid #e1e8f2;border-radius:8px;display:grid;gap:2px 8px;grid-template-columns:auto 1fr;padding:9px 10px}.official-submission-readiness>div>span svg{grid-row:span 2}.official-submission-readiness span.ready svg{color:var(--green)}.official-submission-readiness span.pending svg{color:var(--amber)}.official-submission-readiness span strong{color:#172033;font-size:12px;font-weight:900}.official-submission-readiness p{line-height:1.4;margin:0}.official-submission-readiness footer{background:#f8fafc;border:1px solid #e1e8f2;border-radius:8px;display:grid;gap:3px;padding:9px 10px}.official-submission-readiness footer strong{color:#172033;font-size:12px;font-weight:900}.official-submission-readiness footer span{color:#64748b;font-size:12px;font-weight:800;line-height:1.4}.progressive-hints header,.progressive-hints footer,.hint-failure-signal{align-items:center;display:flex;gap:10px;justify-content:space-between}.progressive-hints header span{align-items:center;color:#172033;display:inline-flex;font-size:13px;font-weight:900;gap:7px}.progressive-hints header small,.progressive-hints footer span{color:#64748b;font-size:12px;font-weight:800}.progressive-hints ol{display:grid;gap:7px;list-style:none;margin:0;padding:0}.progressive-hints li{align-items:flex-start;background:#fff;border:1px solid #e1e8f2;border-radius:8px;color:#334155;display:grid;font-size:13px;gap:9px;grid-template-columns:auto 1fr;line-height:1.45;padding:9px 10px}.progressive-hints li b{color:#0f766e;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12px}.hint-failure-signal{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#7c2d12;justify-content:flex-start;padding:9px 10px}.hint-failure-signal span{display:grid;font-size:12px;gap:2px;line-height:1.35}.hint-failure-signal strong{font-size:11px;text-transform:uppercase}.progressive-hints footer button{background:#172033;border:0;border-radius:8px;color:#fff;font-size:12px;font-weight:900;min-height:34px;padding:0 12px}.progressive-hints footer button:disabled{background:#e2e8f0;color:#64748b}.attempt-timeline{background:#fff;border-bottom:1px solid var(--line);display:grid;gap:9px;padding:12px 14px}.attempt-timeline header{align-items:center;display:flex;gap:10px;justify-content:space-between}.attempt-timeline header span{color:#172033;font-size:13px;font-weight:900}.attempt-timeline header small,.attempt-timeline p{color:#64748b;font-size:12px;font-weight:800}.attempt-timeline p{line-height:1.45;margin:0}.attempt-timeline ol{display:grid;gap:7px;list-style:none;margin:0;padding:0}.attempt-timeline li{align-items:flex-start;background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #94a3b8;border-radius:8px;display:grid;gap:9px;grid-template-columns:auto 1fr;padding:9px 10px}.attempt-timeline li.passed{border-left-color:var(--green)}.attempt-timeline li.failed{border-left-color:var(--crimson)}.attempt-timeline li.draft{border-left-color:var(--blue)}.attempt-timeline li span{display:grid;gap:3px;min-width:0}.attempt-timeline li strong{color:#172033;font-size:12px}.attempt-timeline li small{color:#64748b;font-size:11px;font-weight:800}.attempt-timeline li em{color:#334155;font-size:12px;font-style:normal;line-height:1.35;overflow:hidden;text-overflow:ellipsis}.attempt-coach{background:#f8fafc;border-bottom:1px solid var(--line);border-left:4px solid #94a3b8;display:grid;gap:6px;padding:12px 14px}.attempt-coach.failed{background:#fff7ed;border-left-color:var(--amber)}.attempt-coach.passed{background:#edf8f4;border-left-color:var(--green)}.attempt-coach.draft{border-left-color:var(--blue)}.attempt-coach header{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.attempt-coach header span{color:#66748a;font-size:10px;font-weight:900;text-transform:uppercase}.attempt-coach header strong{color:#172033;font-size:13px}.attempt-coach p{color:#243246;font-size:13px;font-weight:760;line-height:1.42;margin:0}.attempt-coach small{color:#64748b;font-size:11px;font-weight:760}.editor-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);min-height:0}.monaco-frame{min-height:460px}.runtime-side-panel{display:grid;grid-template-rows:minmax(112px,auto) minmax(260px,1fr);min-height:0}.stdin-panel{background:#f8fafc;border-bottom:1px solid #dbe4ef;display:grid;gap:8px;padding:12px}.stdin-panel span{color:#475569;font-size:12px;font-weight:900}.stdin-panel textarea{background:#fff;border:1px solid #d4deea;color:#172033;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12px;min-height:74px;padding:10px;resize:vertical}.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}@media(max-width:1100px){.course-content-layout,.pyxom-layout{grid-template-columns:1fr}.course-content-main{order:-1}.module-learning-grid{grid-template-columns:1fr}.module-theory-reader{border-left:0;border-top:1px solid #e4ebf3;padding-left:0;padding-top:14px}.theory-interaction-card{grid-template-columns:1fr}.theory-visual-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.theory-interaction-card section+section{border-left:0;border-top:1px solid #dbe7ef}.learning-return-plan>div{grid-template-columns:1fr}.module-learning-studio>header{display:grid}.learning-map-hero{grid-template-columns:1fr}.course-compass{grid-template-columns:repeat(3,minmax(0,1fr))}.learning-map-metrics,.learning-map-modules,.practice-readiness-panel>div,.runner-readiness-grid,.learning-contract-grid,.course-milestone-track,.course-assessment-contract,.course-learning-outcomes,.course-practice-contract,.course-points-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.learning-map-metrics,.learning-map-modules,.practice-readiness-panel>div,.runner-readiness-grid,.learning-contract-grid,.course-milestone-track,.course-assessment-contract,.course-learning-outcomes,.course-practice-contract,.course-points-grid,.course-approval-guide{grid-template-columns:1fr}.course-points-panel header{align-items:flex-start;flex-direction:column}.course-points-panel header>div{text-align:left}.progressive-hints header,.progressive-hints footer,.official-submission-readiness header{align-items:flex-start;flex-direction:column}.official-submission-readiness>div{grid-template-columns:1fr}.progressive-hints footer button{width:100%}.readiness-grid{grid-template-columns:1fr}}body button:not(.portal-brand-mark){border-radius:var(--radius-control)}body :is(input,textarea,select){border-radius:var(--radius-control)}.assistant-character-stage{--alai-hitbox: 72px;--alai-size: 152px;align-items:center;bottom:8px;display:flex;flex-direction:column;left:50%;pointer-events:none;position:fixed;transform:translate(-50%);z-index:120}.assistant-character-stage>*{pointer-events:auto}.assistant-character-stage.is-in-course{--alai-hitbox: 42px;--alai-size: 88px}.assistant-character-stage.is-in-sidebar{--alai-hitbox: 40px;--alai-size: 64px;align-items:flex-end;bottom:calc(70px + env(safe-area-inset-bottom,0px));height:var(--alai-size);justify-content:center;left:calc((var(--sidebar-width) - var(--alai-size)) / 2);overflow:visible;position:fixed;transform:none;width:var(--alai-size);z-index:1000}.assistant-character-stage.is-in-sidebar .assistant-character{animation:none;overflow:visible;z-index:51}.assistant-character-stage.is-in-sidebar .assistant-character-sprite{left:50%;overflow:visible;transform:translate(-50%);z-index:52}.assistant-character-stage.is-in-sidebar.is-in-course{--alai-hitbox: 38px;--alai-size: 58px}.assistant-character-stage.is-in-sidebar.is-open .assistant-character-window,.assistant-character-stage.is-in-sidebar .assistant-character-window{bottom:8px;left:calc(var(--sidebar-width) + 10px);margin-bottom:0;position:fixed;width:min(360px,calc(100vw - var(--sidebar-width) - 24px));z-index:1010}.assistant-character-stage.is-in-sidebar .assistant-character:after{animation:none;left:50%;transform:translate(-50%) scale(1)}.assistant-character{animation:alai_idle_presence 5.8s ease-in-out infinite;background:transparent;border:none;cursor:pointer;height:var(--alai-hitbox);opacity:.85;padding:0;position:relative;transform-origin:50% 100%;transition:opacity .2s ease;width:var(--alai-hitbox)}.assistant-character-stage.is-open .assistant-character,.assistant-character:hover{animation-play-state:paused;opacity:1}.assistant-character-stage.is-open .assistant-character:after,.assistant-character:hover:after{animation-play-state:paused}.assistant-character:after{animation:alai_shadow .85s ease-in-out infinite alternate;background:#07172f38;border-radius:999px;bottom:0;content:"";filter:blur(4px);height:13px;left:50%;pointer-events:none;position:absolute;transform:translate(-50%) scale(1);width:58%;z-index:0}.assistant-character-sprite{bottom:0;filter:drop-shadow(0 10px 16px rgba(7,23,47,.3));display:block;height:var(--alai-size);left:50%;pointer-events:none;position:absolute;transform:translate(-50%);transform-origin:50% 100%;width:var(--alai-size);z-index:1}@keyframes alai_idle_presence{0%,to{opacity:.82}50%{opacity:.95}}@keyframes alai_shadow{0%{opacity:.72;transform:translate(-50%) scale(1)}to{opacity:.46;transform:translate(-50%) scale(.82)}}@media(prefers-reduced-motion:reduce){.assistant-character,.assistant-character:after,.assistant-character-sprite{animation:none}}.assistant-character-window{background:transparent;border:none;box-shadow:none;display:flex;flex-direction:column;margin-bottom:10px;overflow:visible;position:relative;width:min(360px,calc(100vw - 28px))}.assistant-character-window[hidden]{display:none}.assistant-character-body{overflow:visible}.assistant-character-prompt{align-items:stretch;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff9e;border:1px solid rgba(255,255,255,.74);border-radius:12px;box-shadow:0 18px 50px #07172f2e;display:block;padding:10px}.assistant-character-thread{display:grid;gap:7px;margin-bottom:8px;max-height:min(240px,42vh);overflow:auto;position:relative}.assistant-character-turn{border-radius:8px;color:#0f172a;font-size:13px;line-height:1.38;margin:0;opacity:1;padding:8px 10px;transition:opacity .16s ease,transform .16s ease;white-space:pre-wrap}.assistant-character-turn.user{background:#0f172a14}.assistant-character-turn.assistant{background:#14b8a624}.assistant-character-turn.pending{color:#475569}.assistant-chat :is(.assistant-thread,.assistant-character-thread){scrollbar-color:transparent transparent;scrollbar-gutter:stable}.assistant-chat :is(.assistant-thread,.assistant-character-thread)::-webkit-scrollbar{height:8px;width:8px}.assistant-chat :is(.assistant-thread,.assistant-character-thread)::-webkit-scrollbar-track{background:transparent}.assistant-chat :is(.assistant-thread,.assistant-character-thread)::-webkit-scrollbar-thumb{background:transparent;border-radius:999px}.assistant-chat:focus-within :is(.assistant-thread,.assistant-character-thread),.assistant-chat :is(.assistant-thread,.assistant-character-thread):hover{scrollbar-color:rgba(15,23,42,.28) transparent}.assistant-chat:focus-within :is(.assistant-thread,.assistant-character-thread)::-webkit-scrollbar-thumb,.assistant-chat :is(.assistant-thread,.assistant-character-thread):hover::-webkit-scrollbar-thumb{background:#0f172a47}.assistant-chat:not(:focus-within) .assistant-thread:not(:hover) .assistant-turn:not(:last-child),.assistant-chat:not(:focus-within) .assistant-character-thread:not(:hover) .assistant-character-turn:not(:last-child){left:0;opacity:0;pointer-events:none;position:absolute;right:0;transform:translateY(4px)}.assistant-character-prompt textarea{background:#ffffff57;border:1px solid rgba(15,23,42,.12);border-radius:8px;color:#0f172a;display:block;font:inherit;line-height:1.35;min-height:74px;outline:none;padding:10px;resize:none;width:100%}.assistant-character-prompt textarea:focus{border-color:#14b8a6bf;box-shadow:0 0 0 3px #14b8a62e}.course-view-toggle{margin-left:auto;align-self:flex-start;border:1px solid #d8e1ec;background:#f7fafc;color:#475569;border-radius:8px;font-size:13px;font-weight:700;padding:8px 12px;cursor:pointer}.course-view-toggle:hover{background:#eef3f8}.course-content-page.is-focus .course-compass,.course-content-page.is-focus .learning-support-drawer,.course-content-page.is-focus .study-session-plan,.course-content-page.is-focus .learning-return-plan,.course-content-page.is-focus .workspace-export-contract{display:none}.module-learning-studio p{max-width:72ch}.course-content-page.is-focus .course-content-main{gap:18px}.portal-shell.is-public-visitor .portal-main{margin-left:0;margin-inline:auto;max-width:1360px}.portal-topbar.is-public-topbar .portal-title{align-items:center;display:flex}.portal-topbar.is-public-topbar .ikasyn-logo{display:inline-flex}.portal-topbar.is-public-topbar .ikasyn-logo-word{display:grid}.portal-topbar.is-public-topbar .ikasyn-logo-word strong{color:var(--ink)}.portal-topbar.is-public-topbar .ikasyn-logo-word small{color:var(--muted)}.public-topbar-cta{background:var(--teal);border:0;border-radius:8px;color:#fff;font-size:13px;font-weight:800;min-height:38px;padding:0 14px}.public-topbar-cta:hover{filter:brightness(1.08)}.public-topbar-link{color:var(--muted);font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.public-topbar-link:hover{color:var(--ink)}.login-panel{background:#fff;border:1px solid #dfe7f0;border-radius:12px;box-shadow:0 12px 30px #0f28461f;display:grid;gap:12px;max-width:380px;padding:18px;text-align:left;width:100%}.login-panel-intro{color:#33465c;font-size:13px;margin:0}.login-panel label{color:#1b3a4b;display:grid;font-size:12px;font-weight:750;gap:5px}.login-panel input{border:1px solid #c7d3e0;border-radius:8px;font-size:14px;padding:9px 10px}.login-panel input:focus-visible{border-color:#2e6b8a;outline:2px solid rgba(46,107,138,.35)}.login-panel-submit{background:#1b3a4b;border:0;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:750;padding:10px 12px}.login-panel-submit:disabled{cursor:wait;opacity:.7}.login-panel-error{background:#fdecea;border:1px solid #f2b8b5;border-radius:8px;color:#8a1c13;font-size:12px;margin:0;padding:8px 10px}.login-panel-note{color:#5c6b7a;font-size:11px;margin:0}.login-inline{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.login-inline input{background:#fff;border:1px solid #c7d3e0;border-radius:7px;font-size:13px;padding:7px 9px;width:150px}.login-inline input:focus-visible{border-color:#2e6b8a;outline:2px solid rgba(46,107,138,.35)}.login-inline-submit{background:#1b3a4b;border:0;border-radius:7px;color:#fff;cursor:pointer;font-size:13px;font-weight:750;padding:8px 12px;white-space:nowrap}.login-inline-submit:disabled{cursor:wait;opacity:.7}.login-inline-error{background:#fdecea;border:1px solid #f2b8b5;border-radius:6px;color:#8a1c13;font-size:11px;padding:4px 8px}.videogames-login{background:#eef4f8;border:1px solid #d5e2ec;border-radius:12px;display:grid;gap:12px;justify-items:center;margin:12px auto;max-width:760px;padding:18px}.videogames-login h2{color:#1b3a4b;margin:0}.campus-login-page{align-items:center;background:#eef4f8;display:flex;justify-content:center;min-height:100vh;padding:24px}.campus-login-card{display:grid;gap:12px;justify-items:center;max-width:420px;text-align:center;width:100%}.campus-login-card h1{color:#1b3a4b;margin:0}.campus-login-card p{color:#33465c;font-size:13px;margin:0}.portal-main:has(.mail-page-shell){padding:0;gap:0}.mail-page-shell{display:flex;flex-direction:column;min-height:calc(100dvh - 92px);min-width:0}.mail-page-loading{padding:24px;color:var(--muted);font-size:.92rem}.mail-workspace{display:flex;flex-direction:column;min-height:0;flex:1}.mail-empty-state{margin:6vh auto;max-width:620px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-surface);box-shadow:var(--shadow);padding:34px 40px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left}.mail-empty-state>svg{color:var(--teal)}.mail-empty-state h2{margin:4px 0 0}.mail-empty-state p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.5}.mail-empty-note{font-size:.85rem;background:var(--ice);border-radius:var(--radius-chip);padding:10px 14px}.mail-primary-button,.mail-ghost-button,.mail-danger-button{display:inline-flex;align-items:center;gap:7px;border-radius:var(--radius-control);padding:8px 14px;font-size:.9rem;border:1px solid transparent}.mail-primary-button{background:var(--nav);color:var(--nav-ink)}.mail-primary-button:hover{background:var(--nav-soft)}.mail-ghost-button{background:transparent;border-color:var(--line);color:var(--ink)}.mail-ghost-button:hover{background:var(--ice)}.mail-danger-button{background:transparent;border-color:#b4232a59;color:var(--crimson)}.mail-danger-button:hover{background:#b4232a14}.mail-toolbar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--paper)}.mail-toolbar-actions{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.mail-lane-bar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px 10px;border-bottom:1px solid var(--line);background:#fbfcfe}.mail-lane-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);font-size:.82rem;font-weight:600}.mail-lane-pill:hover{border-color:#cbd5e1;color:var(--ink)}.mail-lane-pill.is-active{background:var(--nav);border-color:var(--nav);color:var(--nav-ink)}.mail-lane-pill-dot{width:8px;height:8px;border-radius:50%;background:#94a3b8}.mail-lane-pill.is-alumno .mail-lane-pill-dot{background:#22c55e}.mail-lane-pill.is-companero .mail-lane-pill-dot{background:#f59e0b}.mail-lane-pill.is-resto .mail-lane-pill-dot{background:#3b82f6}.mail-lane-pill.is-active .mail-lane-pill-dot{box-shadow:0 0 0 1px #ffffffa6}.mail-lane-pill-count{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#0f172a1f;color:inherit;font-size:.72rem;font-weight:700;line-height:18px;text-align:center}.mail-lane-pill.is-active .mail-lane-pill-count{background:#ffffff38}.mail-search{flex:1;display:flex}.mail-search input{width:100%;max-width:520px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--bg)}.mail-toolbar-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--paper);color:var(--muted)}.mail-toolbar-button:hover{background:var(--ice);color:var(--ink)}.mail-notice{position:fixed;right:20px;bottom:20px;z-index:60;background:var(--nav);color:var(--nav-ink);border-radius:var(--radius-control);padding:11px 16px;font-size:.9rem;box-shadow:var(--shadow);max-width:420px}.mail-layout{display:grid;grid-template-columns:168px minmax(260px,380px) 1fr;gap:0;flex:1;min-height:0;background:var(--paper)}.mail-sidebar{border-right:1px solid var(--line);padding:10px 8px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;background:#fbfcfe}.mail-folder-list{display:flex;flex-direction:column;gap:2px}.mail-folder-list strong,.mail-upna-services>strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:4px 8px;display:flex;align-items:center;gap:6px}.mail-folder-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:none;background:transparent;border-radius:var(--radius-control);color:var(--ink);font-size:.84rem;text-align:left}.mail-folder-item:hover{background:var(--ice)}.mail-folder-item.is-active{background:var(--nav);color:var(--nav-ink)}.mail-folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-unread-badge{background:var(--teal);color:#fff;border-radius:999px;font-size:.7rem;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.mail-upna-services{display:flex;flex-direction:column;gap:2px}.mail-upna-services a{font-size:.82rem;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--radius-control)}.mail-upna-services a:hover{background:var(--ice)}.mail-upna-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:8px 0}.mail-upna-service-grid a{display:flex;align-items:flex-start;gap:7px;border:1px solid var(--line);border-radius:var(--radius-control);padding:9px 10px;text-decoration:none;color:var(--ink);font-size:.82rem;background:var(--paper)}.mail-upna-service-grid a:hover{border-color:var(--teal)}.mail-message-list{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.mail-list-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:9px 14px;border-bottom:1px solid var(--line);font-size:.78rem;color:var(--muted)}.mail-list-header strong{color:var(--ink);font-size:.86rem;font-weight:650}.mail-list-hint{padding:40px 18px;color:var(--muted);text-align:center;font-size:.9rem;display:flex;flex-direction:column;align-items:center;gap:10px}.mail-inline-error{color:var(--crimson);padding:10px 14px;font-size:.85rem}.mail-messages{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.mail-message-item{padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer;display:flex;flex-direction:column;gap:4px}.mail-message-item:hover{background:var(--ice)}.mail-message-item.is-unread{background:#f8fbff;box-shadow:inset 3px 0 #22c55e}.mail-message-item.is-unread .mail-message-from,.mail-message-item.is-unread .mail-message-subject{font-weight:650}.mail-message-item.is-selected{background:var(--blue-soft)}.mail-message-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.mail-message-row-end{display:flex;align-items:center;gap:6px;min-height:18px;color:var(--muted)}.mail-message-from{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;min-width:0}.mail-lane-dot{width:8px;height:8px;border-radius:50%;flex:none}.mail-lane-dot.is-alumno{background:#22c55e}.mail-lane-dot.is-companero{background:#f59e0b}.mail-lane-dot.is-resto{background:#3b82f6}.mail-message-date{font-size:.72rem;color:var(--muted);white-space:nowrap}.mail-message-subject{font-size:.84rem;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-course-tag,.mail-lane-tag{font-size:.68rem;font-weight:700;letter-spacing:.02em;border-radius:4px;padding:2px 6px;text-transform:uppercase}.mail-course-tag.is-blue{background:var(--blue-soft);color:var(--blue)}.mail-course-tag.is-green{background:#087f5b1f;color:var(--green)}.mail-course-tag.is-amber{background:#b453091f;color:var(--amber)}.mail-course-tag.is-teal{background:var(--teal-soft);color:var(--teal-dark)}.mail-course-tag.is-muted{background:var(--bg);color:var(--muted)}.mail-lane-tag.is-alumno{background:#22c55e1f;color:#15803d}.mail-lane-tag.is-companero{background:#f59e0b24;color:#b45309}.mail-lane-tag.is-resto{background:#3b82f61f;color:#1d4ed8}.mail-message-snippet{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-detail-actions svg.is-flagged{color:var(--amber);fill:#b4530940}.mail-load-more{width:100%;border:none;border-top:1px solid var(--line);background:var(--paper);padding:10px;color:var(--blue);font-size:.85rem}.mail-load-more:hover{background:var(--ice)}.mail-reading-pane{min-width:0;display:flex;flex-direction:column;min-height:0}.mail-reading-hint{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted)}.mail-message-detail{overflow-y:auto;flex:1;padding:18px 22px 32px;display:flex;flex-direction:column;gap:12px;font-size:.92rem;line-height:1.55}.mail-detail-header{border-bottom:1px solid var(--line);padding-bottom:14px}.mail-detail-subject-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}.mail-detail-subject-row h3{margin:0;font-size:1.05rem;line-height:1.35;font-weight:650}.mail-detail-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.mail-detail-actions button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--paper);color:var(--muted)}.mail-detail-actions button:hover{background:var(--ice);color:var(--ink)}.mail-move-select{border:1px solid var(--line);border-radius:var(--radius-control);padding:5px 6px;font-size:.78rem;background:var(--paper);color:var(--muted);max-width:130px}.mail-detail-from{margin-top:10px;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.mail-detail-date{color:var(--muted);font-size:.82rem}.mail-detail-recipients{color:var(--muted);font-size:.8rem}.mail-detail-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.mail-chip{font-size:.7rem;border-radius:999px;padding:3px 9px;border:1px solid transparent;white-space:nowrap;display:inline-flex;align-items:center}.mail-chip.is-teal{background:var(--teal-soft);color:var(--teal-dark)}.mail-chip.is-crimson{background:#b4232a1a;color:var(--crimson)}.mail-chip.is-amber{background:#b453091f;color:var(--amber)}.mail-chip.is-blue{background:var(--blue-soft);color:var(--blue)}.mail-chip.is-ice{background:var(--ice);color:var(--ink)}.mail-chip.is-green{background:#087f5b1f;color:var(--green)}.mail-chip.is-slate{background:#eef1f6;color:#475569}.mail-chip.is-muted{background:var(--bg);color:var(--muted);border-color:var(--line)}.mail-chip.is-custom{background:#f1e9ff;color:#6d28d9}.mail-chip-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.mail-chip-dot.is-teal{background:var(--teal)}.mail-chip-dot.is-crimson{background:var(--crimson)}.mail-chip-dot.is-amber{background:var(--amber)}.mail-chip-dot.is-blue{background:var(--blue)}.mail-chip-dot.is-ice{background:#93b4f7}.mail-chip-dot.is-green{background:var(--green)}.mail-chip-dot.is-slate{background:#64748b}.mail-chip-dot.is-muted{background:#a3adbd}.mail-chip-dot.is-alumno{background:#22c55e}.mail-chip-dot.is-companero{background:#f59e0b}.mail-chip-dot.is-resto{background:#3b82f6}.mail-suggested-move{font-size:.75rem;color:var(--amber);display:inline-flex;align-items:center;gap:4px}.mail-list-badge{font-size:.72rem;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius-chip);padding:2px 7px}.mail-attachments{display:flex;flex-wrap:wrap;gap:8px}.mail-attachment{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--paper);border-radius:var(--radius-control);padding:7px 11px;font-size:.8rem;color:var(--ink);max-width:260px}.mail-attachment span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-attachment:hover{border-color:var(--blue)}.mail-body{font-size:.93rem;line-height:1.6;color:var(--ink)}.mail-body-html{overflow-wrap:anywhere}.mail-body-html img{max-width:100%}.mail-body-text{white-space:pre-wrap;font-family:inherit;font-size:.93rem;margin:0;overflow-wrap:anywhere}.mail-detail-footer{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:14px}.mail-modal-backdrop{position:fixed;inset:0;background:#07172f73;z-index:70;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow-y:auto}.mail-modal{background:var(--paper);border-radius:var(--radius-surface);box-shadow:var(--shadow);width:100%;max-width:620px;padding:20px 24px;display:flex;flex-direction:column;gap:14px}.mail-modal-header{display:flex;justify-content:space-between;align-items:center}.mail-modal-close{border:none;background:transparent;color:var(--muted);width:30px;height:30px;border-radius:var(--radius-control);display:inline-flex;align-items:center;justify-content:center}.mail-modal-close:hover{background:var(--ice);color:var(--ink)}.mail-modal-note{margin:0;font-size:.85rem;color:var(--muted);background:var(--ice);border-radius:var(--radius-chip);padding:9px 12px}.mail-modal label{display:flex;flex-direction:column;gap:5px;font-size:.8rem;color:var(--muted)}.mail-modal input,.mail-modal select,.mail-modal textarea{border:1px solid var(--line);border-radius:var(--radius-control);padding:8px 11px;font-size:.9rem;color:var(--ink);background:var(--paper)}.mail-modal textarea{resize:vertical;font-family:inherit;line-height:1.5}.mail-compose-fields{display:flex;flex-direction:column;gap:10px}.mail-compose-attachments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.mail-compose-attachments li{display:flex;align-items:center;gap:8px;font-size:.82rem;border:1px solid var(--line);border-radius:var(--radius-control);padding:5px 9px}.mail-compose-attachments li span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-compose-attachments button{border:none;background:transparent;color:var(--muted)}.mail-modal-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px}.mail-rules-modal{max-width:680px;max-height:84vh;overflow-y:auto}.mail-rules-actions{display:flex;gap:8px}.mail-rules-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.mail-rules-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:var(--radius-control);padding:10px 12px}.mail-rules-list li.is-disabled{opacity:.55}.mail-rules-list li>div:first-child{display:flex;flex-direction:column;gap:3px;font-size:.83rem}.mail-rules-list li>div:first-child span{color:var(--muted);font-size:.78rem}.mail-rules-empty{color:var(--muted);font-size:.85rem}.mail-rule-actions{display:flex;gap:6px;align-items:center}.mail-rule-actions button{border:1px solid var(--line);background:var(--paper);border-radius:var(--radius-control);padding:4px 9px;font-size:.78rem;color:var(--ink)}.mail-rule-actions button:hover{background:var(--ice)}.mail-rule-editor{border:1px solid var(--teal);border-radius:var(--radius-control);padding:14px;display:flex;flex-direction:column;gap:10px;background:#fbfffe}.mail-rule-editor-row{display:flex;gap:10px;flex-wrap:wrap}.mail-rule-editor-row label{flex:1;min-width:140px}.mail-condition-row{display:flex;gap:8px;align-items:center}.mail-condition-row select{flex:1}.mail-condition-row input{flex:2}.mail-condition-row button{border:none;background:transparent;color:var(--muted)}.mail-rules-editor-actions{display:flex;justify-content:space-between}.mail-advanced-toggle{align-self:flex-start;border:none;background:transparent;color:var(--muted);font-size:.82rem;display:inline-flex;align-items:center;gap:4px}.mail-advanced-fields{display:flex;gap:10px;flex-wrap:wrap}.mail-advanced-fields label{flex:1;min-width:180px}.mail-preset-moves{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:6px}.mail-preset-moves>strong{font-size:.82rem}.mail-preset-moves-hint{margin:0;font-size:.78rem;color:var(--muted)}.mail-preset-move-row{flex-direction:row!important;align-items:center;justify-content:space-between;gap:10px;font-size:.82rem}.mail-preset-move-row select{flex:1;min-width:140px}.mail-modal-actions{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:12px}.mail-modal-spacer{flex:1}@media(max-width:1080px){.mail-layout{grid-template-columns:200px minmax(280px,360px) 1fr}}@media(max-width:860px){.mail-layout{grid-template-columns:200px 1fr}.mail-reading-pane{grid-column:1 / -1;border-top:1px solid var(--line);min-height:420px}}.upna-services-page{max-width:1080px}.upna-sso-card{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;background:linear-gradient(120deg,var(--nav),var(--nav-soft));color:var(--nav-ink);border-radius:var(--radius-surface);padding:20px 24px;margin-bottom:18px}.upna-sso-info{flex:1;min-width:260px}.upna-sso-info strong{font-size:1.05rem;display:block;margin-bottom:6px}.upna-sso-info p{margin:4px 0 0;font-size:.88rem;color:#edf4ffd9;line-height:1.5}.upna-sso-hint{font-size:.8rem!important;color:#edf4ff99!important}.upna-sso-card .mail-primary-button{background:var(--teal);color:#04221f;font-weight:600}.upna-sso-card .mail-primary-button:hover{background:var(--teal-dark);color:#fff}.upna-service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:26px}.upna-service-card{display:flex;flex-direction:column;gap:9px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-surface);padding:18px 20px;text-decoration:none;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}.upna-service-card:hover{border-color:var(--teal);box-shadow:var(--shadow)}.upna-service-card.is-native{border-color:#087f5b66;background:linear-gradient(180deg,#fbfffd,var(--paper))}.upna-service-card-head{display:flex;align-items:center;gap:9px;color:var(--ink)}.upna-service-card-head svg{color:var(--teal-dark);flex:none}.upna-service-card.is-native .upna-service-card-head svg{color:var(--green)}.upna-service-card p{margin:0;font-size:.85rem;color:var(--muted);line-height:1.5}.upna-service-note{font-size:.75rem;color:var(--teal-dark);background:var(--teal-soft);border-radius:var(--radius-chip);padding:4px 8px;align-self:flex-start}.upna-service-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.upna-badge{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;border-radius:999px;padding:3px 9px}.upna-badge.is-native{background:#087f5b1f;color:var(--green)}.upna-badge.is-backup{background:var(--ice);color:var(--blue)}.upna-badge.is-tag{background:var(--bg);color:var(--muted);border:1px solid var(--line)}.upna-badge.is-partial{background:#0e74901f;color:#0e7490}.miaulario-workspace{gap:18px}.aula-sakai-panel{display:grid;gap:18px}.aula-sakai-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.aula-card-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.aula-card{display:grid;gap:4px;width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:inherit;font:inherit}button.aula-card{cursor:pointer}.aula-card strong{display:block}.aula-card span,.aula-card em{color:var(--muted);font-size:.9em}.aula-sync{border:1px dashed var(--line);border-radius:12px;padding:12px 14px;background:var(--bg)}.miaulario-token-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px}.miaulario-token-form label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;color:var(--muted);min-width:260px;flex:1}.miaulario-token-form input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit}.miaulario-error{color:#b42318;font-size:.88rem}.miaulario-course-list,.miaulario-contents{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px}.miaulario-course-list ul,.miaulario-contents ul{list-style:none;margin:0;padding:0}.miaulario-course-button{width:100%;display:flex;gap:10px;align-items:flex-start;text-align:left;border:1px solid transparent;background:transparent;border-radius:12px;padding:10px;cursor:pointer}.miaulario-course-button.is-active,.miaulario-course-button:hover{border-color:var(--line);background:var(--bg)}.miaulario-course-button strong,.miaulario-section h4{display:block}.miaulario-course-button em,.miaulario-contents span{color:var(--muted);font-style:normal;font-size:.78rem}.miaulario-section{margin-bottom:16px}.miaulario-section a{display:inline-flex;gap:6px;align-items:center}.course-mail-badge{display:inline-flex;align-items:center;gap:4px;background:var(--crimson);color:#fff;border-radius:999px;font-size:.7rem;font-weight:700;padding:2px 8px;white-space:nowrap;line-height:1.4}.course-mail-badge.is-wide{padding:2px 7px}.degree-route-end,.program-subject-end{display:inline-flex;align-items:center;gap:8px;flex:none}.videogames-hero-actions .course-mail-badge,.student-hero-metrics .course-mail-badge{align-self:flex-start}.mail-thread{border-bottom:1px solid var(--line)}.mail-thread-header{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:none;background:var(--paper);text-align:left;cursor:pointer}.mail-thread-header:hover{background:var(--ice)}.mail-thread-header.is-unread{background:#f3faff;box-shadow:inset 3px 0 0 var(--teal)}.mail-thread-avatar{flex:none;width:30px;height:30px;border-radius:50%;background:var(--nav-soft);color:var(--nav-ink);display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700}.mail-thread-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mail-thread-meta{display:inline-flex;align-items:center;gap:8px;color:var(--muted);flex:none}.mail-thread-count{background:var(--line);color:var(--ink);border-radius:999px;font-size:.72rem;font-weight:700;padding:1px 8px}.mail-thread.is-expanded .mail-thread-header{background:var(--blue-soft)}.mail-thread-messages{list-style:none;margin:0;padding:0}.mail-thread-messages .mail-message-item{padding-left:26px;background:#fbfcfe}.mail-thread-messages .mail-message-item.is-unread{background:#f3faff}.miaulario-connect{display:flex;flex-direction:column;gap:12px}.miaulario-aula-layout{grid-template-columns:minmax(240px,320px) 1fr;align-items:start}.miaulario-course-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.miaulario-course-header h3{margin:0;font-size:1.1rem}.miaulario-course-header p{margin:4px 0 0;color:var(--muted);font-size:.84rem}.miaulario-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--line);padding-bottom:8px}.miaulario-tab{border:1px solid transparent;background:transparent;border-radius:999px;padding:6px 12px;font:inherit;font-size:.84rem;color:var(--muted);cursor:pointer}.miaulario-tab.is-active,.miaulario-tab:hover{background:var(--bg);color:var(--ink);border-color:var(--line)}.miaulario-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.miaulario-panel.is-stack{grid-template-columns:1fr}.miaulario-card,.miaulario-aviso,.miaulario-composer{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.miaulario-card h4,.miaulario-composer strong{display:inline-flex;align-items:center;gap:6px;margin:0 0 8px;font-size:.9rem}.miaulario-card p,.miaulario-aviso p{margin:0 0 8px;font-size:.88rem}.miaulario-aviso button{display:flex;gap:8px;align-items:center;width:100%;border:0;background:transparent;padding:0;text-align:left;cursor:pointer;font:inherit}.miaulario-aviso em,.miaulario-post span{color:var(--muted);font-size:.78rem;font-style:normal}.miaulario-post{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.miaulario-composer{display:flex;flex-direction:column;gap:8px}.miaulario-composer input,.miaulario-composer textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit}.miaulario-people{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.miaulario-people li{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.miaulario-people em{display:block;color:var(--muted);font-size:.78rem;font-style:normal}.miaulario-course-button .upna-badge{margin-left:auto}@media(max-width:800px){.miaulario-aula-layout{grid-template-columns:1fr}}.home-inbox{padding:8px 4px 24px}.home-mail-lanes{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-surface);box-shadow:var(--shadow);display:grid;gap:14px;padding:18px 20px}.home-mail-lanes-head h2{margin:0 0 4px;font-size:1.15rem}.home-mail-lanes-head p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.45;max-width:42rem}.home-mail-lanes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.home-mail-lane{display:grid;gap:4px;justify-items:start;padding:14px 16px 12px;border:1px solid #d8e1ec;border-radius:10px;background:#fff;color:var(--ink);text-align:left;cursor:pointer;position:relative;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.home-mail-lane:before{content:"";position:absolute;inset:0 0 auto;height:4px}.home-mail-lane.is-alumno:before{background:#22c55e}.home-mail-lane.is-companero:before{background:#f59e0b}.home-mail-lane.is-resto:before{background:#3b82f6}.home-mail-lane:hover{border-color:#2563eb73;box-shadow:0 16px 36px #07172f1a;transform:translateY(-1px)}.home-mail-lane-icon{color:#64748b}.home-mail-lane-number{font-size:clamp(26px,3vw,36px);font-weight:850;line-height:1;letter-spacing:-.03em}.home-mail-lane.is-unread .home-mail-lane-number{color:var(--ink)}.home-mail-lane-label{font-size:.92rem;font-weight:700}.home-mail-lane-hint{font-size:.74rem;color:var(--muted)}.home-mail-lanes-note{margin:0;color:var(--muted);font-size:.82rem}.home-mail-lanes-note.is-error{color:#b91c1c}@media(max-width:720px){.home-mail-lanes-grid{grid-template-columns:1fr}}.home-google-connect{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-surface);box-shadow:var(--shadow);display:grid;gap:12px;justify-items:start;padding:18px 20px}.home-google-connect h3{margin:0}.home-google-connect p{color:var(--muted);margin:0;max-width:42rem}.home-google-connect-note{font-size:.85rem}.gsi-material-button{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-appearance:none;appearance:none;background-color:#fff;background-image:none;border:1px solid #747775;border-radius:4px;box-sizing:border-box;color:#1f1f1f;cursor:pointer;font-family:Roboto,arial,sans-serif;font-size:14px;height:40px;letter-spacing:.25px;outline:none;overflow:hidden;padding:0 12px;position:relative;text-align:center;transition:background-color .218s,border-color .218s,box-shadow .218s;vertical-align:middle;white-space:nowrap;width:auto;max-width:400px;min-width:min-content}.gsi-material-button .gsi-material-button-icon{height:20px;margin-right:12px;min-width:20px;width:20px}.gsi-material-button .gsi-material-button-content-wrapper{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;height:100%;justify-content:space-between;position:relative;width:100%}.gsi-material-button .gsi-material-button-contents{flex-grow:1;font-family:Roboto,arial,sans-serif;font-weight:500;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.gsi-material-button .gsi-material-button-state{inset:0;opacity:0;position:absolute;transition:opacity .218s}.gsi-material-button:disabled{cursor:default;background-color:#ffffff61;border-color:#1f1f1f1f}.gsi-material-button:disabled .gsi-material-button-contents{opacity:38%}.gsi-material-button:disabled .gsi-material-button-icon{opacity:38%}.gsi-material-button:not(:disabled):active .gsi-material-button-state,.gsi-material-button:not(:disabled):focus .gsi-material-button-state{background-color:#303030;opacity:12%}.gsi-material-button:not(:disabled):hover{box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.gsi-material-button:not(:disabled):hover .gsi-material-button-state{background-color:#303030;opacity:8%}.home-inbox-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-surface);box-shadow:var(--shadow);overflow:hidden}.portal-main .home-inbox{min-width:0}.home-calendar-panel{overflow:hidden}.home-calendar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid var(--line);background:#fbfcfe}.home-calendar-header h3{margin:0 0 4px;font-size:1.05rem}.home-calendar-header p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.45}.home-calendar-layers{display:grid;gap:8px;padding:10px 16px 4px}.home-calendar-layers p{margin:0;color:var(--muted);font-size:.82rem}.home-calendar-layer-buttons{display:flex;flex-wrap:wrap;gap:8px}.home-calendar-layer{background:#fff;border:1px solid #dce6f1;border-radius:999px;color:#1e3a5f;cursor:pointer;font-size:12px;font-weight:800;padding:6px 12px}.home-calendar-layer.is-on,.home-calendar-layer[aria-pressed=true]{background:#1e3a5f;border-color:#1e3a5f;color:#fff}.home-calendar-month .fc-event.is-course-data-structures{background:#0f766e;border-color:#0f766e}.home-calendar-month .fc-event.is-course-software-engineering{background:#1d4ed8;border-color:#1d4ed8}.home-calendar-month .fc-event.is-course-enterprise-app-analysis{background:#b45309;border-color:#b45309}.home-calendar-month .fc-event.is-course-videogames-realtime{background:#7c3aed;border-color:#7c3aed}.home-calendar-layer.is-program{border-radius:8px}.home-calendar-month{padding:8px 12px 4px}.home-calendar-month .fc .fc-toolbar{margin-bottom:8px}.home-calendar-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}.home-calendar-ics-hint{padding:0 16px 12px}.home-calendar-ics-hint p{margin:0 0 8px;color:var(--muted);font-size:.82rem;line-height:1.45}.home-calendar-ics-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.home-calendar-ics-row code{flex:1 1 16rem;overflow-wrap:anywhere;font-size:.76rem}.home-calendar-message{margin:0;padding:0 16px 12px;color:var(--muted);font-size:.82rem}.campus-module-page{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-surface);color:var(--ink);padding:1.1rem 1.2rem 1.3rem}.campus-module-page h2,.campus-module-page h3{margin:0 0 .4rem}.campus-module-status{background:#e8edf4;border-radius:var(--radius-chip);display:inline-block;font-size:.8rem;font-weight:800;margin:0 0 .8rem;padding:.25rem .55rem}.campus-module-page.is-partial .campus-module-status{background:#fff6e8}.campus-module-page.is-official .campus-module-status{background:#dce8ff}.campus-module-engine,.campus-module-footnote{color:var(--ink)}.course-calendar-subscribe-actions,.course-calendar-form{display:flex;flex-wrap:wrap;gap:.6rem;margin:.75rem 0}.course-calendar-form label{display:grid;gap:.3rem}.course-calendar-events{display:grid;gap:.4rem;padding-left:1.1rem}.upna-service-card.is-live{border-color:#178a94}.upna-service-card.is-partial{border-color:#b45309}.upna-service-card.is-placeholder{background:#e8edf4;border-style:dashed}.upna-service-card.is-official{border-color:#2563eb}@media(prefers-reduced-motion:reduce){.skip-link{transition:none}}.mobile-more-button,.mobile-more-backdrop{display:none}@media(max-width:1260px){.portal-topbar{grid-template-columns:minmax(210px,.8fr) minmax(220px,1fr) auto auto}.profile-chip{display:none}.courses-panel{grid-column:1 / -1}}@media(max-width:980px){.portal-main{padding:16px}.course-compass{grid-template-columns:repeat(3,minmax(0,1fr))}.degree-hero,.degree-public-cards,.videogames-hero,.videogames-public-cards,.videogames-student-hero,.dvu-student-detail-grid,.portal-topbar,.dvu-semester-timeline,.pyxom-layout,.course-content-layout,.practice-surface,.editor-grid{grid-template-columns:1fr}.program-subpage-switch{width:100%}.program-subpage-switch button{flex:1;min-width:180px}.course-review-queue header,.course-review-list article{align-items:stretch;grid-template-columns:1fr}.course-review-queue header{flex-direction:column}.course-review-list em{white-space:normal}.spaced-review-plan header{flex-direction:column}.spaced-review-lanes{grid-template-columns:1fr}.spaced-review-lanes b{white-space:normal}.concept-mastery-map header{flex-direction:column}.concept-mastery-list,.concept-mastery-list article{grid-template-columns:1fr}.tool-header,.module-summary,.videogames-program-header{align-items:flex-start;gap:14px}.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){.course-compass,.theory-visual-flow{grid-template-columns:1fr}.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%;display:flex;flex-direction:column;grid-template-columns:1fr;height:100dvh;max-height:100dvh;min-height:0;overflow:hidden}.portal-sidebar{align-items:center;flex:0 0 auto;flex-direction:row;gap:4px;height:auto;isolation:isolate;left:auto;min-height:auto;order:2;overflow:visible;padding:8px 10px calc(8px + env(safe-area-inset-bottom));position:relative;top:auto;width:100%;z-index:2}.portal-sidebar-bottom,.portal-shell:has(.portal-sidebar:hover) .portal-sidebar-bottom,.portal-shell:has(.portal-sidebar:focus-within) .portal-sidebar-bottom,.portal-shell.is-sidebar-expanded .portal-sidebar-bottom{display:contents;flex:0 0 auto;height:auto;min-height:0;width:auto}.portal-brand,.portal-nav,.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) .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(5,minmax(0,1fr));overflow:visible;scrollbar-width:none}.portal-nav-item.is-mobile-overflow{display:none}.portal-nav-cluster{display:contents}.mobile-more-button{display:grid}.portal-nav-item .mail-orb-cluster{flex-direction:row;gap:2px}.portal-nav-item .mail-orb:nth-child(n+2){display:none}.portal-nav::-webkit-scrollbar,.portal-shell:has(.portal-sidebar:hover) .portal-nav::-webkit-scrollbar,.portal-shell:has(.portal-sidebar:focus-within) .portal-nav::-webkit-scrollbar,.portal-shell.is-sidebar-expanded .portal-nav::-webkit-scrollbar{display:none}.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:4px;grid-template-columns:1fr;justify-items:center;min-height:44px;padding:6px 2px;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:11px;font-weight:750;max-height:none;max-width:none;overflow:hidden;text-overflow:ellipsis}.portal-sidebar-footer,.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}.portal-sidebar-alai-layer,.assistant-character-stage.is-in-sidebar{bottom:calc(72px + env(safe-area-inset-bottom,0px));height:var(--alai-size);left:auto;right:10px;width:var(--alai-size)}body:has(.videogames-public,.videogames-student-shell,.is-videogames-subportal) .assistant-character-stage.is-in-sidebar,body:has(.videogames-public,.videogames-student-shell,.is-videogames-subportal) .portal-sidebar-alai-layer{display:none}.assistant-character-stage.is-in-sidebar .assistant-character-window{bottom:calc(72px + env(safe-area-inset-bottom,0px));left:auto;right:12px;width:min(360px,calc(100vw - 24px))}.portal-main{flex:1 1 auto;margin-left:0;min-height:0;order:1;overflow-x:hidden;overflow-y:auto;padding:12px 12px 16px;position:relative;z-index:1}.assistant-character-stage{bottom:auto;z-index:1}.portal-topbar,.portal-topbar.minimal-topbar{align-items:start;gap:8px;grid-template-columns:1fr;padding-bottom:8px}.topbar-actions{gap:6px;justify-content:flex-start;width:100%}.role-switch,.locale-switch{gap:6px;height:36px;padding:0 8px}.profile-chip{display:flex}.section-heading{grid-template-columns:1fr}.degree-hero,.degree-public-cards,.videogames-hero,.videogames-student-hero,.videogames-public-cards,.videogames-public-detail-grid,.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}.assistant-runtime{align-items:flex-start;flex-direction:column}.assistant-runtime-pill{max-width:100%}.assistant-runtime small{text-align:left}.full-calendar-shell{overflow-x:auto;padding:8px}.full-calendar-shell .fc{min-width:620px}.home-calendar-month.full-calendar-shell .fc{min-width:0}.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-hero-actions .videogames-cta-link,.videogames-stats.hero-stats{width:100%}.videogames-stats.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.videogames-stats.hero-stats span:last-child{grid-column:1 / -1}.student-hero-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dvu-semester-mosaic-card.has-3-modules .dvu-semester-mosaic,.dvu-semester-mosaic-card.has-2-modules .dvu-semester-mosaic{grid-template-columns:1fr;min-height:0}.dvu-mosaic-tile,.dvu-mosaic-tile:only-child,.dvu-mosaic-image{min-height:112px}.dvu-mosaic-tile+.dvu-mosaic-tile .dvu-mosaic-image{border-left:0;border-top:1px solid rgba(255,255,255,.24)}.dvu-mosaic-tile:first-child .dvu-mosaic-image{border-bottom-left-radius:0}.dvu-mosaic-tile:last-child .dvu-mosaic-image{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.dvu-module-popover{display:none}.popover-image{min-height:160px}.settings-row{align-items:start;grid-template-columns:1fr}.editor-actions,.tool-chip-row{width:100%}.editor-actions button{flex:1}.mobile-more-backdrop.is-open{background:#07172f73;display:block;inset:0;position:fixed;z-index:210}.mobile-more-dismiss{background:transparent;border:0;height:100%;width:100%}.mobile-more-sheet{background:var(--paper);border-radius:16px 16px 0 0;bottom:calc(64px + env(safe-area-inset-bottom));box-sizing:border-box;display:grid;gap:10px;left:0;max-height:min(72dvh,560px);overflow:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom));position:absolute;right:0}.mobile-more-sheet h2{font-size:1.05rem;margin:0}.mobile-more-list{display:grid;gap:6px}.mobile-more-item{align-items:center;background:#f3f6fb;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:grid;gap:10px;grid-template-columns:22px minmax(0,1fr) auto;min-height:44px;padding:10px 12px;text-align:left;width:100%}.mobile-more-item.is-active{background:var(--teal-soft);border-color:var(--teal-dark)}.mobile-more-item i{background:var(--crimson);border-radius:999px;color:#fff;font-size:11px;font-style:normal;font-weight:800;min-width:18px;padding:2px 6px;text-align:center}.portal-title h1{font-size:1.25rem}.portal-title>span{display:none}.program-subpage-switch button{min-width:0}.course-calendar-subscribe-actions,.course-calendar-form{flex-direction:column}.course-calendar-subscribe-actions a,.course-calendar-subscribe-actions button,.course-calendar-form button{min-height:44px;width:100%}}.videogames-stats.hero-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.public-architecture .dvu-module-popover{bottom:auto;top:calc(100% + 8px);transform:translate(-50%,8px)}.public-architecture .dvu-semester-mosaic-card:first-child .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:nth-child(2) .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:nth-child(4) .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:last-child .dvu-module-popover{transform:translateY(8px)}.public-architecture .dvu-mosaic-tile:hover .dvu-module-popover,.public-architecture .dvu-mosaic-tile:focus-within .dvu-module-popover{transform:translate(-50%)}.public-architecture .dvu-semester-mosaic-card:first-child .dvu-mosaic-tile:hover .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:first-child .dvu-mosaic-tile:focus-within .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:nth-child(2) .dvu-mosaic-tile:hover .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:nth-child(2) .dvu-mosaic-tile:focus-within .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:nth-child(4) .dvu-mosaic-tile:hover .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:nth-child(4) .dvu-mosaic-tile:focus-within .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:last-child .dvu-mosaic-tile:hover .dvu-module-popover,.public-architecture .dvu-semester-mosaic-card:last-child .dvu-mosaic-tile:focus-within .dvu-module-popover{transform:translate(0)}@media(min-width:981px){.portal-shell.is-public-visitor:has(.videogames-public) .portal-main{box-sizing:border-box;max-width:min(1600px,100%);padding:12px 28px 28px}.portal-shell.is-public-visitor:has(.videogames-public) .portal-topbar.is-public-topbar{margin-bottom:10px;min-height:46px;padding-bottom:10px}.portal-shell.is-public-visitor .videogames-public{gap:16px}.portal-shell.is-public-visitor .videogames-hero{align-items:center;gap:24px;grid-template-columns:minmax(0,1.28fr) minmax(380px,.72fr);min-height:0;padding:22px 26px}.portal-shell.is-public-visitor .videogames-hero-copy{gap:12px;max-width:860px}.portal-shell.is-public-visitor .videogames-hero-copy h2{font-size:clamp(26px,2.2vw,34px);line-height:1.08}.portal-shell.is-public-visitor .videogames-hero-copy p{font-size:14px;line-height:1.5;max-width:74ch}.portal-shell.is-public-visitor .videogames-hero-actions{align-items:center;gap:10px;margin-top:2px}.portal-shell.is-public-visitor .videogames-hero-actions .panel-note{font-size:12px;line-height:1.35;margin:0;opacity:.9;width:100%}.portal-shell.is-public-visitor .videogames-stats.hero-stats{gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:4px;max-width:820px}.portal-shell.is-public-visitor .videogames-stats span{gap:3px;min-height:54px;padding:8px 11px}.portal-shell.is-public-visitor .videogames-stats b{font-size:16.5px;white-space:nowrap}.portal-shell.is-public-visitor .videogames-stats small{font-size:11.5px;line-height:1.24}.portal-shell.is-public-visitor .videogames-slide-panel{gap:10px;padding:14px 16px}.portal-shell.is-public-visitor .videogames-slide-panel header{align-items:baseline;display:flex;justify-content:space-between}.portal-shell.is-public-visitor .videogames-slide-panel header strong{font-size:16px}.portal-shell.is-public-visitor .videogames-slide-tabs button{font-size:12px;min-height:30px}.portal-shell.is-public-visitor .videogames-slide-stack{gap:7px}.portal-shell.is-public-visitor .videogames-slide-card{gap:10px;grid-template-columns:30px minmax(0,1fr);min-height:50px;padding:7px 10px}.portal-shell.is-public-visitor .videogames-slide-card>small{font-size:11px;height:30px;width:30px}.portal-shell.is-public-visitor .videogames-slide-card span{gap:2px}.portal-shell.is-public-visitor .videogames-slide-card strong{font-size:12.5px;line-height:1.24}.portal-shell.is-public-visitor .videogames-slide-card em{font-size:11px;line-height:1.24}}@media(max-width:760px){.portal-shell.is-public-visitor:has(.videogames-public) .portal-main{display:flex;flex-direction:column;gap:12px;padding:10px 12px 24px}.portal-topbar.is-public-topbar{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;margin-bottom:4px;padding-bottom:8px}.portal-topbar.is-public-topbar .portal-title .ikasyn-logo-word small{display:none}.portal-topbar.is-public-topbar .topbar-actions{display:contents}.portal-topbar.is-public-topbar .login-inline{display:grid;gap:6px;grid-column:1 / -1;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;order:4;width:100%}.portal-topbar.is-public-topbar .login-inline input{font-size:12px;min-width:0;padding:6px 8px;width:100%}.portal-topbar.is-public-topbar .login-inline-submit{font-size:12px;padding:6px 10px}.portal-topbar.is-public-topbar .public-topbar-link{font-size:11.5px;justify-self:end;white-space:nowrap}.portal-shell.is-public-visitor .videogames-public{display:flex;flex-direction:column;gap:14px;width:100%}.portal-shell.is-public-visitor .videogames-hero{gap:14px;grid-template-columns:minmax(0,1fr)!important;padding:16px 14px}.portal-shell.is-public-visitor .videogames-hero-copy{gap:10px;max-width:100%;width:100%}.portal-shell.is-public-visitor .videogames-hero-copy h2{font-size:22px;line-height:1.14}.portal-shell.is-public-visitor .videogames-hero-copy p{font-size:13px;line-height:1.45}.portal-shell.is-public-visitor .videogames-hero-actions{display:grid;gap:8px;grid-template-columns:minmax(0,1fr);margin-top:2px;width:100%}.portal-shell.is-public-visitor .videogames-hero-actions button,.portal-shell.is-public-visitor .videogames-hero-actions a.videogames-cta-link{font-size:12.5px;justify-content:center;min-height:38px;padding:6px 12px;text-align:center}.portal-shell.is-public-visitor .videogames-hero-actions .panel-note{font-size:11.5px;line-height:1.35}.portal-shell.is-public-visitor .videogames-stats.hero-stats{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-top:2px;width:100%}.portal-shell.is-public-visitor .videogames-stats.hero-stats span:last-child{grid-column:auto}.portal-shell.is-public-visitor .videogames-stats span{gap:2px;min-height:52px;padding:8px 10px}.portal-shell.is-public-visitor .videogames-stats b{font-size:16px}.portal-shell.is-public-visitor .videogames-stats small{font-size:11px;line-height:1.22}.portal-shell.is-public-visitor .videogames-public-cards{grid-template-columns:minmax(0,1fr)}.portal-shell.is-public-visitor .dvu-timeline-shell.public-architecture{gap:10px;padding:12px}.portal-shell.is-public-visitor .dvu-timeline-shell.public-architecture .dvu-semester-visuals{display:grid;gap:10px;grid-auto-rows:auto;grid-template-columns:minmax(0,1fr)!important}.portal-shell.is-public-visitor .dvu-semester-mosaic-card.has-3-modules .dvu-semester-mosaic{grid-template-columns:1fr!important;min-height:auto}.portal-shell.is-public-visitor .dvu-semester-mosaic-card.has-1-modules .dvu-semester-mosaic{grid-template-columns:1fr!important;min-height:68px}.portal-shell.is-public-visitor .dvu-semester-mosaic-card.has-3-modules .dvu-mosaic-tile,.portal-shell.is-public-visitor .dvu-semester-mosaic-card.has-3-modules .dvu-mosaic-image{min-height:76px!important}.portal-shell.is-public-visitor .dvu-semester-mosaic-card.has-1-modules .dvu-mosaic-tile,.portal-shell.is-public-visitor .dvu-semester-mosaic-card.has-1-modules .dvu-mosaic-tile:only-child,.portal-shell.is-public-visitor .dvu-semester-mosaic-card.has-1-modules .dvu-mosaic-image{min-height:68px!important}.portal-shell.is-public-visitor .dvu-mosaic-image{gap:4px;padding:8px!important}.portal-shell.is-public-visitor .dvu-mosaic-image .art-core{display:none}.portal-shell.is-public-visitor .dvu-mosaic-image strong{font-size:13px}.portal-shell.is-public-visitor .dvu-mosaic-image small{font-size:10.5px;line-height:1.18}.videogames-public-footer-grid{grid-template-columns:minmax(0,1fr)}}:root{--ikasyn-space-1: .25rem;--ikasyn-space-2: .5rem;--ikasyn-space-3: .75rem;--ikasyn-space-4: 1rem;--ikasyn-space-6: 1.5rem;--ikasyn-shell-max: 72rem}.ikasyn-plan-shell{max-width:var(--ikasyn-shell-max);margin:0 auto;padding:var(--ikasyn-space-6) var(--ikasyn-space-4) 4rem}.ikasyn-plan-header{display:flex;flex-wrap:wrap;gap:var(--ikasyn-space-3);align-items:center;margin-bottom:var(--ikasyn-space-4)}.ikasyn-plan-header p{margin:0}.ikasyn-embedded-legacy{margin-top:var(--ikasyn-space-4)}.ikasyn-embedded-legacy .portal-main{max-width:none;padding:0}.ikasyn-unified-shell nav a[aria-current=page]{font-weight:700}.ikasyn-plan-shell nav{display:flex;flex-wrap:wrap;gap:var(--ikasyn-space-3);margin-bottom:var(--ikasyn-space-6)}.ikasyn-plan-shell nav a{color:var(--nav);text-decoration:none;font-weight:600}.ikasyn-plan-shell nav a:hover,.ikasyn-plan-shell nav a[aria-current=page]{text-decoration:underline}.ikasyn-plan-card-grid{display:grid;gap:var(--ikasyn-space-4);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.ikasyn-plan-card,.ikasyn-plan-feed li{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-surface);padding:var(--ikasyn-space-4)}.ikasyn-plan-feed{list-style:none;margin:0;padding:0;display:grid;gap:var(--ikasyn-space-3)}.ikasyn-plan-feed a{color:inherit;text-decoration:none}.ikasyn-plan-pre{white-space:pre-wrap;font-family:var(--font-mono);background:var(--ice);padding:var(--ikasyn-space-4);border-radius:var(--radius-control)}.ikasyn-plan-alert{border-left:4px solid var(--amber);padding-left:var(--ikasyn-space-3)}.ikasyn-mail-panels{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1.2fr);gap:var(--ikasyn-space-4);margin-bottom:var(--ikasyn-space-4)}.ikasyn-mail-threads,.ikasyn-mail-agenda{border:1px solid var(--line-soft);border-radius:var(--radius-control);padding:var(--ikasyn-space-3);background:var(--surface-raised)}.ikasyn-mail-agenda-header{display:flex;align-items:center;justify-content:space-between;gap:var(--ikasyn-space-2)}.ikasyn-mail-agenda-list{list-style:none;margin:0;padding:0;max-height:320px;overflow:auto}.ikasyn-mail-agenda-list li{display:grid;gap:.15rem;padding:.5rem 0;border-bottom:1px solid var(--line-soft)}.ikasyn-plan-pre.is-passed{border-left:4px solid var(--green, #2e7d32)}.ikasyn-plan-pre.is-failed{border-left:4px solid var(--amber)}.ikasyn-language-course-header{margin-bottom:var(--ikasyn-space-6)}.ikasyn-language-attribution{color:var(--text-muted);font-size:.9rem}.ikasyn-language-part{margin-bottom:var(--ikasyn-space-4)}.ikasyn-language-link-list,.ikasyn-language-exercise-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--ikasyn-space-2)}.ikasyn-language-exercise-list li{display:flex;flex-wrap:wrap;gap:var(--ikasyn-space-2);align-items:center}.ikasyn-language-status{font-size:.85rem;color:var(--text-muted)}.ikasyn-language-status.is-passed{color:var(--green);font-weight:600}.ikasyn-language-status.is-failed{color:var(--amber)}.ikasyn-language-markdown h2,.ikasyn-language-markdown h3,.ikasyn-language-markdown h4{margin-top:var(--ikasyn-space-4)}.ikasyn-language-markdown p{line-height:1.6}.ikasyn-inline-code{font-family:var(--font-mono);background:var(--ice);padding:.1rem .35rem;border-radius:.25rem}.ikasyn-language-editor-label{display:grid;gap:var(--ikasyn-space-2);margin:var(--ikasyn-space-4) 0}.ikasyn-language-editor{width:100%;min-height:16rem}.ikasyn-language-actions{display:flex;flex-wrap:wrap;gap:var(--ikasyn-space-3);margin-bottom:var(--ikasyn-space-4)}.ikasyn-language-prompt{white-space:pre-wrap}.mooc-exercise-card{margin:3.5rem 0;border-radius:var(--radius-surface);background:var(--paper);box-shadow:var(--shadow);overflow:hidden}.mooc-exercise-header{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1rem 1.5rem;background-color:var(--crimson);color:#fff;border-radius:var(--radius-surface) var(--radius-surface) 0 0}.mooc-exercise-header.is-completed{background-color:var(--green)}.mooc-exercise-header-icon{flex:0 0 auto;margin:.35rem 0 0 .5rem}.mooc-exercise-header-title{flex:1;min-width:0}.mooc-exercise-header-label{display:block;font-size:1.125rem;font-weight:400;line-height:1.2}.mooc-exercise-header-title h3{margin:0;font-size:1.3rem;font-weight:700;line-height:1.2}.mooc-exercise-points{margin-left:.5rem;text-align:right;white-space:nowrap}.mooc-exercise-points-label{display:block;font-size:1.125rem;font-weight:400}.mooc-exercise-points-value{display:block;font-size:1.5rem;font-weight:700;line-height:1.1}.mooc-exercise-body{padding:1rem 1rem 1.5rem}.mooc-exercise-prompt{margin:0 0 1rem;white-space:pre-wrap;line-height:1.6;color:var(--ink)}.mooc-exercise-editor{margin:0 -1rem .6rem;border-bottom:1px solid var(--line);min-height:400px}.mooc-exercise-editor-loading{min-height:400px;display:grid;place-items:center;color:var(--text-muted)}.mooc-exercise-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding:.6rem 0}.mooc-exercise-btn{display:inline-flex;align-items:center;gap:.35rem;margin:.5rem .5rem .5rem 0;padding:8px 16px;border-radius:4px;border:none;font-size:.875rem;font-weight:500;cursor:pointer}.mooc-exercise-btn:disabled{opacity:.6;cursor:default}.mooc-exercise-btn-run{background:#0275d8;color:#fff}.mooc-exercise-btn-run:hover:not(:disabled){background:#0262bd}.mooc-exercise-btn-test{margin-left:10px;background:#ff7518;color:#fff;border:none}.mooc-exercise-btn-test:hover:not(:disabled){background:#e66a14}.mooc-exercise-btn-reset{margin-left:10px;background:#ebebeb;color:#252525}.mooc-exercise-btn-reset:hover:not(:disabled){background:#d5d5d5}.mooc-exercise-test-hint{margin:0;font-size:.8125rem;color:#666}.mooc-exercise-output{margin-top:.75rem;border-radius:4px 4px 0 0;box-shadow:-2px 3px 2px 1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mooc-exercise-output-header{padding:5px;border-radius:3px 3px 0 0;background:#e8e8e8}.mooc-exercise-output-header.is-active{background:#ff8000}.mooc-exercise-output-header strong{display:inline-block;margin-left:10px;padding:5px;color:#252525;font-size:.875rem}.mooc-exercise-output-body{padding:10px;min-height:6rem;background:#fff}.mooc-exercise-output-pre{margin:0;white-space:pre-wrap;overflow-wrap:break-word;font-family:var(--font-mono);font-size:.875rem;color:#252525}.mooc-exercise-output-pre.passed{border-left:10px solid #4caf50;padding-left:10px}.mooc-exercise-output-pre.failed{border-left:10px solid #f44336;padding-left:10px}.mooc-exercise-test-result{margin:5px;padding:10px;background:#fff;border-left:10px solid #f44336}.mooc-exercise-test-result[data-passed=true]{border-left-color:#4caf50}.mooc-exercise-test-result-header{font-weight:700;font-size:.875rem;margin-bottom:.25rem}.mooc-exercise-test-result-header.passed{color:#2e7d32}.mooc-exercise-test-result-header.failed{color:#c62828}.mooc-exercise-test-result-message{margin:0;white-space:pre-wrap;overflow-wrap:break-word;font-family:var(--font-mono);font-size:.8125rem;color:#252525}.mooc-exercise-output-loading{margin:0;color:#666;font-size:.875rem}.mooc-exercise-stdin-row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:baseline;margin-bottom:8px;font-family:var(--font-mono);font-size:.875rem}.mooc-exercise-stdin-row code{background:#e8e8e8;padding:2px 6px;border-radius:4px}.mooc-exercise-stdin-form input{min-width:12rem;padding:6px 8px;border:1px solid #ccc;border-radius:4px;font-family:var(--font-mono);font-size:.875rem}.mooc-exercise-reset-overlay{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#0006}.mooc-exercise-reset-dialog{min-width:280px;padding:1.5rem;border-radius:8px;background:#fff;box-shadow:0 4px 20px #0003}.mooc-exercise-reset-dialog p{margin:0 0 1rem}.mooc-exercise-reset-actions{display:flex;justify-content:flex-end;gap:.5rem}.editor-loading{padding:var(--ikasyn-space-6);text-align:center;color:var(--text-muted)}.ikasyn-language-breadcrumb{margin-bottom:var(--ikasyn-space-2)}.ikasyn-mail-threads ul{list-style:none;margin:0;padding:0;max-height:320px;overflow:auto}.ikasyn-mail-threads li{padding:.35rem 0;border-bottom:1px solid var(--line-soft)}
