:root{--color-bg:#050505;--color-bg-alt:#0a0a0a;--color-surface:#111;--color-surface-hover:#181818;--color-surface-elevated:#1c1c1c;--color-border:#ffffff0f;--color-border-strong:#ffffff1f;--color-divider:#ffffff0a;--color-text-primary:#f5f5f5;--color-text-secondary:#8a8a8a;--color-text-muted:#4a4a4a;--color-text-inverse:#050505;--color-brand:#9b1b30;--color-accent:#e65100;--color-success:#2e7d32;--color-success-glow:#2e7d3240;--color-warning:#ff8f00;--color-error:#c62828;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono:"SF Mono", "Fira Code", "Consolas", monospace;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-xl:1.3125rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-display:3rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-black:900;--leading-tight:1.15;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.06em;--tracking-widest:.12em;--space-2xs:.125rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:2.5rem;--space-3xl:3rem;--space-4xl:4rem;--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-2xl:1.5rem;--radius-full:50%;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--duration-fast:.15s;--duration-base:.25s;--duration-slow:.4s;--shadow-sm:0 1px 3px #0009;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 8px 32px #00000080;--container-max:520px;--header-height:56px;--nav-height:68px;--content-padding:var(--space-lg);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans,system-ui, -apple-system, "Segoe UI", sans-serif);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}a{color:var(--color-brand)}.splash{background:var(--color-bg);z-index:100;place-items:center;display:grid;position:fixed;inset:0}.splash__pulse{border:2px solid var(--color-brand);border-radius:50%;width:2.5rem;height:2.5rem;animation:1.4s ease-in-out infinite splash-breathe}@keyframes splash-breathe{0%,to{opacity:.25;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.splash__pulse{opacity:.6;animation:none}}#app{flex-direction:column;min-height:100vh;display:flex}.app-body{flex-direction:column;flex:1;display:flex}.header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem;display:flex}.header__brand{letter-spacing:.02em;color:var(--color-text-primary);font-weight:600}.header__user{color:var(--color-text-secondary);font-size:.9rem}.header__user--anon{color:var(--color-brand);text-decoration:none}.header__user{margin-left:auto}.header__logout{color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:4px;margin-left:.75rem;padding:.3rem .7rem;font-size:.85rem}.header__logout:hover{color:var(--color-text-primary);border-color:var(--color-text-secondary)}.header__logout:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.app-main{flex:1;width:100%;max-width:60rem;margin:0 auto;padding:1.25rem}.nav{border-top:1px solid var(--color-border);background:var(--color-bg);gap:.25rem;padding:.5rem 1.25rem;display:flex;position:sticky;bottom:0}.nav__item{border-radius:var(--brand-radius,.4rem);color:var(--color-text-secondary);padding:.55rem .9rem;font-size:.92rem;text-decoration:none}.nav__item:hover{background:var(--color-surface-hover)}.nav__item--active{color:var(--color-text-primary);box-shadow:inset 0 -2px 0 var(--color-brand)}.view-empty,.course-list__empty,.lesson-list__empty,.assessment__empty,.assessment__pending,.lesson__unavailable{text-align:center;color:var(--color-text-secondary);padding:2.5rem 1rem}.course-list{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.course-card__open,.lesson-item__open,.course-detail__back,.course-progress__enroll,.lesson__complete,.assessment__submit{border:1px solid var(--color-brand);border-radius:var(--brand-radius,.4rem);color:var(--color-brand);font:inherit;cursor:pointer;background:0 0;padding:.5rem .9rem;text-decoration:none;display:inline-block}.lesson-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.lesson__header{margin-bottom:1rem}.lesson__duration{color:var(--color-text-secondary);font-size:.85rem}.lesson__text,.lesson__case,.lesson__scenario{line-height:1.7}.lesson__link,.lesson__pdf{color:var(--color-brand)}.item__prompt{margin-bottom:1rem;font-size:1.05rem}.authoring h2,.authoring-editor h2{margin:0 0 var(--space-md);font-size:var(--text-xl)}.authoring h3,.authoring-editor h3{margin:var(--space-xl) 0 var(--space-sm);font-size:var(--text-base);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary)}.authoring h4{margin:var(--space-md) 0 var(--space-sm);font-size:var(--text-sm)}.exercise{margin-top:var(--space-lg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-md)}.exercise__title{margin:0 0 var(--space-xs)}.exercise__prompt{margin:0 0 var(--space-sm)}.exercise__expected{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--space-md)}.exercise__waiting,.exercise__done{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.exercise__done{color:var(--color-success)}.exercise__rejected{color:var(--color-warning);border-left:3px solid var(--color-warning);padding-left:var(--space-sm);margin:0 0 var(--space-md)}.exercise__form{gap:var(--space-sm);display:grid}@media (width<=40rem){.review-queue__item{gap:var(--space-xs);grid-template-columns:1fr}.review-queue__who,.review-queue__waiting{text-align:left}.review-queue__open{justify-self:start}}.lesson__back{margin-bottom:var(--space-sm);font-size:var(--text-sm);color:var(--color-text-secondary);text-decoration:none;display:inline-block}.lesson__back:hover{color:var(--color-text-primary)}.lesson__footer{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-divider)}.lesson__complete{border-color:var(--color-accent);color:var(--color-accent)}.lesson__done{font-size:var(--text-sm);color:var(--color-success);margin:0}.enablement{align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);border-left:3px solid #0000;grid-template-columns:1fr 1fr 10rem;display:grid}.enablement--expired,.enablement--revoked{opacity:.6}.enablement--revoked{border-left-color:var(--color-error)}.enablement__empty,.enablement__loading{color:var(--color-text-secondary)}@media (width<=720px){.enablement{gap:var(--space-xs);grid-template-columns:1fr}.enablement__until{text-align:left}}.certificates{margin:var(--space-lg) 0 0;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.certificates h3{margin:0 0 var(--space-sm);font-size:var(--text-lg)}.certificate{padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated)}.certificate+.certificate{margin-top:var(--space-sm)}.assessments{margin-top:var(--space-lg)}.assessment-item__code,.item__format{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.item{padding:var(--space-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.item__position{font-variant-numeric:tabular-nums;min-width:1.5rem;color:var(--color-text-secondary)}.item__prompt{flex:1}.wrong-entry{max-width:32rem;margin:var(--space-4xl) auto;padding:var(--space-xl);text-align:center}.wrong-entry__title{margin:0 0 var(--space-sm);font-size:var(--text-lg)}.wrong-entry__text{margin:0 0 var(--space-lg);color:var(--color-text-secondary)}.wrong-entry__exit{border:1px solid var(--color-brand);border-radius:var(--brand-radius,.4rem);color:var(--color-brand);background:0 0;padding:.5rem .9rem;text-decoration:none;display:inline-block}
