/* Generat de bin/build-legacy-css.mjs din app.css + app-theme.css. Nu edita direct. */
@keyframes pulse-green{70%{box-shadow:0 0 0 8px #34a85300}to{box-shadow:0 0 #34a85300}}@keyframes ripple{to{transform:scale(3.5);opacity:0}}@keyframes pulse{70%{box-shadow:0 0 0 10px #ea433500}to{box-shadow:0 0 #ea433500}}@keyframes pulse-bar{50%{opacity:.4}}@keyframes pop-in{0%{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.legacy{--g-blue: #1a73e8;--g-blue-700: #1558b8;--g-blue-50: #e8f0fe;--g-blue-100: #d2e3fc;--g-red: #ea4335;--g-red-50: #fce8e6;--g-yellow: #fbbc04;--g-yellow-50: #fef7e0;--g-green: #34a853;--g-green-50: #e6f4ea;--subj-info-bg: #e8f0fe;--subj-info: #1a73e8;--subj-info-ink: #174ea6;--subj-tic-bg: #e6f4ea;--subj-tic: #34a853;--subj-tic-ink: #137333;--subj-mate-bg: #fce8e6;--subj-mate: #ea4335;--subj-mate-ink: #b31412;--gray-50: #f8f9fa;--gray-100: #f1f3f4;--gray-200: #e8eaed;--gray-300: #dadce0;--gray-500: #9aa0a6;--gray-700: #5f6368;--gray-800: #3c4043;--gray-900: #202124;--surface: #ffffff;--surface-alt: var(--gray-50);--surface-blue: var(--g-blue-50);--surface-green: var(--g-green-50);--bg: var(--surface);--text: var(--gray-900);--text-muted: var(--gray-700);--text-subtle: var(--gray-500);--border: var(--gray-200);--border-strong: var(--gray-300);--primary: var(--g-blue);--primary-hover: var(--g-blue-700);--primary-soft: var(--g-blue-50);--accent: var(--g-green);--accent-soft: var(--g-green-50);--success: var(--g-green);--success-soft: var(--g-green-50);--success-strong: #137333;--warning: var(--g-yellow);--warning-soft: var(--g-yellow-50);--warning-strong: #b06000;--error: var(--g-red);--error-soft: var(--g-red-50);--error-strong: #b31412;--font-display: "Google Sans", "Product Sans", "Plus Jakarta Sans", system-ui, sans-serif;--font-body: "Roboto", "Inter", system-ui, -apple-system, sans-serif;--font-mono: "Roboto Mono", "JetBrains Mono", ui-monospace, monospace;--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 24px;--r-xl: 32px;--r-pill: 999px;--radius-xs: var(--r-xs);--radius-sm: var(--r-sm);--radius-md: var(--r-md);--radius-lg: var(--r-lg);--radius-xl: var(--r-xl);--radius-full: var(--r-pill);--elev-1: 0 1px 2px rgba(60,64,67,.08), 0 1px 3px rgba(60,64,67,.06);--elev-2: 0 1px 2px rgba(60,64,67,.1), 0 2px 6px 2px rgba(60,64,67,.08);--elev-3: 0 1px 3px rgba(60,64,67,.12), 0 4px 12px 3px rgba(60,64,67,.1);--elev-4: 0 2px 6px rgba(60,64,67,.14), 0 8px 24px 4px rgba(60,64,67,.1);--elev-hero: 0 24px 64px -16px rgba(26,115,232,.25), 0 8px 24px -8px rgba(60,64,67,.1);--shadow-xs: var(--elev-1);--shadow-sm: var(--elev-1);--shadow-md: var(--elev-2);--shadow-lg: var(--elev-3);--shadow-xl: var(--elev-4);--shadow-glow: var(--elev-hero);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--ease-emph: cubic-bezier(.2,0,0,1);--ease-std: cubic-bezier(.4,0,.2,1);--ease-out: var(--ease-emph);--ease-spring: cubic-bezier(.34,1.56,.64,1);--t-fast: .12s;--t-base: .24s;--t-slow: .48s;--d-fast: .12s;--d-med: .24s;--d-slow: .48s;--container: 1200px;--container-narrow: 880px;--gutter: clamp(16px, 4vw, 32px);--header-h: 72px;--sidebar-w: 280px;--gradient-hero: linear-gradient(135deg, #1a73e8 0%, #4285f4 50%, #34a853 100%);--gradient-text: linear-gradient(135deg, #1a73e8 0%, #34a853 100%);--ring: 0 0 0 3px rgb(26 115 232 / .24);--ring-error: 0 0 0 3px rgb(217 48 37 / .2);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;overflow-x:hidden;--odi-navy:#0f172a;--odi-navy-2:#1a2438;--g-blue:#2347d6;--g-blue-700:#1b38b0;--g-blue-50:#eef2ff;--g-blue-100:#dfe6ff;--g-red:#c81e3a;--g-red-50:#fdecef;--g-yellow:#b7791f;--g-yellow-50:#fdf6e3;--g-green:#15803d;--g-green-50:#e9f7ee;--subj-info-bg:#eef2ff;--subj-info:#2347d6;--subj-info-ink:#1b38b0;--subj-tic-bg:#e9f7ee;--subj-tic:#15803d;--subj-tic-ink:#166534;--subj-mate-bg:#fff3eb;--subj-mate:#c2410c;--subj-mate-ink:#9a3412;--gray-50:#f8f9fb;--gray-100:#eef0f4;--gray-200:#e3e6ec;--gray-300:#d0d5de;--gray-500:#8a93a3;--gray-700:#566074;--gray-800:#1e293b;--gray-900:#0f172a;--surface:#fff;--surface-alt:#f8f9fb;--surface-blue:#eef2ff;--surface-green:#e9f7ee;--bg:#f4f5f8;--text:#0f172a;--text-muted:#566074;--text-subtle:#8a93a3;--border:#e3e6ec;--border-strong:#d0d5de;--primary:#2347d6;--primary-hover:#1b38b0;--primary-soft:#eef2ff;--accent:#15803d;--accent-soft:#e9f7ee;--font-display:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:14px;--r-xl:16px;--elev-1:0 1px 2px rgba(15,23,42,.06);--elev-2:0 1px 2px rgba(15,23,42,.05),0 4px 14px -6px rgba(15,23,42,.1);--elev-3:0 1px 2px rgba(15,23,42,.06),0 12px 28px -12px rgba(15,23,42,.2);--elev-4:0 24px 60px -20px rgba(15,23,42,.35);--elev-hero:var(--elev-3);--gradient-hero:linear-gradient(135deg,#0f172a,#1a2438);--gradient-text:linear-gradient(90deg,#2347d6,#2347d6);--ring:0 0 0 3px rgba(35,71,214,.22);background-color:var(--bg)}.legacy *,.legacy *:before,.legacy *:after{box-sizing:border-box}.legacy *{margin:0}.legacy img,.legacy svg,.legacy video{display:block;max-width:100%}.legacy button,.legacy input,.legacy select,.legacy textarea{font:inherit;color:inherit}.legacy button{background:none;border:0;cursor:pointer}.legacy a{color:var(--g-blue);text-decoration:none}.legacy a:hover{text-decoration:underline;text-underline-offset:3px}.legacy h1,.legacy h2,.legacy h3,.legacy h4,.legacy h5,.legacy h6{font-family:var(--font-display);font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--text)}.legacy h1{font-size:clamp(2.5rem,6vw,4.5rem);letter-spacing:-.03em;line-height:1.05}.legacy h2{font-size:clamp(1.75rem,3.5vw,2.75rem);letter-spacing:-.025em}.legacy h3{font-size:clamp(1.25rem,2vw,1.625rem)}.legacy h4{font-size:1.125rem;font-weight:600}.legacy .lead{font-size:clamp(1.0625rem,1.5vw,1.25rem);color:var(--text-muted);line-height:1.55;max-width:60ch}.legacy .eyebrow{display:inline-block;font-family:var(--font-display);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--g-blue);margin-bottom:12px}.legacy .text-muted{color:var(--text-muted)}.legacy .text-mono{font-family:var(--font-mono)}.legacy .text-gradient{background:var(--gradient-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.legacy .num{font-feature-settings:"tnum" 1,"lnum" 1}.legacy .container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.legacy .container--narrow,.legacy .container-narrow{max-width:var(--container-narrow);margin-inline:auto;padding-inline:var(--gutter)}.legacy .row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.legacy .row--between{justify-content:space-between}.legacy .grid{display:grid;gap:var(--space-5)}.legacy .grid--cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.legacy .section{padding-block:clamp(48px,8vw,96px)}.legacy .section--hero{padding-block:clamp(80px,12vw,160px) clamp(64px,8vw,96px)}.legacy .section--alt{background:var(--surface-alt)}.legacy .section--blue{background:var(--surface-blue)}.legacy .section--green{background:var(--surface-green)}.legacy .icon{width:1.25em;height:1.25em;stroke-width:2;flex-shrink:0}.legacy .icon--lg{width:1.5em;height:1.5em}.legacy .icon--xl{width:2em;height:2em}.legacy .inline-form{display:inline;margin:0}.legacy .promo-banner{background:linear-gradient(90deg,var(--g-yellow-50),#fff8e1);border-bottom:1px solid var(--g-yellow);padding:10px 16px;text-align:center;font-size:.9375rem;color:var(--gray-800)}.legacy .promo-banner strong{color:#b06000}.legacy .site-header{position:sticky;top:0;z-index:50;height:var(--header-h);background:#ffffffd9;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--gray-200)}.legacy .site-header__inner{height:100%;display:flex;align-items:center;gap:var(--space-5)}.legacy .brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--gray-900)}.legacy .brand:hover{text-decoration:none}.legacy .brand__mark{width:32px;height:32px;border-radius:8px;background:conic-gradient(from 90deg at 50% 50%,var(--g-blue) 0 90deg,var(--g-red) 90deg 180deg,var(--g-yellow) 180deg 270deg,var(--g-green) 270deg 360deg);position:relative;box-shadow:var(--elev-1);flex-shrink:0}.legacy .brand__mark:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;background:#fff;border-radius:4px}.legacy .brand__mark svg{display:none}.legacy .brand__name{font-weight:600;color:var(--gray-900)}.legacy .brand__name b{color:var(--g-blue);font-weight:700}.legacy .nav-burger{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r-pill);color:var(--gray-700)}.legacy .nav-burger:hover{background:var(--gray-100);color:var(--gray-900)}@media(min-width:768px){.legacy .nav-burger{display:none}}.legacy .nav{display:none;gap:4px}@media(min-width:768px){.legacy .nav{display:flex}}@media(max-width:767px){.legacy .nav.is-open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--gray-200);padding:12px;box-shadow:var(--elev-2);gap:4px}.legacy .nav.is-open .nav__link{padding:12px;border-radius:var(--r-sm)}.legacy .nav.is-open .nav__link:after{display:none}}.legacy .nav__link{position:relative;padding:8px 12px;font-family:var(--font-display);font-weight:500;font-size:.9375rem;color:var(--gray-800);border-radius:var(--r-xs);transition:background var(--d-med),color var(--d-med)}.legacy .nav__link:after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;background:var(--g-blue);transform:scaleX(0);transform-origin:left;transition:transform var(--d-med) var(--ease-emph)}.legacy .nav__link:hover{text-decoration:none;background:var(--gray-50)}.legacy .nav__link:hover:after,.legacy .nav__link--active:after{transform:scaleX(1)}.legacy .nav__link--active{color:var(--g-blue)}.legacy .header__spacer{flex:1}.legacy .header__actions{display:flex;gap:8px;align-items:center}.legacy .theme-toggle{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-pill);color:var(--gray-700);transition:background var(--d-med),color var(--d-med)}.legacy .theme-toggle:hover{background:var(--gray-100);color:var(--gray-900)}.legacy .theme-toggle .icon-moon{display:none}.legacy .user-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--r-pill);font-size:.875rem;font-weight:500}.legacy .user-chip--connected{background:var(--g-green-50);border-color:var(--g-green);color:#137333}.legacy .user-chip--connected .icon,.legacy .user-chip--connected strong{color:#137333}@media(max-width:640px){.legacy .user-chip span{display:none}.legacy .user-chip{padding:6px 8px}}.legacy .user-chip .status-dot{width:8px;height:8px;border-radius:50%;background:var(--g-green);box-shadow:0 0 #34a85399;animation:pulse-green 2s infinite}.legacy .pill-admin{background:var(--g-blue);color:#fff;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.legacy .btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:8px;justify-content:center;height:44px;padding:0 24px;font-family:var(--font-display);font-weight:500;font-size:.9375rem;border-radius:var(--r-pill);background:var(--g-blue);color:#fff;border:0;transition:box-shadow var(--d-med) var(--ease-std),background-color var(--d-med),transform var(--d-fast);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.legacy .btn:hover{background:var(--g-blue-700);box-shadow:var(--elev-2);text-decoration:none}.legacy .btn:active{transform:scale(.98)}.legacy .btn:focus-visible{outline:none;box-shadow:var(--ring)}.legacy .btn--secondary,.legacy .btn--tonal{background:var(--g-blue-50);color:var(--g-blue-700)}.legacy .btn--secondary:hover,.legacy .btn--tonal:hover{background:var(--g-blue-100)}.legacy .btn--ghost{background:transparent;color:var(--g-blue)}.legacy .btn--ghost:hover{background:var(--g-blue-50)}.legacy .btn--danger{background:var(--g-red);color:#fff}.legacy .btn--danger:hover{background:#b31412}.legacy .btn--success{background:var(--g-green);color:#fff}.legacy .btn--success:hover{background:#137333}.legacy .btn--accent{background:var(--g-green);color:#fff}.legacy .btn--accent:hover{background:#137333}.legacy .btn--lg{height:56px;padding:0 32px;font-size:1rem}.legacy .btn--sm{height:36px;padding:0 16px;font-size:.875rem}.legacy .btn--icon{width:40px;height:40px;padding:0}.legacy .btn--block{width:100%}.legacy .ripple{position:absolute;border-radius:50%;transform:scale(0);pointer-events:none;background:#ffffff73;animation:ripple var(--d-slow) var(--ease-std)}.legacy .btn--secondary .ripple,.legacy .btn--tonal .ripple,.legacy .btn--ghost .ripple{background:#1a73e82e}.legacy .hero{position:relative;overflow:hidden;padding:clamp(48px,8vw,96px) 0 clamp(48px,6vw,80px)}.legacy .hero__inner-2col{display:grid;gap:clamp(32px,5vw,64px);grid-template-columns:1fr;align-items:center}@media(min-width:960px){.legacy .hero__inner-2col{grid-template-columns:1.1fr .9fr}}.legacy .hero__col-text{text-align:left}@media(max-width:959px){.legacy .hero__col-text{text-align:center}}.legacy .hero__col-art{display:flex;align-items:center;justify-content:center}.legacy .hero-art{width:100%;max-width:580px;height:auto}.legacy .hero:before,.legacy .hero:after{content:"";position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;z-index:0}.legacy .hero:before{width:480px;height:480px;left:-160px;top:-120px;background:radial-gradient(circle,var(--g-blue-100),transparent 70%)}.legacy .hero:after{width:420px;height:420px;right:-140px;top:40px;background:radial-gradient(circle,var(--g-green-50),transparent 70%)}.legacy .hero>*{position:relative;z-index:1}.legacy .hero__inner{display:grid;grid-template-columns:1fr;gap:0}.legacy .hero__eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-pill);font-family:var(--font-display);font-size:.8125rem;font-weight:500;color:var(--gray-700);box-shadow:var(--elev-1);margin-bottom:24px}.legacy .hero__eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--g-red);box-shadow:0 0 #ea433599;animation:pulse 1.8s infinite}.legacy .hero__title{max-width:22ch}@media(max-width:959px){.legacy .hero__title{margin-inline:auto}}.legacy .hero__title span,.legacy .hero__title em{font-style:normal;background:linear-gradient(135deg,var(--g-blue),var(--g-green));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.legacy .hero__lead{margin:24px 0 32px;max-width:56ch;font-size:clamp(1.0625rem,1.5vw,1.25rem)}@media(max-width:959px){.legacy .hero__lead{margin-inline:auto}}.legacy .hero__cta{display:flex;flex-wrap:wrap;gap:12px}@media(max-width:959px){.legacy .hero__cta{justify-content:center}}.legacy .hero__proof{margin-top:16px;color:var(--gray-700);font-size:.875rem;display:inline-flex;align-items:center;gap:8px}.legacy .hero__stats{margin-top:56px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:720px;margin-inline:auto;list-style:none;padding:0}.legacy .hero__stats li,.legacy .stat{padding:16px 12px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-md);box-shadow:var(--elev-1);display:flex;flex-direction:column;gap:4px;transition:transform var(--d-med) var(--ease-emph),box-shadow var(--d-med) var(--ease-emph)}.legacy .hero__stats li:hover,.legacy .stat:hover{transform:translateY(-2px);box-shadow:var(--elev-2)}.legacy .hero__stats strong,.legacy .stat-num{font-family:var(--font-display);font-weight:700;font-size:1.75rem;color:var(--g-blue);font-feature-settings:"tnum" 1;line-height:1}.legacy .hero__stats span,.legacy .stat-label{color:var(--gray-700);font-size:.8125rem;text-transform:uppercase;letter-spacing:.04em}@media(max-width:640px){.legacy .hero__stats{grid-template-columns:repeat(2,1fr)}}.legacy .hero__visual{display:none}.legacy .code-card{background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--r-md);box-shadow:var(--elev-3);overflow:hidden;max-width:640px;margin:56px auto 0}.legacy .code-card__head{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.legacy .code-card__dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.legacy .code-card__file{margin-left:12px;font-family:var(--font-mono);font-size:.8125rem;color:var(--gray-700)}.legacy .code-card__body{font-family:var(--font-mono);font-size:.875rem;line-height:1.7;padding:24px;margin:0;white-space:pre;overflow-x:auto;color:var(--gray-900);text-align:left}.legacy .code-card__body .kw{color:var(--g-blue);font-weight:600}.legacy .code-card__body .str{color:var(--g-green)}.legacy .code-card__body .cm{color:var(--gray-500);font-style:italic}.legacy .code-card__output{border-top:1px dashed var(--gray-200);padding:12px 24px;background:var(--gray-50);display:flex;align-items:center;gap:12px}.legacy .code-card__output-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-700)}.legacy .code-card__output-text{font-family:var(--font-mono);font-size:.875rem;color:var(--g-green);font-weight:600}.legacy .section__head{text-align:center;max-width:720px;margin:0 auto var(--space-7)}.legacy .section__head h2{margin-top:8px}.legacy .section__eyebrow{display:inline-block;font-family:var(--font-display);font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--g-blue);margin-bottom:8px}.legacy .section__lead{color:var(--gray-700);margin-top:16px;font-size:1.0625rem}.legacy .subject-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px}.legacy .subject-grid>.subject-card:first-child{grid-row:span 2}@media(max-width:900px){.legacy .subject-grid{grid-template-columns:1fr}.legacy .subject-grid>.subject-card:first-child{grid-row:auto}}.legacy .subject-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:16px;justify-content:space-between;min-height:240px;padding:32px;border-radius:var(--r-lg);background:var(--g-blue-50);color:var(--gray-900);text-decoration:none;transition:transform var(--d-med) var(--ease-emph),box-shadow var(--d-med) var(--ease-emph)}.legacy .subject-card:hover{transform:translateY(-4px);box-shadow:var(--elev-3);text-decoration:none}.legacy .subject-card--informatica{background:var(--subj-info-bg);color:var(--subj-info-ink)}.legacy .subject-card--informatica{border-top-right-radius:var(--r-xl);border-bottom-left-radius:var(--r-xl)}.legacy .subject-card--tic{background:var(--subj-tic-bg);color:var(--subj-tic-ink)}.legacy .subject-card--soon{background:var(--g-yellow-50);color:#b06000;min-height:0}.legacy .subject-card__icon{width:56px;height:56px;display:grid;place-items:center;background:#fff;border-radius:18px;color:var(--g-blue);box-shadow:var(--elev-1)}.legacy .subject-card--tic .subject-card__icon{color:var(--g-green)}.legacy .subject-card__title{font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:inherit;margin:0}.legacy .subject-card__desc{color:inherit;opacity:.85;font-size:.95rem;margin:0;max-width:36ch}.legacy .subject-card__meta{display:flex;gap:16px;color:inherit;opacity:.7;font-size:.875rem}.legacy .subject-card__cta{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:500;color:inherit;margin-top:auto;transition:gap var(--d-med) var(--ease-emph)}.legacy .subject-card:hover .subject-card__cta{gap:12px}.legacy .card{background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--r-md);padding:24px;transition:transform var(--d-med) var(--ease-emph),box-shadow var(--d-med)}.legacy .card--feature{display:flex;flex-direction:column;gap:12px}.legacy .card--feature:hover{transform:translateY(-2px);box-shadow:var(--elev-2)}.legacy .card__icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--g-blue-50);color:var(--g-blue)}.legacy .card--feature.card--accent .card__icon{background:var(--g-green-50);color:var(--g-green)}.legacy .card--feature.card--warm .card__icon{background:var(--g-yellow-50);color:#b06000}.legacy .card--feature.card--red .card__icon{background:var(--g-red-50);color:var(--g-red)}.legacy .card__title{font-family:var(--font-display);font-size:1.25rem;font-weight:600}.legacy .card__desc{color:var(--gray-700);font-size:.9375rem;line-height:1.55}.legacy .card__link{margin-top:auto;display:inline-flex;align-items:center;gap:4px;color:var(--g-blue);font-family:var(--font-display);font-weight:500;font-size:.9375rem}.legacy .card__link:hover{text-decoration:none}.legacy .card__link .icon{transition:transform var(--d-med)}.legacy .card__link:hover .icon{transform:translate(4px)}.legacy .card-form{background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--r-md);padding:32px;max-width:720px}.legacy .why-grid,.legacy .steps{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.legacy .why-tile,.legacy .step{padding:24px;background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--r-md)}.legacy .why-tile__icon,.legacy .step .step__icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--g-green-50);color:var(--g-green);margin-bottom:16px}.legacy .why-tile__title,.legacy .step__title{font-family:var(--font-display);font-weight:600;font-size:1.0625rem;margin-bottom:8px}.legacy .why-tile__body,.legacy .step__body{color:var(--gray-700);font-size:.9375rem}.legacy .step__num{display:inline-block;font-family:var(--font-display);font-size:.875rem;font-weight:700;color:var(--g-blue);letter-spacing:.08em;margin-bottom:16px}.legacy .step__icon-art{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;margin-bottom:16px}.legacy .course-head{background:linear-gradient(135deg,var(--g-blue-50),#fff 60%);border:1px solid var(--gray-200);border-radius:var(--r-lg);padding:40px;margin-bottom:var(--space-7);position:relative;overflow:hidden}.legacy .course-head__row{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.legacy .course-head__icon{width:64px;height:64px;display:grid;place-items:center;border-radius:18px;background:var(--g-blue);color:#fff;flex-shrink:0;box-shadow:var(--elev-2)}.legacy .course-head__body{flex:1;min-width:240px}.legacy .course-head__title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,3vw,2rem)}.legacy .course-head__desc{color:var(--gray-700);margin-top:8px}.legacy .course-head__stats{display:flex;gap:20px;margin-top:16px;flex-wrap:wrap}.legacy .course-head__stat{display:flex;align-items:center;gap:8px;font-size:.9375rem;color:var(--gray-700)}.legacy .course-head__stat strong{color:var(--gray-900);font-weight:600}.legacy .progress-card{margin-top:24px;padding:16px 20px;background:#fff;border-radius:var(--r-md);border:1px solid var(--gray-200);display:flex;align-items:center;gap:16px;flex-wrap:wrap}.legacy .progress-card__label{font-family:var(--font-display);font-weight:600;color:var(--gray-900);display:flex;align-items:center;gap:8px}.legacy .progress-card__bar{flex:1;min-width:200px;height:8px;background:var(--gray-200);border-radius:var(--r-pill);overflow:hidden}.legacy .progress-card__fill{height:100%;background:linear-gradient(90deg,var(--g-blue),var(--g-green));border-radius:inherit;transition:width var(--d-slow) var(--ease-emph)}.legacy .progress-card__count{font-family:var(--font-display);font-weight:700;color:var(--gray-900);font-feature-settings:"tnum" 1}.legacy .outline{display:grid;gap:16px;max-width:880px;margin:0 auto}.legacy .chapter{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-lg);overflow:hidden}.legacy .chapter__head{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:20px 24px;background:linear-gradient(90deg,var(--g-blue-50),transparent 70%)}.legacy .chapter__num{font-family:var(--font-display);font-weight:700;font-size:.85rem;color:var(--g-blue);letter-spacing:.06em;background:#fff;padding:6px 14px;border-radius:var(--r-pill);border:1px solid var(--g-blue-100)}.legacy .chapter__title{font-family:var(--font-display);font-weight:600;font-size:1.0625rem;margin:0}.legacy .chapter__progress{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--gray-700);font-feature-settings:"tnum" 1}.legacy .chapter__progress-bar{width:80px;height:6px;background:var(--gray-200);border-radius:var(--r-pill);overflow:hidden}.legacy .chapter__progress-fill{height:100%;background:var(--g-green);border-radius:inherit;transition:width var(--d-slow) var(--ease-emph)}.legacy .lesson-list{list-style:none;padding:0;margin:0}.legacy .lesson-row{display:grid;grid-template-columns:32px 1fr auto;gap:16px;align-items:center;padding:14px 24px;border-top:1px solid var(--gray-100);text-decoration:none;color:inherit;transition:background-color var(--d-med);position:relative}.legacy .lesson-row:first-child{border-top:0}.legacy .lesson-row:hover{background:var(--gray-50);text-decoration:none}.legacy .lesson-row[aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none}.legacy .lesson-row[data-status=current]{background:var(--g-blue-50)}.legacy .lesson-row[data-status=current]:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--g-blue);border-radius:0 3px 3px 0;animation:pulse-bar 1.6s ease-in-out infinite}.legacy .lesson-row__status{width:24px;height:24px;border-radius:50%;border:2px solid var(--gray-300);display:grid;place-items:center;background:#fff;color:var(--gray-500);flex-shrink:0}.legacy .lesson-row[data-status=completed] .lesson-row__status{background:var(--g-green);border-color:var(--g-green);color:#fff}.legacy .lesson-row[data-status=current] .lesson-row__status{background:var(--g-blue);border-color:var(--g-blue);color:#fff}.legacy .lesson-row__status .icon{width:14px;height:14px}.legacy .lesson-row__title{display:flex;flex-direction:column;gap:2px;min-width:0}.legacy .lesson-row__title strong{font-family:var(--font-display);font-weight:500;font-size:.9375rem;color:var(--gray-900)}.legacy .lesson-row__title small{color:var(--gray-700);font-size:.8125rem;font-feature-settings:"tnum" 1}.legacy .lesson-row[data-status=completed] .lesson-row__title strong{color:var(--gray-700)}.legacy .lesson-row__action{color:var(--gray-500);font-size:.8125rem;display:flex;align-items:center;gap:4px}.legacy .lesson-row[data-status=current] .lesson-row__action{color:var(--g-blue);font-weight:600}.legacy .lesson-row[data-status=completed] .lesson-row__action{color:var(--g-green);font-weight:600}.legacy .lesson-row:hover .lesson-row__action .icon{transform:translate(2px);transition:transform var(--d-med)}.legacy .lesson{padding-block:var(--space-7)}.legacy .lesson__breadcrumb{display:flex;gap:8px;align-items:center;font-size:.875rem;color:var(--gray-700);margin-bottom:16px;flex-wrap:wrap}.legacy .lesson__breadcrumb a{color:var(--gray-700);display:inline-flex;align-items:center;gap:4px}.legacy .lesson__breadcrumb a:hover{color:var(--gray-900);text-decoration:none}.legacy .lesson__head{margin-bottom:var(--space-7)}.legacy .lesson__title{font-size:clamp(2rem,4vw,3rem);margin-top:12px;line-height:1.1}.legacy .lesson__example{background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--r-md);padding:24px;margin-bottom:var(--space-7)}.legacy .lesson__example-head{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.legacy .lesson__example-head h3{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:1rem;font-weight:600;margin:0}.legacy .lesson__body{font-size:1.0625rem;line-height:1.75;color:var(--gray-900)}.legacy .lesson__nav{margin-top:var(--space-8);padding-top:24px;border-top:1px solid var(--gray-200);display:grid;gap:12px;grid-template-columns:1fr}@media(min-width:720px){.legacy .lesson__nav{grid-template-columns:1fr 1fr}}.legacy .lesson__nav-btn{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-md);color:var(--gray-900);text-decoration:none;transition:border-color var(--d-med),transform var(--d-med)}.legacy .lesson__nav-btn:hover{border-color:var(--g-blue);transform:translateY(-2px);text-decoration:none}.legacy .lesson__nav-btn span{display:flex;flex-direction:column}.legacy .lesson__nav-btn small{color:var(--gray-700);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.legacy .lesson__nav-btn strong{font-family:var(--font-display);font-size:1rem;font-weight:600}.legacy .lesson__nav-btn--primary{background:var(--g-blue);border-color:transparent;color:#fff;text-align:right;justify-content:flex-end}.legacy .lesson__nav-btn--primary:hover{background:var(--g-blue-700);color:#fff}.legacy .lesson__nav-btn--primary small{color:#ffffffd9}.legacy .lesson__nav-btn--success{background:var(--g-green);border-color:transparent;color:#fff;text-align:right;justify-content:flex-end}.legacy .lesson__nav-btn--success:hover{background:#137333;color:#fff}.legacy .lesson__nav-btn--success small{color:#ffffffd9}.legacy .lesson__nav-btn--locked{background:var(--g-yellow-50);border-color:var(--g-yellow);color:#b06000;cursor:not-allowed}.legacy .lesson__nav-btn--locked:hover{background:var(--g-yellow-50);transform:none}.legacy .lesson__nav-btn--locked small{color:#b06000;opacity:.7}.legacy .lesson__nav-btn--locked strong{opacity:.85}.legacy .exercises{margin-top:var(--space-7);padding-top:var(--space-7);border-top:2px solid var(--gray-200)}.legacy .exercises__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.legacy .exercises__title{font-family:var(--font-display);font-weight:700;font-size:1.5rem;display:flex;align-items:center;gap:8px}.legacy .exercises__counter{font-family:var(--font-display);font-size:.875rem;font-weight:600;padding:4px 12px;border-radius:var(--r-pill);background:var(--gray-100);color:var(--gray-700)}.legacy .exercise{background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--r-md);padding:24px;margin-bottom:16px;transition:border-color var(--d-med)}.legacy .exercise[data-status=correct]{border-color:var(--g-green);background:var(--g-green-50)}.legacy .exercise[data-status=incorrect]{border-color:var(--g-red)}.legacy .exercise__head{display:flex;gap:12px;align-items:center;margin-bottom:16px}.legacy .exercise__num{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--g-blue-50);color:var(--g-blue);font-family:var(--font-display);font-weight:700;font-size:.875rem;flex-shrink:0}.legacy .exercise[data-status=correct] .exercise__num{background:var(--g-green);color:#fff}.legacy .exercise[data-status=incorrect] .exercise__num{background:var(--g-red);color:#fff}.legacy .exercise__type{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-700)}.legacy .exercise__prompt{font-size:1rem;line-height:1.6}.legacy .exercise__prompt code{font-family:var(--font-mono);font-size:.9em;padding:2px 6px;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:4px}.legacy .exercise__prompt pre{margin:12px 0;padding:16px;background:var(--gray-900);color:#e8eaed;border-radius:var(--r-sm);overflow-x:auto;font-family:var(--font-mono);font-size:.875rem;line-height:1.7}.legacy .exercise__prompt pre code{background:transparent;border:0;padding:0;color:inherit;font-size:inherit}.legacy .exercise__form{margin-top:16px;display:grid;gap:12px}.legacy .exercise__option{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--r-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--d-med),border-color var(--d-med)}.legacy .exercise__option:hover{background:var(--gray-100)}.legacy .exercise__option input{width:18px;height:18px;accent-color:var(--g-blue)}.legacy .exercise__option--correct{background:var(--g-green-50);border-color:var(--g-green);color:#137333}.legacy .exercise__option--incorrect{background:var(--g-red-50);border-color:var(--g-red);color:#b31412}.legacy .exercise__fill{display:inline-block;min-width:80px;font-family:var(--font-mono);font-size:.95em;padding:4px 10px;border:2px dashed var(--gray-300);background:#fff;border-radius:4px;color:var(--gray-900)}.legacy .exercise__fill:focus{outline:none;border-style:solid;border-color:var(--g-blue);box-shadow:var(--ring)}.legacy .exercise__verify{display:flex;gap:12px;margin-top:12px;align-items:center;flex-wrap:wrap}.legacy .exercise__feedback{margin-top:12px;padding:16px 20px;border-radius:var(--r-sm);border:1px solid;font-size:.9375rem;line-height:1.6;display:none}.legacy .exercise__feedback.is-shown{display:block}.legacy .exercise__feedback--correct{background:var(--g-green-50);border-color:var(--g-green);color:#137333}.legacy .exercise__feedback--incorrect{background:var(--g-red-50);border-color:var(--g-red);color:#b31412}.legacy .exercise__feedback strong{font-weight:700}.legacy .exercise__done{display:flex;align-items:center;gap:8px;color:var(--g-green);font-weight:600;font-size:.9375rem}.legacy .completion-banner{margin-top:var(--space-7);padding:32px;background:linear-gradient(135deg,var(--g-green),#137333);color:#fff;border-radius:var(--r-lg);display:none;text-align:center}.legacy .completion-banner.is-shown{display:block;animation:pop-in .4s var(--ease-spring)}.legacy .completion-banner__icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 12px;background:#fff3;border-radius:50%}.legacy .completion-banner h3{color:#fff;margin-bottom:8px;font-size:1.5rem}.legacy .completion-banner p{color:#ffffffe6;margin-bottom:16px}.legacy .completion-banner .btn{background:#fff;color:#137333}.legacy .completion-banner .btn:hover{background:#ffffffeb}.legacy .field{display:grid;gap:8px}.legacy .field__label{font-family:var(--font-display);font-size:.875rem;font-weight:500;color:var(--gray-900)}.legacy .field__hint{font-size:.8125rem;color:var(--gray-700)}.legacy .field__error{font-size:.8125rem;color:var(--g-red);display:flex;align-items:center;gap:4px}.legacy .input-wrap{position:relative}.legacy .input-wrap>.icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--gray-500);pointer-events:none}.legacy .input,.legacy .textarea,.legacy .select{width:100%;height:48px;padding:0 16px;background:#fff;border:1px solid var(--gray-300);border-radius:var(--r-sm);color:var(--gray-900);font-size:.9375rem;transition:border-color var(--d-med),box-shadow var(--d-med)}.legacy .input-wrap>.input,.legacy .input-wrap>.select{padding-left:calc(22px + 1.25em)}.legacy .input::placeholder{color:var(--gray-500)}.legacy .input:hover{border-color:var(--gray-500)}.legacy .input:focus,.legacy .textarea:focus,.legacy .select:focus{outline:none;border-color:var(--g-blue);box-shadow:var(--ring)}.legacy .textarea{height:auto;padding:12px 16px;resize:vertical;min-height:120px;line-height:1.6;font-family:inherit}.legacy .checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9375rem;color:var(--gray-900)}.legacy .checkbox input{accent-color:var(--g-blue);width:18px;height:18px}.legacy .form-row-inline{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}@media(max-width:640px){.legacy .form-row-inline{grid-template-columns:1fr}}.legacy .form-actions{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}.legacy .auth{min-height:calc(100vh - var(--header-h) - 200px);display:grid;place-items:center;padding:48px 16px}.legacy .auth__card{width:100%;max-width:460px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-lg);box-shadow:var(--elev-3);padding:40px}.legacy .auth__icon{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;background:var(--g-blue);color:#fff;margin:0 auto 24px;box-shadow:0 8px 24px -8px #1a73e866}.legacy .auth__title{text-align:center;font-size:clamp(1.5rem,2vw + 1rem,2rem);letter-spacing:-.02em}.legacy .auth__sub{text-align:center;color:var(--gray-700);margin-top:8px}.legacy .auth__form{margin-top:24px;display:grid;gap:16px}.legacy .auth__foot{margin-top:24px;text-align:center;color:var(--gray-700);font-size:.9375rem}.legacy .auth__foot a{font-family:var(--font-display);font-weight:500}.legacy .site-footer{background:var(--gray-900);color:var(--gray-300);padding:64px 0 32px;margin-top:var(--space-9)}.legacy .footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:48px}@media(max-width:800px){.legacy .footer-grid{grid-template-columns:1fr 1fr}}.legacy .footer-grid .brand,.legacy .footer-grid .brand:hover,.legacy .footer-grid .brand__name{color:#fff}.legacy .footer-grid .brand__name b{color:#aecbfa}.legacy .footer-col h4,.legacy .footer-col h5{font-family:var(--font-display);color:#fff;font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px}.legacy .footer-col ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.legacy .footer-col a{color:var(--gray-300);font-size:.9375rem}.legacy .footer-col a:hover{color:#fff;text-decoration:none}.legacy .footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:48px;padding-top:32px;border-top:1px solid var(--gray-800);font-size:.8125rem;color:var(--gray-500)}.legacy .fab{position:fixed;right:24px;bottom:24px;z-index:40;width:56px;height:56px;border-radius:18px;background:var(--g-blue);color:#fff;display:grid;place-items:center;box-shadow:var(--elev-3);transition:transform var(--d-med) var(--ease-emph),border-radius var(--d-med)}.legacy .fab:hover{transform:translateY(-2px) scale(1.04);border-radius:24px}.legacy .snackbar{position:fixed;left:50%;bottom:24px;transform:translate(-50%,120%);display:inline-flex;align-items:center;gap:16px;padding:14px 20px;background:var(--gray-900);color:#fff;border-radius:var(--r-sm);box-shadow:var(--elev-4);font-size:.9375rem;min-width:280px;max-width:560px;z-index:60;opacity:0;transition:transform var(--d-slow) var(--ease-emph),opacity var(--d-slow)}.legacy .snackbar.show{transform:translate(-50%);opacity:1}.legacy .snackbar-action{color:var(--g-yellow);font-family:var(--font-display);font-weight:500;padding:6px 10px;border-radius:8px}.legacy .snackbar-action:hover{background:#ffffff14}.legacy .admin{display:grid;grid-template-columns:1fr;min-height:100vh}@media(min-width:960px){.legacy .admin{grid-template-columns:var(--sidebar-w) 1fr}}.legacy .admin-side{background:#fff;border-right:1px solid var(--gray-200);padding:24px 12px;display:flex;flex-direction:column;gap:8px;position:sticky;top:0;max-height:100vh;overflow-y:auto}.legacy .admin-side__brand{padding:12px;margin-bottom:12px}.legacy .admin-side__group{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-500);padding:12px 12px 4px;font-weight:600}.legacy .admin-side__link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-xs);color:var(--gray-700);font-family:var(--font-display);font-weight:500;font-size:.9375rem;transition:color var(--d-med),background var(--d-med)}.legacy .admin-side__link:hover{background:var(--gray-50);color:var(--gray-900);text-decoration:none}.legacy .admin-side__link--active{background:var(--g-blue-50);color:var(--g-blue);font-weight:600}.legacy .admin-side__link.muted{opacity:.5;pointer-events:none}.legacy .admin-main{display:flex;flex-direction:column;min-width:0}.legacy .admin-top{height:var(--header-h);display:flex;align-items:center;gap:16px;padding:0 24px;background:#fff;border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:10}.legacy .admin-top__title{font-family:var(--font-display);font-weight:600;font-size:1.125rem}.legacy .admin-top__spacer{flex:1}.legacy .admin-content{padding:32px;flex:1}.legacy .admin-side__toggle{display:inline-flex}@media(min-width:960px){.legacy .admin-side__toggle{display:none}}@media(max-width:959px){.legacy .admin-side{position:fixed;left:0;top:0;bottom:0;width:280px;transform:translate(-100%);transition:transform var(--d-slow);z-index:60;max-height:100vh}.legacy .admin-side[data-open=true]{transform:translate(0);box-shadow:var(--elev-4)}}.legacy .page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.legacy .page-header h1{font-size:1.75rem}.legacy .page-header__sub{color:var(--gray-700);margin-top:4px;font-size:.9375rem}.legacy .table-wrap{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-md);overflow-x:auto}.legacy .table{width:100%;border-collapse:collapse;font-size:.9375rem}.legacy .table th,.legacy .table td{padding:12px 16px;text-align:left;vertical-align:middle}.legacy .table th{background:var(--gray-50);font-family:var(--font-display);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-700);white-space:nowrap}.legacy .table td{white-space:nowrap}.legacy .table td.col-wrap{white-space:normal;min-width:220px}.legacy .table tbody tr{border-top:1px solid var(--gray-100)}.legacy .table tbody tr:hover{background:var(--gray-50)}.legacy .table__actions{display:flex;gap:4px;justify-content:flex-end}.legacy .table code{font-family:var(--font-mono);font-size:.85em;color:var(--gray-700)}.legacy .table .date-cell{color:var(--gray-700);font-size:.8125rem;font-feature-settings:"tnum" 1;line-height:1.4}.legacy .table .date-cell time{display:block}.legacy .table .date-cell .time-of-day{color:var(--gray-500)}.legacy .pill{display:inline-flex;align-items:center;gap:4px;padding:2px 12px;font-family:var(--font-display);font-size:.75rem;font-weight:500;border-radius:var(--r-pill);background:var(--gray-100);color:var(--gray-700)}.legacy .pill--primary{background:var(--g-blue-50);color:var(--g-blue)}.legacy .pill--accent,.legacy .pill--success{background:var(--g-green-50);color:#137333}.legacy .pill--warning{background:var(--g-yellow-50);color:#b06000}.legacy .pill--error{background:var(--g-red-50);color:#b31412}.legacy .alert{display:flex;gap:12px;align-items:flex-start;padding:16px 20px;border-radius:var(--r-md);border:1px solid var(--gray-200);background:#fff;margin-bottom:16px}.legacy .alert__icon{flex-shrink:0;margin-top:2px}.legacy .alert--success{background:var(--g-green-50);border-color:var(--g-green);color:#137333}.legacy .alert--warning{background:var(--g-yellow-50);border-color:var(--g-yellow);color:#b06000}.legacy .alert--error{background:var(--g-red-50);border-color:var(--g-red);color:#b31412}.legacy .alert--info{background:var(--g-blue-50);border-color:var(--g-blue);color:var(--g-blue)}.legacy .empty{text-align:center;padding:64px 24px;background:#fff;border:1px dashed var(--gray-300);border-radius:var(--r-md)}.legacy .empty__icon{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 16px;border-radius:50%;background:var(--gray-100);color:var(--gray-700)}.legacy .empty__title{font-family:var(--font-display);font-size:1.25rem;font-weight:600}.legacy .empty__desc{color:var(--gray-700);margin-top:8px;max-width:44ch;margin-inline:auto}.legacy .empty__cta{margin-top:24px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.legacy .coming-soon{text-align:center;padding:96px 24px;max-width:640px;margin:0 auto}.legacy .coming-soon__icon{width:88px;height:88px;display:grid;place-items:center;margin:0 auto 24px;border-radius:var(--r-lg);background:var(--g-blue);color:#fff;box-shadow:var(--elev-3)}.legacy .coming-soon__title{font-size:clamp(1.75rem,2vw + 1rem,2.5rem)}.legacy .coming-soon__body{color:var(--gray-700);margin-top:16px;font-size:1.0625rem;line-height:1.6}.legacy .coming-soon__cta{margin-top:32px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.legacy .file-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--gray-50);border-radius:var(--r-sm);margin-bottom:8px}.legacy .file-row__name{flex:1;font-family:var(--font-mono);font-size:.85rem;word-break:break-all}.legacy .file-row__size{color:var(--gray-700);font-size:.8125rem}.legacy .course-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(280px,360px));margin-top:24px;justify-content:start}.legacy .course{display:flex;flex-direction:column;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-md);overflow:hidden;text-decoration:none;color:inherit;transition:transform var(--d-med) var(--ease-emph),box-shadow var(--d-med)}.legacy .course:hover{transform:translateY(-4px);box-shadow:var(--elev-3);text-decoration:none}.legacy .course__thumb{height:160px;display:grid;place-items:center;background:linear-gradient(135deg,var(--g-blue-50),var(--g-green-50));position:relative}.legacy .course__thumb-icon{width:64px;height:64px;display:grid;place-items:center;background:#fff;border-radius:18px;color:var(--g-blue);box-shadow:var(--elev-2)}.legacy .course__body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}.legacy .course__meta{display:flex;gap:8px;align-items:center;font-size:.8125rem;color:var(--gray-700);flex-wrap:wrap}.legacy .course__title{font-family:var(--font-display);font-size:1.125rem;font-weight:600}.legacy .course__desc{color:var(--gray-700);font-size:.9375rem;flex:1}.legacy .course__foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--gray-200)}.legacy .pdf-wrap{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--elev-2);margin-top:24px}.legacy .pdf-wrap__head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--gray-200);flex-wrap:wrap;gap:12px}.legacy .pdf-wrap__title{font-family:var(--font-display);font-size:1.0625rem;font-weight:600;display:flex;gap:8px;align-items:center}.legacy .pdf-frame{width:100%;min-height:720px;border:0;background:var(--gray-50);display:block}.legacy .markdown h2{font-family:var(--font-display);font-size:1.5rem;font-weight:700;margin-top:48px;margin-bottom:16px;letter-spacing:-.02em}.legacy .markdown h3{font-family:var(--font-display);font-size:1.125rem;font-weight:600;margin-top:24px;margin-bottom:12px}.legacy .markdown p{margin-bottom:16px}.legacy .markdown ul,.legacy .markdown ol{margin-bottom:16px;padding-left:32px}.legacy .markdown li{margin-bottom:8px}.legacy .markdown li::marker{color:var(--g-blue)}.legacy .markdown strong{color:var(--gray-900);font-weight:700}.legacy .markdown a{color:var(--g-blue);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.legacy .markdown blockquote{margin:24px 0;padding:16px 20px;border-left:3px solid var(--g-blue);background:var(--g-blue-50);border-radius:0 var(--r-sm) var(--r-sm) 0}.legacy .markdown blockquote p:last-child{margin-bottom:0}.legacy .markdown code{font-family:var(--font-mono);font-size:.9em;padding:2px 6px;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:4px;color:var(--gray-900)}.legacy .markdown pre{margin:24px 0;padding:24px;background:var(--gray-900);color:#e8eaed;border-radius:var(--r-md);overflow-x:auto;font-size:.9rem;line-height:1.7}.legacy .markdown pre code{background:transparent;border:0;padding:0;color:inherit;font-size:inherit}.legacy .markdown table{width:100%;border-collapse:collapse;margin:24px 0;font-size:.9375rem;border:1px solid var(--gray-200);border-radius:var(--r-md);overflow:hidden}.legacy .markdown table th{background:var(--gray-50);font-family:var(--font-display);font-weight:600;text-align:left;padding:12px;border-bottom:1px solid var(--gray-200)}.legacy .markdown table td{padding:12px;border-top:1px solid var(--gray-200)}.legacy .markdown table code{font-size:.85em}.legacy .markdown pre code .token.comment,.legacy .code-block .token.comment{color:#8ab4f8;opacity:.6;font-style:italic}.legacy .markdown pre code .token.keyword,.legacy .code-block .token.keyword{color:#f28b82;font-weight:600}.legacy .markdown pre code .token.string,.legacy .code-block .token.string{color:#fdd663}.legacy .markdown pre code .token.number,.legacy .code-block .token.number{color:#aecbfa}.legacy .markdown pre code .token.function,.legacy .code-block .token.function{color:#c58af9}.legacy .markdown pre code .token.operator,.legacy .markdown pre code .token.punctuation,.legacy .code-block .token.operator,.legacy .code-block .token.punctuation{color:#e8eaed}.legacy .markdown pre code .token.class-name,.legacy .code-block .token.class-name{color:#f9ab00}.legacy .code-block{margin:0;padding:24px;background:var(--gray-900);color:#e8eaed;border-radius:var(--r-md);overflow-x:auto;font-size:.9rem;line-height:1.7;font-family:var(--font-mono)}.legacy .code-block code{font-family:inherit;background:transparent;border:0;padding:0;color:inherit}.legacy .link-underline{position:relative;color:var(--gray-900);font-weight:500}.legacy .link-underline:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--g-blue);transform:scaleX(0);transform-origin:right;transition:transform var(--d-slow)}.legacy .link-underline:hover:after{transform:scaleX(1);transform-origin:left}.legacy .link-underline:hover{text-decoration:none}.legacy .cta-band{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:48px;background:var(--gradient-hero);border-radius:var(--r-lg);box-shadow:var(--elev-3)}.legacy .js-stagger>*{opacity:0;transform:translateY(12px);transition:opacity var(--d-slow) var(--ease-emph),transform var(--d-slow) var(--ease-emph)}.legacy .js-stagger.in>*{opacity:1;transform:none}.legacy .js-stagger.in>*:nth-child(1){transition-delay:40ms}.legacy .js-stagger.in>*:nth-child(2){transition-delay:.1s}.legacy .js-stagger.in>*:nth-child(3){transition-delay:.16s}.legacy .js-stagger.in>*:nth-child(4){transition-delay:.22s}.legacy .js-stagger.in>*:nth-child(5){transition-delay:.28s}.legacy .js-stagger.in>*:nth-child(6){transition-delay:.34s}.legacy .js-fade-up{opacity:0;transform:translateY(16px);transition:opacity var(--d-slow) var(--ease-emph),transform var(--d-slow) var(--ease-emph)}.legacy .js-fade-up.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.legacy *,.legacy *:before,.legacy *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.legacy [hidden]{display:none!important}.legacy .code-editor{display:block;width:100%;font-family:var(--font-mono);font-size:.9rem;line-height:1.55;padding:14px 16px;background:var(--gray-900);color:#e8eaed;border:1px solid var(--gray-300);border-radius:var(--r-sm);resize:vertical;white-space:pre;overflow-wrap:normal;overflow-x:auto;tab-size:4;-moz-tab-size:4}.legacy .code-editor:focus{outline:2px solid var(--g-blue);outline-offset:-1px}.legacy .code-stdin{margin-top:var(--space-3)}.legacy .code-stdin>summary{cursor:pointer;font-size:.85rem;color:var(--text-muted);padding:6px 0}.legacy .code-stdin__input{display:block;width:100%;font-family:var(--font-mono);font-size:.85rem;padding:8px 12px;margin-top:6px;background:var(--surface);color:var(--text);border:1px solid var(--gray-300);border-radius:var(--r-xs);resize:vertical}.legacy .code-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-3)}.legacy .code-output{margin-top:var(--space-3);background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--r-sm);overflow:hidden}.legacy .code-output__head{display:flex;gap:var(--space-3);align-items:center;padding:10px 14px;background:var(--gray-50);border-bottom:1px solid var(--gray-200);font-size:.85rem}.legacy .code-output__status{font-weight:600;padding:2px 10px;border-radius:var(--r-pill);font-size:.8rem}.legacy .code-output__status--ok{background:var(--g-green-50);color:#137333}.legacy .code-output__status--err{background:var(--g-red-50);color:#c5221f}.legacy .code-output__meta{color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem}.legacy .code-output__section{padding:10px 14px;border-top:1px solid var(--gray-100)}.legacy .code-output__section:first-of-type{border-top:0}.legacy .code-output__label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:4px}.legacy .code-output pre{font-family:var(--font-mono);font-size:.85rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;margin:0;padding:0;background:transparent;color:var(--text)}.legacy .code-output__loading{padding:14px;text-align:center;color:var(--text-muted);font-size:.9rem}.legacy .code-output__loading:before{content:"\23f3  ";font-size:1rem;margin-right:4px}.legacy .labs{margin-top:var(--space-7);padding-top:var(--space-7);border-top:2px solid var(--gray-200)}.legacy .labs__head{margin-bottom:var(--space-5)}.legacy .labs__title{display:flex;gap:var(--space-2);align-items:center;font-family:var(--font-display);font-size:1.5rem;margin:0 0 6px}.legacy .lab{background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--r-md);padding:var(--space-5);margin-bottom:var(--space-5)}.legacy .lab--solved{border-color:var(--g-green);box-shadow:0 0 0 2px var(--g-green-50) inset}.legacy .lab__head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}.legacy .lab__num{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--g-blue);margin-bottom:2px}.legacy .lab__title{font-family:var(--font-display);font-size:1.15rem;margin:0}.legacy .lab__diff{display:inline-block;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:var(--r-pill)}.legacy .lab__diff--easy{background:var(--g-green-50);color:#137333}.legacy .lab__diff--medium{background:var(--g-yellow-50);color:#b06000}.legacy .lab__diff--hard{background:var(--g-red-50);color:#c5221f}.legacy .lab__instructions{margin-bottom:var(--space-3);font-size:.95rem;line-height:1.6}.legacy .lab__instructions p:last-child{margin-bottom:0}.legacy .lab__instructions code{font-family:var(--font-mono);font-size:.9em;padding:1px 6px;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:4px}.legacy .lab__editor{margin-bottom:var(--space-3)}.legacy .lab__hints{margin-top:var(--space-3);background:var(--g-yellow-50);border:1px solid #fde293;border-radius:var(--r-sm);padding:12px 14px}.legacy .lab__hint{display:flex;gap:8px;align-items:flex-start;margin:0 0 8px;font-size:.9rem;line-height:1.5}.legacy .lab__hint:last-child{margin-bottom:0}.legacy .lab__hint .icon{color:#b06000;flex-shrink:0;margin-top:2px}.legacy .lab__results{margin-top:var(--space-3)}.legacy .lab__results-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 8px}.legacy .lab__results-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.legacy .lab__test{border:1px solid var(--gray-200);border-left:4px solid var(--gray-300);border-radius:var(--r-xs);padding:10px 14px;background:var(--surface)}.legacy .lab__test--pass{border-left-color:var(--g-green);background:var(--g-green-50)}.legacy .lab__test--fail{border-left-color:var(--g-red);background:var(--g-red-50)}.legacy .lab__test-head{display:flex;justify-content:space-between;gap:8px;font-size:.9rem}.legacy .lab__test-body{margin-top:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.legacy .lab__test-label{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.legacy .lab__test pre{font-family:var(--font-mono);font-size:.8rem;white-space:pre-wrap;word-break:break-word;margin:4px 0 0;padding:6px 8px;background:var(--surface);border:1px solid var(--gray-200);border-radius:4px;max-height:140px;overflow-y:auto}.legacy .lab__solved{display:flex;gap:10px;align-items:center;margin-top:var(--space-3);padding:12px 16px;background:var(--g-green-50);border:1px solid var(--g-green);border-radius:var(--r-sm);color:#137333;font-size:.95rem}.legacy .lab__solved .icon{color:var(--g-green)}:root[data-theme=dark] .legacy .code-output{background:#1f2329;border-color:#2d3138}:root[data-theme=dark] .legacy .code-output__head{background:#14171c;border-bottom-color:#2d3138}:root[data-theme=dark] .legacy .code-output__status--ok{background:#34a8532e;color:#81c995}:root[data-theme=dark] .legacy .code-output__status--err{background:#ea43352e;color:#f28b82}:root[data-theme=dark] .legacy .code-output pre{color:#e8eaed}:root[data-theme=dark] .legacy .code-stdin__input{background:#14171c;color:#e8eaed;border-color:#2d3138}:root[data-theme=dark] .legacy .lab{background:#1f2329;border-color:#2d3138}:root[data-theme=dark] .legacy .lab__test{background:#14171c;border-color:#2d3138}:root[data-theme=dark] .legacy .lab__test pre{background:#1f2329;border-color:#2d3138;color:#e8eaed}:root[data-theme=dark] .legacy .lab__test--pass{background:#34a8531a}:root[data-theme=dark] .legacy .lab__test--fail{background:#ea43351a}:root[data-theme=dark] .legacy .lab__hints{background:#fbbc041a;border-color:#fbbc0459;color:#fde293}:root[data-theme=dark] .legacy .lab__solved{background:#34a85326;color:#81c995}:root[data-theme=dark] .legacy .lab__instructions code{background:#14171c;border-color:#2d3138}@media(max-width:640px){.legacy .code-editor{font-size:.85rem}.legacy .lab{padding:var(--space-4)}.legacy .lab__head{flex-direction:column;align-items:flex-start}}.legacy .lab-index__head{text-align:center;margin-bottom:var(--space-7);padding-block:var(--space-7)}.legacy .lab-index__head .progress-card{max-width:480px;margin:var(--space-5) auto 0}.legacy .lab-index__title{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.5rem);margin:var(--space-3) 0}.legacy .lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4);margin-bottom:var(--space-7)}.legacy .lab-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--r-md);text-decoration:none;color:var(--text);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.legacy .lab-card:hover{border-color:var(--g-blue);transform:translateY(-2px);box-shadow:0 4px 12px #1a73e81a}.legacy .lab-card--solved{border-left:4px solid var(--g-green)}.legacy .lab-card__head{display:flex;align-items:center;gap:var(--space-2)}.legacy .lab-card__num{display:inline-block;font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--g-blue);background:var(--g-blue-50);padding:2px 8px;border-radius:var(--r-pill)}.legacy .lab-card__diff{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:var(--r-pill)}.legacy .lab-card__solved-badge{margin-left:auto;display:inline-flex;align-items:center;gap:4px;color:var(--g-green);font-size:.8rem}.legacy .lab-card__title{font-family:var(--font-display);font-size:1.05rem;margin:var(--space-1) 0 0;line-height:1.35}.legacy .lab-card__meta{display:flex;gap:var(--space-3);margin-top:auto;padding-top:var(--space-2);font-size:.8rem;color:var(--text-muted)}.legacy .lab-card__meta span{display:inline-flex;align-items:center;gap:4px}.legacy .lab-page__head-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-2);font-size:.9rem}:root[data-theme=dark] .legacy .lab-card{background:#1f2329;border-color:#2d3138}:root[data-theme=dark] .legacy .lab-card:hover{border-color:var(--g-blue)}:root[data-theme=dark] .legacy .lab-card__num{background:#1a73e82e}.legacy .CodeMirror{font-family:var(--font-mono)!important;font-size:.9rem!important;line-height:1.55!important;border:1px solid var(--gray-300);border-radius:var(--r-sm);height:auto!important}.legacy .CodeMirror-focused{outline:2px solid var(--g-blue);outline-offset:-1px}:root[data-theme=dark] .legacy .CodeMirror{border-color:#2d3138}.legacy .cm-s-default.CodeMirror{background:#fafbfc;color:#2d2f33}.legacy .cm-s-default .CodeMirror-gutters{background:#f1f3f4;border-right:1px solid var(--gray-200);color:var(--gray-500)}.legacy .cm-s-default .CodeMirror-linenumber{color:#aab2bd}.legacy .cm-s-default .CodeMirror-cursor{border-left:2px solid #1a73e8}.legacy .cm-s-default .cm-comment{color:#8e908c;font-style:italic}.legacy .cm-s-default .cm-string,.legacy .cm-s-default .cm-string-2{color:#718c00}.legacy .cm-s-default .cm-number{color:#f5871f}.legacy .cm-s-default .cm-keyword{color:#8959a8;font-weight:600}.legacy .cm-s-default .cm-atom{color:#f5871f;font-weight:600}.legacy .cm-s-default .cm-def{color:#4271ae;font-weight:600}.legacy .cm-s-default .cm-variable{color:#2d2f33}.legacy .cm-s-default .cm-variable-2{color:#c82829}.legacy .cm-s-default .cm-variable-3,.legacy .cm-s-default .cm-type{color:#c82829;font-weight:600}.legacy .cm-s-default .cm-property{color:#4271ae}.legacy .cm-s-default .cm-operator{color:#3e999f}.legacy .cm-s-default .cm-meta{color:#8959a8}.legacy .cm-s-default .cm-builtin{color:#4271ae}.legacy .cm-s-default .cm-bracket{color:#2d2f33}.legacy .cm-s-default .cm-tag{color:#c82829}.legacy .cm-s-default .cm-attribute{color:#4271ae}.legacy .cm-s-default .CodeMirror-activeline-background{background:#1a73e80f}.legacy .cm-s-default .CodeMirror-matchingbracket{color:#1a73e8!important;background:#1a73e81f}.legacy .cm-s-default ::selection{background:#1a73e833}.legacy .cm-s-default .CodeMirror-selected{background:#1a73e82e!important}.legacy .cm-s-default .CodeMirror-focused .CodeMirror-selected{background:#1a73e838!important}.legacy .cm-s-dracula .CodeMirror-activeline-background{background:#6272a42e}.legacy .cm-s-dracula .CodeMirror-selected{background:#6272a459!important}.legacy .cm-s-dracula .CodeMirror-focused .CodeMirror-selected{background:#6272a473!important}.legacy pre.code-block[class*=language-],.legacy .markdown pre[class*=language-]{border-radius:var(--r-sm);padding:14px 16px;font-family:var(--font-mono);font-size:.85rem}.legacy .material-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3);margin-top:var(--space-4)}.legacy .material-gallery__item{position:relative;display:block;aspect-ratio:4 / 3;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--gray-200);background:var(--gray-100);text-decoration:none;color:var(--text);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.legacy .material-gallery__item:hover{border-color:var(--g-blue);transform:translateY(-2px);box-shadow:0 4px 12px #1a73e826}.legacy .material-gallery__item img{width:100%;height:100%;object-fit:cover;display:block}.legacy .material-gallery__caption{position:absolute;left:0;right:0;bottom:0;padding:6px 10px;font-size:.8rem;color:#fff;background:linear-gradient(to top,#000000a6,#0000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:root[data-theme=dark] .legacy .material-gallery__item{background:#14171c;border-color:#2d3138}.legacy .lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000eb;display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}.legacy .lightbox__figure{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:12px}.legacy .lightbox__img{max-width:100%;max-height:calc(100vh - 100px);object-fit:contain;border-radius:4px;cursor:default;box-shadow:0 10px 40px #00000080}.legacy .lightbox__caption{color:#e8eaed;font-size:.9rem;text-align:center;max-width:80vw;word-break:break-word}.legacy .lightbox__close,.legacy .lightbox__nav{position:absolute;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease}.legacy .lightbox__close:hover,.legacy .lightbox__nav:hover{background:#ffffff40}.legacy .lightbox__close{top:16px;right:16px}.legacy .lightbox__nav--prev{left:16px;top:50%;transform:translateY(-50%)}.legacy .lightbox__nav--next{right:16px;top:50%;transform:translateY(-50%)}@media(max-width:640px){.legacy .material-gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.legacy .ex-index__head{text-align:center;margin-bottom:var(--space-7)}.legacy .ex-index__title{font-family:var(--font-display, inherit);font-size:clamp(1.75rem,3.5vw,2.5rem);margin:var(--space-3) 0 var(--space-2)}.legacy .ex-card{position:relative}.legacy .ex-page .lesson__body.ex-explain{background:var(--card-bg, rgba(0,0,0,.02));border-left:3px solid var(--accent, #3b82f6);padding:var(--space-4) var(--space-5);border-radius:8px;margin-bottom:var(--space-5)}:root[data-theme=dark] .legacy .ex-page .lesson__body.ex-explain{background:#ffffff0a}.legacy .ex-task{display:block}.legacy .ex-task__editor-wrap{margin-bottom:var(--space-3)}.legacy .ex-feedback{margin-top:var(--space-4);border:1px solid rgba(245,158,11,.35);background:#f59e0b14;border-radius:10px;padding:var(--space-4) var(--space-5)}:root[data-theme=dark] .legacy .ex-feedback{background:#f59e0b1f}.legacy .ex-feedback__title{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);font-size:1rem;color:#b45309}:root[data-theme=dark] .legacy .ex-feedback__title{color:#fcd34d}.legacy .ex-diag{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px dashed rgba(0,0,0,.1)}.legacy .ex-diag:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.legacy .ex-diag__title{display:flex;align-items:center;gap:var(--space-2);font-weight:600;margin-bottom:var(--space-2)}.legacy .ex-diag__msg{margin-bottom:var(--space-2);line-height:1.55}.legacy .ex-diag__fix{background:#22c55e1a;border-left:3px solid #22c55e;padding:var(--space-2) var(--space-3);border-radius:6px;margin-top:var(--space-2)}:root[data-theme=dark] .legacy .ex-diag__fix{background:#22c55e26}.legacy .ex-diag__fix-label{display:inline-flex;align-items:center;gap:var(--space-1);font-weight:600;font-size:.9rem;color:#15803d}:root[data-theme=dark] .legacy .ex-diag__fix-label{color:#86efac}.legacy .ex-diag__fix pre{margin:var(--space-2) 0 0;background:#0000000a;padding:var(--space-2) var(--space-3);border-radius:4px;white-space:pre-wrap;font-family:Roboto Mono,monospace;font-size:.9rem}:root[data-theme=dark] .legacy .ex-diag__fix pre{background:#0000004d}.legacy .ex-diag__line{margin-top:var(--space-2);font-size:.85rem;color:var(--text-muted, #6b7280)}.legacy .ex-show-solution{opacity:.7}.legacy .ex-show-solution:hover{opacity:1}:root[data-theme=dark] .legacy{--gray-50:#152036;--gray-100:#1c2840;--gray-200:#22304a;--gray-300:#2e3d5a;--gray-500:#6f7c93;--gray-700:#9aa6bb;--gray-800:#cbd3e1;--gray-900:#e6ebf4;--surface:#111a2e;--surface-alt:#152036;--surface-blue:#18244a;--surface-green:#0f2a1c;--g-blue:#7c96ff;--g-blue-700:#9aaeff;--g-blue-50:#18244a;--g-blue-100:#22305c;--g-green-50:#0f2a1c;--g-yellow-50:#30260c;--g-red-50:#3a1520;--subj-info-bg:#18244a;--subj-info:#7c96ff;--subj-info-ink:#9aaeff;--subj-tic-bg:#0f2a1c;--subj-tic:#4ade80;--subj-tic-ink:#4ade80;--subj-mate-bg:#33200f;--subj-mate:#fb923c;--subj-mate-ink:#fb923c;--bg:#0b1120;--text:#e6ebf4;--text-muted:#9aa6bb;--text-subtle:#6f7c93;--border:#22304a;--border-strong:#2e3d5a;--primary:#7c96ff;--primary-hover:#9aaeff;--primary-soft:#18244a;--accent-soft:#0f2a1c;color-scheme:dark}.legacy ::selection{background:#c7d2fe;color:#0f172a}.legacy h1,.legacy h2,.legacy h3,.legacy h4,.legacy h5,.legacy h6{font-weight:600;letter-spacing:-.02em}.legacy h1{font-size:clamp(2rem,4vw,3rem);line-height:1.12}.legacy .eyebrow,.legacy .section__eyebrow,.legacy .hero__eyebrow{font-family:var(--font-body);font-weight:600;letter-spacing:.08em;font-size:.75rem;color:var(--g-blue)}.legacy .text-gradient{-webkit-text-fill-color:currentColor;color:var(--g-blue);background:none}.legacy .promo-banner{background:var(--odi-navy);border-bottom:1px solid #1e293b;color:#a9b4c7;font-size:.8125rem;padding:8px 16px}.legacy .promo-banner strong{color:#fff}.legacy .promo-banner a{color:#c7d2fe!important}.legacy .site-header{background:var(--odi-navy);border-bottom:1px solid #1e293b;backdrop-filter:none;-webkit-backdrop-filter:none}.legacy .site-header .brand,.legacy .site-header .brand__name{color:#fff}.legacy .brand{gap:10px;font-weight:600;letter-spacing:-.02em}.legacy .brand__mark{width:34px;height:34px;border-radius:9px;background:#2347d6;box-shadow:none;display:grid;place-items:center}.legacy .brand__mark:after{content:"";position:static;inset:auto;width:20px;height:20px;border-radius:0;background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M8 10.5l6 5.5-6 5.5' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Crect x='16.5' y='19.5' width='8' height='3.2' rx='1.6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M8 10.5l6 5.5-6 5.5' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Crect x='16.5' y='19.5' width='8' height='3.2' rx='1.6'/%3E%3C/svg%3E") center/contain no-repeat}.legacy .brand__name{font-weight:600}.legacy .brand__name b{color:#9db0ff;font-weight:600}.legacy .nav__link{font-family:var(--font-body);font-weight:500;color:#e2e8f0c7;border-radius:8px}.legacy .nav__link:after{background:#7c96ff;height:2px;border-radius:2px}.legacy .nav__link:hover{background:var(--odi-navy-2);color:#fff}.legacy .nav__link--active{color:#fff}.legacy .nav-burger,.legacy .theme-toggle{color:#e2e8f0}.legacy .nav-burger:hover,.legacy .theme-toggle:hover{background:var(--odi-navy-2);color:#fff}@media(max-width:767px){.legacy .nav.is-open{background:var(--odi-navy);border-bottom:1px solid #1e293b}}.legacy .site-header .btn--ghost{color:#e2e8f0}.legacy .site-header .btn--ghost:hover{background:var(--odi-navy-2)}.legacy .user-chip{background:var(--odi-navy-2);border-color:#26334d;color:#e2e8f0}.legacy .user-chip--connected,.legacy .user-chip--connected strong,.legacy .user-chip--connected .icon{color:#86efac}.legacy .user-chip .status-dot{background:#4ade80}.legacy .btn{border-radius:8px;border:1px solid var(--g-blue);background:var(--g-blue);color:#fff;font-family:var(--font-body);font-weight:600;box-shadow:var(--elev-1);transition:background .15s,border-color .15s}.legacy .btn:hover{background:var(--g-blue-700);border-color:var(--g-blue-700);box-shadow:var(--elev-1)}.legacy .btn:active{transform:translateY(1px)}.legacy .btn:focus-visible{box-shadow:var(--ring)}.legacy .btn--secondary,.legacy .btn--tonal{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.legacy .btn--secondary:hover,.legacy .btn--tonal:hover{background:var(--surface-alt);border-color:#b8bfcc}.legacy .btn--ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--g-blue)}.legacy .btn--ghost:hover{background:var(--gray-100);border-color:transparent;box-shadow:none}.legacy .btn--danger{background:var(--g-red);border-color:var(--g-red);color:#fff}.legacy .btn--success,.legacy .btn--accent{background:var(--g-green);border-color:var(--g-green);color:#fff}.legacy .btn--success:hover,.legacy .btn--accent:hover{background:#166534;border-color:#166534}.legacy .btn--lg{height:50px;border-radius:9px}.legacy .ripple{display:none}:root[data-theme=dark] .legacy .btn{color:#0b1120}:root[data-theme=dark] .legacy .btn--secondary,:root[data-theme=dark] .legacy .btn--tonal,:root[data-theme=dark] .legacy .btn--ghost{color:var(--text)}.legacy .card,.legacy .card-form,.legacy .why-tile,.legacy .step,.legacy .course,.legacy .lab-card,.legacy .subject-card,.legacy .progress-card,.legacy .ex-card,.legacy .code-card,.legacy .lesson,.legacy .lab,.legacy .exercise,.legacy .chapter{border-radius:12px;border-color:var(--border)}.legacy .card--feature:hover,.legacy .course:hover,.legacy .lab-card:hover,.legacy .subject-card:hover{transform:translateY(-2px);box-shadow:var(--elev-3);border-color:var(--border-strong)}.legacy .pill{font-weight:600}.legacy .input,.legacy .textarea,.legacy .select{border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text)}.legacy .input:focus,.legacy .textarea:focus,.legacy .select:focus{border-color:var(--g-blue);box-shadow:var(--ring);outline:none}.legacy .field__label{font-size:.8125rem;font-weight:600}.legacy .auth{padding:56px 16px}.legacy .auth__card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--elev-3)}.legacy .auth__icon{width:48px;height:48px;border-radius:10px;background:var(--g-blue-50);color:var(--g-blue);box-shadow:none}.legacy .auth__title{font-weight:600}.legacy .auth__foot a,.legacy .link-underline{color:var(--g-blue);font-weight:600}.legacy .alert{border-radius:10px}.legacy .snackbar{background:var(--odi-navy);border-radius:10px}.legacy .site-footer{background:var(--odi-navy);border-top:1px solid #1e293b}.legacy .footer-grid .brand__name b{color:#9db0ff}.legacy .footer-col h4,.legacy .footer-col h5{font-family:var(--font-body);letter-spacing:.08em}.legacy .fab{background:var(--g-blue);border-radius:12px}.legacy code,.legacy pre,.legacy .text-mono{font-family:var(--font-mono)}.legacy .admin-side{background:var(--odi-navy);border-right:1px solid #1e293b}.legacy .admin-side__link{border-radius:8px}.legacy .admin-side__link--active{background:#ffffff17;color:#fff!important;box-shadow:inset 3px 0 #7c96ff}@media(max-width:640px){.legacy .promo-banner{font-size:.75rem;padding:6px 12px}.legacy .site-header__inner{gap:10px}.legacy .header__actions{gap:4px}.legacy .site-header .header__actions .btn{padding:0 10px}.legacy .site-header .header__actions .btn .icon{display:none}.legacy .brand__name{font-size:1.05rem}}

.legacy{min-height:0;background:transparent;overflow:visible;font-size:15.5px}.legacy .container,.legacy .container--narrow,.legacy .container-narrow{max-width:1180px;padding-inline:0}.legacy .section{padding-block:8px 36px}.legacy .section--hero{padding-block:8px 32px}.legacy h1{font-size:clamp(1.75rem,2.6vw,2.25rem);line-height:1.15}.legacy h2{font-size:clamp(1.25rem,2vw,1.6rem)}.legacy .page-header{padding-block:4px 20px}.legacy .snackbar{z-index:2100}
