@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cce080f35d014443-s.p.woff2) format("woff2");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}@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4de1fea1a954a5b6-s.p.woff2) format("woff2");unicode-range:u+00??,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:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/39969fcf98a3026e-s.p.woff2) format("woff2");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}@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6d664cce900333ee-s.p.woff2) format("woff2");unicode-range:u+00??,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:Lato Fallback;src:local("Arial");ascent-override:101.03%;descent-override:21.80%;line-gap-override:0.00%;size-adjust:97.69%}.__className_c99ceb{font-family:Lato,Lato Fallback;font-style:normal}.__variable_c99ceb{--font-lato:"Lato","Lato Fallback"}:root{--c-neutral-0:#ffffff;--c-neutral-50:#f6f4ee;--c-neutral-100:#edf1ec;--c-neutral-200:#e2e6e0;--c-neutral-300:#cbd2cb;--c-neutral-400:#94a09a;--c-neutral-500:#64716b;--c-neutral-600:#4a564f;--c-neutral-700:#35413b;--c-neutral-800:#212b27;--c-neutral-900:#14201d;--c-accent-50:#f1f6f3;--c-accent-100:#dce8e2;--c-accent-200:#cfdfd6;--c-accent-400:#7d9b90;--c-accent-500:#5a7d70;--c-accent-600:#4f7365;--c-accent-700:#2b4740;--c-accent-800:#18322f;--c-success:#16a34a;--c-success-bg:#f0fdf4;--c-warning:#d97706;--c-warning-bg:#fffbeb;--c-danger:#dc2626;--c-danger-bg:#fef2f2;--c-info:#2563eb;--c-info-bg:#eff6ff;--c-warning-line:#fde68a;--bg:var(--c-neutral-50);--surface:var(--c-neutral-0);--surface-2:var(--c-neutral-100);--border:var(--c-neutral-200);--border-strong:var(--c-neutral-300);--text:var(--c-neutral-900);--text-muted:var(--c-neutral-500);--text-subtle:var(--c-neutral-400);--text-700:var(--c-neutral-700);--heading:var(--c-accent-800);--primary:var(--c-accent-800);--primary-hover:var(--c-accent-700);--primary-soft:var(--c-accent-100);--on-primary:#ffffff;--accent:var(--c-accent-400);--link:#35635a;--ring:rgba(24,50,47,0.32);--topbar-bg:rgba(255,255,255,0.85);--logo-square-bg:var(--primary);color-scheme:light;--font-sans:var(--font-lato),"Lato",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:ui-monospace,"JetBrains Mono",Menlo,monospace;--fs-xs:0.75rem;--fs-sm:0.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--lh:1.55;--fw-body:400;--fw-strong:700;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-8:48px;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-full:999px;--shadow-sm:0 1px 2px rgba(15,23,42,0.04),0 1px 3px rgba(15,23,42,0.06);--shadow:0 1px 3px rgba(15,23,42,0.08),0 4px 12px rgba(15,23,42,0.05);--chart-seq-1:var(--c-neutral-300);--chart-seq-2:var(--c-accent-400);--chart-seq-3:var(--c-accent-600);--chart-seq-4:var(--c-accent-800);--chart-ink-1:var(--c-neutral-900);--chart-ink-2:var(--c-neutral-900);--chart-ink-3:#ffffff;--chart-ink-4:#ffffff;--chart-line:var(--c-accent-700);--chart-fill:var(--c-accent-400);--chart-grid:var(--c-neutral-200);--sidebar-w:248px;--topbar-h:60px;--content-max:1180px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#081512;--surface:#0e211d;--surface-2:#152a25;--border:#20403a;--border-strong:#2e4e46;--text:#eef3f0;--text-muted:#a7bcb3;--text-subtle:#7b948b;--text-700:#c3d5cc;--heading:#ffffff;--primary:#8bb1a3;--primary-hover:#9cc0b3;--primary-soft:#23443c;--on-primary:#12271f;--accent:#7d9b90;--link:#a9cabd;--ring:rgba(139,177,163,0.42);--topbar-bg:rgba(18,42,38,0.85);--logo-square-bg:var(--surface-2);--chart-seq-1:#2e4e46;--chart-seq-2:#5a7d70;--chart-seq-3:#8bb1a3;--chart-seq-4:#cfdfd6;--chart-ink-1:#eef3f0;--chart-ink-2:#ffffff;--chart-ink-3:#12271f;--chart-ink-4:#12271f;--chart-line:#8bb1a3;--chart-fill:#5a7d70;--chart-grid:#20403a;--c-success:#8fd6a6;--c-success-bg:#153c24;--c-warning:#fcdf9a;--c-warning-bg:#402f14;--c-warning-line:#5c4415;--c-danger:#f2a6a0;--c-danger-bg:#502629;--c-info:#9fc3ee;--c-info-bg:#1b3651;color-scheme:dark}}:root[data-theme=dark]{--bg:#081512;--surface:#0e211d;--surface-2:#152a25;--border:#20403a;--border-strong:#2e4e46;--text:#eef3f0;--text-muted:#a7bcb3;--text-subtle:#7b948b;--text-700:#c3d5cc;--heading:#ffffff;--primary:#8bb1a3;--primary-hover:#9cc0b3;--primary-soft:#23443c;--on-primary:#12271f;--accent:#7d9b90;--link:#a9cabd;--ring:rgba(139,177,163,0.42);--topbar-bg:rgba(18,42,38,0.85);--logo-square-bg:var(--surface-2);--chart-seq-1:#2e4e46;--chart-seq-2:#5a7d70;--chart-seq-3:#8bb1a3;--chart-seq-4:#cfdfd6;--chart-ink-1:#eef3f0;--chart-ink-2:#ffffff;--chart-ink-3:#12271f;--chart-ink-4:#12271f;--chart-line:#8bb1a3;--chart-fill:#5a7d70;--chart-grid:#20403a;--c-success:#8fd6a6;--c-success-bg:#153c24;--c-warning:#fcdf9a;--c-warning-bg:#402f14;--c-warning-line:#5c4415;--c-danger:#f2a6a0;--c-danger-bg:#502629;--c-info:#9fc3ee;--c-info-bg:#1b3651;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh);-webkit-font-smoothing:antialiased}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h2,h3,h4{font-weight:var(--fw-strong);letter-spacing:-.01em}h1,h2,h3,h4{margin:0;color:var(--heading)}h1{font-weight:var(--fw-body);letter-spacing:-.02em}p{margin:0}.mono{font-family:var(--font-mono)}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.stack{flex-direction:column}.row,.stack{display:flex}.row{align-items:center}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.gap-6{gap:var(--sp-6)}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1 1}.grid{display:grid;grid-gap:var(--sp-4);gap:var(--sp-4)}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font:inherit;font-weight:var(--fw-strong);font-size:var(--fs-sm);padding:8px 14px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all .12s ease;white-space:nowrap}.btn:focus-visible{outline:3px solid var(--ring);outline-offset:1px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn,.btn:hover{text-decoration:none}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-sm{padding:5px 10px;font-size:var(--fs-xs)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--sp-5)}.card-hover{transition:box-shadow .15s ease,border-color .15s ease}.card-hover:hover{box-shadow:var(--shadow);border-color:var(--border-strong)}.card-link{display:flex}.card-link,.card-link:hover{text-decoration:none}.card-link>.card{flex:1 1}.program-card-link{display:flex}.program-card{display:flex;flex-direction:column;width:100%;height:100%}.program-card-thumb{width:calc(100% + 2 * var(--sp-5));margin:calc(-1 * var(--sp-5)) calc(-1 * var(--sp-5)) var(--sp-4);aspect-ratio:16/9;object-fit:cover;display:block;border-radius:var(--radius) var(--radius) 0 0;border-bottom:1px solid var(--border);background:var(--surface-2)}.program-card-thumb-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,var(--primary-soft),var(--surface-2));color:var(--primary);font-size:var(--fs-2xl);font-weight:var(--fw-strong)}.catalog-toolbar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-5)}.catalog-search{position:relative;display:flex;align-items:center;flex:1 1 260px;max-width:380px;color:var(--text-muted)}.catalog-search svg{position:absolute;left:11px;pointer-events:none}.catalog-search .input{padding-left:34px}.catalog-filters{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.chip{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-full);padding:6px 13px;font-size:var(--fs-sm);font-weight:var(--fw-body);color:var(--text-700,var(--c-neutral-700));cursor:pointer;transition:background .12s,border-color .12s,color .12s}.chip:hover{border-color:var(--border-strong);background:var(--surface-2)}.chip-active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:var(--fw-strong)}.program-card-title{line-height:1.3;min-height:2.6em}.program-card-desc,.program-card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.program-card-desc{line-height:1.4;min-height:2.8em}.consent-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:var(--sp-4);background:rgba(15,23,42,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.consent-modal{display:flex;flex-direction:column;width:min(720px,100%);max-height:88vh;padding:0;overflow:hidden}.consent-head{padding:var(--sp-5) var(--sp-5) var(--sp-3);border-bottom:1px solid var(--border)}.consent-body{overflow-y:auto}.consent-body,.consent-foot{padding:var(--sp-4) var(--sp-5)}.consent-foot{display:flex;flex-direction:column;gap:var(--sp-2);border-top:1px solid var(--border);background:var(--surface)}.certificate{position:relative;max-width:720px;margin:0 auto;text-align:center;background:var(--surface);border:2px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow);padding:48px var(--sp-6)}.certificate:before{content:"";position:absolute;inset:8px;border:1px solid var(--border);border-radius:calc(var(--radius) - 4px);pointer-events:none}.certificate-cover{position:absolute;top:20px;left:20px;width:120px;aspect-ratio:30/17;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border)}.certificate-brand{display:inline-flex;align-items:center;gap:8px;margin-bottom:var(--sp-3);font-weight:var(--fw-strong);color:var(--primary)}.certificate-brand-badge{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:5px;background:#18322f;color:#fff}.certificate-seal{color:var(--primary);display:flex;justify-content:center;margin-bottom:var(--sp-3)}@media (max-width:640px){.certificate-cover{position:static;display:block;margin:0 auto var(--sp-3)}}.certificate-kicker{text-transform:uppercase;letter-spacing:.18em;font-weight:var(--fw-body);margin-bottom:var(--sp-5)}.certificate-kicker,.certificate-statement{font-size:var(--fs-sm);color:var(--text-muted)}.certificate-recipient{font-size:var(--fs-2xl);font-weight:var(--fw-strong);margin:var(--sp-2) 0 var(--sp-4)}.certificate-program{font-size:var(--fs-xl);font-weight:var(--fw-strong);color:var(--primary);margin:var(--sp-2) 0 var(--sp-5)}.certificate-author{margin-top:calc(-1 * var(--sp-4));font-size:var(--fs-sm);color:var(--text-muted)}.certificate-ce{display:flex;flex-direction:column;gap:var(--sp-1);margin:var(--sp-5) 0;font-size:var(--fs-sm);color:var(--text)}.certificate-ce span{color:var(--text-muted)}.certificate-meta{display:flex;justify-content:center;gap:var(--sp-6);font-size:var(--fs-sm);color:var(--text);border-top:1px solid var(--border);padding-top:var(--sp-4)}.certificate-id{margin-top:var(--sp-3);font-size:var(--fs-xs);letter-spacing:.05em;color:var(--text-subtle)}.cert-item{max-width:720px;margin:0 auto}.cert-actions{display:flex;justify-content:center;margin-top:var(--sp-4)}.cert-grid{display:grid;grid-gap:var(--sp-4);gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(272px,1fr))}.cert-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.cert-card-seal{color:var(--primary)}.cert-card-kicker{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.14em;font-weight:var(--fw-body);color:var(--text-muted)}.cert-card-title{font-size:var(--fs-lg);font-weight:var(--fw-strong);color:var(--heading)}.cert-card-meta{font-size:var(--fs-sm);color:var(--text-muted)}.cert-card-actions{display:flex;gap:var(--sp-2);margin-top:auto;padding-top:var(--sp-4)}.stat{padding:var(--sp-5)}.stat-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:var(--fw-body)}.stat-value{font-size:var(--fs-2xl);margin-top:var(--sp-2)}.badge,.stat-value{font-weight:var(--fw-strong)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);padding:3px 9px;border-radius:var(--radius-full);border:1px solid transparent}.badge-neutral{background:var(--surface-2);color:var(--text-muted)}.badge-primary{background:var(--primary-soft);color:var(--primary)}.badge-success{background:var(--c-success-bg);color:var(--c-success)}.badge-warning{background:var(--c-warning-bg);color:var(--c-warning)}.badge-danger{background:var(--c-danger-bg);color:var(--c-danger)}.badge-info{background:var(--c-info-bg);color:var(--c-info)}.label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-body);margin-bottom:6px;color:var(--text-700,var(--text))}.input,.select,.textarea{width:100%;font:inherit;font-size:var(--fs-sm);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 10px;transition:border-color .12s,box-shadow .12s}.input:not([type=file]),.select{height:40px;line-height:1.2}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.textarea{min-height:80px;resize:vertical}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:var(--fw-body);padding:10px 12px}.table td,.table th{border-bottom:1px solid var(--border)}.table td{padding:11px 12px}.table tr:last-child td{border-bottom:none}.progress,.table tbody tr:hover{background:var(--surface-2)}.progress{height:7px;border-radius:var(--radius-full);overflow:hidden}.progress>span{display:block;height:100%;background:var(--primary);border-radius:inherit;transition:width .3s ease}.ring{position:relative;display:inline-grid;place-items:center;flex:none}.ring>svg{display:block;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:4}.ring .ring-track{stroke:var(--border)}.ring .ring-fill{stroke:var(--primary);transition:stroke-dashoffset .6s ease-out}.ring-label{position:absolute;font-weight:var(--fw-strong);font-size:var(--fs-sm);color:var(--heading);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.ring-done .ring-fill{stroke:var(--c-accent-600)}.ring-done .ring-label{color:var(--c-accent-600)}:root[data-theme=dark] .ring-done .ring-fill,:root[data-theme=dark] .ring-done .ring-label{color:var(--primary);stroke:var(--primary)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ring-done .ring-fill{stroke:var(--primary)}:root:not([data-theme=light]) .ring-done .ring-label{color:var(--primary)}}@media (prefers-reduced-motion:reduce){.ring .ring-fill{transition:none}}.page-header{margin-bottom:var(--sp-5)}.page-header h1{font-size:var(--fs-2xl)}.page-header .sub{color:var(--text-muted);margin-top:4px}.chart{position:relative}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart figcaption{font-size:var(--fs-xs);color:var(--text-subtle);margin-top:var(--sp-2)}.chart-tip{position:absolute;z-index:5;pointer-events:none;transform:translate(-50%,-100%);background:var(--c-neutral-900);color:var(--c-neutral-0);border-radius:var(--radius-sm);padding:5px 9px;font-size:var(--fs-xs);line-height:1.45;white-space:nowrap;box-shadow:var(--shadow)}:root[data-theme=dark] .chart-tip{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .chart-tip{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text)}}.chart-tip b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stats-toolbar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.ribbon-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.ribbon-measure{font-size:var(--fs-2xl);font-weight:var(--fw-strong);letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ribbon-axis{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-subtle);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:6px}.ribbon-plot{position:relative;margin-bottom:22px}.ribbon-median{position:absolute;top:100%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;font-size:var(--fs-xs);font-weight:var(--fw-strong);color:var(--text);white-space:nowrap;pointer-events:none}.ribbon-median-caret{width:0;height:0;margin-bottom:1px;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid var(--text)}.bucket-bar{display:flex;gap:2px;height:34px}.bucket-seg{display:grid;place-items:center;min-width:2px;font-size:var(--fs-xs);font-weight:var(--fw-strong);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;border-radius:2px;overflow:hidden;transition:flex-grow .3s ease}.bucket-seg:first-child{border-radius:var(--radius-sm) 2px 2px var(--radius-sm)}.bucket-seg:last-child{border-radius:2px var(--radius-sm) var(--radius-sm) 2px}.bucket-legend{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);margin-top:var(--sp-3)}.bucket-key{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm)}.bucket-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.bucket-key .n{font-weight:var(--fw-strong);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grid-trends{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.trend-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:var(--fw-body)}.trend-value{font-size:var(--fs-xl);letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:2px}.trend-delta,.trend-value{font-weight:var(--fw-strong)}.trend-delta{font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.trend-delta.up{color:var(--c-success)}.trend-delta.down{color:var(--c-warning)}.trend-delta.flat{color:var(--text-subtle)}.retention-head{justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-4)}.retention-head,.retention-note{display:flex;align-items:flex-start}.retention-note{gap:var(--sp-2);background:var(--c-warning-bg);border:1px solid var(--c-warning-line);border-radius:var(--radius-sm);padding:9px 12px;font-size:var(--fs-sm);color:#92400e;margin-top:var(--sp-4)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .retention-note{color:var(--c-warning)}}:root[data-theme=dark] .retention-note{color:var(--c-warning)}.delay-bars{display:flex;align-items:flex-end;gap:var(--sp-2);height:150px}.delay-col{flex:1 1;display:flex;flex-direction:column;align-items:center;height:100%}.delay-count{font-size:var(--fs-xs);font-weight:var(--fw-strong);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;height:16px}.delay-track{flex:1 1;width:100%;display:flex;align-items:flex-end}.delay-track>span{width:100%;border-radius:3px 3px 0 0;transition:height .3s ease}.delay-label{font-size:var(--fs-xs);color:var(--text-subtle);margin-top:6px;text-align:center}.grid-compare{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.compare-card{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer}.compare-card.is-active{border-color:var(--primary);box-shadow:0 0 0 2px var(--ring)}.compare-title{font-weight:var(--fw-strong);font-size:var(--fs-sm);line-height:1.3}.mini-curve{width:100%;height:auto;margin:var(--sp-3) 0 var(--sp-2);display:block}.mini-curve-empty{font-size:var(--fs-xs);color:var(--text-subtle);padding:var(--sp-4) 0}.compare-meta{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ranked-row{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(100px,2.4fr) 62px;grid-gap:var(--sp-3);gap:var(--sp-3);align-items:center;font-size:var(--fs-sm)}.ranked-label{display:flex;flex-direction:column;min-width:0}.ranked-label>span{font-size:var(--fs-xs);color:var(--text-muted)}.ranked-note{margin-top:1px}.ranked-track{height:18px;background:var(--surface-2);border-radius:3px;overflow:hidden}.ranked-track>span{display:block;height:100%;border-radius:inherit;transition:width .3s ease}.ranked-value{text-align:right;font-weight:var(--fw-strong);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:640px){.ranked-row{grid-template-columns:1fr 62px}.ranked-track{grid-column:1/-1}}.quiz-item{border-top:1px solid var(--border);padding-top:var(--sp-4)}.quiz-item:first-child{border-top:none;padding-top:0}.quiz-opt-row{display:grid;grid-template-columns:minmax(120px,1.4fr) minmax(80px,2fr) 32px;grid-gap:var(--sp-3);gap:var(--sp-3);align-items:center;font-size:var(--fs-sm)}.quiz-opt-label{display:flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}.quiz-opt-ok{color:var(--c-success);font-weight:var(--fw-strong);flex-shrink:0}.quiz-opt-track{height:16px;background:var(--surface-2);border-radius:3px;overflow:hidden}.quiz-opt-track>span{display:block;height:100%;border-radius:inherit;transition:width .3s ease}.quiz-opt-n{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:var(--fs-xs)}@media (max-width:700px){.quiz-opt-row{grid-template-columns:1fr 44px}.quiz-opt-track{grid-column:1/-1}}.stats-tabs{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-5)}.meter{position:relative;height:7px;background:var(--surface-2);border-radius:var(--radius-full);overflow:hidden}.meter>span{display:block;height:100%;border-radius:inherit;background:var(--chart-seq-3)}.meter.over>span{background:var(--c-danger)}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--c-neutral-200) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.empty{text-align:center;color:var(--text-muted);padding:var(--sp-8) var(--sp-4)}.shell{min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;padding:var(--sp-4) var(--sp-3);z-index:20}.brand,.sidebar{display:flex;gap:var(--sp-2)}.brand{align-items:center;padding:var(--sp-2) var(--sp-2) var(--sp-4)}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--logo-square-bg);color:#fff;display:grid;place-items:center}.brand-mark,.brand-name{font-weight:var(--fw-strong)}.brand-name{letter-spacing:-.02em}.nav-section{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);font-weight:var(--fw-body);padding:var(--sp-3) var(--sp-2) var(--sp-1)}.nav-pinned{padding-top:var(--sp-4)}.nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:9px 11px;border-radius:var(--radius-sm);color:var(--text-700,var(--c-neutral-700));font-size:var(--fs-sm);font-weight:var(--fw-body);cursor:pointer;transition:background .12s,color .12s}.nav-item:hover{background:var(--surface-2);text-decoration:none}.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:var(--fw-strong)}.nav-item .ico{width:18px;height:18px;flex-shrink:0}.main{margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-height:100vh}.topbar{height:var(--topbar-h);position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--topbar-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-6);gap:var(--sp-4)}.content{padding:var(--sp-6);max-width:var(--content-max);width:100%;margin:0 auto}.content:has(.lesson-view){max-width:1560px}.content:has(.messages-page){max-width:1560px}.messages-compose{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:var(--sp-5);gap:var(--sp-5);align-items:start}@media (max-width:1100px){.messages-compose{grid-template-columns:1fr}}.compose-eyebrow{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);font-weight:var(--fw-body)}.recipient-row{display:flex;align-items:center;gap:var(--sp-3);padding:7px 8px;border-radius:var(--radius-sm);cursor:pointer}.recipient-row:hover{background:var(--surface-2)}.recipient-row input[type=checkbox]{accent-color:var(--primary)}.recipient-chip{display:inline-flex;align-items:center;gap:4px;background:var(--primary-soft);color:var(--primary);border-radius:var(--radius-full);padding:3px 5px 3px 10px;font-size:var(--fs-xs);font-weight:var(--fw-strong)}.recipient-chip button{border:0;background:none;color:inherit;cursor:pointer;font-size:13px;line-height:1;padding:2px 5px;border-radius:var(--radius-full)}.recipient-chip button:hover{background:rgba(15,23,42,.1)}.send-result{border-radius:var(--radius-sm);padding:10px 12px;font-size:var(--fs-sm);font-weight:var(--fw-body)}.send-result.ok{background:var(--c-success-bg);color:var(--c-success)}.send-result.err{background:var(--c-danger-bg);color:var(--c-danger)}.nav-badge{margin-left:auto;background:var(--primary);color:var(--on-primary);border-radius:var(--radius-full);font-size:10.5px;font-weight:var(--fw-strong);padding:1px 7px;line-height:1.5}.inbox-layout{display:grid;grid-template-columns:320px minmax(0,1fr);grid-gap:var(--sp-5);gap:var(--sp-5);align-items:start}@media (max-width:900px){.inbox-layout{grid-template-columns:1fr}}.inbox-list{display:flex;flex-direction:column;gap:2px;max-height:600px;overflow-y:auto}.inbox-item{display:block;text-align:left;width:100%;border:0;background:none;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;font:inherit;color:inherit;transition:background .12s;overflow:hidden;min-width:0}.inbox-item .preview{display:block;max-width:100%}.inbox-item:hover{background:var(--surface-2)}.inbox-item.active{background:var(--primary-soft)}.inbox-item .preview{color:var(--text-muted);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-thread{display:flex;flex-direction:column;gap:var(--sp-2);max-height:480px;overflow-y:auto;padding:var(--sp-2) 2px}.msg-bubble{max-width:min(76%,560px);padding:8px 12px;border-radius:14px;font-size:var(--fs-sm);white-space:pre-line;overflow-wrap:anywhere}.msg-bubble.theirs{align-self:flex-start;background:var(--surface-2);border-bottom-left-radius:4px}.msg-bubble.mine{align-self:flex-end;background:var(--primary);color:var(--on-primary);border-bottom-right-radius:4px}.msg-bubble .msg-meta{display:block;font-size:10.5px;opacity:.72;margin-top:3px}.msg-bubble .msg-subject{display:block;font-weight:var(--fw-strong);margin-bottom:2px}.dev-banner{background:var(--c-warning-bg);color:var(--c-warning);border:1px solid var(--c-warning-line);border-radius:var(--radius-sm);padding:6px 10px;font-size:var(--fs-xs);font-weight:var(--fw-strong)}.modal-backdrop{position:fixed;inset:0;z-index:40;background:rgba(15,23,42,.45);display:flex;align-items:flex-start;justify-content:center;padding:var(--sp-8) var(--sp-4);overflow-y:auto;animation:modal-backdrop-in .16s ease-out}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;max-width:520px;margin:auto;animation:modal-in .22s cubic-bezier(.16,1,.3,1);transform-origin:center top}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.modal,.modal-backdrop{animation:none}}.fade-swap{animation:fade-swap-in .26s cubic-bezier(.16,1,.3,1)}@keyframes fade-swap-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.fade-swap{animation:none}}.modal.modal-lg{max-width:900px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-5) var(--sp-5) var(--sp-3);border-bottom:1px solid var(--border)}.modal-head h3{font-size:var(--fs-lg)}.modal-body{padding:var(--sp-5)}.modal-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5) var(--sp-5)}.field{display:block;margin-bottom:var(--sp-4)}.field:last-child{margin-bottom:0}.form-error{color:var(--c-danger);font-size:var(--fs-sm)}.form-notice{background:var(--c-warning-bg);color:var(--c-warning);border-radius:var(--radius,8px);padding:var(--sp-2) var(--sp-3);margin:0}.row:has(>.field){align-items:flex-start}.row>.field{flex:1 1;min-width:0}.rt{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.rt:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.rt-toolbar{display:flex;flex-wrap:wrap;gap:2px;padding:5px;border-bottom:1px solid var(--border);background:var(--surface-2)}.rt-btn{min-width:30px;height:28px;padding:0 7px;border:1px solid transparent;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--fs-sm);cursor:pointer;font-weight:var(--fw-strong)}.rt-btn:hover{background:var(--surface);color:var(--text);border-color:var(--border)}.rt-btn.active{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.rt-btn:disabled{opacity:.4;cursor:default}.rt-sep{width:1px;align-self:stretch;margin:2px 3px;background:var(--border)}.rt-url-row{display:flex;gap:var(--sp-2);align-items:center;padding:5px;border-bottom:1px solid var(--border);background:var(--surface-2)}.rt-url-row .input{flex:1 1;height:28px}.rt-editor,.rt-url-row .input{font-size:var(--fs-sm)}.rt-editor .ProseMirror{padding:10px 12px;min-height:90px;outline:none}.rt-editor .ProseMirror p{margin:0 0 var(--sp-2)}.rt-editor .ProseMirror ol,.rt-editor .ProseMirror ul{margin:0 0 var(--sp-2);padding-left:var(--sp-5)}.rt-editor .ProseMirror h2{font-size:var(--fs-lg);margin:var(--sp-3) 0 var(--sp-2)}.rt-editor .ProseMirror h3{font-size:var(--fs-base);font-weight:var(--fw-strong);margin:var(--sp-3) 0 var(--sp-2)}.rt-editor .ProseMirror blockquote{margin:0 0 var(--sp-2);padding-left:10px;border-left:3px solid var(--border-strong);color:var(--text-muted)}.rt-editor .ProseMirror img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.rt-editor .ProseMirror a{color:var(--primary)}.rt-editor .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--text-subtle);float:left;height:0;pointer-events:none}.block-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.block-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3)}.block-body{border-top:1px solid var(--border);padding:var(--sp-4)}.dashed{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:var(--sp-6);text-align:center;color:var(--text-muted)}.insert-point{position:relative;height:14px;display:flex;align-items:center;justify-content:center}.insert-point.open{height:auto}.insert-point-btn{width:22px;height:22px;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-subtle);font-size:14px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s ease;padding:0}.insert-point-btn:focus-visible,.insert-point:hover .insert-point-btn{opacity:1}.insert-point-btn:hover{color:var(--primary);border-color:var(--primary)}.editor-save-bar{background:var(--bg,var(--surface-2));padding:var(--sp-3) 0;border-top:1px solid var(--border)}.journey-bar{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm,0 -2px 8px rgba(0,0,0,.06))}.journey-info{flex:1 1 260px;min-width:0;display:grid;grid-gap:6px;gap:6px}.journey-module,.journey-pos{font-size:var(--fs-sm)}.journey-module{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journey-meta{font-size:var(--fs-xs);color:var(--text-subtle);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.journey-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.journey-next{display:grid;grid-gap:4px;gap:4px;justify-items:end}.journey-next-title{font-size:var(--fs-xs);color:var(--text-muted);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:640px){.journey-bar{border-radius:var(--radius) var(--radius) 0 0}.journey-actions{width:100%}.journey-next{flex:1 1;justify-items:stretch}.journey-next .btn{width:100%}.journey-next-title{max-width:none}}.picker-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--sp-2);gap:var(--sp-2);max-height:60vh;overflow-y:auto}.picker-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius)}.picker-row.current{border-color:var(--primary);background:var(--primary-soft)}.picker-thumb{flex-shrink:0;width:96px;aspect-ratio:16/9;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2)}.picker-thumb img{object-fit:cover}.picker-thumb img,.picker-thumb-blank{width:100%;height:100%;display:block}.picker-info{min-width:0;flex:1 1}.picker-name{margin:0;font-weight:var(--fw-strong)}.picker-meta,.picker-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-meta{margin:2px 0 0;font-size:var(--fs-xs);color:var(--text-subtle)}.link-block{margin:var(--sp-2) 0}.link-block .btn,.link-block-link{display:inline-flex;align-items:center}.link-block-link{color:var(--primary);text-decoration:underline}.lesson-view>*{max-width:760px}.lesson-view>.video-embed,.lesson-view>.video-frame{max-width:min(100%,calc(75vh * 16 / 9));margin-inline:auto}.lesson-view>.doc-block,.lesson-view>.form-companion,.lesson-view>.form-fill{max-width:none}.doc-block>.prose{max-width:760px}.prose{line-height:1.65;color:var(--text)}.prose>:first-child{margin-top:0}.prose h1,.prose h2,.prose h3{margin:var(--sp-4) 0 var(--sp-2);line-height:1.3}.prose h2{font-size:var(--fs-xl)}.prose h3{font-size:var(--fs-lg)}.prose ol,.prose p,.prose ul{margin:0 0 var(--sp-3)}.prose ol,.prose ul{padding-left:var(--sp-5)}.prose li{margin-bottom:4px}.prose a{color:var(--primary);text-decoration:underline}.video-frame{position:relative;aspect-ratio:16/9;width:100%;background:var(--c-neutral-900);border-radius:var(--radius);display:grid;place-items:center;overflow:hidden}.video-frame .play{width:60px;height:60px;border-radius:var(--radius-full);background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.video-frame .video-meta{position:absolute;left:14px;bottom:12px;font-size:var(--fs-xs);color:var(--c-neutral-300);font-family:var(--font-mono)}.thumb{width:80px;aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--c-neutral-900);overflow:hidden;display:grid;place-items:center}.thumb img{width:100%;height:100%;object-fit:cover}.thumb-btn{position:relative;padding:0;border:0;cursor:pointer}.thumb-btn .thumb-play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:18px;opacity:0;transition:opacity .12s ease;background:rgba(0,0,0,.35)}.thumb-btn:focus-visible .thumb-play,.thumb-btn:hover .thumb-play{opacity:1}.linklike{background:none;border:0;padding:0;cursor:pointer;color:inherit;text-align:left;font:inherit}.linklike:hover{color:var(--link);text-decoration:underline}.video-embed{position:relative;aspect-ratio:16/9;width:100%;background:#000;border-radius:var(--radius);overflow:hidden}.video-embed iframe,.video-embed video{position:absolute;inset:0;width:100%;height:100%;border:0}.video-embed video{background:#000}.form-companion{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:var(--sp-5);gap:var(--sp-5);align-items:start}@media (min-width:1400px){.form-companion{grid-template-columns:minmax(0,1fr) 440px;gap:var(--sp-6)}}.form-companion-side{position:-webkit-sticky;position:sticky;top:calc(var(--topbar-h) + var(--sp-4));max-height:calc(100vh - var(--topbar-h) - var(--sp-4) * 2);overflow-y:auto}.companion-video-head{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--sp-2)}.companion-video-label{font-size:var(--fs-xs);font-weight:var(--fw-body);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.companion-chapters{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:var(--sp-3);display:flex;flex-direction:column;gap:2px}.companion-chapters>.companion-video-label{padding:var(--sp-1) var(--sp-2) var(--sp-2)}.chapter-row{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);border:0;background:transparent;border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text);cursor:pointer;text-align:left}.chapter-row:hover{background:var(--surface-2)}.chapter-row.is-active{background:var(--primary-soft);color:var(--primary);font-weight:var(--fw-strong)}.chapter-dot{width:7px;height:7px;border-radius:var(--radius-full);background:var(--border-strong);flex-shrink:0}.chapter-row.is-active .chapter-dot{background:var(--primary)}.chapter-time{font-size:var(--fs-xs);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chapter-row.is-active .chapter-time{color:var(--primary)}.form-section{scroll-margin-top:calc(var(--topbar-h) + var(--sp-4))}@media (max-width:1100px){.form-companion{display:flex;flex-direction:column}.form-companion-side{order:-1;position:static;max-height:none;overflow:visible;width:100%}}.doc-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.doc-card .doc-ico{color:var(--primary);flex-shrink:0}.res-head{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;padding-bottom:var(--sp-3);margin-bottom:var(--sp-4);border-bottom:1px solid var(--border)}.res-title{margin:0;font-size:var(--fs-lg);color:var(--heading)}.res-head-count{font-size:var(--fs-xs);color:var(--text-subtle);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.res-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--sp-2);gap:var(--sp-2)}.res-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .14s ease}.res-row:hover{border-color:var(--border-strong)}.res-ico{flex-shrink:0;width:36px;height:36px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}.res-group-title{display:flex;align-items:center;gap:6px;margin:0 0 var(--sp-2);font-size:var(--fs-xs);font-weight:var(--fw-body);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}.res-info{min-width:0;flex:1 1}.res-name{margin:0;font-weight:var(--fw-strong);color:var(--heading);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.res-meta{margin:2px 0 0;font-size:var(--fs-xs);color:var(--text-subtle);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.res-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}@media (max-width:640px){.res-row{flex-wrap:wrap}.res-actions{width:100%;justify-content:flex-end}}.res-locked{display:inline-flex;align-items:center;gap:5px;line-height:1.3;font-size:var(--fs-xs);color:var(--text-subtle)}.pdf-viewer{display:flex;flex-direction:column;min-height:0;background:var(--surface)}.pdf-viewer:focus{outline:none}.pdf-viewer.is-inline{height:min(78vh,880px);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.pdf-viewer.is-reader{flex:1 1}.pdf-name{display:flex;align-items:center;gap:7px;min-width:0;flex:1 1 auto;color:var(--text-700);font-size:var(--fs-sm);font-weight:var(--fw-strong)}.pdf-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-bar{justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;padding:6px var(--sp-4);border-bottom:1px solid var(--border);background:var(--surface-2)}.pdf-bar,.pdf-pager,.pdf-tools{display:flex;align-items:center}.pdf-pager,.pdf-tools{gap:2px}.pdf-btn{display:grid;place-items:center;min-width:30px;height:30px;padding:0 7px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-700);font:inherit;font-size:var(--fs-sm);line-height:1;cursor:pointer}.pdf-btn:hover:not(:disabled){background:var(--surface);border-color:var(--border)}.pdf-btn:disabled{opacity:.35;cursor:default}.pdf-count{padding-inline:8px;font-size:var(--fs-sm);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pdf-count strong{color:var(--text);font-weight:var(--fw-strong)}.pdf-zoom{min-width:62px;height:30px;padding:0 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font:inherit;font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;cursor:pointer}.pdf-zoom:hover:not(:disabled){background:var(--surface);border-color:var(--border)}.pdf-zoom:disabled{cursor:default}.pdf-sep{width:1px;height:18px;margin-inline:6px;background:var(--border)}.pdf-scroll{flex:1 1;min-height:0;overflow:auto;overscroll-behavior:contain;background:var(--c-neutral-900);padding:var(--sp-5) 0;scrollbar-gutter:stable}.pdf-scroll::-webkit-scrollbar{width:14px;height:14px}.pdf-scroll::-webkit-scrollbar-corner,.pdf-scroll::-webkit-scrollbar-track{background:transparent}.pdf-scroll::-webkit-scrollbar-thumb{background-color:rgba(125,155,144,.34);border:4px solid transparent;background-clip:content-box;border-radius:var(--radius-full)}.pdf-scroll:hover::-webkit-scrollbar-thumb{background-color:rgba(125,155,144,.5)}.pdf-scroll::-webkit-scrollbar-thumb:hover{background-color:rgba(163,194,182,.72)}.pdf-scroll::-webkit-scrollbar-thumb:active{background-color:rgba(190,216,205,.85)}@supports (scrollbar-width:thin) and (not selector(::-webkit-scrollbar)){.pdf-scroll{scrollbar-width:thin;scrollbar-color:rgba(125,155,144,.45) transparent}}.pdf-page{display:flex;justify-content:safe center;margin-bottom:var(--sp-5)}.pdf-page:last-child{margin-bottom:0}.pdf-page .react-pdf__Page{box-shadow:0 6px 28px rgba(0,0,0,.45)}.pdf-page canvas{display:block;animation:pdf-page-in .2s ease-out both}@keyframes pdf-page-in{0%{opacity:0}to{opacity:1}}.pdf-page-skeleton{background:var(--c-neutral-800);border-radius:2px}.pdf-page-boot{width:calc(100% - 96px);aspect-ratio:17/22}@media (prefers-reduced-motion:reduce){.pdf-page canvas{animation:none}}.pdf-state{padding:var(--sp-6);text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.pdf-scroll .pdf-state{color:var(--c-neutral-400)}.pdf-failed{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-8);text-align:center;color:var(--text-subtle)}.pdf-failed-msg{margin:0;color:var(--text-muted);font-size:var(--fs-sm)}.quiz{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.quiz-head{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);font-weight:var(--fw-strong)}.quiz-body{padding:var(--sp-2) var(--sp-5) var(--sp-5)}.quiz-q{padding:var(--sp-4) 0;border-top:1px solid var(--border)}.quiz-q:first-child{border-top:none}.quiz-q .q-text{font-weight:var(--fw-strong);margin-bottom:var(--sp-3)}.quiz-opt{display:flex;align-items:center;gap:var(--sp-2);padding:8px 10px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer}.quiz-opt:hover{background:var(--surface-2)}.quiz-opt.is-correct{background:var(--c-success-bg);border-color:var(--c-success)}.quiz-opt.is-wrong{background:var(--c-danger-bg);border-color:var(--c-danger)}.quiz-expl{font-size:var(--fs-sm);color:var(--text-muted);margin-top:var(--sp-2);padding-left:10px;border-left:2px solid var(--border-strong)}.quiz-score{font-weight:var(--fw-strong);font-size:var(--fs-lg)}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden}.seg button{padding:6px 16px;border:none;background:var(--surface);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-body);color:var(--text-muted);cursor:pointer}.seg button+button{border-left:1px solid var(--border-strong)}.seg button.active{background:var(--primary);color:var(--on-primary)}.editor-split{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--sp-4);gap:var(--sp-4);align-items:start}.editor-preview-label,.editor-split[data-mode=edit] .editor-pane-preview,.editor-split[data-mode=preview] .editor-pane-edit{display:none}@media (min-width:1400px){.content:has(.editor-split){max-width:1720px}.editor-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.editor-split[data-mode=edit] .editor-pane-preview,.editor-split[data-mode=preview] .editor-pane-edit{display:block}.editor-mode-toggle{display:none}.editor-pane-preview{position:-webkit-sticky;position:sticky;top:var(--sp-4);max-height:calc(100vh - var(--sp-4) * 2);overflow-y:auto}.editor-preview-label{display:block;font-size:var(--fs-xs);font-weight:var(--fw-body);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-3)}}.avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:var(--fw-strong);font-size:var(--fs-sm)}.form-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.form-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-2);border-bottom:1px solid var(--border)}.form-section-head h3{font-size:var(--fs-base)}.form-section-body{padding:var(--sp-4)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--sp-4) var(--sp-5);gap:var(--sp-4) var(--sp-5);align-items:start}.form-field--wide{grid-column:1/-1}@media (max-width:720px){.form-grid{grid-template-columns:1fr}}.form-section.is-na{opacity:.55}.form-section.is-na .form-section-head{background:var(--surface)}.form-section.has-error{border-color:var(--c-danger)}.form-section-error{margin:0;padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);color:var(--c-danger);background:var(--c-danger-bg);border-bottom:1px solid var(--border)}.form-field .label{color:var(--text)}.pill-group{display:flex;gap:var(--sp-2)}.pill-group.wrap{flex-wrap:wrap}.pill{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-full);padding:5px 16px;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-body);color:var(--text-muted);cursor:pointer;transition:all .1s ease}.pill:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pill.sel{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.pill:disabled{cursor:default;opacity:.75}.pill-num{min-width:38px;padding:5px 0;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:var(--sp-2);gap:var(--sp-2)}.check-item{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 11px;cursor:pointer;background:var(--surface);transition:all .1s ease}.check-item.sel{border-color:var(--primary);background:var(--primary-soft)}.check-item input{accent-color:var(--primary)}.qa-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:4px var(--sp-4);gap:4px var(--sp-4);font-size:var(--fs-sm);padding:5px 0;border-bottom:1px dashed var(--border)}.qa-row:last-child{border-bottom:none}.qa-q{color:var(--text-muted)}.qa-a{font-weight:var(--fw-body)}.nav-toggle{display:none;align-items:center;justify-content:center;width:38px;height:38px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-700,var(--c-neutral-700));cursor:pointer}.nav-toggle:hover{background:var(--surface-2)}.sidebar-backdrop{display:none}@media (max-width:860px){.sidebar{transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 10px 40px rgba(15,23,42,.25)}.sidebar.open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:15;background:rgba(15,23,42,.45)}.main{margin-left:0}.nav-toggle{display:inline-flex}.topbar{padding:0 var(--sp-4)}.content{padding:var(--sp-4)}}.profile-hero{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;background:radial-gradient(120% 140% at 0 0,var(--primary-soft) 0,transparent 55%),var(--surface)}.profile-avatar-lg{width:76px;height:76px;border-radius:var(--radius-full);flex-shrink:0;background:linear-gradient(135deg,var(--c-accent-500),var(--c-accent-700));color:#fff;display:grid;place-items:center;font-size:var(--fs-2xl);font-weight:var(--fw-strong);letter-spacing:-.02em;box-shadow:0 4px 14px rgba(13,148,136,.28)}.profile-hero-name{font-size:var(--fs-xl);font-weight:var(--fw-strong);line-height:1.2}.profile-hero-email{color:var(--text-muted);font-size:var(--fs-sm);margin-top:2px}.profile-grid{display:grid;grid-gap:var(--sp-5);gap:var(--sp-5);grid-template-columns:minmax(0,1fr);align-items:start}@media (min-width:900px){.profile-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}}.card-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-lg);margin-bottom:var(--sp-4)}.card-title .ico{color:var(--primary);flex-shrink:0}.info-list{display:flex;flex-direction:column}.info-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}.info-row:first-child{padding-top:0}.info-row:last-child{border-bottom:none;padding-bottom:0}.info-row .info-k{color:var(--text-muted);font-size:var(--fs-sm)}.info-row .info-v{font-weight:var(--fw-body);text-align:right}.form-foot{justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border)}.crumbs,.form-foot{display:flex;align-items:center}.crumbs{gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-sm);margin-bottom:var(--sp-3)}.crumbs,.crumbs a{color:var(--text-muted)}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--text);text-decoration:underline}.crumbs [aria-current=page]{color:var(--text);font-weight:var(--fw-strong)}.crumb-sep{color:var(--text-subtle)}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:var(--sp-5);gap:var(--sp-5);align-items:start}.lesson-layout.toc-closed{grid-template-columns:minmax(0,1fr)}.lesson-toc{position:-webkit-sticky;position:sticky;top:calc(var(--topbar-h) + var(--sp-4));max-height:calc(100vh - var(--topbar-h) - var(--sp-4) * 2);overflow-y:auto;padding:var(--sp-4)}.toc-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-3)}.toc-close{padding:4px 6px}.toc-progress{margin-bottom:var(--sp-4);display:grid;grid-gap:6px;gap:6px}.toc-module{margin-bottom:var(--sp-3)}.toc-module:last-child{margin-bottom:0}.toc-module-title{display:flex;align-items:center;gap:6px;width:100%;font-size:var(--fs-xs);font-weight:var(--fw-body);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);margin:0;padding:6px var(--sp-2);text-align:left}.toc-module-btn{background:none;border:0;border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:var(--fs-xs);letter-spacing:.06em}.toc-module-btn:hover{background:var(--surface-2);color:var(--text)}.toc-module.open .toc-module-title{color:var(--text);font-weight:var(--fw-strong)}.toc-module-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toc-module-count{flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:0}.toc-chevron{flex-shrink:0;transition:transform .15s ease}.toc-chevron.open{transform:rotate(180deg)}.toc-module-progress{padding:2px var(--sp-2) var(--sp-2)}.toc-type{flex-shrink:0;color:var(--text-subtle)}.toc-item{display:flex;align-items:center;gap:var(--sp-2);padding:7px var(--sp-2);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text);text-decoration:none;transition:background .12s}a.toc-item:hover{background:var(--surface-2)}.toc-item.toc-current{background:var(--primary-soft);font-weight:var(--fw-strong)}.toc-item.toc-locked{color:var(--text-subtle);cursor:default}.toc-title{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toc-duration{flex-shrink:0;font-size:var(--fs-xs);color:var(--text-subtle);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-state{flex-shrink:0;width:18px;height:18px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--border-strong);color:transparent}.lesson-state-done{border-color:var(--c-accent-500);background:var(--c-accent-500);color:#fff}.lesson-state-current{border-color:var(--primary);color:var(--primary)}.toc-locked .lesson-state{border-style:dashed}@media (max-width:1100px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-toc{position:static;max-height:none;order:-1}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.dash-section-title{margin:0 0 var(--sp-3);font-size:var(--fs-lg);color:var(--heading)}.dash-scroll{overflow-x:auto}.table td.num,.table th.num{text-align:right;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dash-sub{display:block;color:var(--text-muted);margin-top:2px}.dash-delta,.dash-sub{font-size:var(--fs-xs)}.dash-delta{font-weight:var(--fw-strong);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dash-delta.up{color:var(--c-success)}.dash-delta.down{color:var(--c-danger)}.dash-delta.flat,.dash-delta.none{color:var(--text-subtle);font-weight:var(--fw-body)}.dash-delta.none{cursor:help}.dash-tile-foot{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);font-size:var(--fs-xs)}.dash-tile-foot .grow{flex:1 1}.stat-of{font-size:var(--fs-lg);font-weight:var(--fw-body);color:var(--text-muted)}.dash-alert{color:var(--c-danger);font-weight:var(--fw-strong)}.dash-list{list-style:none;margin:0;padding:0}.dash-list-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.dash-list-item:last-child{border-bottom:none}.dash-list-item a{color:inherit;text-decoration:none}.dash-list-item a:hover strong{color:var(--link)}.dash-list-icon{color:var(--accent);display:flex;flex:none}.dash-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);flex:none}.dash-columns{display:grid;grid-gap:var(--sp-5);gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.lp-card{position:relative;display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5) var(--sp-5) calc(var(--sp-5) + 4px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:inherit;text-decoration:none;overflow:hidden;transition:border-color .12s,box-shadow .12s}.lp-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.lp-body{display:block;flex:1 1;min-width:0}.lp-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.lp-state{font-size:var(--fs-xs);font-weight:var(--fw-strong);letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:var(--radius-sm)}.lp-state-nouveau{background:var(--primary-soft);color:var(--primary)}.lp-state-en_cours{background:var(--primary);color:var(--on-primary)}.lp-state-termine{background:var(--c-accent-600);color:#ffffff}.lp-meta{font-size:var(--fs-xs);color:var(--text-muted)}.lp-title{display:block;margin:var(--sp-2) 0 4px;font-size:var(--fs-xl);font-weight:var(--fw-strong);color:var(--heading);overflow:hidden;text-overflow:ellipsis}.lp-sub{display:block;font-size:var(--fs-sm);color:var(--text-muted)}.lp-module{color:var(--text-700)}.lp-bar{position:absolute;inset:auto 0 0 0;height:4px;background:var(--surface-2)}.lp-bar>span{display:block;height:100%;background:var(--primary)}@media (max-width:560px){.lp-card{flex-direction:column;align-items:flex-start}}.dash-more{font-size:var(--fs-sm);color:var(--link);text-decoration:none;white-space:nowrap}.dash-more:hover{text-decoration:underline}