:root{--font: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f1f3f6;--surface-3: #e6e9ef;--text: #121620;--text-2: #2c3340;--muted: #5a6273;--border: #e3e6ec;--border-strong: #cdd2db;--brand: #283593;--brand-hover: #1f2a7a;--brand-ink: #ffffff;--brand-soft: #eceefb;--focus: #3b4cc0;--accent: var(--brand);--ok: #13724a;--ok-bg: #e4f4ec;--warn: #8a5300;--warn-bg: #fdf0d6;--danger: #b42318;--danger-bg: #fdecea;--graded: #1d4ed8;--graded-bg: #e7eefe;--exam: #a3123b;--exam-bg: #fce8ee;--shadow-sm: 0 1px 2px rgb(16 24 40 / 5%);--shadow: 0 1px 2px rgb(16 24 40 / 4%), 0 2px 8px rgb(16 24 40 / 5%);--shadow-lg: 0 2px 4px rgb(16 24 40 / 4%), 0 12px 32px rgb(16 24 40 / 10%);--radius: 16px;--radius-sm: 10px;--ring: 0 0 0 3px color-mix(in oklab, var(--focus) 28%, transparent);--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' fill='none' stroke='%235a6273' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0c0e13;--surface: #14171e;--surface-2: #1b1f28;--surface-3: #252a35;--text: #e9ecf2;--text-2: #cfd4de;--muted: #a0a8b8;--border: #262b36;--border-strong: #363c4a;--brand: #a9b3ff;--brand-hover: #c0c7ff;--brand-ink: #0d1024;--brand-soft: #1d2140;--focus: #a9b3ff;--ok: #5ad19a;--ok-bg: #11291e;--warn: #f2c25b;--warn-bg: #2f240c;--danger: #ff8c7d;--danger-bg: #36130f;--graded: #93b4ff;--graded-bg: #15203d;--exam: #ff8fac;--exam-bg: #3a1221;--shadow-sm: 0 1px 2px rgb(0 0 0 / 30%);--shadow: 0 1px 2px rgb(0 0 0 / 35%), 0 2px 8px rgb(0 0 0 / 25%);--shadow-lg: 0 2px 4px rgb(0 0 0 / 35%), 0 14px 36px rgb(0 0 0 / 45%);--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' fill='none' stroke='%23a0a8b8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");color-scheme:dark}}:root,.branded,.accented,.course-card,.course-page,.inst-section,.inst-heading,.todo-item{--accent-ui: var(--accent);--accent-soft: color-mix(in oklab, var(--accent) 9%, var(--surface));--accent-line: color-mix(in oklab, var(--accent) 30%, var(--border));--accent-text: color-mix(in oklab, var(--accent) 55%, var(--text))}@media(prefers-color-scheme:dark){:root,.branded,.accented,.course-card,.course-page,.inst-section,.inst-heading,.todo-item{--accent-ui: color-mix(in oklab, var(--accent) 72%, white);--accent-soft: color-mix(in oklab, var(--accent) 16%, var(--surface));--accent-line: color-mix(in oklab, var(--accent) 45%, var(--border));--accent-text: color-mix(in oklab, var(--accent) 45%, var(--text))}}*{box-sizing:border-box}html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%}html,body{margin:0}body{background:var(--bg);color:var(--text);font:400 16px/1.55 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;min-height:100vh}a{color:inherit;text-decoration:none}p a:not(.btn),.small a:not(.btn),.muted a:not(.btn),td a:not(.btn),.empty a:not(.btn),.crumbs a,.link-text{color:var(--text);font-weight:600;text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px;text-decoration-thickness:1.5px}p a:not(.btn):hover,.small a:not(.btn):hover,.muted a:not(.btn):hover,td a:not(.btn):hover,.empty a:not(.btn):hover,.crumbs a:hover,.link-text:hover{text-decoration-color:currentColor}h1,h2,h3{color:var(--text);font-weight:700;letter-spacing:-.02em}h1{font-size:clamp(1.6rem,3.2vw,2.15rem);line-height:1.15;margin:.15em 0 .45em;font-weight:800;letter-spacing:-.03em}h2{font-size:1.15rem;line-height:1.3;margin:0 0 .75em}h3{font-size:1rem;margin:0}p{margin:0 0 .8em}code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);padding:.05em .35em;border-radius:6px;font-size:.85em}::selection{background:color-mix(in oklab,var(--brand) 25%,transparent)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.55em .8em;min-width:0;line-height:1.35;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}input:hover,select:hover,textarea:hover{border-color:color-mix(in oklab,var(--muted) 60%,var(--border-strong))}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--focus);box-shadow:var(--ring)}input::placeholder,textarea::placeholder{color:color-mix(in oklab,var(--muted) 85%,var(--surface))}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right .7em center;background-size:12px;padding-right:2.1em;cursor:pointer}textarea{width:100%;resize:vertical}input[type=checkbox],input[type=radio]{accent-color:var(--brand);width:1.05em;height:1.05em}input[type=color]{padding:.2rem;height:2.5rem;width:3.5rem;cursor:pointer}input[type=search]{padding-left:2.2em;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.5' fill='none' stroke='%238a92a0' stroke-width='1.6'/%3E%3Cpath d='M10.5 10.5l3 3' stroke='%238a92a0' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat .75em center}.field{display:grid;gap:.35rem;font-size:.92rem;align-content:start}.field>span{color:var(--text-2);font-weight:600;font-size:.85rem}.field>small{font-size:.8rem}.field input,.field textarea,.field select{width:100%}.field input[type=color]{width:4rem}.check{display:flex;gap:.5rem;align-items:center;font-size:.92rem}.grid.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.25rem}.span2{grid-column:1 / -1}input.code{width:100%;font-size:1.8rem;font-weight:700;letter-spacing:.4em;text-indent:.4em;text-align:center;font-variant-numeric:tabular-nums;padding:.45em .5em;border-radius:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:2.5rem;padding:.5em 1.05em;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;font-weight:600;font-size:.93rem;line-height:1.2;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease,transform .12s ease}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn.primary:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}.btn.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted)}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.sm{min-height:2rem;padding:.3em .75em;font-size:.85rem;border-radius:8px}.btn.big{min-height:3.1rem;font-size:1.05rem;padding:.7em 1.6em;border-radius:12px}.btn.danger{color:var(--danger)}.btn.danger:hover{background:var(--danger-bg);border-color:color-mix(in oklab,var(--danger) 40%,var(--border))}.btn.google{width:100%}.btn .arrow{transition:transform .15s ease}.btn:hover .arrow{transform:translate(3px)}button.link{background:none;border:0;padding:.2em 0;color:var(--text);cursor:pointer;font-weight:600;text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px;text-decoration-thickness:1.5px}button.link:hover:not(:disabled){text-decoration-color:currentColor}button.link:disabled{opacity:.5;cursor:default}button.icon{display:inline-grid;place-items:center;min-width:2rem;height:2rem;background:none;border:1px solid transparent;border-radius:8px;padding:0 .4em;cursor:pointer;color:var(--muted);line-height:1;font-size:.95rem}button.icon:hover:not(:disabled){background:var(--surface);border-color:var(--border);color:var(--text)}button.icon:disabled{opacity:.3;cursor:default}button.icon.danger:hover:not(:disabled){color:var(--danger);background:var(--danger-bg);border-color:transparent}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in oklab,var(--surface) 86%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--border)}.topbar-in{max-width:1120px;margin:0 auto;padding:0 20px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.topbar.wide .topbar-in{max-width:1320px}.brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--text);min-width:0}.brand:hover{text-decoration:none}.mark{display:inline-grid;place-items:center;flex:none;border-radius:10px;background:linear-gradient(145deg,color-mix(in oklab,var(--brand) 82%,white),var(--brand));color:var(--brand-ink);font-weight:800;letter-spacing:-.02em;box-shadow:inset 0 0 0 1px #ffffff24,var(--shadow-sm)}.brand-text{display:grid;line-height:1.15}.brand-name{white-space:nowrap;font-weight:800;font-size:1rem;letter-spacing:-.02em}.brand-sub{font-size:.75rem;color:var(--muted);font-weight:500}.topnav{display:flex;align-items:center;gap:.25rem;font-size:.92rem}.topnav>a{white-space:nowrap;padding:.45rem .8rem;border-radius:999px;color:var(--muted);font-weight:600;transition:background-color .12s ease,color .12s ease}.topnav>a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.topnav>a.active{color:var(--text);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.who{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);margin-left:.6rem;min-width:0}.who-name{max-width:16ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.avatar{display:inline-grid;place-items:center;flex:none;width:2rem;height:2rem;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:800;font-size:.85rem;box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--brand) 20%,transparent)}@media(prefers-color-scheme:dark){.avatar{color:var(--brand)}}.page{width:100%;max-width:1120px;margin:0 auto;padding:2rem 20px 5rem;flex:1}.page.wide{max-width:1320px}.row{display:flex;align-items:center;gap:.6rem}.row.wrap,.wrap{flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:1rem}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:.86rem}.mono{font-family:var(--mono);font-size:.88rem}.mono a:not(.btn){font-weight:500}.dim{opacity:.6}.crumbs{margin:0 0 .6rem;color:var(--muted);font-size:.88rem}.crumbs a:not(.btn){font-weight:600;text-decoration:none;color:var(--muted)}.crumbs a:not(.btn):hover{color:var(--text)}.eyebrow{margin:0;color:var(--accent-text);font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.lede{color:var(--muted);font-size:1.08rem;line-height:1.6;margin:0 0 1.5rem;max-width:62ch}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}.panel{margin:1.25rem 0}.panel>h2:first-child{margin-top:0}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.panel-head h2{margin:0}.card.narrow{max-width:440px;margin:2rem auto}.error{color:var(--danger)}p.error{background:var(--danger-bg);border:1px solid color-mix(in oklab,var(--danger) 25%,transparent);padding:.65em .9em;border-radius:var(--radius-sm);margin:.8rem 0;font-size:.92rem;font-weight:500}.info{display:inline-block;background:var(--ok-bg);color:var(--ok);font-weight:500;font-size:.92rem;border:1px solid color-mix(in oklab,var(--ok) 22%,transparent);padding:.6em .9em;border-radius:var(--radius-sm);margin:.6rem 0}p.info{display:block}.empty{color:var(--muted);text-align:center;padding:2.5rem 1.5rem;margin:1rem 0;border:1.5px dashed var(--border-strong);border-radius:var(--radius);background:color-mix(in oklab,var(--surface) 55%,transparent)}.divider{display:flex;align-items:center;gap:.8rem;color:var(--muted);font-size:.75rem;font-weight:700;margin:1.5rem 0 1rem;text-transform:uppercase;letter-spacing:.1em}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.chip{display:inline-flex;align-items:center;gap:.3em;font-size:.74rem;font-weight:700;line-height:1.3;padding:.22em .65em;border-radius:999px;background:var(--surface-2);color:var(--muted);margin:.1em .3em .1em 0;white-space:nowrap;letter-spacing:.01em;box-shadow:inset 0 0 0 1px var(--border)}.chip.completed{background:var(--ok-bg);color:var(--ok);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--ok) 22%,transparent)}.chip.started,.chip.in_progress{background:var(--warn-bg);color:var(--warn);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--warn) 22%,transparent)}.chip.mode-practice{background:transparent}.chip.mode-graded{background:var(--graded-bg);color:var(--graded);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--graded) 22%,transparent)}.chip.mode-exam{background:var(--exam-bg);color:var(--exam);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--exam) 22%,transparent)}.chip.locked{background:var(--surface-2);color:var(--muted)}.chip.status-draft{background:var(--warn-bg);color:var(--warn);box-shadow:none}.chip.status-archived{background:var(--surface-3);color:var(--muted);box-shadow:none}.chip .x{background:none;border:0;cursor:pointer;color:inherit;padding:0 0 0 .25em;font-size:1.05em;line-height:1;opacity:.7}.chip .x:hover{opacity:1;color:var(--danger)}.progressbar{position:relative;display:block;height:8px;background:var(--surface-3);border-radius:999px;overflow:hidden}.progressbar>div{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--accent-ui);transition:width .4s ease}.progressbar>div[style*="width: 0%"]{display:none}.progressbar.mini{height:6px}.progress-row{display:flex;align-items:center;gap:.6rem;font-size:.8rem;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}.progress-row .progressbar{flex:1}.landing{display:grid;gap:4rem}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:3.5rem;align-items:center;padding:3.5rem 0 1rem}.hero h1{font-size:clamp(2.2rem,5.4vw,3.6rem);line-height:1.04;letter-spacing:-.04em;margin:.35em 0 .4em}.hero h1 em{font-style:normal;color:var(--brand)}.hero .eyebrow{color:var(--brand);display:inline-flex;align-items:center;gap:.55rem}.hero .eyebrow:before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor}.hero .lede{font-size:1.15rem}.hero-cta{display:flex;align-items:center;gap:1rem 1.25rem;flex-wrap:wrap}.hero-cta .muted{margin:0}.hero-art{position:relative;min-height:430px;isolation:isolate}.hero-art:before{content:"";position:absolute;top:-6%;right:-4%;bottom:-6%;left:-4%;z-index:-1;filter:blur(24px);background:radial-gradient(60% 55% at 70% 30%,color-mix(in oklab,var(--brand) 16%,transparent),transparent 70%),radial-gradient(50% 50% at 20% 80%,color-mix(in oklab,#00857c 14%,transparent),transparent 70%)}.preview-card{position:absolute;width:min(320px,82%);padding:1.1rem 1.15rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);display:grid;gap:.55rem;border-top:4px solid var(--accent-ui)}.preview-card:nth-child(1){top:0;right:0;transform:rotate(2deg)}.preview-card:nth-child(2){top:132px;left:0;transform:rotate(-2.5deg)}.preview-card:nth-child(3){bottom:0;right:6%;transform:rotate(1deg)}.preview-card .course-name{font-size:1.05rem}.preview-tiles{display:flex;gap:.4rem}.preview-tiles span{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:10px;background:var(--accent-soft);font-size:1.1rem}.features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.feature{padding:1.4rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.feature h3{margin:.9rem 0 .35rem;font-size:1.02rem}.feature p{margin:0;color:var(--muted);font-size:.93rem}.feature-icon{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:12px;background:var(--brand-soft);color:var(--brand)}.feature-icon svg{width:1.3rem;height:1.3rem}.institutions-strip{text-align:center}.institutions-strip>p{margin:0 0 1rem;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.institutions-strip ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem .75rem}.institutions-strip li{display:inline-flex;align-items:center;gap:.55rem;padding:.5rem .95rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-weight:600;font-size:.92rem;color:var(--text-2)}.swatch{width:.7rem;height:.7rem;border-radius:50%;background:var(--accent-ui);flex:none;box-shadow:inset 0 0 0 1px #0000001a}.site-foot{border-top:1px solid var(--border);padding-top:1.5rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.85rem}.auth{min-height:calc(100vh - 64px - 7rem);display:grid;place-items:center}.auth .card.narrow,.signin-card.card.narrow{width:100%;margin:0 auto;padding:2rem;box-shadow:var(--shadow-lg)}.auth-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:14px;margin-bottom:1.1rem;background:var(--brand-soft);color:var(--brand)}.auth-icon svg{width:1.5rem;height:1.5rem}.signin-title{margin:0 0 .3rem;font-size:1.65rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}.signin-card .sub{color:var(--muted);margin:0 0 1.4rem;font-size:.95rem}.signin-card .sub strong{color:var(--text);font-weight:600;word-break:break-all}.signin-card form .btn.primary,.signin-card>.btn.primary{width:100%;min-height:2.9rem;font-size:1rem}.steps{display:flex;gap:.4rem;margin-bottom:1.4rem}.steps span{flex:1;height:4px;border-radius:4px;background:var(--surface-3)}.steps span.on{background:var(--brand)}.auth-foot{margin:1.25rem auto 0;max-width:440px;text-align:center;color:var(--muted);font-size:.82rem}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.page-head h1{margin:.1em 0}.page-head .muted{margin:0}.page-head .eyebrow{color:var(--muted)}.section{margin-top:2.5rem}.section-head{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}.section-head h2{margin:0;font-size:1.2rem}.section-head .count{font-size:.78rem;font-weight:700;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:.1em .6em;box-shadow:inset 0 0 0 1px var(--border)}.inst-badge{display:grid;place-items:center;flex:none;min-width:2.25rem;height:2.25rem;padding:0 .4rem;border-radius:10px;background:var(--accent-soft);color:var(--accent-text);font-weight:800;font-size:.78rem;letter-spacing:-.01em;box-shadow:inset 0 0 0 1px var(--accent-line);overflow:hidden}.inst-badge img{width:100%;height:100%;object-fit:contain;padding:4px;background:#fff}.todo-panel{padding:.5rem}.todo-panel .panel-head{padding:.9rem 1rem .2rem;margin-bottom:.4rem}.todo{list-style:none;margin:0;padding:0;display:grid}.todo-item+.todo-item{border-top:1px solid var(--border)}.todo-link{display:flex;align-items:center;gap:.9rem;padding:.8rem 1rem;border-radius:12px;transition:background-color .12s ease}.todo-link:hover{background:var(--surface-2);text-decoration:none}.todo-icon{display:grid;place-items:center;flex:none;width:2.6rem;height:2.6rem;border-radius:12px;background:var(--accent-soft);font-size:1.3rem;box-shadow:inset 0 0 0 1px var(--accent-line)}.todo-body{flex:1;min-width:0;display:grid;gap:.1rem}.todo-title{font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.todo-meta{color:var(--muted);font-size:.84rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.todo-meta .chip{margin:0}.todo-due{flex:none;text-align:right;font-size:.8rem;color:var(--muted);font-weight:600}.todo-due strong{display:block;color:var(--text);font-size:.9rem}.chev{flex:none;color:var(--muted);transition:transform .15s ease,color .15s ease}.todo-link:hover .chev{transform:translate(3px);color:var(--text)}.grid.courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.1rem}.course-card{position:relative;display:flex;flex-direction:column;gap:.5rem;min-height:150px;padding:1.25rem 1.25rem 1.15rem;border-radius:var(--radius);overflow:hidden;background:linear-gradient(180deg,var(--accent-soft),var(--surface) 92px);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.course-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--accent-ui)}.course-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--accent-line)}.course-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.course-meta{font-size:.78rem;font-weight:700;color:var(--accent-text);letter-spacing:.04em;text-transform:uppercase}.course-name{font-weight:800;font-size:1.2rem;line-height:1.25;letter-spacing:-.02em}.course-desc{color:var(--muted);font-size:.88rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-foot{margin-top:auto;padding-top:.6rem;display:flex;align-items:center;gap:.75rem}.course-foot .progress-row{flex:1}.course-foot .chip{margin:0}.course-go{margin-left:auto;display:grid;place-items:center;flex:none;width:2rem;height:2rem;border-radius:50%;background:var(--surface-2);color:var(--text);transition:transform .15s ease,background-color .15s ease,color .15s ease}.course-card:hover .course-go{transform:translate(2px);background:var(--accent-ui);color:var(--surface)}.course-card.muted-card{background:var(--surface)}.course-card.muted-card:before{opacity:.45}details.section>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:12px;border:1px solid var(--border);background:var(--surface);margin-bottom:1rem;box-shadow:var(--shadow-sm)}details.section>summary::-webkit-details-marker{display:none}details.section>summary:hover{background:var(--surface-2)}details.section>summary h2{margin:0;font-size:1rem}details.section>summary .chev{margin-left:auto;transform:rotate(90deg)}details.section[open]>summary .chev{transform:rotate(-90deg)}.feedback{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.feedback li{padding:1rem 1.1rem;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.feedback-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.feedback-head strong{font-weight:700}.feedback-head .chip{margin:0}.feedback p{margin:.5rem 0 0;white-space:pre-line;color:var(--text-2)}.course-hero{position:relative;overflow:hidden;margin-bottom:1rem;padding:1.6rem 1.75rem 1.5rem;border-radius:calc(var(--radius) + 4px);background:linear-gradient(135deg,var(--accent-soft) 0%,var(--surface) 70%);border:1px solid var(--accent-line);box-shadow:var(--shadow)}.course-hero:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--accent-ui)}.course-hero .crumbs{margin-bottom:1rem}.course-hero h1{margin:.2em 0 0;font-size:clamp(1.7rem,4vw,2.4rem)}.course-hero .lede{margin:.75rem 0 0;font-size:1rem}.course-hero .info{margin-top:1rem}.hero-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.hero-id{display:flex;align-items:center;gap:.9rem;min-width:0}.hero-id .inst-badge{min-width:3rem;height:3rem;font-size:.9rem;border-radius:12px;background:var(--surface)}.inst-logo{height:1.5em;width:auto;vertical-align:middle;margin-right:.5em}.course-progress{margin-top:1.4rem;max-width:520px;display:grid;gap:.45rem}.course-progress .label{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}.course-progress .label span:last-child{color:var(--text)}.topic{margin-top:2.25rem}.topic-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;flex-wrap:wrap;padding-bottom:.75rem;margin-bottom:1rem;border-bottom:1px solid var(--border)}.topic-head h2{margin:0;font-size:1.2rem;display:flex;align-items:baseline;gap:.6rem}.topic-head h2:before{content:"";width:10px;height:10px;border-radius:3px;background:var(--accent-ui);flex:none;transform:translateY(-1px)}.topic-head .muted{margin:0}.topic-desc{flex:1 0 100%;color:var(--muted);font-size:.93rem;margin:0;padding-left:calc(10px + .6rem)}.topic.locked .grid.tiles{opacity:.6}.topic.locked .topic-head h2:before{background:var(--border-strong)}.grid.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}.tile{position:relative;display:flex;flex-direction:column;gap:.55rem;padding:1.1rem;min-height:170px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}a.tile:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--accent-line);box-shadow:var(--shadow-lg)}.tile-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:14px;flex:none;background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line);font-size:1.6rem;line-height:1}.tile-body{display:flex;flex-direction:column;gap:.4rem;flex:1;min-width:0}.tile-name{font-weight:700;line-height:1.3;letter-spacing:-.01em}.tile-desc{color:var(--muted);font-size:.85rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tile-meta{margin-top:auto;padding-top:.25rem;display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .5rem}.tile-meta .chip{margin:0}.tile-date{font-size:.8rem;color:var(--muted);font-weight:600;display:inline-flex;align-items:center;gap:.3em}.tile-date svg{width:.95em;height:.95em}.tile.dim{opacity:1;background:var(--surface-2);box-shadow:none;cursor:not-allowed}.tile.dim .tile-icon{filter:grayscale(1);opacity:.6}.tile.dim .tile-name{color:var(--muted)}.tile-lock{position:absolute;top:1rem;right:1rem;color:var(--muted)}.tile-lock svg{width:1.1rem;height:1.1rem;display:block}.tile-open{position:absolute;top:1.1rem;right:1.1rem;color:var(--muted);opacity:0;transition:opacity .15s ease,transform .15s ease}a.tile:hover .tile-open{opacity:1;transform:translate(2px,-2px)}.tabs{display:flex;gap:.25rem;margin:-.5rem 0 1.75rem;overflow-x:auto;scrollbar-width:none;padding:.3rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);width:max-content;max-width:100%}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:.5rem .95rem;border-radius:10px;color:var(--muted);white-space:nowrap;font-weight:600;font-size:.9rem;transition:background-color .12s ease,color .12s ease}.tabs a:hover{text-decoration:none;color:var(--text);background:var(--surface-2)}.tabs a.active{color:var(--brand-ink);background:var(--brand)}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;flex-wrap:wrap;margin-bottom:.75rem}.admin-head h1{margin:0}.admin-head form{display:flex;gap:.5rem;flex-wrap:wrap}.intro{color:var(--muted);font-size:.92rem;max-width:80ch;margin:0 0 1.25rem}.inst-heading{display:flex;align-items:center;gap:.6rem;margin:2rem 0 .8rem;font-size:1.05rem}.inst-heading:before{content:"";width:.75rem;height:.75rem;border-radius:4px;background:var(--accent-ui);flex:none}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);font-size:.93rem}.table-wrap>.table{border:0;border-radius:0;box-shadow:none}:not(.table-wrap):not(.scroll-x)>.table:not(.compact){border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.table th,.table td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:var(--surface-2);white-space:nowrap}.table tbody tr{transition:background-color .1s ease}.table tbody tr:hover{background:color-mix(in oklab,var(--surface-2) 55%,var(--surface))}.table tr:last-child td{border-bottom:0}.table td strong{font-weight:700}.table td a strong{color:var(--text)}.table td>.muted.small{margin-top:.1rem}.table input:not([type=color]){width:100%}.table.compact{margin-top:.6rem;font-size:.85rem;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.table.compact td{padding:.35rem .7rem}.courses-table th:nth-child(1){width:42%}.courses-table th:nth-child(2){width:15%}.courses-table th:nth-child(3),.courses-table th:nth-child(4){width:11%}.num{text-align:right!important;font-variant-numeric:tabular-nums}.actions{text-align:right;white-space:nowrap}.actions .btn{margin-left:.25rem}td.act-icon{font-size:1.5rem;width:3rem;text-align:center!important}select.inline,input.inline{padding:.2em 1.8em .2em .5em;border-style:dashed;background-color:transparent;font-size:.82rem;border-radius:8px;min-height:0}input.inline{padding-right:.5em}.topic-block{border-top:1px solid var(--border);padding:1.1rem 0 .9rem}.topic-block .row.between{gap:.5rem}.topic-title{font-weight:700;font-size:1.02rem;border-color:transparent;background:transparent;padding:.35em .5em;flex:1;margin-left:-.5em}.topic-title:hover{border-color:var(--border-strong)}.topic-desc-input,input.topic-desc{width:100%;border-color:transparent;background:transparent;color:var(--muted);padding:.3em .5em;margin:0 0 .4rem -.5em}input.topic-desc:hover{border-color:var(--border-strong)}.act-list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.4rem}.act-list li{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}.act-list li>.grow{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-weight:600;font-size:.93rem}.act-list li>.grow input.inline{width:9rem;font-weight:400}.act-list li select{font-size:.85rem;padding-top:.35em;padding-bottom:.35em;background-color:var(--surface)}.act-list li .span-row{flex-basis:100%;padding-left:2.4rem}.act-list li form.span-row{gap:.75rem}.act-list li form.span-row label{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-weight:600}.act-icon{font-size:1.35rem;line-height:1}.add-act{border-top:1px solid var(--border);padding-top:1.1rem;margin-top:.4rem}.add-act select[name=act]{min-width:min(22rem,100%)}.scroll-x{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:var(--surface)}.scroll-x>.table{border:0}.matrix th:not(:first-child),.matrix td:not(:first-child){text-align:center;min-width:104px}.matrix th{vertical-align:bottom;text-transform:none;letter-spacing:0;font-size:.78rem;color:var(--text-2)}.matrix th .act-icon{display:block;font-size:1.3rem;margin-bottom:.25rem}.matrix th:first-child,.matrix td:first-child{position:sticky;left:0;background:var(--surface);z-index:1;min-width:200px;box-shadow:1px 0 0 var(--border)}.matrix th:first-child{background:var(--surface-2);vertical-align:bottom;text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;color:var(--muted)}.matrix td.cell{font-weight:700;color:var(--muted)}.matrix .cell.completed{background:var(--ok-bg);color:var(--ok)}.matrix .cell.started,.matrix .cell.in_progress{background:var(--warn-bg);color:var(--warn)}.matrix .cell .small{font-weight:600;font-variant-numeric:tabular-nums}.dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:var(--border-strong);margin-right:.5rem;vertical-align:.1em}.dot.on{background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin:1.5rem 0 .9rem}.toolbar .row{gap:.5rem}.spinner{width:28px;height:28px;margin:4rem auto;border-radius:50%;border:3px solid var(--border);border-top-color:var(--brand);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.hero{grid-template-columns:1fr;gap:2.5rem;padding-top:1.5rem}.hero-art{min-height:400px;max-width:460px;width:100%;margin:0 auto}.features{grid-template-columns:1fr}}@media(max-width:640px){.topbar-in{height:58px;padding:0 16px}.brand-sub,.who{display:none}.topbar:has(.topnav>a:nth-of-type(2)) .brand-text{display:none}.topic-block>.row.between{flex-wrap:wrap}.topic-title{flex:1 1 100%}.topic-block>.row.between>.row{margin-left:auto}.act-list li>.grow{flex-basis:calc(100% - 2.5rem)}.act-list li select{flex:1 1 8rem}.brand-name{font-size:.95rem}.topnav>a{padding:.4rem .65rem}.topnav .btn.ghost{padding:.3em .5em}.page{padding:1.4rem 16px 4rem}.grid.form{grid-template-columns:1fr}.card,.panel{padding:1.15rem}.landing{gap:2.75rem}.hero{padding-top:.5rem}.hero-cta .btn.big{width:100%}.hero-art{min-height:390px}.preview-card:nth-child(2){top:122px}.preview-card{width:84%}.auth{min-height:0;padding-top:.5rem}.auth .card.narrow{padding:1.5rem 1.25rem;margin-top:0}.todo-panel{padding:.25rem}.todo-link{padding:.75rem;gap:.75rem}.todo-due{display:none}.grid.courses{grid-template-columns:1fr;gap:.85rem}.course-card{min-height:0}.course-hero{padding:1.25rem 1.2rem 1.2rem 1.4rem;margin:-.4rem 0 .5rem}.hero-id .inst-badge{display:none}.topic{margin-top:1.9rem}.grid.tiles{grid-template-columns:1fr;gap:.6rem}.tile{flex-direction:row;align-items:flex-start;gap:.85rem;min-height:0;padding:.9rem .95rem}.tile-icon{width:2.75rem;height:2.75rem;font-size:1.4rem;border-radius:12px}.tile-body{gap:.3rem;padding-right:1.4rem}.tile-desc{-webkit-line-clamp:2}.tile-open{opacity:1;top:50%;transform:translateY(-50%);right:.85rem}a.tile:hover .tile-open{transform:translateY(-50%)}.tile-lock{top:50%;transform:translateY(-50%);right:.85rem}.table th,.table td{padding:.6rem .7rem}.tabs{width:auto}.act-list li .span-row{padding-left:0}}@media(max-width:380px){.topbar:has(.topnav) .brand-text{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation-duration:.01ms!important}.course-card:hover,a.tile:hover{transform:none}}.chip.submitted{background:var(--graded-bg);color:var(--graded);box-shadow:none}.handins .feedback-head .btn{margin-left:auto}.review{margin-top:.75rem;display:grid;gap:.6rem}.rubric-table{width:100%;background:var(--surface)}.rubric-table th{font-size:.75rem}.rubric-table td{vertical-align:top}.rubric-table tfoot td{border-top:1px solid var(--border);background:var(--surface-2)}.crit-comment{margin-top:.2rem;color:var(--text-2);font-size:.86rem;white-space:pre-line}.review-comment{margin:0;white-space:pre-line;color:var(--text-2);border-left:3px solid var(--brand);padding-left:.75rem}.table.inbox tr.selected td{background:var(--brand-soft)}.grader,.grader-body{display:grid;gap:1rem}.grader-section{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:1rem;align-items:start;border-top:1px solid var(--border);padding-top:1rem}.grader-section>h3{grid-column:1 / -1;margin:0;font-size:1rem}.grader-total{display:grid;gap:.75rem;border-top:1px solid var(--border);padding-top:1rem}.crit{display:grid;gap:.4rem;padding:.8rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.crit-points{display:flex;gap:.6rem;align-items:flex-start;justify-content:space-between;font-size:.9rem}.crit-points>span{display:grid;gap:.15rem}.crit-points input{width:5.5rem;flex:none}.crit textarea{width:100%;font-size:.88rem}.answers{display:grid;gap:.75rem}.answers-section h3{margin:0 0 .4rem;font-size:1rem}.answers dl{margin:0;display:grid;gap:.55rem}.qa dt{font-weight:600;font-size:.86rem;color:var(--muted)}.qa dd{margin:.1rem 0 0;white-space:pre-line;line-height:1.55;overflow-wrap:anywhere}@media(max-width:760px){.grader-section{grid-template-columns:1fr}}.branded{--accent: var(--inst);--brand: var(--inst-l);--brand-hover: color-mix(in oklab, var(--inst-l) 82%, black);--brand-ink: var(--inst-l-ink);--brand-soft: color-mix(in oklab, var(--inst-l) 9%, var(--surface));--focus: var(--inst-l);--band: var(--band-l);--band-ink: var(--band-l-ink);--font-head: var(--font);--head-weight: 800;--head-case: none;--head-track: -.03em;--btn-bg: var(--brand);--btn-ink: var(--brand-ink);--btn-hover: var(--brand-hover);--btn-hover-ink: var(--brand-ink);--top-bg: color-mix(in oklab, var(--surface) 88%, transparent);--top-ink: var(--text);--top-muted: var(--muted);--top-line: var(--border);--rule: var(--accent-ui);--rule-h: 3px;--hero-bg: radial-gradient(120% 90% at 100% 0%, rgb(255 255 255 / 14%), transparent 55%), radial-gradient(80% 80% at 0% 100%, rgb(0 0 0 / 16%), transparent 60%), var(--band);--hero-ink: var(--band-ink);--foot-bg: var(--surface-2);--foot-ink: var(--text-2)}@media(prefers-color-scheme:dark){.branded{--brand: var(--inst-d);--brand-hover: color-mix(in oklab, var(--inst-d) 82%, white);--brand-ink: var(--inst-d-ink);--brand-soft: color-mix(in oklab, var(--inst-d) 16%, var(--surface));--focus: var(--inst-d);--band: var(--band-d);--band-ink: var(--band-d-ink)}}.branded.theme-usac{--font: "Open Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--head-weight: 800;--head-track: -.02em;--radius: 10px;--radius-sm: 6px;--accent: #441C55;--brand: #441C55;--brand-hover: #712BA0;--brand-ink: #fff;--brand-soft: #f1ebf5;--focus: #712BA0;--btn-bg: linear-gradient(120deg, #712BA0 -20%, #471756 120%);--btn-hover: linear-gradient(120deg, #8D36C8 -20%, #5a1f70 120%);--btn-ink: #fff;--btn-hover-ink: #fff;--rule: linear-gradient(90deg, #3A7EC1, #712BA0);--rule-h: 5px;--hero-bg: radial-gradient(90% 120% at 100% 0%, rgb(255 255 255 / 12%), transparent 60%), linear-gradient(100deg, #2D62AE -10%, #712BA0 115%);--hero-ink: #fff;--foot-bg: #394E61;--foot-ink: #fff}@media(prefers-color-scheme:dark){.branded.theme-usac{--accent: #8f5cb8;--brand: #C9A3E6;--brand-hover: #dcc1f0;--brand-ink: #1d0b27;--brand-soft: color-mix(in oklab, #C9A3E6 14%, var(--surface));--focus: #C9A3E6;--hero-bg: radial-gradient(90% 120% at 100% 0%, rgb(255 255 255 / 8%), transparent 60%), linear-gradient(100deg, #24508f -10%, #5a2382 115%);--foot-bg: #1f2a35}}.branded.theme-mondragon{--font: "Hind", "Helvetica Neue", Helvetica, Arial, sans-serif;--head-weight: 700;--head-case: uppercase;--head-track: .01em;--radius: 4px;--radius-sm: 3px;--accent: #008194;--brand: #008194;--brand-hover: #003843;--brand-ink: #fff;--brand-soft: #e3f3f5;--focus: #008194;--btn-bg: #008194;--btn-hover: #003843;--btn-ink: #fff;--btn-hover-ink: #fff;--top-bg: #000;--top-ink: #fff;--top-muted: #c9c9c9;--top-line: #000;--rule: #0aaac7;--rule-h: 3px;--hero-bg: radial-gradient(70% 90% at 100% 0%, rgb(10 170 199 / 32%), transparent 65%), #003843;--hero-ink: #fff;--foot-bg: #000;--foot-ink: #fff}@media(prefers-color-scheme:dark){.branded.theme-mondragon{--accent: #0aaac7;--brand: #0aaac7;--brand-hover: #65d0e3;--brand-ink: #00141a;--brand-soft: color-mix(in oklab, #0aaac7 14%, var(--surface));--focus: #65d0e3;--btn-bg: #0aaac7;--btn-hover: #65d0e3;--btn-ink: #00141a;--btn-hover-ink: #00141a;--hero-bg: radial-gradient(70% 90% at 100% 0%, rgb(10 170 199 / 26%), transparent 65%), #00262e}}.theme-mondragon .inst-hero h1{font-size:clamp(1.9rem,4.2vw,2.9rem)}.theme-mondragon .btn{font-weight:600}.branded.theme-cubs{--font: "Montserrat", ui-sans-serif, system-ui, sans-serif;--font-head: "Roboto Slab", Georgia, serif;--head-weight: 700;--head-track: -.01em;--radius: 0px;--radius-sm: 0px;--accent: #FFC90E;--brand: #000;--brand-hover: #333;--brand-ink: #fff;--brand-soft: #FFF4CC;--focus: #000;--btn-bg: #FFC90E;--btn-ink: #000;--btn-hover: #000;--btn-hover-ink: #FFC90E;--rule: #FFC90E;--rule-h: 4px;--hero-bg: #000;--hero-ink: #fff;--foot-bg: #FFC90E;--foot-ink: #000}@media(prefers-color-scheme:dark){.branded.theme-cubs{--brand: #FFC90E;--brand-hover: #ffe066;--brand-ink: #000;--brand-soft: color-mix(in oklab, #FFC90E 14%, var(--surface));--focus: #FFC90E;--btn-hover: #fff;--btn-hover-ink: #000}.theme-cubs .inst-hero{box-shadow:inset 0 0 0 1px #2a2a2a}}.theme-cubs .inst-hero .eyebrow{background:#ffc90e;color:#000;opacity:1;padding:.35em .75em;letter-spacing:.14em}.theme-cubs .inst-hero .eyebrow:before{display:none}.theme-cubs .inst-hero h1 em{color:#ffc90e;opacity:1}.theme-cubs .inst-points .tick{background:#ffc90e;color:#000;border-radius:0}.theme-cubs .course-meta,.theme-cubs .eyebrow:not(.inst-hero .eyebrow){color:var(--text-2)}.theme-cubs .course-card:before,.theme-cubs .course-hero:before{height:6px}.branded.theme-camara{--font: "Montserrat", ui-sans-serif, system-ui, sans-serif;--head-weight: 800;--head-track: -.02em;--radius: 6px;--radius-sm: 4px;--accent: #EF6079;--brand: #B8304A;--brand-hover: #8f2539;--brand-ink: #fff;--brand-soft: #FFF0F0;--focus: #B8304A;--btn-bg: #000;--btn-ink: #fff;--btn-hover: #EF6079;--btn-hover-ink: #000;--rule: #EF6079;--rule-h: 4px;--hero-bg: radial-gradient(70% 90% at 100% 0%, rgb(239 96 121 / 34%), transparent 65%), #1E2024;--hero-ink: #fff;--foot-bg: #1E2024;--foot-ink: #fff}@media(prefers-color-scheme:dark){.branded.theme-camara{--brand: #EF6079;--brand-hover: #ff8297;--brand-ink: #000;--brand-soft: color-mix(in oklab, #EF6079 14%, var(--surface));--focus: #EF6079;--btn-bg: #EF6079;--btn-ink: #000;--btn-hover: #ff8297;--btn-hover-ink: #000}.theme-camara .inst-hero{box-shadow:inset 0 0 0 1px #2c2f35}}.theme-camara .inst-hero h1 em{color:#ef6079;opacity:1}.theme-camara .inst-points .tick{background:#ef6079;color:#000}.branded.theme-deusto{--font: "Montserrat", ui-sans-serif, system-ui, sans-serif;--head-weight: 800;--head-case: uppercase;--head-track: 0;--radius: 0px;--radius-sm: 0px;--accent: #0153CE;--brand: #0153CE;--brand-hover: #003F9C;--brand-ink: #fff;--brand-soft: #e8effb;--focus: #0153CE;--btn-bg: #0153CE;--btn-hover: #003F9C;--btn-ink: #fff;--btn-hover-ink: #fff;--rule: linear-gradient(135deg, #13448D, #0053CE);--rule-h: 4px;--hero-bg: linear-gradient(135deg, #13448D 0%, #0053CE 100%);--hero-ink: #fff;--foot-bg: linear-gradient(135deg, #13448D 0%, #0053CE 100%);--foot-ink: #fff}@media(prefers-color-scheme:dark){.branded.theme-deusto{--accent: #3d7ae0;--brand: #92B0DC;--brand-hover: #b4c9e8;--brand-ink: #0b1a33;--brand-soft: color-mix(in oklab, #92B0DC 14%, var(--surface));--focus: #92B0DC;--btn-hover: #1f66d9;--hero-bg: linear-gradient(135deg, #0f356e 0%, #0247ad 100%);--foot-bg: linear-gradient(135deg, #0f356e 0%, #0247ad 100%)}}.theme-deusto .btn{text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:700}.theme-deusto .inst-hero h1{font-size:clamp(1.9rem,4.2vw,2.9rem)}.branded{font-family:var(--font)}.branded h1,.branded h2{font-family:var(--font-head);font-weight:var(--head-weight);text-transform:var(--head-case);letter-spacing:var(--head-track)}.branded h3,.branded .course-name,.branded .tile-name,.branded .todo-title{font-family:var(--font-head)}.branded .btn.primary{background:var(--btn-bg);color:var(--btn-ink);border-color:transparent}.branded .btn.primary:hover:not(:disabled){background:var(--btn-hover);color:var(--btn-hover-ink);border-color:transparent}.branded .page{padding-bottom:3rem}.branded .topbar{background:var(--top-bg);border-bottom-color:var(--top-line)}.branded .topbar:before{content:"";position:absolute;inset:0 0 auto;height:var(--rule-h);background:var(--rule)}.branded .topbar .brand{color:var(--top-ink)}.branded .brand-name{font-family:var(--font)}.branded .brand-sub,.branded .who,.branded .topnav>a,.branded .topnav .btn.ghost{color:var(--top-muted)}.branded .topnav>a:hover,.branded .topnav>a.active,.branded .topnav .btn.ghost:hover{color:var(--top-ink);background:color-mix(in oklab,var(--top-ink) 10%,transparent);box-shadow:none}.brand-group{display:flex;align-items:center;gap:.9rem;min-width:0}.brand-inst{display:flex;align-items:center;flex:none;height:36px;padding-left:.9rem;border-left:1px solid color-mix(in oklab,var(--top-ink) 20%,transparent)}.brand-inst picture,.brand-inst img{display:block}.brand-inst img{height:34px;width:auto}.theme-mondragon .brand-inst{height:46px}.theme-mondragon .brand-inst img{height:44px}.theme-deusto .brand-inst img{height:24px}.inst-badge:has(img){width:2.25rem;padding:0}.hero-id .inst-badge:has(img){width:3rem}.inst-mark{width:auto;padding:0 .45em;background:var(--brand);letter-spacing:.02em;overflow:hidden}.inst-mark img{height:100%;width:auto;object-fit:contain;background:#fff;padding:3px;margin:0 -.45em;border-radius:inherit}.brand-foot{background:var(--foot-bg);color:var(--foot-ink)}.brand-foot-in{max-width:1120px;margin:0 auto;padding:1.75rem 20px;display:flex;align-items:center;gap:1.25rem 2.25rem;flex-wrap:wrap}.brand-foot-logo img{display:block;height:40px;width:auto}.theme-mondragon .brand-foot-logo img{height:58px}.theme-deusto .brand-foot-logo img{height:30px}.brand-foot-text{flex:1;min-width:240px;font-size:.85rem;line-height:1.5}.brand-foot-text p{margin:0;opacity:.85}.brand-foot-text p.brand-foot-disclaimer{font-weight:600;opacity:1;margin-bottom:.2rem}.brand-foot p a:not(.btn){color:inherit;text-decoration-color:color-mix(in oklab,currentColor 45%,transparent)}.disclaimer{margin:1.4rem 0 0;padding-top:1rem;border-top:1px solid var(--border);color:var(--muted);font-size:.8rem;line-height:1.5}.disclaimer.center{border:0;padding:0;margin:1.1rem auto 0;max-width:440px;text-align:center}.student-note{margin:1.4rem 0 0;color:var(--muted);font-size:.9rem}.inst-landing{display:grid;gap:3rem}.inst-hero{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2.5rem;align-items:center;margin-top:.5rem;padding:3rem;border-radius:calc(var(--radius) * 1.5);background:var(--hero-bg);color:var(--hero-ink);box-shadow:var(--shadow-lg)}.inst-hero-logo{display:block;margin-bottom:1.6rem}.inst-hero-logo img{display:block;height:58px;width:auto;max-width:100%}.theme-mondragon .inst-hero-logo img{height:84px}.theme-deusto .inst-hero-logo img{height:42px}.theme-cubs .inst-hero-logo img{height:50px}.inst-watermark{position:absolute;z-index:-1;left:-.04em;bottom:-.2em;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:clamp(7rem,19vw,15rem);font-weight:800;letter-spacing:-.06em;line-height:1;color:currentColor;opacity:.07;white-space:nowrap}.inst-hero-copy{min-width:0}.inst-hero .eyebrow{color:inherit;opacity:.88;display:inline-flex;align-items:center;gap:.55rem}.inst-hero .eyebrow:before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor}.inst-hero h1{color:inherit;font-size:clamp(2rem,4.6vw,3.2rem);line-height:1.08;margin:.35em 0 .45em;letter-spacing:calc(var(--head-track) - .01em)}.inst-hero h1 em{font-style:normal;opacity:.78}.inst-hero .lede{color:inherit;opacity:.9;font-size:1.08rem;margin-bottom:1.4rem}.inst-points{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;font-weight:600;font-size:.95rem}.inst-points li{display:flex;align-items:center;gap:.6rem}.inst-points .tick{display:grid;place-items:center;flex:none;width:1.5rem;height:1.5rem;border-radius:50%;background:color-mix(in oklab,currentColor 16%,transparent);font-size:.78rem;font-weight:800}.inst-hero-side{min-width:0;color:var(--text)}.inst-hero-side .signin-card{max-width:420px;margin:0 0 0 auto}.inst-landing .inst-courses{margin-top:0}@media(max-width:900px){.inst-hero{grid-template-columns:1fr;gap:2rem;padding:2.25rem}.inst-hero-side .signin-card{margin:0;max-width:none}}@media(max-width:640px){.branded .brand-sub{display:block}.branded .brand-name{font-size:.86rem}.branded .topbar:has(.topnav) .brand-text{display:none}.brand-group{gap:.6rem}.brand-inst{padding-left:.6rem}.brand-inst img{height:24px}.theme-mondragon .brand-inst img{height:38px}.theme-deusto .brand-inst img{height:18px}.inst-landing{gap:2.25rem}.inst-hero{padding:1.6rem 1.15rem 1.15rem;margin:-.4rem 0 0;gap:1.5rem}.inst-hero-copy{padding:0 .3rem}.inst-hero-logo{margin-bottom:1.1rem}.inst-hero-logo img{height:42px}.theme-mondragon .inst-hero-logo img{height:64px}.theme-deusto .inst-hero-logo img{height:32px}.theme-cubs .inst-hero-logo img{height:38px}.inst-hero .lede{font-size:1rem;margin-bottom:.2rem}.inst-points{display:none}.inst-hero-side .signin-card.card.narrow{padding:1.4rem 1.15rem}.brand-foot-in{padding:1.5rem 16px}}.course-page,.panel-page,.teacher-page{--violet: var(--focus);--r-card: 16px;--c: var(--accent, var(--brand));--c-ink: var(--c)}.mmedia,.vcard,.nextup,.duecard,.rep,.mx .vh{--c-tint: color-mix(in oklab, var(--c, var(--brand)) 14%, white)}@media(prefers-color-scheme:dark){.mmedia,.vcard,.nextup,.duecard,.rep,.mx .vh{--c-tint: color-mix(in oklab, var(--c, var(--brand)) 26%, var(--surface))}}.pill{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:700;line-height:1.2;padding:4px 10px;border-radius:999px;white-space:nowrap;background:var(--surface-2);color:var(--muted);flex:none}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.info{background:var(--graded-bg);color:var(--graded)}.pill.due{background:var(--warn-bg);color:var(--warn)}.pill.late{background:var(--danger-bg);color:var(--danger)}.pill.next{background:var(--violet);color:#fff}.pill.plain:before{display:none}.pill.solid{background:#fff;color:#2a1736;box-shadow:var(--shadow)}.pill svg{width:12px;height:12px}.block{margin-top:3.5rem}.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem 1rem;flex-wrap:wrap;margin-bottom:1.4rem}.sec-head h2{margin:0;font-size:1.75rem;font-weight:800;letter-spacing:-.025em}.sec-head p{margin:.3rem 0 0;color:var(--muted);font-size:.95rem;max-width:44em}.legend{display:flex;gap:.5rem;flex-wrap:wrap}.course-page>.crumbs{margin-bottom:.9rem}.chero{display:grid;grid-template-columns:minmax(0,1fr);min-height:300px;border-radius:24px;overflow:hidden;background:var(--hero-bg, linear-gradient(110deg, var(--brand), color-mix(in oklab, var(--brand) 55%, black)));color:var(--hero-ink, #fff);box-shadow:var(--shadow-lg)}.chero.with-mosaic{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);min-height:400px}.chero-copy{padding:2.75rem 2.75rem 2rem;display:flex;flex-direction:column;min-width:0}.chero-logo img{height:52px;width:auto;display:block;margin-bottom:1.5rem}.chero .eyebrow{color:inherit;opacity:.92;display:flex;align-items:center;gap:10px;margin:0}.chero .eyebrow:before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor}.chero h1{color:inherit;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.04;font-weight:800;letter-spacing:-.03em;margin:.3em 0 .35em;text-wrap:balance}.chero .lede{color:inherit;opacity:.92;font-size:1.12rem;line-height:1.5;margin:0 0 1.5rem;max-width:34em}.chero-note{background:#ffffff29;border-radius:10px;padding:.5rem .8rem;font-size:.9rem}.chero-foot{margin-top:auto;display:grid;gap:1rem}.facts{display:flex;flex-wrap:wrap;gap:.5rem}.fact{background:#ffffff24;border:1px solid rgb(255 255 255 / 24%);border-radius:999px;padding:6px 14px;font-size:.82rem;font-weight:700}.chero-progress{max-width:420px;display:grid;gap:.4rem}.chero-progress .label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums}.chero-progress .progressbar{background:#ffffff38}.chero-progress .progressbar>div{background:#fff}.chero-admin .btn{background:#ffffff24;border-color:#ffffff4d;color:#fff}.chero-admin .btn:hover{background:#ffffff3d}.mosaic{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:1fr 1fr;gap:6px;padding:6px 6px 6px 0}.mosaic figure{margin:0;position:relative;overflow:hidden;border-radius:18px;background:#00000026}.mosaic.n3 figure:first-child,.mosaic.n2 figure{grid-row:span 2}.mosaic.n1{grid-template-columns:1fr}.mosaic.n1 figure{grid-row:span 2}.mosaic img{width:100%;height:100%;object-fit:cover;display:block}.mosaic figcaption{position:absolute;left:10px;bottom:10px;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:999px}.nextup{position:relative;z-index:1;margin-top:1rem;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding:1rem 1.5rem 1rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-lg)}.nx-thumb{width:112px;height:76px;border-radius:10px}.nx-thumb .logo-plate{padding:5px 8px;height:auto}.nx-thumb .logo-plate img{height:22px;max-width:80px}.nx-kicker{margin:0;font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--violet)}.nextup h2{margin:2px 0;font-size:1.35rem;font-weight:800}.nx-text p:last-child{margin:0;color:var(--muted);font-size:.93rem}.nx-btns{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.nx-btns .btn svg,.duecard .btn svg,.page-head .btn svg{width:16px;height:16px}.mmedia{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--c-tint)}.mmedia.photo>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.mmedia.field{background:repeating-linear-gradient(135deg,#fff0 0,#fff0 14px,#ffffff38 14px,#ffffff38 15px),var(--c-tint)}.logo-plate{display:flex;align-items:center;background:#fff;border-radius:10px;padding:7px 10px;box-shadow:var(--shadow)}.logo-plate img{height:28px;width:auto;max-width:130px;object-fit:contain;display:block}.logo-plate.big{border-radius:16px;padding:18px 22px}.logo-plate.big img{height:46px;max-width:190px}.vcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.vcard{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .15s ease}.vcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.vc-media{aspect-ratio:16 / 10}.vc-media.photo>img{transition:transform .4s ease}.vcard:hover .vc-media.photo>img{transform:scale(1.03)}.vc-media:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000 45%,#0000009e);pointer-events:none}.vc-media.field{padding-bottom:28px}.vc-media.field:after{background:linear-gradient(180deg,#0000 66%,#0000007f)}.vc-media>.logo-plate:not(.big){position:absolute;top:12px;left:12px;z-index:1;height:44px}.vc-state{position:absolute;top:12px;right:12px;z-index:1}.vc-over{position:absolute;left:16px;right:16px;bottom:12px;z-index:1;color:#fff;display:flex;justify-content:space-between;align-items:flex-end;gap:8px}.vc-over .n{font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.vc-over .d{font-size:.95rem;font-weight:700;text-align:right;line-height:1.3}.vc-over .d small{display:block;font-weight:500;font-size:.75rem;opacity:.92}.vc-body{padding:1rem 1.5rem .5rem;display:flex;flex-direction:column;gap:6px}.vc-type{display:flex;align-items:center;gap:8px;font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink)}.vc-type:before{content:"";width:10px;height:10px;border-radius:3px;background:var(--c)}.vcard h3{font-size:1.375rem;font-weight:800;line-height:1.2;margin:0;letter-spacing:-.02em}.vc-tag{margin:0;color:var(--text-2);font-size:.94rem;line-height:1.5}.vc-rows{margin-top:auto;padding:.5rem 1.5rem .75rem}.vrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border);font-size:.94rem;color:var(--text)}.vrow .ic{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--surface-2);color:var(--brand)}.vrow .lbl{flex:1;min-width:0;font-weight:700}.vrow .lbl small{display:block;font-weight:500;color:var(--muted);font-size:.76rem;line-height:1.35}.vrow .go{color:var(--muted);display:grid}a.vrow:hover{text-decoration:none}a.vrow:hover .lbl{text-decoration:underline;text-underline-offset:3px}.vrow.off .ic{color:var(--muted)}.vcard.locked .vc-media{filter:saturate(.6)}.toolkit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.tk-card{display:grid;grid-template-columns:132px minmax(0,1fr);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-sm);color:var(--text);transition:box-shadow .15s ease,transform .15s ease}a.tk-card:hover{text-decoration:none;box-shadow:var(--shadow);transform:translateY(-2px)}.tk-media{display:grid;place-items:center;background:var(--surface-2);overflow:hidden;min-height:110px;color:#fff}.tk-media img{width:100%;height:100%;object-fit:cover;display:block}.tk-media.contain{background:#fff;border-right:1px solid var(--border)}.tk-media.contain img{object-fit:contain;padding:8px}.tk-media b{font-size:1.6rem;font-weight:800;letter-spacing:-.04em;text-align:center;padding:0 8px;line-height:1.05}.tk-emoji{font-size:2rem}.tk-media>svg{width:28px;height:28px;color:var(--brand)}.teacher-page.branded{font-family:var(--font)}.tk-text{padding:1rem;display:flex;flex-direction:column;gap:2px}.tk-kind{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.tk-text b{font-size:1.1rem;line-height:1.25}.tk-desc{font-size:.82rem;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tk-card.dim{opacity:.6}.how{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}.how li{padding:1.5rem}.how li+li{border-left:1px solid var(--border)}.how .no{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font-weight:800;font-size:.82rem;margin-bottom:.75rem}.how b{display:block;font-size:1.1rem}.how p{margin:4px 0 0;color:var(--text-2);font-size:.94rem}.how .when{display:inline-block;margin-top:.75rem;font-size:.82rem;font-weight:700;color:var(--violet)}.credits{margin:2.5rem 0 0;color:var(--muted);font-size:.78rem}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:.5rem 0 0}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:1rem 1.5rem;min-width:0}.kpi .k{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.kpi .v{font-size:1.75rem;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums;line-height:1.25}.kpi .v.text{font-size:1.1rem;padding-top:6px}.kpi .v.text small{display:block;font-size:.82rem;font-weight:600;color:var(--muted)}.kpi .v small{font-size:.94rem;color:var(--muted);font-weight:600}.kpi .bar{height:6px;border-radius:3px;background:var(--surface-2);margin-top:.5rem;overflow:hidden}.kpi .bar i{display:block;height:100%;background:var(--rule, var(--brand))}.kpi.attn{border-color:var(--violet);box-shadow:inset 4px 0 0 var(--violet)}.kpi .v.late{color:var(--danger)}.kpi-note{font-size:.75rem;color:var(--muted);margin-top:2px}.dues{display:grid;gap:1rem}.duecard{display:grid;grid-template-columns:280px minmax(0,1fr);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow)}.duecard .mmedia{min-height:190px}.duecard .dc-text{padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.duecard h3{font-size:1.375rem;font-weight:800;margin:0}.duecard p{margin:0;color:var(--text-2)}.duecard .meta{font-size:.85rem;color:var(--muted)}.btns{display:flex;gap:.5rem;flex-wrap:wrap}.reps{display:grid;gap:.75rem}.rep{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;scroll-margin-top:90px}.rep>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:120px minmax(0,1fr) auto auto;gap:1rem;align-items:center;padding:.75rem 1rem .75rem .75rem}.rep>summary::-webkit-details-marker{display:none}.rep>summary:hover{background:color-mix(in oklab,var(--surface-2) 50%,var(--surface))}.rep .th{height:72px;border-radius:10px}.rep .th .logo-plate{padding:5px 8px}.rep .th .logo-plate img{height:20px;max-width:86px}.rep .th .tk-emoji{font-size:1.8rem}.rep-who{min-width:0;display:block}.rep-who b{display:block;font-size:1.1rem}.rep-who>span{display:block;font-size:.85rem;color:var(--muted)}.rep-who>.vers{display:flex}.vers{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.vers span{white-space:nowrap;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:6px;background:var(--surface-2);color:var(--muted)}.vers span.cur{background:var(--brand);color:var(--brand-ink)}.grade{text-align:right;min-width:88px}.grade b{display:block;font-size:1.75rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.grade b small{font-size:.94rem;color:var(--muted);font-weight:600}.grade>span{font-size:.75rem;color:var(--muted)}.grade .pill{margin-bottom:2px}.rep .chev{transform:rotate(90deg)}.rep[open] .chev{transform:rotate(-90deg)}.fb{border-top:1px solid var(--border);padding:1.5rem;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2rem}.fb-note{grid-column:1 / -1;margin:0}.crit-bars{display:grid}.crit-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 64px;gap:.75rem;align-items:center;font-size:.94rem;padding:6px 0}.crit-bar{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.crit-bar i{display:block;height:100%;background:var(--violet);border-radius:4px}.crit-pts{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.crit-row .crit-comment{grid-column:1 / -1;margin:-2px 0 4px;font-size:.85rem;color:var(--text-2);padding-left:10px;border-left:3px solid var(--violet);white-space:pre-line}.crit-total{display:flex;justify-content:space-between;border-top:1px solid var(--border);margin-top:6px;padding-top:8px;font-weight:800}.crit-total small{font-weight:500;color:var(--muted);display:block}.quote{background:var(--surface-2);border-radius:10px;padding:1rem 1.5rem;line-height:1.6;margin:0;white-space:pre-line}.quote .by{display:block;margin-top:.5rem;font-size:.82rem;color:var(--muted)}.fb .btns{margin-top:1rem}.course-card .course-media{display:flex;gap:3px;height:96px;margin:-1.25rem -1.25rem .4rem;overflow:hidden}.course-card .course-media img{flex:1;min-width:0;height:100%;object-fit:cover}.teacher-page .page-head h1{font-size:clamp(1.7rem,3.4vw,2.5rem)}.ttabs{display:flex;gap:4px;margin:1rem 0 1.5rem;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.ttabs a{padding:10px 14px;font-weight:700;font-size:.94rem;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}.ttabs a:hover{color:var(--text);text-decoration:none}.ttabs a.on{color:var(--brand);border-color:var(--brand)}.mx-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:auto;box-shadow:var(--shadow-sm)}table.mx{border-collapse:separate;border-spacing:0;width:100%;min-width:860px;font-size:.94rem}.mx th,.mx td{padding:12px;border-bottom:1px solid var(--border);text-align:center;vertical-align:middle}.mx thead th{background:var(--surface);font-weight:700}.mx th:first-child,.mx td:first-child{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1;border-right:1px solid var(--border);min-width:170px}.mx .vh{display:flex;flex-direction:column;align-items:center;gap:6px}.mx .vh .lg{height:34px;width:100px;border-radius:8px;background:var(--c-tint);display:grid;place-items:center;overflow:hidden}.mx .vh .lg img{height:18px;width:auto;max-width:80px;background:#fff;padding:3px 5px;border-radius:4px;box-sizing:content-box}.mx .vh b{font-size:.82rem}.mx .vh span{font-size:.75rem;color:var(--muted);font-weight:500}.mx .stu b{display:block;font-size:.94rem}.mx .stu span{font-size:.75rem;color:var(--muted)}.mx-cell{text-decoration:none!important;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:84px;min-height:44px;border-radius:10px;font-size:.82rem;font-weight:700;padding:4px 8px;line-height:1.2;border:0;font-family:inherit;color:inherit;background:none}a.mx-cell:hover,button.mx-cell:hover{text-decoration:none;filter:brightness(.96);box-shadow:inset 0 0 0 2px color-mix(in oklab,currentColor 35%,transparent)}.mx-cell small{font-weight:600;font-size:.72rem;opacity:.85}.mx-cell.ok{background:var(--ok-bg);color:var(--ok)}.mx-cell.grade{background:var(--brand);color:var(--brand-ink)}.mx-cell.held{background:var(--graded-bg);color:var(--graded)}.mx-cell.open{background:var(--warn-bg);color:var(--warn)}.mx-cell.miss{background:var(--danger-bg);color:var(--danger)}.mx-cell.none{color:var(--muted);font-weight:500}.mx tbody tr:last-child td{border-bottom:1px solid var(--border)}.mx tfoot td{font-size:.82rem;color:var(--muted);font-weight:700;border-bottom:0;background:var(--surface-2)}.mx tfoot td:first-child{background:var(--surface-2)}.mx .avg{font-weight:800;font-variant-numeric:tabular-nums}@media(max-width:1100px){.vcards{grid-template-columns:repeat(2,minmax(0,1fr))}.toolkit,.kpis{grid-template-columns:1fr 1fr}}@media(max-width:860px){.chero.with-mosaic{grid-template-columns:1fr}.mosaic{order:-1;height:220px;padding:6px 6px 0}.chero-copy{padding:1.5rem 1.5rem 2rem}.nextup{grid-template-columns:auto minmax(0,1fr)}.nx-btns{grid-column:1 / -1;justify-content:stretch}.how{grid-template-columns:1fr}.how li+li{border-left:0;border-top:1px solid var(--border)}.fb{grid-template-columns:1fr;gap:1.5rem}.duecard{grid-template-columns:1fr}.duecard .mmedia{min-height:140px}}@media(max-width:640px){.block{margin-top:2.75rem}.sec-head h2{font-size:1.375rem}.chero,.chero.with-mosaic{border-radius:var(--r-card);min-height:0}.chero-logo img{height:38px;margin-bottom:1rem}.chero .lede{font-size:1rem}.mosaic{height:170px}.mosaic figure{border-radius:12px}.mosaic figcaption{display:none}.nextup{padding:.75rem;gap:.75rem}.nx-thumb{width:76px;height:56px}.nextup h2{font-size:1.1rem}.nx-btns .btn{flex:1 1 100%;justify-content:center;white-space:normal;text-align:center}.vcards,.toolkit{grid-template-columns:1fr;gap:1rem}.vc-body{padding:1rem 1rem .25rem}.vc-rows{padding:.25rem 1rem .5rem}.tk-card{grid-template-columns:96px minmax(0,1fr)}.kpis{gap:.5rem}.kpi{padding:.75rem}.kpi .v{font-size:1.375rem}.kpi .v.text{font-size:.95rem}.rep>summary{grid-template-columns:72px minmax(0,1fr) auto;gap:.75rem}.rep .th{height:56px}.rep .th .logo-plate img{height:14px;max-width:54px}.rep .chev{display:none}.grade b{font-size:1.4rem}.crit-row{grid-template-columns:minmax(0,1fr) 48px 64px;font-size:.85rem}.fb,.duecard .dc-text{padding:1rem}.duecard .btns .btn{flex:1;justify-content:center}.course-card .course-media{margin:-1rem -1rem .4rem;height:80px}}@media(prefers-reduced-motion:reduce){.vcard:hover,a.tk-card:hover{transform:none}.vcard:hover .vc-media.photo>img{transform:none}}@media(max-width:640px){.table.inbox,.table.inbox tbody,.table.inbox tr,.table.inbox td{display:block;width:100%}.table.inbox thead{display:none}.table.inbox tr{border-bottom:1px solid var(--border);padding:.5rem .25rem}.table.inbox td{border:0;padding:.25rem .75rem}.table.inbox td.actions{text-align:left;white-space:normal;display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.5rem}.table.inbox td.actions .btn{margin:0}.table.inbox td:empty{display:none}.tabs{flex-wrap:wrap}}
