:root{--accent: #0b7a75;--accent-hover: #075955;--on-accent: #ffffff;--bg: #ffffff;--surface: #f6f7f9;--raised: #ffffff;--border: #e3e6eb;--border-strong: #878f9e;--text: #161b26;--muted: #586174;--success: #1e7a4c;--warning: #9a5b05;--danger: #c42b2b;--accent-text: var(--accent-hover);--success-text: #18623d;--warning-text: #7e4a04;--danger-text: var(--danger);--shadow-sm: 0 4px 12px rgba(16, 24, 40, .1);--shadow-pop: 0 12px 32px rgba(16, 24, 40, .14);--scrim: rgba(15, 18, 24, .45);color-scheme:light}:root[data-theme=dark]{--accent: #4fd1c5;--accent-hover: color-mix(in srgb, #4fd1c5 85%, white);--on-accent: #0f1218;--bg: #0f1218;--surface: #171b23;--raised: #1e232d;--border: #2a303c;--border-strong: #646d7f;--text: #e7eaf0;--muted: #9aa3b4;--success: #5bd49b;--warning: #f2b45a;--danger: #ff8a8a;--accent-text: var(--accent);--success-text: var(--success);--warning-text: var(--warning);--danger-text: var(--danger);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .4);--shadow-pop: 0 12px 32px rgba(0, 0, 0, .5);--scrim: rgba(0, 0, 0, .6);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--accent: #4fd1c5;--accent-hover: color-mix(in srgb, #4fd1c5 85%, white);--on-accent: #0f1218;--bg: #0f1218;--surface: #171b23;--raised: #1e232d;--border: #2a303c;--border-strong: #646d7f;--text: #e7eaf0;--muted: #9aa3b4;--success: #5bd49b;--warning: #f2b45a;--danger: #ff8a8a;--accent-text: var(--accent);--success-text: var(--success);--warning-text: var(--warning);--danger-text: var(--danger);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .4);--shadow-pop: 0 12px 32px rgba(0, 0, 0, .5);--scrim: rgba(0, 0, 0, .6);color-scheme:dark}}:root{--accent-subtle: color-mix(in srgb, var(--accent) 10%, var(--bg));--accent-soft: color-mix(in srgb, var(--accent) 24%, var(--bg));--success-subtle: color-mix(in srgb, var(--success) 13%, var(--bg));--warning-subtle: color-mix(in srgb, var(--warning) 15%, var(--bg));--danger-subtle: color-mix(in srgb, var(--danger) 11%, var(--bg));--neutral-subtle: var(--surface);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 16px;--radius-full: 999px;--font-sans: "Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--dur-fast: .12s;--dur-enter: .2s;--ease-out: cubic-bezier(.16, 1, .3, 1);--w-reading: 720px;--w-page: 1040px;--w-wide: 1280px;--gutter: 16px;--control-sm: 32px;--control-md: 40px;--control-lg: 48px}@media (min-width: 640px){:root{--gutter: 24px}}@media (min-width: 1024px){:root{--gutter: 32px}}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0ms;--dur-enter: 0ms}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-md);line-height:1.5;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.25;font-weight:650;letter-spacing:-.015em}h1{font-size:var(--text-3xl);letter-spacing:-.02em}h2{font-size:var(--text-xl)}h3{font-size:var(--text-md);font-weight:600}p{margin:0}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent-hover)}img,svg,video{max-width:100%}img{height:auto}button,input,select,textarea{font:inherit;color:inherit}code,kbd,pre,samp{font-family:var(--font-mono)}table{border-collapse:collapse}.tabular{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.muted{color:var(--muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}main:focus{outline:none}html{scroll-padding-top:72px;scroll-padding-bottom:88px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.no-print{display:none!important}body{background:#fff;color:#000}}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--radius-full);border:1px solid transparent;font-size:var(--text-xs);font-weight:600;line-height:20px;white-space:nowrap;vertical-align:middle}.badge .icon{flex:none}.badge-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.badge-neutral{background:var(--neutral-subtle);border-color:var(--border);color:var(--muted)}.badge-accent{background:var(--accent-subtle);color:var(--accent-text)}.badge-success{background:var(--success-subtle);color:var(--success-text)}.badge-warning{background:var(--warning-subtle);color:var(--warning-text)}.badge-danger{background:var(--danger-subtle);color:var(--danger-text)}.btn{--btn-bg: var(--raised);--btn-fg: var(--text);--btn-border: var(--border-strong);--btn-hover-bg: var(--surface);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-md);padding:0 14px;border:1px solid var(--btn-border);border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--btn-fg);font:inherit;font-size:var(--text-sm);font-weight:550;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast);-webkit-tap-highlight-color:transparent}.btn:hover{background:var(--btn-hover-bg);color:var(--btn-fg)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn .icon{flex:none}.btn-label{min-width:0}.btn-primary{--btn-bg: var(--accent);--btn-fg: var(--on-accent);--btn-border: var(--accent);--btn-hover-bg: var(--accent-hover);font-weight:600}.btn-primary:hover{border-color:var(--accent-hover)}.btn-secondary{--btn-border: var(--border-strong)}.btn-ghost{--btn-bg: transparent;--btn-border: transparent;--btn-hover-bg: var(--surface)}.btn-danger{--btn-bg: var(--raised);--btn-fg: var(--danger);--btn-border: color-mix(in srgb, var(--danger) 55%, var(--bg));--btn-hover-bg: var(--danger-subtle)}.btn-danger.btn-solid,.btn-danger-solid{--btn-bg: var(--danger);--btn-fg: #fff;--btn-border: var(--danger);--btn-hover-bg: color-mix(in srgb, var(--danger) 85%, black)}:root[data-theme=dark] .btn-danger-solid{--btn-fg: var(--bg)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .btn-danger-solid{--btn-fg: var(--bg)}}.btn-sm{min-height:var(--control-sm);padding:0 10px;font-size:var(--text-sm)}.btn-lg{min-height:var(--control-lg);padding:0 18px;border-radius:var(--radius-md);font-size:var(--text-md)}.btn-block{display:flex;width:100%}.btn-icon{padding:0;width:var(--control-md)}.btn-icon.btn-sm{width:var(--control-sm)}.btn-icon.btn-lg{width:var(--control-lg)}.btn-spinner{width:16px;height:16px;flex:none;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:btn-spin .7s linear infinite}@media (max-width: 639px){.btn-primary.btn-md{min-height:44px}}.banner{--banner-fg: var(--accent);--banner-bg: var(--accent-subtle);display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--banner-bg);border:1px solid color-mix(in srgb,var(--banner-fg) 25%,var(--bg));color:var(--text);font-size:var(--text-sm)}.banner-info{--banner-fg: var(--accent);--banner-bg: var(--accent-subtle)}.banner-success{--banner-fg: var(--success);--banner-bg: var(--success-subtle)}.banner-warning{--banner-fg: var(--warning);--banner-bg: var(--warning-subtle)}.banner-danger{--banner-fg: var(--danger);--banner-bg: var(--danger-subtle)}.banner-icon{color:var(--banner-fg);margin-top:1px;flex:none}.banner-body{flex:1;min-width:0;display:grid;gap:var(--space-1)}.banner-title{font-weight:600}.banner-text{color:var(--text)}.banner-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.banner-dismiss{margin:-6px -8px -6px 0}.banner[role=alert]{color:var(--text)}.card{background:var(--raised);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0}.card-padded{padding:var(--space-4) var(--space-5)}@media (max-width: 639px){.card-padded{padding:var(--space-4)}}.section{display:grid;gap:var(--space-4);min-width:0}.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.section-titles{display:grid;gap:var(--space-1);min-width:0;flex:1 1 16rem}.section-title{font-size:var(--text-xl)}h3.section-title{font-size:var(--text-lg)}.section-description{color:var(--muted);font-size:var(--text-sm);max-width:70ch}.section-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.section-danger{padding:var(--space-4) var(--space-5);border:1px solid color-mix(in srgb,var(--danger) 45%,var(--bg));border-radius:var(--radius-lg)}.section-danger .section-title{color:var(--danger);font-size:var(--text-lg)}.field{display:grid;gap:6px;min-width:0}.field-label{font-size:var(--text-sm);font-weight:550;color:var(--text)}.field-required{color:var(--muted);font-weight:400}.field-hint{font-size:13px;color:var(--muted)}.field-error{font-size:13px;color:var(--danger);font-weight:500}.input{width:100%;min-height:var(--control-md);padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--text-sm);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.input::placeholder{color:color-mix(in srgb,var(--muted) 80%,var(--bg))}.input:hover:not(:disabled){border-color:var(--text)}.input:focus-visible,.input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.input:disabled{background:var(--surface);color:var(--muted);cursor:not-allowed}.input[aria-invalid=true],.field-invalid .input{border-color:var(--danger)}.input-lg{min-height:var(--control-lg);padding:0 14px;border-radius:var(--radius-md);font-size:var(--text-md)}@media (max-width: 639px){.input{font-size:16px}}.textarea{min-height:96px;padding:10px 12px;line-height:1.5;resize:vertical}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23878F9E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.check,.switch{display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:var(--text-sm);color:var(--text)}.check-input{width:18px;height:18px;margin:1px 0 0;flex:none;accent-color:var(--accent);cursor:pointer}.check-text{display:grid;gap:2px;min-width:0}.check-label{font-weight:500}.check-description{color:var(--muted);font-size:13px;font-weight:400}.switch{position:relative;align-items:center}.switch-input{position:absolute;opacity:0;width:36px;height:20px;margin:0;cursor:pointer}.switch-track{position:relative;width:36px;height:20px;flex:none;border-radius:var(--radius-full);background:var(--border-strong);transition:background-color var(--dur-fast)}.switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform var(--dur-enter) var(--ease-out)}.switch-input:checked+.switch-track{background:var(--accent)}.switch-input:checked+.switch-track .switch-thumb{transform:translate(16px)}.switch-input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.switch-input:disabled+.switch-track{opacity:.5}.switch:has(.switch-input:disabled){cursor:not-allowed}.radio-cards{border:0;padding:0;margin:0;display:grid;gap:var(--space-2);min-width:0}.radio-cards legend{padding:0;margin-bottom:var(--space-2)}.radio-cards-grid{display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.radio-card{display:flex;align-items:flex-start;gap:10px;padding:var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--raised);cursor:pointer;font-size:var(--text-sm);transition:border-color var(--dur-fast),background-color var(--dur-fast)}.radio-card input{margin:2px 0 0;accent-color:var(--accent);flex:none;width:16px;height:16px}.radio-card:has(input:checked){border-color:var(--accent);background:var(--accent-subtle);box-shadow:inset 0 0 0 1px var(--accent)}.radio-card:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.radio-card:has(input:disabled){opacity:.55;cursor:not-allowed}.code-input{position:relative;max-width:380px}.code-input-field{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;padding:0;border:0;background:transparent;color:transparent;caret-color:transparent;font-size:16px;letter-spacing:2em;outline:none}.code-input-field::selection{background:transparent}.code-input-boxes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-2)}.code-input-box{display:flex;align-items:center;justify-content:center;height:56px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg);font-size:var(--text-2xl);font-weight:600;font-variant-numeric:tabular-nums;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.code-input:focus-within .code-input-box-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.code-input:has(.code-input-field:disabled) .code-input-box{background:var(--surface);color:var(--muted)}.code-input:has(.code-input-field[aria-invalid=true]) .code-input-box{border-color:var(--danger)}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised)}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table th,.data-table td{padding:10px var(--space-4);border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.data-table thead th{position:sticky;top:0;z-index:1;background:var(--surface);color:var(--muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;white-space:nowrap}.data-table tbody tr:last-child>td,.data-table tbody tr:last-child>th{border-bottom:0}.data-table tbody tr:hover>td{background:color-mix(in srgb,var(--surface) 55%,transparent)}.data-table tfoot td,.data-table tfoot th{border-top:1px solid var(--border);border-bottom:0;background:var(--surface);font-weight:600}.data-table .cell-end{text-align:right}.data-table .cell-primary{font-weight:550}.data-table .cell-primary a{color:var(--text);text-decoration:none}.data-table .cell-primary a:hover{color:var(--accent);text-decoration:underline}.data-table .cell-actions{width:1%;white-space:nowrap;text-align:right}.cell-actions-inner{display:inline-flex;align-items:center;gap:var(--space-1);justify-content:flex-end}.data-table td.nowrap,.data-table th.nowrap{white-space:nowrap}.cell-sub{display:block;color:var(--muted);font-size:13px;font-weight:400;margin-top:2px}@media (max-width: 639px){.data-list{border:0;background:transparent;overflow:visible}.data-list .data-table,.data-list .data-table tbody,.data-list .data-table tr,.data-list .data-table td{display:block}.data-list .data-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.data-list .data-table tbody{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.data-list .data-table tr{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised)}.data-list .data-table td{padding:6px 0;border:0;text-align:left}.data-list .data-table td[data-label]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-3)}.data-list .data-table td[data-label]>.progress-bar{flex:1 1 160px;justify-content:flex-end;min-width:0}.data-list .data-table td[data-label]>.cell-sub{flex-basis:100%;text-align:right;margin-top:0}.data-list .data-table td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:13px;flex:none}.data-list .data-table td.cell-primary{font-size:var(--text-md);padding-top:0}.data-list .data-table td.cell-wide-only{display:none}.data-list .data-table td.cell-actions{width:auto;text-align:left;padding-top:var(--space-2)}.data-list .data-table tbody tr:hover>td{background:transparent}.data-list .data-table tfoot{display:block}}.dialog{width:min(100% - 32px,480px);max-height:calc(100dvh - 32px);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--raised);color:var(--text);box-shadow:var(--shadow-pop);overflow:auto}.dialog-md{width:min(100% - 32px,640px)}.dialog[open]{animation:dialog-in var(--dur-enter) var(--ease-out)}.dialog::backdrop{background:var(--scrim)}.dialog-title{font-size:var(--text-xl);margin-bottom:var(--space-2)}.dialog-body{color:var(--muted);display:grid;gap:var(--space-3)}.dialog-body strong,.dialog-body b{color:var(--text)}.dialog-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5)}@media (max-width: 479px){.dialog-footer{flex-direction:column-reverse}.dialog-footer .btn{width:100%;min-height:44px}}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}.empty-state{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);border:1px dashed var(--border);border-radius:var(--radius-lg);text-align:center}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--accent-subtle);color:var(--accent);margin-bottom:var(--space-1)}.empty-state-title{font-weight:600}.empty-state-text{color:var(--muted);max-width:46ch}.empty-state-action{margin-top:var(--space-2)}.skeleton{display:grid;gap:var(--space-3);padding:var(--space-2) 0}.skeleton-line{display:block;height:14px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--surface),color-mix(in srgb,var(--border) 60%,var(--surface)),var(--surface));background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-line:nth-child(3n+2){width:72%}.skeleton-line:nth-child(3n+3){width:86%}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.progress-bar{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--muted)}.progress-bar progress{flex:1;min-width:80px;max-width:240px;height:8px;border:0;border-radius:var(--radius-full);background:var(--surface);overflow:hidden;-moz-appearance:none;appearance:none;-webkit-appearance:none}.progress-bar progress::-webkit-progress-bar{background:color-mix(in srgb,var(--border) 70%,var(--surface));border-radius:var(--radius-full)}.progress-bar progress::-webkit-progress-value{background:var(--accent);border-radius:var(--radius-full)}.progress-bar progress::-moz-progress-bar{background:var(--accent);border-radius:var(--radius-full)}.progress-bar-label{white-space:nowrap}.stat-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3);margin:0}.stat-card{display:grid;gap:2px;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised)}.stat-card dt{color:var(--muted);font-size:var(--text-sm)}.stat-card dd{margin:0;font-size:var(--text-3xl);font-weight:650;letter-spacing:-.02em;line-height:1.2}.stat-hint{font-size:var(--text-xs);color:var(--muted)}.avatar{--avatar-hue: 175;display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;background:hsl(var(--avatar-hue) 45% 88%);color:hsl(var(--avatar-hue) 55% 24%);font-weight:650;letter-spacing:.02em;line-height:1;-webkit-user-select:none;user-select:none}:root[data-theme=dark] .avatar{background:hsl(var(--avatar-hue) 30% 26%);color:hsl(var(--avatar-hue) 60% 86%)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .avatar{background:hsl(var(--avatar-hue) 30% 26%);color:hsl(var(--avatar-hue) 60% 86%)}}.stepper{display:flex;align-items:center;gap:var(--space-2);list-style:none;margin:0;padding:0;font-size:13px}.stepper-step{display:flex;align-items:center;gap:6px;color:var(--muted);white-space:nowrap}.stepper-step+.stepper-step:before{content:"";flex:1 1 16px;min-width:12px;height:1px;margin-right:var(--space-2);background:var(--border)}.stepper-step+.stepper-step{flex:1}.stepper-step.stepper-done+.stepper-step:before{background:var(--success)}.stepper-number{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:none;border-radius:50%;border:1px solid var(--border-strong);font-size:12px;font-weight:600}.stepper-current{color:var(--text);font-weight:600}.stepper-current .stepper-number{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.stepper-done{color:var(--success)}.stepper-done .stepper-number{background:var(--success-subtle);border-color:transparent;color:var(--success-text)}.spinner{display:inline-block;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:btn-spin .8s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.gen-cover{--cover-a: color-mix(in srgb, var(--accent) calc(18% + var(--cover-shift) * 6%), var(--bg));--cover-b: color-mix(in srgb, var(--accent) 62%, #0f1218);position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16 / 9;width:100%;overflow:hidden;container-type:inline-size;background:linear-gradient(var(--cover-angle, 135deg),var(--cover-a),var(--cover-b));color:#fff}.gen-cover:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.22}.gen-cover-v0:before{background:repeating-linear-gradient(45deg,#fff 0 2px,transparent 2px 14px)}.gen-cover-v1:before{background:radial-gradient(circle at 20% 30%,#fff 0 2px,transparent 3px) 0 0 / 18px 18px}.gen-cover-v2:before{background:repeating-linear-gradient(0deg,#fff 0 1px,transparent 1px 16px),repeating-linear-gradient(90deg,#fff 0 1px,transparent 1px 16px);opacity:.16}.gen-cover-v3:before{background:radial-gradient(circle at 85% 20%,rgba(255,255,255,.9) 0 18%,transparent 19%),radial-gradient(circle at 10% 95%,rgba(255,255,255,.7) 0 26%,transparent 27%);opacity:.18}.gen-cover-initials{position:relative;font-size:clamp(1.25rem,6cqi,2.5rem);font-weight:700;letter-spacing:.04em;text-shadow:0 1px 2px rgba(0,0,0,.2)}.gen-cover-thumb{width:64px;aspect-ratio:4 / 3;border-radius:var(--radius-sm)}.gen-cover-thumb .gen-cover-initials{font-size:15px}.mark{flex:none;display:block}.mark-tile{fill:var(--accent)}.mark-bar{fill:var(--on-accent)}.logo{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text);text-decoration:none}.logo-word{font-size:15px;letter-spacing:-.01em;white-space:nowrap}.logo-edata{font-weight:700}.logo-academy{color:var(--muted);font-weight:400}a.logo:hover{color:var(--text)}.menu-list{position:fixed;z-index:50;min-width:200px;max-width:min(320px,calc(100vw - 16px));padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised);box-shadow:var(--shadow-pop);animation:menu-in var(--dur-enter) var(--ease-out)}.menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:36px;padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;font-size:var(--text-sm);text-align:left;text-decoration:none;cursor:pointer}.menu-item .icon{color:var(--muted);flex:none}.menu-item:hover,.menu-item:focus-visible{background:var(--surface);color:var(--text);outline:none}.menu-item:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.menu-item[aria-disabled=true]{opacity:.5;cursor:not-allowed}.menu-item-danger,.menu-item-danger .icon{color:var(--danger)}.menu-item-danger:hover{background:var(--danger-subtle);color:var(--danger)}.menu-separator{height:1px;margin:var(--space-1) 0;background:var(--border)}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}}.page-shell{width:100%;margin:0 auto;padding:var(--space-5) var(--gutter) var(--space-8);overflow-wrap:break-word;min-width:0}.page-reading{max-width:calc(var(--w-reading) + 2 * var(--gutter))}.page-page{max-width:calc(var(--w-page) + 2 * var(--gutter))}.page-wide{max-width:calc(var(--w-wide) + 2 * var(--gutter))}.page-shell>*+*{margin-top:var(--space-5)}.page-shell>.page-header+*{margin-top:var(--space-5)}.page-header{display:grid;gap:var(--space-3)}.page-header-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3) var(--space-4)}.page-header-titles{display:grid;gap:var(--space-1);min-width:0;flex:1 1 20rem}.page-eyebrow{font-size:var(--text-sm);color:var(--muted);font-weight:500}.page-title-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.page-title{font-size:var(--text-3xl);line-height:1.2;letter-spacing:-.02em;min-width:0}.page-meta{color:var(--muted);font-size:var(--text-sm);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2)}.page-meta>span:not(.badge):has(+span:not(.badge)):after{content:"·";margin-left:var(--space-2);color:var(--border-strong)}.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}@media (max-width: 639px){.page-title{font-size:var(--text-2xl)}}.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:2px;list-style:none;margin:0;padding:0;font-size:var(--text-sm)}.crumb{display:inline-flex;align-items:center;gap:2px;min-width:0}.crumb a{color:var(--muted);text-decoration:none;padding:2px 4px;border-radius:var(--radius-sm);max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb a:hover{color:var(--text);text-decoration:underline}.crumb-sep{color:var(--border-strong)}.crumb-back{display:none;color:var(--muted)}@media (max-width: 639px){.crumb:not(.crumb-parent){display:none}.crumb-parent .crumb-back{display:inline}.crumb-parent .crumb-sep{display:none}}@media (min-width: 640px){.crumb-parent .crumb-sep{display:inline}}.skip-link{position:absolute;z-index:100;top:var(--space-2);left:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font-weight:600;text-decoration:none;transform:translateY(-200%)}.skip-link:focus{transform:none;color:var(--on-accent)}.tabs{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-5)}.tabs-underline{border-bottom:1px solid var(--border)}.tab{display:inline-flex;align-items:center;gap:var(--space-2);min-height:40px;color:var(--muted);font-weight:550;font-size:var(--text-sm);text-decoration:none;white-space:nowrap}.tabs-underline .tab{border-bottom:2px solid transparent;margin-bottom:-1px}.tabs-underline .tab:hover{color:var(--text)}.tabs-underline .tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab-count{min-width:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--surface);color:var(--muted);font-size:var(--text-xs);line-height:20px;text-align:center}.tabs-segmented{display:inline-flex;gap:2px;padding:3px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);max-width:100%;overflow-x:auto}.tabs-segmented .tab{min-height:32px;padding:0 var(--space-3);border-radius:var(--radius-sm)}.tabs-segmented .tab:hover{color:var(--text)}.tabs-segmented .tab.active{background:var(--raised);color:var(--text);box-shadow:0 1px 2px #1018281f}.tooltip-wrap{position:relative;display:inline-flex}.tooltip{position:absolute;z-index:40;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:4px 8px;border-radius:var(--radius-sm);background:var(--text);color:var(--bg);font-size:var(--text-xs);font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-fast)}.tooltip-wrap:hover .tooltip,.tooltip-wrap:focus-within .tooltip{opacity:1;transition-delay:.25s}.tooltip-wrap:focus-within .tooltip{transition-delay:0ms}.sortable-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.sortable-item{position:relative;touch-action:manipulation}.sortable-item.is-dragging{z-index:2}.sortable-item.is-dragging>*{border-color:var(--accent);box-shadow:var(--shadow-pop)}.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:36px;flex:none;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:grab;touch-action:none}.drag-handle:hover{background:var(--surface);color:var(--text)}.drag-handle:active{cursor:grabbing}.drag-handle:disabled{cursor:default;opacity:.4}.is-dragging .drag-handle{color:var(--accent)}.toaster{position:fixed;z-index:60;right:var(--space-4);bottom:var(--space-4);display:grid;gap:var(--space-2);width:min(100% - 32px,380px);pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-2) var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised);color:var(--text);box-shadow:var(--shadow-pop);font-size:var(--text-sm);pointer-events:auto;animation:toast-in var(--dur-enter) var(--ease-out)}.toast-icon{margin-top:1px;flex:none}.toast-success .toast-icon{color:var(--success)}.toast-info .toast-icon{color:var(--accent)}.toast-error{border-color:color-mix(in srgb,var(--danger) 45%,var(--bg))}.toast-error .toast-icon{color:var(--danger)}.toast-message{flex:1;min-width:0;padding-top:1px}.toast .btn-icon{margin:-6px 0}@media (max-width: 639px){.toaster{left:var(--space-4);right:var(--space-4);width:auto;bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.shell{min-height:100vh;min-height:100dvh;background:var(--bg)}.shell-content{min-width:0}.sidebar{display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border)}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:64px;padding:0 var(--space-4)}.sidebar-logo,.topbar-logo{display:inline-flex;text-decoration:none;border-radius:var(--radius-sm)}.sidebar-body{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-3) var(--space-4)}.sidebar-foot{position:relative;padding:var(--space-2) var(--space-3);border-top:1px solid var(--border)}.main-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.nav-group+.nav-group{margin-top:var(--space-4)}.nav-group-label{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--text-xs);font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.nav-link{display:flex;align-items:center;gap:10px;min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-sm);font-weight:500;text-decoration:none;transition:background-color var(--dur-fast)}.nav-link .icon{color:var(--muted);flex:none}.nav-link:hover{background:color-mix(in srgb,var(--border) 55%,var(--surface));color:var(--text)}.nav-link.active{background:var(--accent-subtle);color:var(--accent-text);font-weight:600}.nav-link.active .icon{color:var(--accent)}:root[data-theme=dark] .nav-link.active{color:var(--accent)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .nav-link.active{color:var(--accent)}}.user-menu-trigger{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:var(--space-2);border:0;border-radius:var(--radius-md);background:transparent;color:var(--text);text-align:left;cursor:pointer}.user-menu-trigger:hover{background:color-mix(in srgb,var(--border) 55%,var(--surface))}.user-menu-text{display:grid;min-width:0;flex:1;line-height:1.3}.user-menu-label{font-size:var(--text-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-role{font-size:var(--text-xs);color:var(--muted)}.user-menu-chevron{color:var(--muted);transform:rotate(180deg);transition:transform var(--dur-fast)}.user-menu-chevron.open{transform:none}.user-menu-panel{position:absolute;z-index:30;left:var(--space-3);right:var(--space-3);bottom:calc(100% - 4px);display:grid;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised);box-shadow:var(--shadow-pop);animation:menu-in var(--dur-enter) var(--ease-out)}.user-menu-who{display:grid;gap:2px;min-width:0}.user-menu-name{font-weight:600;overflow-wrap:anywhere}.user-menu-email{font-size:var(--text-xs);color:var(--muted);overflow-wrap:anywhere}.user-menu-field{display:grid;gap:6px}.user-menu-field .language-switcher{width:100%}.user-menu-panel .radio-cards-grid{gap:4px}.user-menu-panel .radio-card{padding:var(--space-2);justify-content:center}.user-menu-panel .radio-card input{position:absolute;opacity:0;width:1px;height:1px}.user-menu-panel .radio-card .check-label{font-size:var(--text-xs)}.theme-option{display:inline-flex;flex-direction:column;align-items:center;gap:4px}.user-menu-logout{justify-content:flex-start}@keyframes menu-in{0%{opacity:0;transform:translateY(4px)}}.topbar{position:sticky;top:0;z-index:25;display:none;align-items:center;gap:var(--space-2);height:56px;padding:0 var(--space-2) 0 var(--space-1);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px)}.topbar-section{min-width:0;padding-left:var(--space-3);margin-left:var(--space-1);border-left:1px solid var(--border);font-size:var(--text-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-avatar{margin-left:auto;display:inline-flex}@media (min-width: 1024px){.shell{display:grid;grid-template-columns:240px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;height:100dvh}.sidebar-close,.sidebar-scrim{display:none}}@media (max-width: 1023px){.topbar{display:flex}.sidebar{position:fixed;z-index:45;inset:0 auto 0 0;width:min(300px,86vw);transform:translate(-100%);visibility:hidden;box-shadow:var(--shadow-pop);transition:transform var(--dur-enter) var(--ease-out),visibility 0s linear var(--dur-enter)}.sidebar.open{transform:none;visibility:visible;transition:transform var(--dur-enter) var(--ease-out)}.sidebar-scrim{position:fixed;z-index:44;top:0;right:0;bottom:0;left:0;background:var(--scrim);animation:fade-in var(--dur-enter)}@media (max-width: 380px){.topbar-logo .logo-word{display:none}}}@keyframes fade-in{0%{opacity:0}}.auth-layout{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--accent-subtle)}.auth-layout-bar{display:flex;justify-content:flex-end;padding:var(--space-3) var(--space-4) 0}.auth-layout-bar .language-switcher{width:auto;background-color:var(--raised)}.auth-page{flex:1;display:grid;place-items:start center;padding:var(--space-6) var(--gutter) var(--space-8)}@media (min-width: 640px){.auth-page{place-items:center;padding-top:var(--space-5)}}.auth-card{width:100%;max-width:420px;display:grid;gap:var(--space-4);padding:var(--space-6) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--raised);box-shadow:var(--shadow-sm)}@media (max-width: 479px){.auth-card{padding:var(--space-5) var(--space-4)}}.auth-title{font-size:var(--text-2xl)}.auth-intro{color:var(--muted)}.auth-form{display:grid;gap:var(--space-4)}.auth-below{display:flex;justify-content:center}.auth-link{min-height:36px;padding:0 var(--space-2);border:0;background:none;color:var(--accent);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;border-radius:var(--radius-sm)}.auth-link:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:3px}.password-input{position:relative}.password-input .input{padding-right:52px}.password-toggle{position:absolute;top:50%;right:4px;transform:translateY(-50%)}.totp-setup{display:grid;justify-items:center;gap:var(--space-2);text-align:center}.totp-qr{padding:12px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;line-height:0}.totp-qr svg{width:168px;height:168px}.totp-secret{font-size:var(--text-sm);letter-spacing:.04em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.public-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.public-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:56px;padding:0 var(--space-4);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px)}.public-bar-title{display:flex;align-items:center;gap:10px;min-width:0}.public-bar-name{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-bar .language-switcher{flex:none;width:auto;min-height:36px;font-size:var(--text-sm)}.public-main{flex:1;display:flex;flex-direction:column}.public-inner{width:100%;max-width:calc(var(--w-reading) + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter)}.public-hero{background:var(--accent-subtle);border-bottom:1px solid color-mix(in srgb,var(--accent) 12%,var(--bg))}.public-hero-inner{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:28px;padding-bottom:24px}.public-eyebrow{font-size:var(--text-xs);font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}:root:not([data-theme=dark]) .public-eyebrow{color:var(--accent-hover)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .public-eyebrow{color:var(--accent)}}.public-title{font-size:var(--text-3xl);line-height:1.15;letter-spacing:-.02em}.public-when{display:flex;align-items:center;gap:var(--space-2);color:var(--muted);font-size:15px}.public-when .icon{flex:none}.public-hero-compact .public-hero-inner{gap:6px;padding-top:20px;padding-bottom:20px}.public-hero-compact .public-title{font-size:var(--text-2xl)}.public-hero-compact .public-when{font-size:var(--text-sm)}@media (min-width: 640px){.public-hero-inner{padding-top:40px;padding-bottom:32px}.public-title{font-size:var(--text-4xl)}.public-hero-compact .public-title{font-size:var(--text-3xl)}}.public-body{display:flex;flex-direction:column;gap:20px;padding-top:var(--space-5);padding-bottom:var(--space-7)}.public-lead{font-size:var(--text-md)}.public-form{display:flex;flex-direction:column;gap:var(--space-4)}.public-form .btn-lg{width:100%}@media (min-width: 640px){.public-form .btn-lg{width:auto;align-self:flex-start;min-width:220px}}.public-note{display:flex;align-items:flex-start;gap:var(--space-2);font-size:13px;color:var(--muted)}.public-note .icon{flex:none;margin-top:2px}.public-sent{display:grid;gap:var(--space-1)}.public-link-button{justify-self:start;align-self:flex-start;min-height:32px;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-size:var(--text-sm);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.public-link-button:hover{color:var(--accent-hover)}.public-resend{display:grid;gap:var(--space-2);justify-items:start;padding-top:var(--space-4);border-top:1px solid var(--border)}.public-resend p{font-size:var(--text-sm);color:var(--muted)}.public-error{color:var(--danger);font-size:var(--text-sm);font-weight:500}.public-done{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-6) 0;text-align:center}.public-done-check{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--success-subtle);color:var(--success);animation:pop-in .32s var(--ease-out)}@keyframes pop-in{0%{transform:scale(.6);opacity:0}}.state-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 20px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--raised);text-align:center}.state-card-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--accent-subtle);color:var(--accent)}.state-card-danger .state-card-icon{background:var(--danger-subtle);color:var(--danger)}.state-card-title{font-size:var(--text-xl);line-height:1.3}h1.state-card-title{font-size:var(--text-2xl)}.state-card-text{display:grid;gap:var(--space-2);color:var(--muted);max-width:46ch}.state-card-text [role=alert]{color:inherit}.state-card .btn{margin-top:var(--space-1)}.state-checking{display:inline-flex;justify-self:center;align-items:center;gap:var(--space-2);font-size:13px;color:var(--muted)}.state-checking-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-subtle);animation:pulse 2s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 7px transparent}}.public-centered{display:grid;place-items:center;padding-top:var(--space-7);padding-bottom:var(--space-7)}.public-centered .state-card{width:100%;max-width:480px}.public-aside{font-size:var(--text-sm);color:var(--muted);text-align:center}.public-content{padding-top:var(--space-5);padding-bottom:var(--space-8)}.public-content .prose{max-width:none}.public-footer{padding:var(--space-4);border-top:1px solid var(--border);font-size:13px;color:var(--muted);text-align:center}@media print{.public-bar,.public-footer{display:none}.public-hero{background:none;border:0}.public-hero-inner{padding:0 0 12pt}.public-title{color:#000}}.status-page{display:grid;place-items:center;min-height:70vh;min-height:70dvh}.status-card{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-6) var(--space-5)}.status-logo{margin-bottom:var(--space-2)}.shell-content .status-logo{display:none}.status-icon{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:var(--radius-full);background:var(--accent-subtle);color:var(--accent)}.status-title{margin:0;font-size:var(--text-2xl);line-height:1.3}.status-text{margin:0;color:var(--muted)}.status-action{margin-top:var(--space-2)}.app-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:50vh;color:var(--muted)}.course-thumb{flex:none;width:64px;aspect-ratio:4 / 3;border-radius:var(--radius-sm);overflow:hidden}.course-thumb .gen-cover-initials{font-size:15px}.course-thumb-image{display:block;background:var(--surface)}.course-thumb-image img{display:block;width:100%;height:100%;object-fit:cover}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-4);list-style:none;margin:0;padding:0}.course-card{position:relative;display:flex;flex-direction:column;min-width:0;height:100%;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised);overflow:hidden;transition:border-color var(--dur-fast),box-shadow var(--dur-fast),transform var(--dur-fast)}.course-card-link:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:var(--shadow-sm)}.course-card-link:focus-within{outline:2px solid var(--accent);outline-offset:2px}.course-card-cover{flex:none}.course-card-image{width:100%;aspect-ratio:16 / 9;border-radius:0}.course-card-image.course-thumb-image{display:block;background:var(--surface)}.course-card-image img{display:block;width:100%;height:100%;object-fit:cover}.course-card-body{flex:1;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4)}.course-card-badge{align-self:flex-start}.course-card-title{font-size:var(--text-md);font-weight:650;line-height:1.35}.course-card-title a{color:var(--text);text-decoration:none}.course-card-title a:focus-visible{outline:none}.course-card-title a:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.course-card-description{color:var(--muted);font-size:var(--text-sm);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.course-card-foot{margin-top:auto;display:grid;gap:var(--space-2);padding-top:var(--space-2)}.course-card-meta{font-size:13px;color:var(--muted)}.course-card-action{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);font-weight:650;color:var(--accent)}:root:not([data-theme=dark]) .course-card-action{color:var(--accent-hover)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .course-card-action{color:var(--accent)}}.course-card-link:hover .course-card-action .icon{transform:translate(2px)}.course-card-action .icon{transition:transform var(--dur-fast)}.prose{color:var(--text);font-size:1.0625rem;line-height:1.75;max-width:70ch;overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{line-height:1.3;letter-spacing:-.015em;font-weight:650;margin:2em 0 .6em}.prose h2{font-size:1.375rem;padding-bottom:.3em;border-bottom:1px solid var(--border)}.prose h3{font-size:1.15rem}.prose h4{font-size:1.0625rem}.prose h5,.prose h6{font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.prose p,.prose ul,.prose ol,.prose pre,.prose table,.prose blockquote,.prose figure,.prose aside{margin:1.1em 0}.prose ul,.prose ol{padding-left:1.5em}.prose li{margin:.35em 0}.prose li::marker{color:var(--muted)}.prose li>ul,.prose li>ol{margin:.35em 0}.prose input[type=checkbox]{margin-right:.5em;accent-color:var(--accent)}.prose ul:has(>li>input[type=checkbox]){list-style:none;padding-left:.25em}.prose a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.prose a:hover{color:var(--accent-hover);text-decoration-thickness:2px}.prose a.md-external:after{content:" ↗";font-size:.8em;text-decoration:none;display:inline-block}.prose blockquote{padding:.6em 1.1em;border-left:3px solid var(--border-strong);background:var(--surface);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--muted)}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose .callout{--callout: var(--accent);display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--callout) 10%,var(--bg));font-size:.95rem;line-height:1.6}.prose .callout-tip{--callout: var(--success)}.prose .callout-warning{--callout: var(--warning);background:var(--warning-subtle)}.prose .callout-icon{color:var(--callout);flex:none;margin-top:3px}.prose .callout-body{min-width:0}.prose .callout-body>*{margin:.4em 0}.prose .callout-body>:first-child{margin-top:0}.prose .callout-body>:last-child{margin-bottom:0}.prose .callout-label{font-weight:650;color:var(--text)}.prose hr{border:0;border-top:1px solid var(--border);margin:2.5em 0}.prose img{display:block;max-width:100%;height:auto;margin:1.6em auto;border-radius:var(--radius-lg);border:1px solid var(--border)}.prose .md-image-loading{display:block;height:160px;margin:1.6em 0;border-radius:var(--radius-lg);background:var(--surface)}.prose .md-image-missing{color:var(--muted);font-style:italic}.prose code{font-family:var(--font-mono);font-size:.88em;padding:.15em .4em;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.prose pre{padding:1em 1.2em;overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);line-height:1.55;max-width:100%}.prose pre code{padding:0;background:none;border:0;font-size:.9em}.prose table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;font-size:.95rem}.prose th,.prose td{padding:.55em .9em;border:1px solid var(--border);text-align:left}.prose th{background:var(--surface);font-weight:600}.prose tr:nth-child(2n) td{background:color-mix(in srgb,var(--surface) 50%,transparent)}.prose{--code-keyword: #7c3aed;--code-string: #0a7b48;--code-number: #b45309;--code-comment: #667085;--code-title: #0b5fa5;--code-builtin: var(--accent);--code-attr: #9a3412}:root[data-theme=dark] .prose{--code-keyword: #c4a7ff;--code-string: #7ee2a8;--code-number: #f6b26b;--code-comment: #8b95a7;--code-title: #8ec5ff;--code-attr: #f0a37a}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .prose{--code-keyword: #c4a7ff;--code-string: #7ee2a8;--code-number: #f6b26b;--code-comment: #8b95a7;--code-title: #8ec5ff;--code-attr: #f0a37a}}.prose .hljs{color:var(--text);background:none}.prose .hljs-keyword,.prose .hljs-selector-tag,.prose .hljs-doctag,.prose .hljs-template-tag,.prose .hljs-type{color:var(--code-keyword)}.prose .hljs-string,.prose .hljs-regexp,.prose .hljs-addition,.prose .hljs-template-variable{color:var(--code-string)}.prose .hljs-number,.prose .hljs-literal,.prose .hljs-symbol,.prose .hljs-bullet{color:var(--code-number)}.prose .hljs-comment,.prose .hljs-quote,.prose .hljs-meta{color:var(--code-comment);font-style:italic}.prose .hljs-title,.prose .hljs-section,.prose .hljs-function .hljs-title,.prose .hljs-title.function_{color:var(--code-title)}.prose .hljs-built_in,.prose .hljs-name,.prose .hljs-selector-id,.prose .hljs-selector-class{color:var(--code-builtin)}.prose .hljs-attr,.prose .hljs-attribute,.prose .hljs-variable,.prose .hljs-params,.prose .hljs-property{color:var(--code-attr)}.prose .hljs-deletion{color:var(--danger)}.prose .hljs-emphasis{font-style:italic}.prose .hljs-strong{font-weight:700}@media print{.prose{max-width:none;color:#000}.prose a{color:#000}.prose a[href^=http]:after{content:" (" attr(href) ")";font-size:.85em;word-break:break-all}.prose a.md-external:after{content:" (" attr(href) ")"}.prose pre,.prose blockquote,.prose .callout,.prose img{break-inside:avoid}}.editor{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg)}.editor-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.editor-bar-titles{display:grid;gap:2px;min-width:0;flex:1 1 18rem}.editor-title{font-size:var(--text-lg);line-height:1.3;overflow-wrap:anywhere}.editor-bar-side{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.editor-state{font-size:var(--text-sm);color:var(--muted);display:inline-flex;align-items:center;gap:6px}.editor-state.is-dirty{color:var(--warning);font-weight:550}.editor-state.is-dirty:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.editor-state.is-error{color:var(--danger);font-weight:550}.editor-note{font-size:13px;color:var(--muted)}.editor-note.is-warning{color:var(--warning)}.editor-draft{margin:var(--space-3) var(--space-4) 0}.editor-toolbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface)}.toolbar-group{display:flex;align-items:center;gap:2px;padding-right:var(--space-1)}.toolbar-group+.toolbar-group{padding-left:var(--space-1);border-left:1px solid var(--border)}.toolbar-help{margin-left:auto;position:relative;border-left:0!important}.markdown-help{position:absolute;z-index:30;top:calc(100% + 6px);right:0;width:min(340px,90vw);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised);box-shadow:var(--shadow-pop)}.markdown-help-title{font-weight:650;margin-bottom:var(--space-2)}.markdown-help ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.markdown-help code{font-size:13px;color:var(--text);white-space:pre-wrap}.editor-pane-tabs{display:none}.editor-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.editor-body.has-rail{grid-template-columns:240px minmax(0,1fr) minmax(0,1fr)}.editor-body.has-rail.rail-closed{grid-template-columns:48px minmax(0,1fr) minmax(0,1fr)}.editor-source{position:relative;min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--border)}.editor-source textarea{flex:1;width:100%;min-height:0;resize:none;border:0;border-radius:0;padding:var(--space-5);background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:.92rem;line-height:1.65;outline:none}.editor-source textarea:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.editor-count{padding:var(--space-2) var(--space-5);border-top:1px solid var(--border);font-size:12px;color:var(--muted)}.editor-preview{min-height:0;overflow:auto;padding:var(--space-5) var(--space-6)}.page-rail{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);border-right:1px solid var(--border);background:var(--surface)}.page-rail.is-closed{align-items:center}.page-rail-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-left:var(--space-2)}.page-rail-title{font-size:var(--text-xs);font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.page-rail-list{gap:2px}.page-rail-item{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid transparent;border-radius:var(--radius-md)}.page-rail-item.is-current{background:var(--raised);border-color:var(--accent)}.page-rail-item .drag-handle{width:22px}.page-rail-link{display:grid;flex:1;min-width:0;padding:var(--space-1) var(--space-1);color:var(--text);text-decoration:none;border-radius:var(--radius-sm)}.page-rail-link:hover .page-rail-number{color:var(--accent)}.page-rail-number{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:550}.page-rail-number .icon{color:var(--muted);flex:none}.page-rail-item.is-current .page-rail-number{font-weight:650}.page-rail-excerpt{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-rail-add{align-self:flex-start}@media (max-width: 900px){.editor-pane-tabs{display:flex;gap:2px;margin:var(--space-2) var(--space-3) 0;padding:3px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);align-self:flex-start}.editor-pane-tabs button{min-height:36px;padding:0 var(--space-4);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font:inherit;font-size:var(--text-sm);font-weight:550;cursor:pointer}.editor-pane-tabs button[aria-pressed=true]{background:var(--raised);color:var(--text);box-shadow:0 1px 2px #1018281f}.editor-body,.editor-body.has-rail,.editor-body.has-rail.rail-closed{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.editor-body:not(.has-rail){grid-template-rows:minmax(0,1fr)}.editor-body[data-pane=write] .editor-preview,.editor-body[data-pane=preview] .editor-source{display:none}.editor-source{border-right:0}.page-rail{max-height:30vh;border-right:0;border-bottom:1px solid var(--border)}.page-rail.is-closed{flex-direction:row;max-height:none}.editor-preview{padding:var(--space-4)}}.people-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised)}.person-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);min-height:56px}.person-row+.person-row{border-top:1px solid var(--border)}.person-text{display:grid;min-width:0;flex:1;line-height:1.35}.person-name{font-weight:550;overflow-wrap:anywhere}a.person-name{color:var(--text);text-decoration:none}a.person-name:hover{color:var(--accent);text-decoration:underline}.person-email{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.person-action{flex:none}.group-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--accent-subtle);color:var(--accent)}.people-empty{padding:var(--space-4);color:var(--muted)}.access-forms{display:grid;gap:var(--space-3)}.inline-field{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2)}.inline-field .field{flex:1 1 16rem}.lessons-panel{display:grid;gap:var(--space-4)}.lesson-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-1);min-height:60px}.lesson-row.is-archived{background:var(--surface)}.lesson-row.is-archived .lesson-row-title,.lesson-row.is-archived .lesson-row-number{opacity:.7}.lesson-row-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;border-radius:50%;background:var(--surface);color:var(--muted);font-size:var(--text-sm);font-weight:600}.lesson-row-main{display:grid;gap:2px;min-width:0;flex:1}.lesson-row-kind{flex:none;color:var(--muted)}.lesson-row-title{font-weight:600;color:var(--text);text-decoration:none;overflow-wrap:anywhere}.lesson-row-title:hover{color:var(--accent);text-decoration:underline}.lesson-row-meta{font-size:13px;color:var(--muted)}.lesson-row-meta.is-warning{color:var(--warning)}.sortable-hint{font-size:13px;color:var(--muted)}.lesson-add{padding-top:var(--space-2)}.course-details,.course-access{display:grid;gap:var(--space-6)}.course-details[hidden],.course-access[hidden]{display:none}.course-settings-layout{display:grid;gap:var(--space-5);align-items:start}@media (min-width: 900px){.course-settings-layout{grid-template-columns:minmax(0,1fr) 280px}}.course-settings{display:grid;gap:var(--space-4);max-width:640px}.card-preview{display:grid;gap:var(--space-2)}@media (min-width: 900px){.card-preview{position:sticky;top:var(--space-5)}}@media (max-width: 899px){.card-preview{max-width:320px}}.card-preview-label{font-size:var(--text-xs);font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.cover-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.cover-preview{width:200px;aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;flex:none}.cover-preview img{display:block;width:100%;height:100%;object-fit:cover}.cover-actions{display:grid;gap:var(--space-2)}.list-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.list-search{flex:0 1 280px;min-width:200px}.course-cell{display:inline-flex;align-items:center;gap:var(--space-3);min-width:0}.course-cell .course-thumb{width:56px}@media (max-width: 639px){.list-search{flex-basis:100%}}.list-toolbar-start{justify-content:flex-start;align-items:flex-end}.role-select{width:auto;min-width:9rem}.lesson-steps{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:step}.lesson-step{position:relative;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0}.lesson-step+.lesson-step{border-top:1px solid var(--border)}.lesson-step-marker{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border-radius:50%;border:1px solid var(--border-strong);background:var(--raised);color:var(--muted);font-size:var(--text-sm);font-weight:650}.state-finished .lesson-step-marker{border-color:transparent;background:var(--success-subtle);color:var(--success)}.state-unlocked .lesson-step-marker{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.state-locked .lesson-step-marker{border-style:dashed}.state-new .lesson-step-marker{border-color:var(--accent);color:var(--accent)}.lesson-step-text{display:grid;gap:2px;min-width:0;padding-top:5px}.lesson-step-title{font-weight:600;color:var(--text);text-decoration:none;overflow-wrap:anywhere}a.lesson-step-title:hover{color:var(--accent);text-decoration:underline}.state-locked .lesson-step-title{color:var(--muted)}.lesson-step-state{font-size:13px;color:var(--muted)}.state-unlocked .lesson-step-state,.state-new .lesson-step-state{color:var(--accent-hover);font-weight:550}:root[data-theme=dark] .state-unlocked .lesson-step-state,:root[data-theme=dark] .state-new .lesson-step-state{color:var(--accent)}.lesson-step-description{font-size:var(--text-sm);color:var(--muted)}.lesson-steps.is-compact .lesson-step{gap:var(--space-2);padding:var(--space-2);border:0;border-radius:var(--radius-md)}.lesson-steps.is-compact .lesson-step+.lesson-step{border-top:0}.lesson-steps.is-compact .lesson-step.is-current{background:var(--accent-subtle)}.lesson-steps.is-compact .lesson-step-marker{width:24px;height:24px}.lesson-steps.is-compact .lesson-step-text{padding-top:2px}.lesson-steps.is-compact .lesson-step-title{font-size:var(--text-sm);font-weight:550}.lesson-steps.is-compact .is-current .lesson-step-title{font-weight:650}.lesson-steps.is-compact .lesson-step-state{font-size:12px}.course-hero{display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--raised)}@media (min-width: 760px){.course-hero{grid-template-columns:320px minmax(0,1fr)}}.course-hero-cover{width:100%;height:100%;min-height:180px;aspect-ratio:auto;border-radius:0}.course-hero-cover img{display:block;width:100%;height:100%;object-fit:cover}.course-hero-body{display:grid;align-content:center;gap:var(--space-3);padding:var(--space-5)}.course-hero-description{color:var(--muted);max-width:60ch}.group-create{display:grid;gap:var(--space-3);align-items:end;grid-template-columns:minmax(0,1fr)}@media (min-width: 800px){.group-create{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) auto}}.member-search{position:relative;max-width:520px}.member-results{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;max-height:320px;overflow:auto;margin:0;padding:var(--space-1);list-style:none;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised);box-shadow:var(--shadow-pop)}.member-results .person-row{min-height:48px;padding:var(--space-1) var(--space-2);border:0}.member-results .person-row+.person-row{border-top:0}.member-results-note{padding:var(--space-2) var(--space-3);font-size:13px;color:var(--muted)}.member-results-note[role=alert]{color:var(--danger)}.assignment-kind{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.page-content{display:grid;gap:var(--space-5)}.file-image{margin:0}.file-image img{display:block;max-width:100%;height:auto;margin:0 auto;border-radius:var(--radius-md)}.file-pdf{display:grid;gap:var(--space-3)}.file-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised)}.file-card>.icon{color:var(--muted);flex:none}.file-card-text{display:grid;gap:2px;flex:1 1 180px;min-width:0}.file-card-name{font-weight:600;overflow-wrap:anywhere}.file-card-meta{color:var(--muted);font-size:var(--text-sm)}.file-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.file-pdf-frame{display:block;width:100%;height:min(80vh,900px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.file-note{margin:0;color:var(--muted);font-size:var(--text-sm)}.video{margin:0;display:grid;gap:var(--space-2)}.video-frame{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:var(--radius-lg);overflow:hidden;background:#000}.video-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.video-consent{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:center;overflow:auto}.video-consent>.icon{color:var(--muted)}.video-consent p{margin:0;max-width:52ch;font-size:var(--text-sm);color:var(--muted)}.video-consent .check{text-align:left}.video-caption{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.video-watch{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm)}@media (max-width: 639px){.video-consent{aspect-ratio:auto;min-height:220px}}.quiz{display:grid;gap:var(--space-4)}.quiz-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-3)}.quiz-title{margin:0;font-size:1.25rem;font-weight:650}.quiz-meta{margin:0;color:var(--muted);font-size:var(--text-sm)}.quiz-head .badge{align-self:center}.quiz-form{display:grid;gap:var(--space-4)}.quiz-questions{display:grid;gap:var(--space-4);margin:0;padding:0;list-style:none}.quiz-question{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised)}.quiz-number{margin:0;color:var(--muted);font-size:var(--text-sm);font-weight:600}.quiz-text .prose{font-size:1rem}.quiz-options{display:grid;gap:var(--space-2);margin:0;padding:0;border:0;min-width:0}.quiz-options:disabled .check{opacity:.7}.quiz-check{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md)}.quiz-check:has(input:checked){border-color:var(--accent);background:var(--accent-subtle)}.quiz-hint{margin:0;color:var(--muted);font-size:var(--text-sm)}.quiz-verdict{justify-self:start}.quiz-result:focus{outline:none}.quiz-result:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-lg)}.quiz-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.page-unsupported{color:var(--muted)}.lesson-header{display:grid;gap:var(--space-1)}.lesson-article .prose{max-width:none}.lesson-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border)}.lesson-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex:1 1 320px}.lesson-pager-status{display:grid;justify-items:center;gap:6px;font-size:var(--text-sm);color:var(--muted)}.lesson-dots{display:flex;gap:6px}.lesson-dots span{width:7px;height:7px;border-radius:50%;background:var(--border-strong);opacity:.6}.lesson-dots span.is-current{background:var(--accent);opacity:1;width:18px;border-radius:var(--radius-full)}.lesson-main-action{display:flex;justify-content:flex-end}.lesson-pending .banner-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.lesson-done{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--success-subtle);color:var(--text)}.lesson-done-check{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;border-radius:50%;background:var(--success);color:var(--bg);animation:done-pop .38s var(--ease-out)}@keyframes done-pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.12)}to{transform:scale(1)}}.course-outline{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);padding:var(--space-1) 0}.course-outline-back{display:inline-flex;align-items:center;gap:6px;padding:var(--space-1) var(--space-2);color:var(--muted);font-size:var(--text-sm);text-decoration:none;border-radius:var(--radius-sm)}.course-outline-back:hover{color:var(--text);background:color-mix(in srgb,var(--border) 55%,var(--surface))}.course-outline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);padding:0 var(--space-2)}.course-outline-title{font-weight:650;color:var(--text);text-decoration:none;line-height:1.35;overflow-wrap:anywhere}.course-outline-title:hover{color:var(--accent)}.course-outline .progress-bar{padding:0 var(--space-2)}.course-outline .progress-bar progress{min-width:48px;max-width:none}@media (max-width: 639px){.lesson-reader{padding-bottom:140px}html:has(.lesson-reader){scroll-padding-bottom:160px}.lesson-bar{position:fixed;z-index:20;left:0;right:0;bottom:0;margin:0!important;padding:var(--space-3) var(--gutter) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in srgb,var(--bg) 96%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lesson-pager,.lesson-main-action{flex-basis:100%}.lesson-main-action .btn{width:100%;min-height:44px}}.continue-hero{display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--accent-subtle)}@media (min-width: 720px){.continue-hero{grid-template-columns:300px minmax(0,1fr)}}.continue-hero-cover{width:100%;height:100%;min-height:160px;aspect-ratio:auto;border-radius:0}.continue-hero-cover img{display:block;width:100%;height:100%;object-fit:cover}.continue-hero-body{display:grid;align-content:center;gap:var(--space-3);padding:var(--space-5)}.continue-hero-eyebrow{font-size:var(--text-xs);font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-hover)}:root[data-theme=dark] .continue-hero-eyebrow{color:var(--accent)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .continue-hero-eyebrow{color:var(--accent)}}.continue-hero-title{font-size:var(--text-2xl)}.catalog-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--text);text-decoration:none;transition:border-color var(--dur-fast),background-color var(--dur-fast)}.catalog-card:hover{border-color:var(--accent);background:var(--accent-subtle);color:var(--text)}.catalog-card>.icon{margin-left:auto;color:var(--muted)}.catalog-card-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--accent-subtle);color:var(--accent);flex:none}.catalog-card-text{display:grid;gap:2px}.catalog-card-title{font-weight:650}.catalog-card-hint{font-size:var(--text-sm);color:var(--muted)}.editor-body.is-form{grid-template-columns:minmax(0,1fr)}.editor-body.is-form.has-rail{grid-template-columns:240px minmax(0,1fr)}.editor-body.is-form.has-rail.rail-closed{grid-template-columns:48px minmax(0,1fr)}.editor-form{min-height:0;overflow:auto;padding:var(--space-5) var(--space-4) var(--space-8)}.editor-form-inner{display:grid;gap:var(--space-5);max-width:760px;margin:0 auto}.editor-intro-preview{padding:var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-lg)}.page-form{display:grid;gap:var(--space-4)}.page-form-file{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.page-form-file .file-card{flex:1 1 260px}.page-form-preview{display:grid}.page-form-number{max-width:8rem}.quiz-editor-list{display:grid;gap:var(--space-4);margin:0;padding:0;list-style:none}.quiz-editor-question{display:grid;gap:var(--space-4)}.quiz-editor-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.quiz-editor-title{margin:0;font-size:var(--text-md, 1rem);font-weight:650}.quiz-editor-answers{display:grid;gap:var(--space-2);margin:0;padding:0;border:0;min-width:0}.quiz-editor-answers legend{padding:0;margin-bottom:var(--space-2)}.quiz-editor-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-2)}.quiz-editor-right{width:20px;height:20px;margin:0;accent-color:var(--success);cursor:pointer}.quiz-editor-option-error{grid-column:2 / -1;margin:0}.quiz-editor-answers>.btn{justify-self:start}.quiz-editor-add{justify-self:start}@media (max-width: 900px){.editor-body.is-form.has-rail,.editor-body.is-form.has-rail.rail-closed{grid-template-columns:minmax(0,1fr)}.editor-form{padding:var(--space-4) var(--space-3) var(--space-7)}}.presenter{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--text)}.presenter-center{display:grid;place-items:center;padding:var(--space-6)}.presenter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) 28px}.presenter-bar .logo-word{font-size:17px}.presenter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);transition:opacity var(--dur-enter) var(--ease-out)}.presenter-kbd{padding:0 6px;border:1px solid var(--border);border-radius:4px;font-family:var(--font-sans);font-size:var(--text-xs);color:var(--muted)}.presenter-idle .presenter-controls:not(:focus-within){opacity:0}.presenter-idle{cursor:none}.presenter-warning{padding:0 28px}.presenter-main{flex:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(32px,5vw,72px);padding:var(--space-4) clamp(20px,4vw,56px) var(--space-7)}.presenter-text{flex:1 1 420px;max-width:660px;display:flex;flex-direction:column;gap:20px;min-width:0}.presenter-eyebrow{font-size:15px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.presenter-title{font-size:clamp(2.25rem,4.6vw,4.25rem);line-height:1.05;letter-spacing:-.03em}.presenter-when{font-size:clamp(1.25rem,1.9vw,1.75rem);color:var(--muted)}.presenter-join{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-3)}.presenter-scan{font-size:clamp(1.5rem,2.3vw,2.125rem);font-weight:650;letter-spacing:-.015em;line-height:1.2}.presenter-or{font-size:clamp(1.1rem,1.5vw,1.375rem);color:var(--muted)}.presenter-link{font-family:var(--font-mono);font-size:clamp(1rem,1.6vw,1.5rem);line-height:1.4;word-break:break-all;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.presenter-count{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--space-3);padding:10px 18px;border-radius:var(--radius-full);background:var(--success-subtle);color:var(--success-text);font-size:clamp(1.15rem,1.7vw,1.5rem);font-weight:650;font-variant-numeric:tabular-nums}.presenter-qr{flex:0 1 auto;margin:0}.presenter-qr-frame{width:min(60vmin,560px,100%);aspect-ratio:1;box-sizing:border-box;padding:clamp(16px,2.5vmin,32px);border-radius:20px;background:#fff;box-shadow:0 8px 40px #10182829}.presenter-qr-frame svg{display:block;width:100%;height:100%}@media (max-width: 639px){.presenter-qr-frame{width:min(80vw,420px)}}.report-scroll{max-height:70vh;overflow:auto}@media (max-width: 639px){.report-scroll{max-height:none}}.report-scroll .progress-bar progress{min-width:64px;max-width:120px}.access-label{display:grid;gap:2px;justify-items:start}.access-inactive{color:var(--muted);font-style:italic}.report-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3)}.report-filters .field{flex:1 1 150px;max-width:220px}.report-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);color:var(--muted);font-size:var(--text-sm)}.export-csv{display:inline-flex;align-items:center;gap:var(--space-2)}.export-csv [role=alert]{color:var(--danger);font-size:var(--text-sm)}.lesson-table td:first-child{min-width:200px}.finishers{list-style:none;margin:0;padding:var(--space-1) 0;display:grid;gap:var(--space-1)}.finishers li{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2)}.finishers .cell-sub{margin-top:0}.data-table tr.disclosure-row>td{background:var(--surface)}.dash-grid{display:grid;gap:var(--space-6) var(--space-5);grid-template-columns:minmax(0,1fr);align-items:start}@media (min-width: 900px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-wide{grid-column:1 / -1}}.dash-grid>.section+.section{margin-top:0}.dash-list{list-style:none;margin:0;padding:0}.dash-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);min-width:0}.dash-row+.dash-row{border-top:1px solid var(--border)}.dash-row-main{display:grid;gap:2px;min-width:0;flex:1}.dash-row-title{font-weight:600;color:var(--text);text-decoration:none;overflow-wrap:anywhere}.dash-row-title:hover{color:var(--accent);text-decoration:underline}.dash-row-meta{font-size:13px;color:var(--muted)}.dash-row-badges{display:flex;flex-wrap:wrap;gap:var(--space-1)}@media (max-width: 639px){.dash-row{flex-wrap:wrap}.dash-row-main{flex-basis:calc(100% - 80px)}}.section-link{display:inline-flex;align-items:center;gap:2px;font-size:var(--text-sm);font-weight:600;text-decoration:none;white-space:nowrap}.section-link:hover{text-decoration:underline}.dash-stats{grid-template-columns:repeat(2,minmax(0,220px))}.dash-stats .stat-card{position:relative}.dash-stats .stat-card:hover{border-color:var(--accent)}.stat-link{color:inherit;text-decoration:none}.stat-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-lg)}.share-card{display:grid;justify-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-4);text-align:center}.share-hint{font-size:var(--text-lg);font-weight:550;max-width:40ch}.qr-frame{background:#fff;padding:20px;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);line-height:0}.qr-frame svg{width:min(280px,70vw);height:auto}.share-url{font-family:var(--font-mono);font-size:var(--text-sm);word-break:break-all;padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);max-width:100%}.share-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}@media print{.page-header .page-meta,.page-header .breadcrumbs{display:none}.share-card{border:0;box-shadow:none}.qr-frame{box-shadow:none}.qr-frame svg{width:9cm}}.workshop-form{display:grid;gap:var(--space-4);max-width:640px}.workshop-form-dates{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.workshop-form-link{font-size:var(--text-sm);color:var(--muted);overflow-wrap:anywhere}.workshop-form-link code{font-size:.95em;padding:.1em .35em;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);color:var(--text)}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
