@font-face{font-family:__DM_Sans_0eeb07;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.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:__DM_Sans_0eeb07;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/13971731025ec697-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:__DM_Sans_0eeb07;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.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:__DM_Sans_0eeb07;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/13971731025ec697-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:__DM_Sans_0eeb07;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.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:__DM_Sans_0eeb07;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/13971731025ec697-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:__DM_Sans_0eeb07;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.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:__DM_Sans_0eeb07;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/13971731025ec697-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:__DM_Sans_Fallback_0eeb07;src:local("Arial");ascent-override:94.90%;descent-override:29.66%;line-gap-override:0.00%;size-adjust:104.53%}.__className_0eeb07{font-family:__DM_Sans_0eeb07,__DM_Sans_Fallback_0eeb07;font-style:normal}.__variable_0eeb07{--font-dm-sans:"__DM_Sans_0eeb07","__DM_Sans_Fallback_0eeb07"}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-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:__IBM_Plex_Mono_Fallback_595324;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:__IBM_Plex_Mono_595324,__IBM_Plex_Mono_Fallback_595324;font-style:normal}.__variable_595324{--font-ibm-plex-mono:"__IBM_Plex_Mono_595324","__IBM_Plex_Mono_Fallback_595324"}@font-face{font-family:"__DM_Serif_Display_0e4539";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ccc01da6a2b3d788-s.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:"__DM_Serif_Display_0e4539";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fa3e259cafa8f47e-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:"__DM_Serif_Display_Fallback_0e4539";src:local("Times New Roman");ascent-override:94.37%;descent-override:30.51%;line-gap-override:0.00%;size-adjust:109.78%}.__className_0e4539{font-family:"__DM_Serif_Display_0e4539","__DM_Serif_Display_Fallback_0e4539";font-weight:400;font-style:normal}.__variable_0e4539{--font-dm-serif-display:"__DM_Serif_Display_0e4539","__DM_Serif_Display_Fallback_0e4539"}@font-face{font-family:__Plus_Jakarta_Sans_e8b331;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/e9f1892aac9a8474-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_e8b331;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/a3111a1036d99252-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_e8b331;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/c66154249510809c-s.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:__Plus_Jakarta_Sans_e8b331;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/6991c7e98d27c1e5-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:__Plus_Jakarta_Sans_Fallback_e8b331;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_e8b331{font-family:__Plus_Jakarta_Sans_e8b331,__Plus_Jakarta_Sans_Fallback_e8b331;font-weight:300;font-style:normal}.__variable_e8b331{--font-plus-jakarta-sans:"__Plus_Jakarta_Sans_e8b331","__Plus_Jakarta_Sans_Fallback_e8b331"}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\!block{display:block!important}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border{border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--bg:#f8f9fc;--surface:#fff;--surface2:#f1f3f8;--border:#e2e6f0;--border2:#cdd2e0;--text:#1a1e2e;--text2:#2a2e3f;--text3:#8b91a8;--accent:#3b6fe8;--accent-dim:#ebf0fd;--live:#3b6fe8;--green:#059669;--green-dim:#ecfdf5;--red:#dc2626;--red-dim:#fef2f2;--orange:#d97706;--orange-dim:#fffbeb;--purple:#7c3aed;--purple-dim:#f5f3ff;--white:#fff;--code-fg:#cdd6f4;--code-purple:#cba6f7;--mono:"IBM Plex Mono",monospace;--sans:"DM Sans",sans-serif}*{box-sizing:border-box}body,html{height:100%;overflow:hidden;margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.app-shell{position:fixed;inset:0;display:grid;grid-template-rows:48px 1fr;overflow:hidden}.app-main{display:flex;flex-direction:row}.app-main,.right-panel{overflow:hidden;min-height:0;height:100%}.right-panel{display:grid;grid-template-rows:auto 1fr 48px;background:var(--surface)}.is-live{box-shadow:inset 0 0 0 3px var(--live)}.is-live--running{animation:live-pulse 1.6s ease-in-out infinite}@keyframes live-pulse{0%,to{box-shadow:inset 0 0 0 3px var(--live)}50%{box-shadow:inset 0 0 0 6px var(--live)}}.editor-output{display:grid;grid-template-rows:60% 40%;overflow:hidden;min-height:0}.topbar{position:relative;z-index:210;gap:14px;height:48px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 1px 3px rgba(0,0,0,.06)}.topbar,.topbar-menu{display:flex;align-items:center}.topbar-menu{flex-direction:column;justify-content:center;padding:8px;background:none;border:none;border-radius:4px;cursor:pointer}.topbar-menu:hover{background:var(--surface2)}.topbar-menu-line{display:block;width:16px;height:1.5px;background:var(--text3);margin:3px 0}.logo{font-family:"DM Serif Display",serif;font-size:18px;line-height:1}.logo-accent{color:var(--accent)}.session-label{color:var(--text3)}.completion-badge,.session-label{font-family:var(--mono);font-size:11px}.completion-badge{margin-left:auto;color:var(--text2);border:1px solid var(--border2);padding:3px 10px;border-radius:4px}.sidebar{display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);overflow:hidden;min-height:0;box-shadow:0 1px 3px rgba(0,0,0,.06)}.session-group-label{font-family:var(--mono);font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;padding:8px 16px 4px}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 16px;font-size:13px;color:var(--text2);border-left:2px solid transparent;cursor:pointer;user-select:none}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--accent-dim);color:var(--accent);border-left-color:var(--accent)}.nav-step{font-family:var(--mono);font-size:10px;color:var(--text3);min-width:20px}.nav-title{flex:1}.nav-check{color:var(--green);display:none;font-size:12px}.nav-item.done .nav-check{display:inline}.sidebar-content{flex:1;overflow-y:auto;color:var(--text3);font-size:16px;padding:24px;min-height:0;max-width:1000px;margin:0 auto;width:100%}.nav-overlay{position:fixed;left:0;top:48px;bottom:0;width:280px;z-index:150;background:var(--surface);border-right:1px solid var(--border);box-shadow:4px 0 24px rgba(0,0,0,.1);overflow-y:auto;padding:12px 0;transform:translateX(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1)}.nav-overlay.open{transform:translateX(0)}.nav-backdrop{position:fixed;inset:0;z-index:140;background:rgba(0,0,0,.18);backdrop-filter:blur(1px);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s ease}.nav-backdrop.open{opacity:1;pointer-events:all}.nav-edge-toggle{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:200;width:20px;height:64px;background:var(--surface);border:1px solid var(--border);border-left:none;border-radius:0 6px 6px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:2px 0 8px rgba(0,0,0,.08);padding:0}.nav-edge-toggle:hover{background:var(--surface2)}.nav-edge-toggle:hover .nav-edge-toggle-icon{color:var(--text)}.nav-edge-toggle-icon{font-size:12px;color:var(--text3);line-height:1;transition:transform .2s ease,color .2s ease}.exercise-prompt{padding:16px 23px;background:var(--surface);max-height:260px;overflow-y:auto}.task-code{font-family:var(--mono);font-size:12px;background:var(--surface2);color:var(--accent);border:1px solid var(--border);border-radius:3px;padding:1px 5px;white-space:nowrap}.exercise-nav{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:12px}.exercise-counter{font-family:var(--mono);font-size:11px;color:var(--text3)}.exercise-nav-buttons{display:flex;gap:6px}.exercise-nav-button{width:28px;height:28px;border:1px solid var(--border2);border-radius:4px;background:none;color:var(--text2);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;padding:0}.exercise-nav-button:hover{background:var(--surface2);border-color:var(--border2)}.exercise-nav-button:disabled{opacity:.3;pointer-events:none;cursor:default}.prompt-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.type-badge{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;padding:2px 8px;border-radius:3px}.type-practice{background:var(--green-dim);color:var(--green)}.type-predict{background:var(--orange-dim);color:var(--orange)}.type-debug{background:var(--red-dim);color:var(--red)}.type-apply{background:var(--purple-dim);color:var(--purple)}.type-independent{background:var(--accent-dim);color:var(--accent)}.type-challenge{background:var(--green-dim);color:var(--green)}.prompt-title{font-size:16px;font-weight:600;color:var(--text)}.prompt-duration{font-family:var(--mono);font-size:11px;color:var(--text3);margin-left:auto}.task-list{list-style:none;padding:0;margin:0}.task-item{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--text2);line-height:1.5;padding:4px 0}.task-text{flex:1}.task-step{font-family:var(--mono);font-size:11px;color:var(--text3);min-width:18px;padding-top:3px}.task-item.active{font-weight:600;background:var(--accent-dim);border-radius:4px;padding:4px 8px;margin:0 -8px;opacity:1}.task-item.active,.task-item.active .task-step{color:var(--accent)}.task-item.done{color:var(--text3);opacity:.6;text-decoration:line-through}.task-item.upcoming{color:var(--text3);opacity:.4}.hint-row{display:none;margin-top:10px;background:var(--orange-dim);border-radius:4px;padding:8px 12px;font-size:12px;color:var(--orange)}.hint-row.visible{display:block}.hint-label{font-weight:700;margin-right:4px}.tab-bar{display:flex;align-items:stretch;height:36px;background:var(--surface);border-bottom:1px solid var(--border);padding:0 8px}.tab{padding:0 14px;display:flex;align-items:center;font-family:var(--mono);font-size:12px;color:var(--text3);border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab-spacer{flex:1}.reset-button{align-self:center;font-family:var(--mono);font-size:10px;background:none;border:1px solid var(--border2);border-radius:3px;padding:3px 10px;color:var(--text3);cursor:pointer}.reset-button:hover{color:var(--text);border-color:var(--text3)}.editor-pane{display:flex;flex-direction:column;overflow:hidden;min-height:0}.editor-area{flex:1;min-height:0}.output-pane{display:flex;flex-direction:column;background:var(--surface);overflow:hidden;min-height:0;border-top:1px solid var(--border)}.output-area{flex:1;padding:12px 14px;overflow-y:auto;font-family:var(--mono);font-size:12px}.log-line{display:flex;gap:8px;align-items:flex-start;padding:2px 0}.log-icon{font-size:10px;min-width:12px}.log-icon,.log-line.placeholder{color:var(--text3)}.log-line.log{color:var(--text2)}.log-line.error{color:var(--red)}.log-line.warn{color:var(--orange)}.log-line.info{color:var(--accent)}.log-line.result{color:var(--green)}.log-line.error .log-icon{color:var(--red)}.log-line.warn .log-icon{color:var(--orange)}.log-line.info .log-icon{color:var(--accent)}.log-line.result .log-icon{color:var(--green)}.log-text{white-space:pre-wrap;word-break:break-word}.log-empty{color:var(--text3);font-family:var(--mono);font-size:12px;padding:8px 0}.checks-section{border-top:1px solid var(--border);margin-top:10px;padding-top:0}.checks-header{font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--text3);padding:8px 0 6px;letter-spacing:.04em}.check-row{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;font-family:var(--sans)}.check-icon{font-weight:600;min-width:12px}.check-icon.pass{color:var(--green)}.check-icon.fail{color:var(--red)}.check-label.pass{color:var(--text2)}.check-label.fail{color:var(--text)}.check-actual{color:var(--text3)}.check-actual,.checks-summary{font-family:var(--mono);font-size:12px}.checks-summary{font-weight:600;padding-top:6px}.checks-summary.pass{color:var(--green)}.checks-summary.fail{color:var(--red)}.bottom-bar{gap:10px;padding:10px 16px;background:var(--surface);border-top:1px solid var(--border)}.bottom-bar,.run-button{display:flex;align-items:center}.run-button{gap:8px;padding:8px 20px;background:var(--accent);color:#fff;border:none;border-radius:5px;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer}.run-button:hover{opacity:.9}.run-button:active{transform:scale(.98)}.run-button.running{opacity:.6;pointer-events:none}.run-button:disabled{cursor:default}.kbd-hint{font-family:var(--mono);font-size:11px;color:var(--text3)}.hint-button{background:none;border:1px solid var(--border2);border-radius:5px;color:var(--text2);font-family:var(--sans);font-size:13px;padding:8px 16px;cursor:pointer}.hint-button:hover{border-color:var(--orange);color:var(--orange)}.status-message{flex:1;text-align:right;font-family:var(--mono);font-size:12px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:opacity .2s ease;opacity:1}.status-message.ok{color:var(--green)}.status-message.err{color:var(--red)}.status-message.hidden{opacity:0}.run-spinner{display:inline-block;width:12px;height:12px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.hint-button{display:inline-flex;align-items:center;gap:4px}.hint-button-kbd{font-family:var(--mono);font-size:10px;color:var(--text3);margin-left:4px}.exercise-nav-button-cell{display:flex;flex-direction:column;align-items:center;gap:2px}.exercise-nav-kbd{display:block;font-family:var(--mono);font-size:10px;color:var(--text3);text-align:center}.exercise-prompt{transition:opacity .15s ease;opacity:1;position:relative}.exercise-prompt.fading{opacity:0}.editor-pane{transition:opacity .15s ease;opacity:1}.editor-pane.fading{opacity:0}.sidebar-content{transition:opacity .15s ease;opacity:1}.sidebar-content.fading{opacity:0}.output-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:20px;box-sizing:border-box}.output-empty-icon{display:block;font-size:20px;color:var(--text3);margin-bottom:8px}.output-empty-primary{font-size:13px;color:var(--text3)}.output-empty-secondary{font-family:var(--mono);font-size:11px;color:var(--text3);opacity:.6;margin-top:4px}.empty-state-block{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:80px;text-align:center;padding:20px;box-sizing:border-box;font-size:13px;color:var(--text3)}.editor-area{position:relative}.editor-skeleton{position:absolute;inset:0;width:100%;height:100%;padding:16px;background:var(--surface);z-index:2;pointer-events:none}.editor-skeleton-line{height:14px;border-radius:3px;background:var(--border);margin-bottom:10px;animation:skeleton-pulse 1.2s infinite alternate}@keyframes skeleton-pulse{0%{opacity:.4}to{opacity:1}}.prompt-fade{position:sticky;bottom:0;left:0;right:0;height:32px;margin-top:-32px;background:linear-gradient(transparent,var(--surface));pointer-events:none}.session-group-label{display:flex;align-items:center;gap:6px}.session-group-arrow{font-size:10px;color:var(--text3);width:10px;display:inline-block;text-align:center}.mode-tab-bar{display:flex;align-items:stretch;height:36px;background:var(--surface);border-bottom:1px solid var(--border);padding:0 8px}.mode-tab{padding:0 14px;display:flex;align-items:center;font-family:var(--mono);font-size:12px;color:var(--text3);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;cursor:pointer}.mode-tab:hover{color:var(--text2)}.mode-tab.active{color:var(--text);border-bottom-color:var(--accent)}.mode-tab:disabled{opacity:.35;cursor:default;pointer-events:none}.challenge-description{font-size:15px;color:var(--text2);line-height:1.6;margin:0 0 10px}.challenge-explanation{margin-top:10px;background:var(--green-dim);border-radius:4px;padding:8px 12px;font-size:14px;color:var(--green)}.inline-code{font-family:var(--mono);font-size:12px;background:var(--surface2);color:var(--accent);padding:1px 5px;border-radius:3px;border:1px solid var(--border)}.panel-region{min-height:0;height:100%;overflow:hidden;transition:opacity .15s ease;opacity:1;background:var(--surface)}.panel-region.fading{opacity:0}.panel-container{height:100%;min-height:100%;overflow-y:auto;padding:24px;background:var(--surface)}.mc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mc-code-snippet{font-family:var(--mono);font-size:13px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:12px 16px;margin:0 0 35px;line-height:1.6;white-space:pre;overflow-x:auto}.mc-card{background:var(--surface);border:1.5px solid var(--border2);border-radius:6px;padding:14px;cursor:pointer;transition:all .15s ease;text-align:left}.mc-card:hover:not(.selected):not(.correct):not(.wrong){background:var(--surface2);border-color:var(--accent)}.mc-card.selected{border-color:var(--accent);background:var(--accent-dim)}.mc-card.correct{border-color:var(--green);background:var(--green-dim)}.mc-card.wrong{border-color:var(--red);background:var(--red-dim);animation:shake .2s ease}.mc-card-label{font-size:15px;color:var(--text);line-height:1.4}.mc-card-code{margin-top:8px;font-family:var(--mono);font-size:13px;color:var(--text2);background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:6px 10px}.panel-check-btn{width:100%;margin-top:20px;padding:10px;background:var(--accent);color:#fff;border:none;border-radius:5px;font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s ease}.panel-check-btn:hover{opacity:.9}.panel-check-btn:disabled{opacity:.4;cursor:default;pointer-events:none}.panel-next-btn{width:100%;margin-top:12px;padding:10px;background:var(--green);color:#fff;border:none;border-radius:5px;font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s ease}.panel-next-btn:hover{opacity:.9}.panel-feedback{margin-top:16px;font-size:14px;line-height:1.5}.panel-feedback.correct{color:var(--green)}.panel-feedback.wrong{color:var(--red)}.panel-explanation{margin-top:12px;color:var(--text2);border-radius:6px;padding:12px;border-left:3px solid var(--green);line-height:1.55}.fb-code-block,.panel-explanation{font-size:13px;background:var(--surface2)}.fb-code-block{border:1px solid var(--border);border-radius:6px;padding:14px 16px;font-family:var(--mono);line-height:1.8;margin-bottom:20px;overflow-x:auto}.fb-blank{display:inline-flex;min-width:80px;height:26px;background:var(--surface);border:2px dashed var(--border2);border-radius:4px;vertical-align:middle;margin:0 4px;align-items:center;justify-content:center;cursor:pointer;transition:all .12s ease}.fb-blank.filled{border-style:solid;border-color:var(--accent);background:var(--accent-dim);color:var(--accent);font-family:var(--mono);font-size:12px;padding:0 8px}.fb-blank.correct{border-color:var(--green);background:var(--green-dim);color:var(--green)}.fb-blank.wrong{border-color:var(--red);background:var(--red-dim);color:var(--red);animation:shake .2s ease}.fb-compact .fb-blank{min-width:48px}.fb-token-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:8px}.fb-token-bank{display:flex;flex-wrap:wrap;gap:8px}.fb-token{font-family:var(--mono);font-size:12px;background:var(--surface2);border:1px solid var(--border2);border-radius:4px;padding:4px 10px;cursor:grab;color:var(--text2);transition:all .12s ease;user-select:none}.fb-token:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.fb-token:active{cursor:grabbing}.fb-token.dragging{box-shadow:0 2px 8px rgba(0,0,0,.15);cursor:grabbing}.fb-token.used{opacity:.2;pointer-events:none}.fb-blank.drag-over{border-style:solid;border-color:var(--accent);background:var(--accent-dim)}.fb-filled-chip{cursor:grab;user-select:none;display:inline-flex;align-items:center}.fb-filled-chip:active{cursor:grabbing}.fb-token-bank{border-radius:4px;transition:background .15s}.fb-token-bank.drag-over{background:var(--accent-dim)}@keyframes shake{0%{transform:translateX(0)}20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}to{transform:translateX(0)}}.code-editor-panel{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.code-editor-panel>.editor-output{flex:1;min-height:0}.step-focus-region{background:rgba(59,111,232,.08)!important}.step-focus-line{background:rgba(255,213,79,.25)!important}.cep-step-counter{margin-left:auto;color:var(--text3)}.cep-step-counter,.step-next-btn{font-family:var(--mono);font-size:11px}.step-next-btn{font-weight:500;padding:2px 8px;border-radius:3px;border:1px solid transparent;white-space:nowrap;flex-shrink:0;transition:background .12s ease,opacity .12s ease}.step-next-btn:enabled{background:var(--accent);color:#fff;border-color:var(--accent);cursor:pointer}.step-next-btn:disabled{background:transparent;color:var(--text3);border-color:var(--border2);cursor:not-allowed;opacity:.6}.fbt-code-block{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:14px 16px;font-family:var(--mono);font-size:13px;line-height:2;margin-bottom:20px;overflow-x:auto}.fbt-input{display:inline-block;font-family:var(--mono);font-size:12px;color:var(--accent);background:var(--surface);border:2px dashed var(--border2);border-radius:4px;padding:1px 6px;margin:0 4px;vertical-align:middle;outline:none;min-width:60px;width:auto;transition:border-color .15s ease,background .15s ease}.fbt-input.filled,.fbt-input:focus{border-style:solid;border-color:var(--accent);background:var(--accent-dim)}.fbt-input.correct{border-style:solid;border-color:var(--green);background:var(--green-dim);color:var(--green)}.fbt-input.wrong{border-style:solid;border-color:var(--red);background:var(--red-dim);color:var(--red);animation:shake .2s ease}.fbt-input::placeholder{color:var(--text3);font-style:italic}.fbt-hint-bank{margin-bottom:12px}.fbt-hint-chip{pointer-events:none!important;cursor:default!important;opacity:.75}.fbt-hint-chip:hover{background:var(--surface2)!important;border-color:var(--border2)!important;color:var(--text2)!important}.dr-list{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.dr-line{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border2);border-radius:6px;padding:10px 14px;font-family:var(--mono);font-size:13px;color:var(--text2);cursor:grab;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;user-select:none}.dr-line:hover{background:var(--surface2);border-color:var(--accent)}.dr-line.dragging{opacity:.4;cursor:grabbing}.dr-line.drag-over{border-color:var(--accent);box-shadow:0 -2px 0 var(--accent)}.dr-line.correct{border-color:var(--green);background:var(--green-dim);color:var(--green)}.dr-line.wrong{border-color:var(--red);background:var(--red-dim);color:var(--red);animation:shake .2s ease}.dr-handle{color:var(--text3);font-size:12px;cursor:grab;flex-shrink:0}.sb-board{display:flex;flex-direction:column;gap:20px}.sb-item-tray{display:flex;flex-wrap:wrap;gap:8px;padding:12px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;min-height:52px}.sb-item{display:inline-flex;align-items:center;font-family:var(--mono);font-size:12px;color:var(--text2);background:var(--surface);border:1px solid var(--border2);border-radius:4px;padding:4px 10px;cursor:grab;transition:background .12s ease,border-color .12s ease,opacity .12s ease;user-select:none}.sb-item:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.sb-item.dragging{opacity:.4;cursor:grabbing}.sb-item.correct{border-color:var(--green);background:var(--green-dim);color:var(--green)}.sb-item.wrong{border-color:var(--red);background:var(--red-dim);color:var(--red);animation:shake .2s ease}.sb-buckets{display:flex;gap:12px}.sb-bucket{flex:1;min-height:80px;border:2px dashed var(--border2);border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:6px;transition:border-color .15s ease,background .15s ease}.sb-bucket.drag-over{border-color:var(--accent);background:var(--accent-dim)}.sb-bucket.all-correct{border-color:var(--green);background:var(--green-dim)}.sb-bucket-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:4px}.home-view{display:flex;flex-direction:column;height:100%;background:var(--bg);overflow:hidden}.home-progress-bar-bg{width:64px;height:4px;background:var(--border);border-radius:99px;overflow:hidden;flex-shrink:0}.home-progress-bar-fill{height:100%;background:var(--accent);border-radius:99px;transition:width .3s ease}.home-progress-label{font-family:var(--mono);font-size:11px;color:var(--text3);white-space:nowrap}.home-tab-bar{height:36px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:stretch;padding:0 8px}.home-tab{padding:0 14px;display:flex;align-items:center;font-family:var(--mono);font-size:12px;color:var(--text3);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;cursor:pointer}.home-tab:hover{color:var(--text2)}.home-tab.active{color:var(--text);border-bottom-color:var(--accent)}.home-content{flex:1;overflow-y:auto;min-height:0}.home-map-host,.map-canvas-wrapper{height:100%;width:100%;position:relative}.map-empty,.map-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;color:var(--text3);text-align:center;padding:40px}.map-empty-title{font-size:14px;color:var(--text2)}.map-empty-sub{font-family:var(--mono);font-size:11px;color:var(--text3);opacity:.7}.list-session-block{margin-bottom:32px}.list-session-header{display:flex;align-items:center;gap:10px;padding:16px 20px 10px}.list-session-tag{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:3px 8px;white-space:nowrap;flex-shrink:0}.list-session-name{font-size:13px;font-weight:600;color:var(--text2);white-space:nowrap}.list-session-line{flex:1;height:1px;background:var(--border)}.list-session-count{font-family:var(--mono);font-size:11px;color:var(--text3);white-space:nowrap}.list-lesson-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin:0 16px 8px;overflow:hidden;transition:box-shadow .15s}.list-lesson-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.06)}.list-lesson-card.active-lesson{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.list-lesson-card.locked-lesson{opacity:.55}.list-lesson-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.list-lesson-card.active-lesson .list-lesson-header{background:var(--accent-dim);border-bottom-color:#bfdbfe}.list-lesson-icon{width:32px;height:32px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:600}.list-lesson-icon.done{background:var(--green-dim);color:var(--green)}.list-lesson-icon.active{background:var(--accent);color:#fff}.list-lesson-icon.locked{background:var(--surface2);color:var(--text3)}.list-lesson-title{flex:1;font-size:14px;font-weight:600;color:var(--text)}.list-lesson-meta,.locked-lesson .list-lesson-title{color:var(--text3)}.list-lesson-meta{font-family:var(--mono);font-size:11px}.active-lesson .list-lesson-meta{color:var(--accent)}.list-chips-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px 14px}.list-chip{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:4px 9px;font-family:var(--mono);font-size:11px;border:1px solid;transition:transform .1s ease,opacity .1s ease}.list-chip.clickable{cursor:pointer}.list-chip.clickable:hover{opacity:.8;transform:scale(1.05)}.list-chip.done{background:var(--green-dim);border-color:#86efac;color:var(--green)}.list-chip.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.list-chip.retry{background:var(--orange-dim);border-color:#fbbf24;color:var(--orange)}.list-chip.locked{background:var(--surface2);border-color:var(--border);color:var(--border2)}.list-chip.ch-done{background:var(--purple-dim);border-color:#c4b5fd;color:var(--purple)}.list-chip.ch-locked{background:var(--surface2);border-color:var(--border);color:var(--border2)}.list-chip-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.list-chip.done .list-chip-dot{background:var(--green)}.list-chip.active .list-chip-dot{background:var(--accent)}.list-chip.retry .list-chip-dot{background:var(--orange)}.list-chip.locked .list-chip-dot{background:var(--border2)}.list-chip.ch-done .list-chip-dot{background:var(--purple)}.list-chip.ch-locked .list-chip-dot{background:var(--border2)}.list-chips-div{width:1px;height:20px;background:var(--border);margin:0 4px;flex-shrink:0}.list-chips-section-label{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3)}.home-mode-btn{display:flex;align-items:center;justify-content:center;width:36px;height:100%;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text3);cursor:pointer;flex-shrink:0;transition:color .15s}.home-mode-btn:hover{color:var(--text);background:var(--surface2)}.home-mode-btn.active{color:var(--accent);background:var(--accent-dim);border-bottom-color:var(--accent)}.home-mode-divider{width:1px;height:18px;background:var(--border);align-self:center;margin:0 4px;flex-shrink:0}.fp-sidebar{display:flex;flex-direction:column;height:100%;background:var(--surface);border-right:1px solid var(--border);overflow:hidden}.fp-sidebar-header{height:48px;background:var(--surface);align-items:center;padding:0 20px;gap:12px}.fp-block-nav,.fp-sidebar-header{flex-shrink:0;border-bottom:1px solid var(--border);display:flex}.fp-block-nav{gap:0;overflow-x:auto;padding:0 16px;scrollbar-width:none}.fp-block-nav::-webkit-scrollbar{display:none}.fp-block-dot{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 10px;cursor:pointer;flex-shrink:0;margin-bottom:-1px;transition:all .15s;background:none;border:none;border-bottom:2px solid transparent}.fp-block-dot.fp-done{border-bottom-color:var(--green)}.fp-block-dot.fp-active{border-bottom-color:var(--accent)}.fp-block-dot.fp-locked{opacity:.4;cursor:default;pointer-events:none}.fp-block-num{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:700;flex-shrink:0}.fp-done .fp-block-num{background:var(--green);color:#fff}.fp-active .fp-block-num{background:var(--accent);color:#fff}.fp-locked .fp-block-num{background:var(--surface2);color:var(--text3);border:1px solid var(--border2)}.fp-block-label{font-family:var(--mono);font-size:9px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px}.fp-done .fp-block-label{color:var(--green)}.fp-active .fp-block-label{color:var(--accent)}.fp-instructions{overflow-y:auto;padding:16px 20px 12px;min-height:0;height:100%}.fp-preview-section{display:flex;flex-direction:column;border-top:1px solid var(--border);overflow:hidden;height:100%;min-height:0}.fp-preview-bar{height:32px;background:var(--surface2);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 12px;gap:6px;flex-shrink:0}.fp-preview-dot{width:8px;height:8px;border-radius:50%}.fp-preview-label{font-family:var(--mono);font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-left:4px}.fp-preview-refresh{margin-left:auto;background:none;border:none;color:var(--text3);cursor:pointer;padding:2px;display:flex;align-items:center}.fp-preview-refresh:hover{color:var(--text)}.fp-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.fp-file-tabs{height:36px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:stretch;padding:0 8px}.fp-file-tab{padding:0 14px;display:flex;align-items:center;font-family:var(--mono);font-size:12px;color:var(--text3);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;cursor:pointer;white-space:nowrap}.fp-file-tab:hover{color:var(--text2)}.fp-file-tab.active{color:#cdd6f4;border-bottom-color:#89b4fa}.fp-code-display{flex:1;overflow-y:auto;background:#1e1e2e;min-height:0}.fp-word-bank{height:160px;flex-shrink:0;background:#181825;border-top:1px solid hsla(0,0%,100%,.06);padding:12px 16px;overflow-y:auto}.fp-code-block{border-bottom:1px solid hsla(0,0%,100%,.05);padding:8px 0 12px}.fp-code-block.fp-cb-done{background:rgba(5,150,105,.05)}.fp-code-block.fp-cb-active{background:rgba(59,111,232,.06);border-left:2px solid #89b4fa}.fp-code-block.fp-cb-locked{opacity:.25;pointer-events:none}.fp-block-header{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;padding:6px 16px 4px;display:flex;align-items:center;gap:6px}.fp-block-header-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.fp-code-line{display:flex;align-items:center;padding:0 16px;min-height:26px;font-family:var(--mono);font-size:12px;line-height:1.8}.fp-line-num{width:28px;color:#45475a;user-select:none;flex-shrink:0;font-size:11px}.fp-drop-zone{display:inline-flex;align-items:center;justify-content:center;min-width:80px;height:22px;margin:0 3px;border-radius:4px;vertical-align:middle;transition:all .12s;cursor:default}.fp-drop-zone.fp-dz-empty{background:rgba(203,166,247,.12);border:1.5px dashed rgba(203,166,247,.5)}.fp-drop-zone.fp-dz-over{background:rgba(137,180,250,.2);border:1.5px solid #89b4fa}.fp-drop-zone.fp-dz-filled{background:rgba(166,227,161,.15);border:1.5px solid #a6e3a1;color:#a6e3a1;font-family:var(--mono);font-size:11px;padding:0 6px;cursor:pointer}.fp-drop-zone.fp-dz-correct{background:rgba(166,227,161,.2);border:1.5px solid #a6e3a1}.fp-drop-zone.fp-dz-wrong{background:rgba(243,139,168,.2);border:1.5px solid #f38ba8;animation:shake .2s ease}.fp-dz-hint{font-size:10px;color:#45475a}.fp-wb-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.fp-wb-label{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#45475a}.fp-wb-check-btn{background:none;border:1px solid #45475a;border-radius:4px;color:#cdd6f4;font-family:var(--mono);font-size:11px;padding:4px 10px;cursor:pointer;transition:all .12s}.fp-wb-check-btn:hover{border-color:#89b4fa;color:#89b4fa}.fp-wb-next-btn{background:none;border:1px solid #a6e3a1;border-radius:4px;color:#a6e3a1;font-family:var(--mono);font-size:11px;padding:4px 10px;cursor:pointer;transition:all .12s}.fp-wb-next-btn:hover{background:rgba(166,227,161,.1)}.fp-token-bank{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.fp-token{font-family:var(--mono);font-size:12px;background:#313244;border:1px solid #45475a;color:#cdd6f4;border-radius:5px;padding:5px 10px;cursor:grab;user-select:none;transition:all .12s;white-space:nowrap}.fp-token:hover{background:#45475a;border-color:#89b4fa;color:#89b4fa}.fp-token.fp-token-used{opacity:.2;pointer-events:none}.fp-token.fp-token-dragging{opacity:.4;cursor:grabbing}.fp-feedback{font-family:var(--mono);font-size:11px;margin-top:6px}.fp-feedback.fp-fb-ok{color:#a6e3a1}.fp-feedback.fp-fb-err{color:#f38ba8}.fp-feedback.fp-fb-hint{color:#fab387}.fp-file-editor{width:100%;height:100%;background:#1e1e2e;color:#cdd6f4;font-family:var(--mono);font-size:13px;padding:16px;border:none;outline:none;resize:none;line-height:1.7}.fp-file-banner{background:rgba(59,111,232,.1);color:#89b4fa;font-family:var(--mono);font-size:11px;padding:6px 16px;flex-shrink:0}.fp-lesson-ref-pill{background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:3px 10px;display:inline-flex;align-items:center;gap:6px;margin:0 4px 4px 0}.fp-line-instruction-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:6px}.fp-line-code-preview{background:#1e1e2e;border-radius:6px;padding:10px 14px;font-family:var(--mono);font-size:12px;margin-bottom:14px;overflow-x:auto;white-space:nowrap}.fp-instruction-card{background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;padding:14px 16px;font-size:14px;color:var(--text);line-height:1.6}.fp-blank-progress{display:flex;align-items:center;gap:4px;margin-top:10px}.fp-blank-dot{width:7px;height:7px;border-radius:50%;transition:background .2s ease}.fp-blank-dot.done{background:var(--green)}.fp-blank-dot.current{background:var(--accent)}.fp-blank-dot.upcoming{background:transparent;border:1.5px solid var(--border2)}.fp-blank-progress-label{font-family:var(--mono);font-size:11px;color:var(--text3);margin-left:8px}.fp-completed-blanks{margin-top:14px}.fp-completed-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:8px}.fp-completed-row{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer}.fp-completed-row:hover .fp-completed-text{color:var(--text)}.fp-completed-check{width:14px;height:14px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;flex-shrink:0}.fp-completed-text{font-size:12px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;transition:color .1s}.fp-celebration{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 20px;gap:10px}.fp-celebration-icon{font-size:32px;margin-bottom:4px}.fp-celebration-title{font-size:16px;font-weight:700;color:var(--text)}.fp-celebration-body{font-size:14px;color:var(--text2);line-height:1.6}.fp-celebration-sub{font-size:13px;color:var(--text3);line-height:1.5}.fp-active-line{background:rgba(59,111,232,.12);border-left:2px solid #89b4fa;margin-left:-2px}.fp-locked-placeholder{height:10px;border-radius:4px;background:hsla(0,0%,100%,.06);display:inline-block}.fp-type-input{display:inline-block;font-family:var(--mono);font-size:12px;color:#cdd6f4;background:rgba(203,166,247,.08);border:1.5px solid rgba(203,166,247,.4);border-radius:4px;padding:1px 6px;margin:0 3px;vertical-align:middle;outline:none;min-width:60px;transition:border-color .15s,background .15s;caret-color:#cba6f7}.fp-type-input:focus{border-color:#cba6f7;background:rgba(203,166,247,.14)}.fp-type-input.correct{border-color:#a6e3a1;background:rgba(166,227,161,.12);color:#a6e3a1}.fp-type-input.wrong{border-color:#f38ba8;background:rgba(243,139,168,.12);color:#f38ba8;animation:shake .2s ease}.fp-freeline-input{flex:1;font-family:var(--mono);font-size:12px;color:#cdd6f4;background:transparent;border:none;border-bottom:1px solid rgba(203,166,247,.4);outline:none;padding:2px 4px;caret-color:#cba6f7;min-width:0}.fp-freeline-input:focus{border-bottom-color:#cba6f7}.fp-freeline-input.correct{border-bottom-color:#a6e3a1;color:#a6e3a1}.fp-freeline-input.wrong{border-bottom-color:#f38ba8;color:#f38ba8;animation:shake .2s ease}.fp-freeline-input::placeholder{color:#45475a;font-style:italic}.fp-hint-chips{display:flex;flex-wrap:wrap;gap:4px;padding:4px 16px 4px 44px}.fp-hint-chip{font-family:var(--mono);font-size:10px;background:rgba(203,166,247,.1);border:1px solid rgba(203,166,247,.35);color:#cba6f7;border-radius:3px;padding:2px 6px;cursor:pointer;transition:background .1s}.fp-hint-chip:hover{background:rgba(203,166,247,.2)}.fp-explanation{margin-top:12px;font-size:13px;color:var(--text2);line-height:1.65}.fp-type-slot{display:inline-block;min-width:60px;border-bottom:1.5px solid #cba6f7;padding:0 4px;color:#6c7086;font-style:italic;font-size:10px;vertical-align:middle;margin:0 2px}.fp-freeline-slot{display:block;width:100%;border-bottom:1.5px solid rgba(203,166,247,.5);height:20px;margin-top:6px}.fp-preview-btn{width:22px;height:22px;padding:2px;background:none;border:none;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:3px;flex-shrink:0;transition:color .12s,background .12s}.fp-preview-btn:hover{color:var(--text);background:var(--border)}.fp-code-line.clickable{cursor:pointer;border-left:2px solid transparent;margin-left:-2px;transition:background .1s ease,border-color .1s ease}.fp-code-line.clickable:hover{background:hsla(0,0%,100%,.04)}.fp-code-line.line-selected{background:rgba(59,111,232,.1);border-left:2px solid rgba(89,130,232,.5)}.fp-code-line.line-selected:hover{background:rgba(59,111,232,.13)}.fp-no-blank-snippet{background:#1e1e2e;border-radius:6px;padding:10px 14px;font-family:var(--mono);font-size:12px;margin-bottom:14px;overflow-x:auto;white-space:nowrap}.fp-line-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:6px}.lesson-panel{position:absolute;top:0;right:0;bottom:0;width:360px;background:#fff;border-left:1px solid var(--border);display:flex;flex-direction:column;padding:24px 24px 20px;z-index:10;animation:lesson-panel-slide-in .25s ease-out}.lesson-panel.closing{animation:lesson-panel-slide-out .2s ease-in forwards}@keyframes lesson-panel-slide-in{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes lesson-panel-slide-out{0%{transform:translateX(0)}to{transform:translateX(100%)}}.lesson-panel-close{position:absolute;top:10px;right:12px;background:transparent;border:0;font-size:22px;line-height:1;color:var(--text3);cursor:pointer;padding:4px 8px;border-radius:6px}.lesson-panel-close:hover{color:var(--text);background:var(--surface2)}.lesson-panel-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;margin:0 -8px;padding:0 8px}.lesson-panel-title{margin:0 32px 0 0;font-size:1.375rem;font-weight:600;color:var(--text);line-height:1.3}.lesson-panel-desc{margin:10px 0 0;font-size:.9375rem;color:var(--text2);line-height:1.5}.lesson-panel-section-header{margin-top:24px;margin-bottom:8px;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text3)}.lesson-panel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.lesson-panel-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:0;border-radius:6px;cursor:pointer;text-align:left}.lesson-panel-row-num,.lesson-panel-row:hover{background:var(--surface2)}.lesson-panel-row-num{flex:0 0 auto;width:22px;height:22px;border-radius:50%;color:var(--text2);font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center}.lesson-panel-row:hover .lesson-panel-row-num{background:#fff}.lesson-panel-row-text{flex:1 1 auto;min-width:0;font-size:.875rem;font-weight:400;color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lesson-panel-row-meta{color:var(--text3)}.lesson-panel-open{margin-top:16px;flex:0 0 auto;width:100%;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:12px 16px;font-size:.9375rem;font-weight:600;cursor:pointer}.lesson-panel-open:hover{filter:brightness(1.05)}.lesson-panel-close:focus-visible,.lesson-panel-open:focus-visible,.lesson-panel-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.prism-editor{position:relative;width:100%;height:100%;background:#1e1e2e;overflow:hidden;display:flex;flex-direction:column;font-family:var(--mono)}.prism-editor pre{color:#cdd6f4;pointer-events:none;border:none;border-radius:0}.prism-editor pre,.prism-editor textarea{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:16px;overflow:auto;font-family:var(--mono);font-size:13px;line-height:1.7;white-space:pre;word-wrap:normal;background:transparent;tab-size:2}.prism-editor textarea{color:transparent;caret-color:#cdd6f4;border:none;outline:none;resize:none;z-index:1}.prism-editor textarea:disabled,.prism-editor textarea[readonly]{cursor:default;user-select:text}.prism-editor-banner{position:absolute;top:0;left:0;right:0;z-index:10;background:rgba(203,166,247,.12);border-bottom:1px solid rgba(203,166,247,.2);color:#cba6f7;font-family:var(--mono);font-size:11px;padding:6px 16px;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prism-editor .token.cdata,.prism-editor .token.comment,.prism-editor .token.doctype,.prism-editor .token.prolog{color:#6c7086;font-style:italic}.prism-editor .token.keyword,.prism-editor .token.tag{color:#cba6f7}.prism-editor .token.attr-name,.prism-editor .token.property{color:#89b4fa}.prism-editor .token.attr-value,.prism-editor .token.string{color:#a6e3a1}.prism-editor .token.operator,.prism-editor .token.punctuation{color:#89dceb}.prism-editor .token.boolean,.prism-editor .token.number,.prism-editor .token.unit{color:#fab387}.prism-editor .token.class-name,.prism-editor .token.function,.prism-editor .token.selector{color:#89b4fa}.prism-editor .token.atrule{color:#cba6f7}.prism-editor .token.bold,.prism-editor .token.important{font-weight:700}.prism-editor .token.italic{font-style:italic}.fp-split{flex:1;min-height:0;height:100%;overflow:hidden}.fp-split>.fp-instructions,.fp-split>.fp-preview-section{box-sizing:border-box;min-height:0}.fp-split>.gutter{flex-shrink:0;background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:relative;cursor:ns-resize;transition:background .15s ease}.fp-split>.gutter:hover{background:var(--surface2)}.fp-split>.gutter:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:36px;height:3px;border-radius:2px;background:var(--border2);transition:background .15s ease}.fp-split>.gutter:hover:after{background:var(--accent)}