/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:host,:root{--font-sans:var(--sans);--font-mono:var(--mono);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;--radius-2xl:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--bg);--color-bg2:var(--bg-2);--color-panel:var(--panel);--color-line:var(--border);--color-line2:var(--border-2);--color-ink:var(--text);--color-muted:var(--muted);--color-accent:var(--accent);--font-display:var(--display)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/vendor/fonts/poppins-400.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/vendor/fonts/poppins-500.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/vendor/fonts/poppins-600.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/vendor/fonts/poppins-700.woff2)format("woff2")}:root{--bg:#fff;--bg-2:#f3f8ff;--panel:#fff;--panel-2:#e8f0fb;--border:#e5ecf6;--border-2:#cfdcf0;--outline-border:#c3d6f0;--text:#0b1749;--muted:#526185;--muted-2:#66748e;--accent:#1669c9;--accent-strong:#0f55a8;--accent-soft:#1669c91a;--teal:#007c70;--teal-soft:#007c701f;--lilac:#6d4fd6;--green:#158a53;--green-soft:#158a531a;--red:#b4453c;--amber:#8a6d1f;--amber-soft:#8a6d1f14;--grad-brand:linear-gradient(92deg,#087cf2,#0ac 52%,#00aa84);--grad-cta:linear-gradient(135deg,#086ac9,#007d62);--grad-cta-hover:linear-gradient(135deg,#0759a8,#006951);--btn-primary:var(--grad-cta);--btn-primary-hover:var(--grad-cta-hover);--btn-primary-fg:#fff;--btn-primary-shadow:0 8px 20px -10px #006e5c8c;--btn-ink:#007a63;--btn-ink-fg:#fff;--code-bg:#f5f8fc;--editor-bg:#fff;--code-text:#0b1749;--shadow:0 1px 2px #0b17490d;--shadow-card:0 1px 2px #0b17490a,0 14px 34px -18px #1669c942;--shadow-card-hover:0 2px 4px #0b17490d,0 22px 44px -18px #1669c957;--shadow-menu:0 24px 50px -18px #0b174947;--glow:radial-gradient(120% 90% at 50% 0%,#1669c90d,transparent 60%);--cm-keyword:#cf222e;--cm-string:#0a3069;--cm-number:#0550ae;--cm-comment:#6e7781;--cm-def:#6639ba;--cm-builtin:#953800;--cm-operator:#1f2328;--cm-variable:#1f2328;--cm-property:#0550ae;--cm-meta:#6e7781;--cm-sel:#1669c924;--radius:8px;--radius-sm:6px;--radius-panel:14px;--radius-card:16px;--radius-pill:999px;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--display:"Poppins",var(--sans)}[data-theme=dark]{--bg:#08090b;--bg-2:#0d0f12;--panel:#131619;--panel-2:#1b1f24;--border:#2b3038;--border-2:#404854;--outline-border:#404854;--text:#f1f3f5;--muted:#b0b7c2;--muted-2:#8a939f;--accent:#60a5ff;--accent-strong:#8abeff;--accent-soft:#4b95ff1f;--teal:#50dfb1;--teal-soft:#3fd6ad24;--lilac:#b7a6ff;--green:#5ddb9a;--green-soft:#5ddb9a1f;--red:#f0857d;--amber:#e2c04a;--amber-soft:#e2c04a1a;--grad-brand:linear-gradient(92deg,#4092ff,#23c9e6 52%,#39d7a0);--btn-primary-shadow:0 10px 24px -10px #0009;--btn-ink:#007d62;--btn-ink-fg:#fff;--code-bg:#0d0f12;--editor-bg:#0b0d10;--code-text:#f1f3f5;--shadow:0 1px 2px #0006;--shadow-card:inset 0 1px 0 #ffffff0b,0 12px 30px -14px #000000d9;--shadow-card-hover:inset 0 1px 0 #ffffff12,0 18px 38px -14px #000000e6,0 0 0 1px #4b95ff1f;--shadow-menu:0 24px 50px -18px #000000b3;--glow:radial-gradient(120% 90% at 50% 0%,#4092ff06,transparent 60%);--cm-keyword:#ff7b72;--cm-string:#a5d6ff;--cm-number:#79c0ff;--cm-comment:#8b949e;--cm-def:#d2a8ff;--cm-builtin:#ffa657;--cm-operator:#e6edf3;--cm-variable:#ffa657;--cm-property:#79c0ff;--cm-meta:#8b949e;--cm-sel:#4fb0ff40}*{box-sizing:border-box}body,html{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6;transition:background .2s,color .2s;overflow:hidden}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:where(h1,h2,h3){font-family:var(--display)}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] :after,:root[data-reduced-motion=true] :before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.topbar{background:var(--bg);justify-content:space-between;align-items:center;height:58px;padding:0 18px;display:flex}@supports (color:color-mix(in lab,red,red)){.topbar{background:color-mix(in srgb,var(--bg) 84%,transparent)}}.topbar{-webkit-backdrop-filter:blur(16px)saturate(1.2);border-bottom:1px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.topbar{border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent)}}.topbar{z-index:20;position:relative}.brand{flex:none;align-items:center;gap:11px;display:flex}.brand-mark{place-items:center;width:32px;height:32px;display:grid}.brand-logo{object-fit:contain;width:32px;height:32px;display:block}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text strong{font:600 16px var(--display);letter-spacing:-.02em;color:var(--text)}.brand-sub{color:var(--muted);font-size:11.5px}.topbar-right{flex:1 1 0;align-items:center;gap:12px;min-width:0;max-width:100%;display:flex}.topbar-right>:first-child{margin-left:auto}@media (max-width:760px){.topbar{padding:0 12px}.topbar .topbar-right{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;padding-left:6px;overflow:auto hidden}.topbar-right::-webkit-scrollbar{display:none}.topbar-right>*{flex:none}}.progress-wrap{align-items:center;gap:8px;display:flex}.progress-bar{background:var(--panel-2);border:1px solid var(--border);border-radius:99px;width:150px;height:8px;overflow:hidden}.progress-fill{background:var(--grad-brand);width:0;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1)}.progress-label{color:var(--muted);font-variant-numeric:tabular-nums;min-width:34px;font-size:12px}.btn{font-family:var(--display);border:1px solid var(--border-2);background:var(--bg-2);color:var(--text);border-radius:var(--radius);cursor:pointer;white-space:nowrap;padding:5px 15px;font-size:14px;font-weight:500;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.btn:hover{border-color:var(--outline-border)}.btn:active,.btn:hover{background:var(--panel-2)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-small{font-size:12.5px}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text);background:var(--panel-2);border-color:#0000}.btn-accent{border-color:var(--border-2);color:var(--accent);background:0 0}.btn-accent:hover{background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.btn-accent:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-2))}}.btn-primary{background:var(--btn-primary);font-weight:600}.btn-primary,.btn-primary:hover{color:var(--btn-primary-fg);border-color:#0000}.btn-primary:hover{background:var(--btn-primary-hover)}.btn-primary:not(.btn-small){border-radius:var(--radius-pill);box-shadow:var(--btn-primary-shadow);padding:6px 18px}.btn:disabled{opacity:.5;cursor:not-allowed}.topbar .btn{border-radius:var(--radius-pill)}.topbar .btn-ghost{color:var(--muted)}.topbar .btn-ghost:hover{color:var(--text);background:var(--bg-2)}.topbar .btn-ghost[aria-current=page]{color:var(--accent);background:var(--accent-soft);box-shadow:none}.topbar .btn:not(.btn-ghost):not(.btn-primary):not(.btn-accent){border:1.5px solid var(--outline-border);color:var(--text);background:0 0}.topbar .btn:not(.btn-ghost):not(.btn-primary):not(.btn-accent):hover{background:var(--bg-2);border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.topbar .btn:not(.btn-ghost):not(.btn-primary):not(.btn-accent):hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--outline-border))}}.app{height:calc(100vh - 58px);display:flex}.sidebar{background:var(--bg-2);border-right:1px solid var(--border);flex-shrink:0;width:288px;overflow-y:auto}.sidebar-inner{padding:10px 8px 32px}.section-block{margin-bottom:14px}.section-head{border-radius:var(--radius);align-items:center;gap:8px;padding:5px 8px;display:flex}.section-emoji{color:var(--muted-2);font-size:15px}.section-titles{flex-direction:column;min-width:0;line-height:1.25;display:flex}.section-titles .st-name{font:600 12.5px var(--display);color:var(--text)}.section-titles .st-tag{color:var(--muted-2);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.section-locked{opacity:.55}.section-roadmap .section-head:hover{background:var(--panel-2)}.section-roadmap .section-emoji .ic{width:15px;height:15px;color:var(--accent)}.soon-pill{text-transform:uppercase;letter-spacing:.6px;background:var(--panel-2);color:var(--muted);border:1px solid var(--border);border-radius:99px;margin-left:auto;padding:2px 6px;font-size:9.5px}.route-picker{margin:2px 4px 8px}.route-current{border-radius:var(--radius);width:100%;color:var(--muted);cursor:pointer;text-align:left;font-family:var(--sans);background:0 0;border:none;align-items:center;gap:7px;padding:6px 8px;transition:background .12s,color .12s;display:flex}.route-current:hover,.route-picker.open .route-current{background:var(--panel-2);color:var(--text)}.route-current .ic{width:13px;height:13px;color:var(--muted-2);flex:none;display:block}.route-current:hover .ic,.route-picker.open .route-current .ic{color:var(--accent)}.route-name{color:inherit;white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.route-chevron{color:var(--muted-2);margin-right:auto;padding-left:6px;font-size:7px}.route-current:hover .route-chevron{color:var(--muted)}.route-options{margin:4px 0 0;padding:0;list-style:none}.route-option{text-align:left;cursor:pointer;border-radius:0 var(--radius) var(--radius) 0;width:100%;font-family:var(--sans);background:0 0;border:none;border-left:2px solid #0000;flex-direction:column;gap:2px;margin-bottom:2px;padding:7px 9px;transition:background .12s,border-color .12s;display:flex}.route-option:hover{background:var(--panel-2)}.route-option.active{border-left-color:var(--accent);background:var(--accent-soft)}.route-option-head{align-items:center;gap:6px;display:flex}.route-option-label{color:var(--text);font-size:12px;font-weight:600}.route-option-head .ic{width:12px;height:12px;color:var(--accent);margin-left:auto}.route-option-blurb{color:var(--muted-2);font-size:10.5px;line-height:1.4}.route-option-meta{color:var(--muted-2);font-size:10px;font-family:var(--mono)}.off-route{margin:4px 8px 0}.off-route-toggle{text-align:left;cursor:pointer;width:100%;color:var(--muted-2);font-family:var(--sans);background:0 0;border:none;padding:5px 0;font-size:10.5px}.off-route-toggle:hover{color:var(--accent)}.lesson-list.dim .lesson-item{opacity:.55}.lesson-list.dim .lesson-item.active,.lesson-list.dim .lesson-item:hover{opacity:1}.lesson-list{margin:3px 0 0;padding:0;list-style:none}.lesson-item{border-radius:0 var(--radius) var(--radius) 0;cursor:pointer;color:var(--muted);border-left:2px solid #0000;align-items:center;gap:9px;margin:0 4px;padding:5px 8px 5px 9px;font-size:12.5px;transition:color .12s,background .12s;display:flex}.lesson-item:hover{background:var(--panel-2);color:var(--text)}.lesson-item.active{background:var(--accent-soft);color:var(--accent);border-left-color:var(--accent);font-weight:500}.lesson-item.capstone .li-title{color:var(--muted);font-weight:600}.li-check{border:1.5px solid var(--border-2);color:#0000;border-radius:50%;flex-shrink:0;place-items:center;width:14px;height:14px;font-size:9px;display:grid}.lesson-item.done .li-check{background:var(--teal);border-color:var(--teal);color:#fff}.lesson-item.active .li-check{border-color:var(--accent)}.li-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.li-num{font-family:var(--mono);color:var(--muted-2);font-size:10px}.workspace{flex:1;min-width:0;display:flex}.lesson-pane{background:var(--bg);background-image:var(--glow);background-repeat:no-repeat;flex:46%;min-width:320px;display:flex;overflow:hidden}.lesson-scroll{width:100%;padding:28px 34px 80px;overflow-y:auto}.resizer{cursor:col-resize;background:var(--border);flex-shrink:0;width:6px;transition:background .15s}.resizer:hover{background:var(--accent)}.lesson-crumbs{color:var(--muted);font-size:12px;font-family:var(--mono);margin-bottom:8px}#lesson-title{letter-spacing:-.6px;margin:0 0 12px;font-size:28px;font-weight:700;line-height:1.15}.lesson-tags{flex-wrap:wrap;gap:7px;margin-bottom:22px;display:flex}#lesson-title{font-size:25px}.tag{border:1px solid var(--border-2);border-radius:5px;padding:2px 9px;font-size:11px}.tag,.tag.roadmap{color:var(--muted);background:0 0}.tag.roadmap{border-color:var(--border-2)}.task-card{border:none;border-left:2px solid var(--accent);background:0 0;border-radius:0;margin-bottom:22px;padding:2px 0 2px 14px}.task-badge{color:var(--accent);margin-bottom:4px;font-size:11px;font-weight:600}#task-text{font-size:14px;line-height:1.55}.prose{color:var(--text)}.prose h1,.prose h2,.prose h3{color:var(--text);letter-spacing:-.35px;font-weight:650;line-height:1.25}.prose h1{margin:0 0 10px;font-size:22px}.prose>div:first-child>h1:first-child,.prose>h1:first-child{display:none}.prose h2{margin:30px 0 10px;font-size:17px}.prose h3{color:var(--muted);margin:22px 0 8px;font-size:14.5px}.prose p{margin:10px 0}.prose ol,.prose ul{padding-left:20px}.prose li{margin:4px 0}.prose code{font-family:var(--mono);background:var(--panel-2);color:var(--text);border-radius:4px;padding:1px 5px;font-size:12.5px}.prose pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;margin:12px 0;padding:12px 14px;overflow-x:auto}.prose pre code{color:var(--code-text);background:0 0;border:none;padding:0;font-size:12.5px}.prose blockquote{border-left:2px solid var(--border-2);color:var(--muted);background:0 0;margin:14px 0;padding:2px 0 2px 14px;font-size:13.5px}.prose blockquote p{margin:4px 0}.prose blockquote strong{color:var(--text)}.prose hr{border:none;border-top:1px solid var(--border);margin:22px 0}.prose strong{color:var(--text);font-weight:600}.prose table{border-collapse:collapse;width:100%;margin:14px 0}.prose td,.prose th{border:1px solid var(--border);text-align:left;padding:7px 11px;font-size:13.5px}.prose th{background:var(--panel-2)}.hljs{color:var(--code-text);background:0 0}.hljs-comment,.hljs-quote{color:var(--cm-comment);font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-section,.hljs-selector-tag{color:var(--cm-keyword)}.hljs-addition,.hljs-attr,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:var(--cm-string)}.hljs-bullet,.hljs-number,.hljs-symbol{color:var(--cm-number)}.hljs-name,.hljs-selector-class,.hljs-selector-id,.hljs-title{color:var(--cm-def)}.hljs-built_in,.hljs-builtin-name,.hljs-class .hljs-title,.hljs-type{color:var(--cm-builtin)}.hljs-params{color:var(--code-text)}.hljs-comment .hljs-doctag,.hljs-meta{color:var(--cm-meta)}.hljs-attribute,.hljs-template-variable,.hljs-variable{color:var(--cm-property)}.hints{margin-top:24px}.hint{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);margin:8px 0;overflow:hidden}.hint summary{cursor:pointer;color:var(--amber);padding:10px 14px;font-size:13px;font-weight:600;list-style:none}.hint summary::-webkit-details-marker{display:none}.hint[open] summary{border-bottom:1px solid var(--border)}.hint .hint-body{color:var(--text);padding:10px 14px;font-size:13.5px}.hint .hint-body code{font-family:var(--mono);background:var(--panel-2);border-radius:4px;padding:1px 5px}.workbench{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;flex:54%;min-width:380px;display:flex}.editor-toolbar{border-bottom:1px solid var(--border);background:var(--bg-2);justify-content:space-between;padding:8px 12px}.editor-toolbar,.file-tab{align-items:center;display:flex}.file-tab{font-family:var(--mono);color:var(--muted);gap:8px;font-size:12.5px}.file-tab .dot{background:var(--grad-brand);border-radius:50%;width:9px;height:9px}.toolbar-actions{gap:7px;display:flex}.editor-host{flex:auto;min-height:140px;overflow:hidden}.CodeMirror{background:var(--editor-bg);color:var(--code-text);font-size:13.5px;line-height:1.55;height:100%!important;font-family:var(--mono)!important}.CodeMirror-gutters{background:var(--editor-bg);border-right:1px solid var(--border)}.CodeMirror-linenumber{color:var(--muted-2)}.CodeMirror-cursor{border-left:1.5px solid var(--text)}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-selected{background:var(--cm-sel)}.CodeMirror-activeline-background{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.CodeMirror-activeline-background{background:color-mix(in srgb,var(--accent) 6%,transparent)}}.CodeMirror-matchingbracket{font-weight:700;color:var(--accent)!important}.cm-s-default .cm-keyword{color:var(--cm-keyword)}.cm-s-default .cm-string,.cm-s-default .cm-string-2{color:var(--cm-string)}.cm-s-default .cm-number{color:var(--cm-number)}.cm-s-default .cm-comment{color:var(--cm-comment);font-style:italic}.cm-s-default .cm-def{color:var(--cm-def)}.cm-s-default .cm-variable,.cm-s-default .cm-variable-2,.cm-s-default .cm-variable-3{color:var(--cm-variable)}.cm-s-default .cm-builtin{color:var(--cm-builtin)}.cm-s-default .cm-operator{color:var(--cm-operator)}.cm-s-default .cm-property{color:var(--cm-property)}.cm-s-default .cm-meta{color:var(--cm-meta)}.cm-s-default .cm-atom{color:var(--cm-number)}.panel{height:var(--panel-h,42%);border-top:1px solid var(--border);flex-direction:column;flex:none;min-height:120px;display:flex}.panel-resizer{cursor:row-resize;z-index:3;background:0 0;flex:none;height:7px;transition:background .13s;position:relative}.panel-resizer:before{content:"";background:var(--border-2);border-radius:99px;width:42px;height:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.panel-resizer:hover{background:var(--accent-soft)}.panel-resizer:hover:before{background:var(--accent)}body.no-select{-webkit-user-select:none;user-select:none}.panel-tabs{background:var(--bg-2);border-bottom:1px solid var(--border);gap:2px;padding:0 8px;display:flex}.ptab{color:var(--muted);font-family:var(--sans);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px;font-size:12.5px;font-weight:600}.ptab.active,.ptab:hover{color:var(--text)}.ptab.active{border-bottom-color:var(--accent)}.ptab .badge-count{text-align:center;background:var(--panel-2);border-radius:99px;min-width:16px;margin-left:6px;padding:0 5px;font-size:10.5px;display:inline-block}.ptab.ok .badge-count{background:var(--green);color:#fff}.ptab.fail .badge-count{background:var(--red);color:#fff}.panel-body{flex:1;position:relative;overflow:auto}.panel-view{height:100%;padding:14px 16px;display:none}.panel-view.active{display:block}.console-out{font-family:var(--mono);white-space:pre-wrap;color:var(--code-text);min-height:100%;margin:0;font-size:13px}.console-out .c-err{color:var(--red)}.console-out .c-muted{color:var(--muted)}.console-out .c-ok{color:var(--green)}.tests-empty{color:var(--muted);padding:6px;font-size:13.5px}.test-summary{align-items:center;gap:10px;margin-bottom:12px;font-size:14px;font-weight:700;display:flex}.test-summary.pass{color:var(--green)}.test-summary.fail{color:var(--amber)}.test-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);align-items:flex-start;gap:10px;margin:6px 0;padding:9px 11px;display:flex}.test-row .t-icon{flex-shrink:0;margin-top:1px;font-size:14px}.test-row.pass .t-icon{color:var(--green)}.test-row.fail .t-icon{color:var(--red)}.test-row .t-body{flex:1;min-width:0}.test-row .t-desc{font-size:13px}.test-row .t-detail{font-family:var(--mono);color:var(--muted);word-break:break-word;margin-top:4px;font-size:12px}.test-row .t-detail .exp{color:var(--green)}.test-row .t-detail .got{color:var(--red)}.confetti-line{color:var(--green);margin-top:12px;font-weight:700}.widget-empty{color:var(--muted);font-size:13.5px}.fn-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin:0 0 14px;overflow:hidden}.fn-card-head{border-bottom:1px solid var(--border);background:var(--bg-2);font-family:var(--mono);color:var(--accent-strong);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.fn-card-head .fn-desc{color:var(--muted);font-family:var(--sans);font-size:12px}.fn-inputs{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.fn-field{flex-direction:column;gap:4px;display:flex}.fn-field--wide{flex:100%}.fn-field label{color:var(--muted);font-size:11.5px;font-family:var(--mono)}.fn-field input,.fn-field select,.fn-field textarea{background:var(--bg);border:1px solid var(--border-2);color:var(--text);font-family:var(--mono);border-radius:7px;width:120px;padding:7px 9px;font-size:13px}.fn-field textarea{resize:vertical;white-space:pre;tab-size:2;width:100%;min-height:84px;line-height:1.5;overflow:auto}.fn-field input:focus,.fn-field select:focus,.fn-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.fn-call-row{align-items:center;gap:10px;margin-top:12px;display:flex}.fn-result{border-radius:var(--radius-sm);background:var(--code-bg);border:1px solid var(--border);font-family:var(--mono);margin-top:12px;padding:10px 12px;font-size:13px;display:none}.fn-result.show{display:block}.fn-result .fr-label{color:var(--muted);margin-bottom:3px;font-size:11px}.fn-result .fr-value{color:var(--green);word-break:break-word;white-space:pre-wrap}.fn-result.err .fr-value{color:var(--red)}.fn-scenarios{flex-wrap:wrap;align-items:center;gap:6px;margin-top:11px;display:flex}.fn-sc-label{font-size:11px;margin-right:2px}.fn-chip,.fn-sc-label{color:var(--muted);font-family:var(--mono)}.fn-chip{font-size:12px;cursor:pointer;background:var(--panel-2);border:1px solid var(--border-2);border-radius:99px;padding:4px 10px;transition:all .12s}.fn-chip:hover{border-color:var(--accent);color:var(--text);transform:translateY(-1px)}.bill-app{flex-wrap:wrap;gap:16px;display:flex}.bill-form,.bill-receipt{flex:240px;min-width:230px}.bill-form{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.bill-form h4,.bill-receipt h4{margin:0 0 14px;font-size:14px;font-weight:700}.bill-field{margin-bottom:12px}.bill-field label{color:var(--muted);margin-bottom:5px;font-size:12px;display:block}.bill-field input,.bill-field select{background:var(--bg);border:1px solid var(--border-2);width:100%;color:var(--text);font-size:14px;font-family:var(--mono);border-radius:8px;padding:9px 11px}.bill-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.tip-presets{gap:6px;margin-top:6px;display:flex}.tip-preset{text-align:center;cursor:pointer;background:var(--panel-2);border:1px solid var(--border-2);color:var(--muted);border-radius:99px;flex:1;padding:6px;font-size:12.5px}.tip-preset.active,.tip-preset:hover{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.bill-receipt{background:var(--code-bg);border:1px dashed var(--border-2);border-radius:var(--radius);font-family:var(--mono);padding:18px;position:relative}.receipt-line{color:var(--text);justify-content:space-between;padding:6px 0;font-size:13.5px;display:flex}.receipt-line.muted{color:var(--muted)}.receipt-line.total{border-top:1px dashed var(--border-2);color:var(--text);margin-top:8px;padding-top:12px;font-size:15px;font-weight:700}.receipt-line.perhead{color:var(--accent-strong);font-size:17px;font-weight:700}.receipt-placeholder{color:var(--muted);text-align:center;padding:30px 0;font-size:13px}.receipt-error{color:var(--red);padding:14px 0;font-size:13px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-2);border:2px solid var(--bg);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--muted-2)}.toast{background:var(--panel);border:1px solid var(--border-2);color:var(--text);opacity:0;pointer-events:none;z-index:100;box-shadow:var(--shadow-card-hover);border-radius:99px;padding:12px 20px;font-size:13.5px;font-weight:600;transition:all .3s;position:fixed;bottom:22px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast.success{border-color:var(--green)}.toast.error{border-color:var(--red)}.resources{margin:2px 0 24px}.resources:empty{margin:0}.res-head{color:var(--muted-2);letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px;font-size:10px;font-weight:600}.res-list{flex-direction:column;display:flex}.res-item{border:none;border-top:1px solid var(--border);background:0 0;border-radius:0;align-items:center;gap:10px;padding:7px 2px;text-decoration:none;transition:color .12s;display:flex}.res-item:last-child{border-bottom:1px solid var(--border)}.res-item:hover{background:0 0;text-decoration:none;transform:none}.res-item:hover .res-title{color:var(--accent)}.res-badge{text-transform:uppercase;letter-spacing:.5px;text-align:left;min-width:46px;border:none;border-radius:0;flex-shrink:0;padding:0;font-size:9.5px;font-weight:500}.res-badge,.res-badge.article,.res-badge.course,.res-badge.docs,.res-badge.video{color:var(--muted-2);background:0 0}.res-title{color:var(--muted);flex:1;font-size:13px;transition:color .12s}.res-ext{color:var(--muted-2);flex-shrink:0;font-size:11px}.app-context{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:14px;padding:11px 14px}.ac-top{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:5px;display:flex}.ac-chip{color:var(--muted-2);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.ac-top strong{color:var(--text);font-size:13px;font-weight:600}.ac-role{color:var(--muted);margin-bottom:6px;font-size:12.5px}.ac-role code{font-family:var(--mono);background:var(--panel-2);color:var(--text);border-radius:4px;padding:1px 5px;font-size:12px}.ac-scenario{color:var(--muted);border-left:2px solid var(--border-2);background:0 0;border-radius:0;margin-bottom:7px;padding:3px 0 3px 11px;font-size:12.5px}.ac-scen-label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);margin-right:6px;font-size:9.5px;font-weight:600}.ac-maplink{color:var(--accent);font-family:var(--sans);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;font-weight:600}.ac-maplink:hover{text-decoration:underline}.check-box,.fix-box,.play-box,.predict-box,.project-box,.steps-box,.trace-box{border:1px solid var(--border);background:var(--code-bg);border-radius:8px;margin:14px 0;transition:border-color .15s;overflow:hidden}.check-box:hover,.fix-box:hover,.play-box:hover,.predict-box:hover,.project-box:hover,.steps-box:hover,.trace-box:hover{border-color:var(--border-2)}.play-head{justify-content:space-between;align-items:center;min-height:30px;padding:5px 6px 5px 12px;display:flex}.play-tag{color:var(--muted-2);font-size:10px;font-family:var(--mono);letter-spacing:.4px;text-transform:lowercase}.check-box:hover .play-tag,.fix-box:hover .play-tag,.play-box:hover .play-tag,.predict-box:hover .play-tag,.trace-box:hover .play-tag{color:var(--muted)}.check-box.broken .play-tag{color:var(--red);text-transform:none}.play-tag .ic{opacity:.7}.play-editor .CodeMirror{background:0 0;font-size:12.5px;line-height:1.55;height:auto!important;font-family:var(--mono)!important}.play-editor .CodeMirror-scroll{min-height:0}.play-out,.prose .play-out{border:none;border-top:1px solid var(--border);font-family:var(--mono);white-space:pre-wrap;color:var(--muted);background:0 0;border-radius:0;margin:0;padding:8px 13px;font-size:12px}.play-out:before{content:"→ ";color:var(--muted-2)}.play-out.err{color:var(--red)}.predict-box pre,.prose .predict-box pre{background:0 0;border:none;border-radius:0;margin:0;padding:10px 13px}.predict-verdict{color:var(--muted);font-size:10.5px;font-weight:600}.predict-verdict.ok{color:var(--green)}.predict-choices{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:10px 12px;display:flex}.predict-choice{border:1px solid var(--border-2);color:var(--muted);cursor:pointer;font-family:var(--mono);background:0 0;border-radius:6px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;transition:color .12s,border-color .12s;display:inline-flex}.predict-choice code{font-size:inherit;color:inherit;background:0 0;padding:0}.predict-choice:hover:not(:disabled){color:var(--text);border-color:var(--muted-2)}.predict-choice:disabled{cursor:default}.predict-choice.right{border-color:var(--green);color:var(--green)}.predict-choice.wrong{border-color:var(--red);color:var(--red);text-decoration:line-through}.predict-choice.dim{opacity:.3}.predict-choice .ic{width:12px;height:12px}.predict-why{border-top:1px solid var(--border);color:var(--muted);padding:10px 12px;font-size:12.5px;line-height:1.55}.predict-why strong{color:var(--text);font-weight:600}.check-expr{text-align:center;padding:18px 13px 14px}.check-expr .math-display{margin:0}.check-box .predict-choice{font-family:inherit;font-size:13px}.fix-actions{gap:4px;display:inline-flex}.fix-err-name{color:var(--red);font-size:10px;font-family:var(--mono);background:0 0;margin-left:7px;padding:0}.fix-task{padding:0 12px 8px;line-height:1.5}.fix-task,.fix-verdict{color:var(--muted);margin:0;font-size:12px}.fix-verdict{border-top:1px solid var(--border);align-items:center;gap:6px;padding:8px 12px;display:flex}.fix-verdict.ok{color:var(--green)}.fix-verdict .ic{width:13px;height:13px}.fix-hint{color:var(--muted);border-top:1px solid var(--border);align-items:flex-start;gap:7px;margin:0;padding:8px 12px;font-size:12px;line-height:1.5;display:flex}.fix-hint .ic{width:13px;height:13px;color:var(--muted-2);flex:none;margin-top:2px}.fix-hint-btn{text-align:left;border:none;border-top:1px solid var(--border);width:100%;color:var(--muted);font-family:var(--sans);cursor:pointer;background:0 0;padding:7px 12px;font-size:11.5px;display:block}.fix-hint-btn:hover{color:var(--accent)}.trace-count{font-size:10.5px;font-family:var(--mono);color:var(--muted-2)}.trace-code{font-family:var(--mono);padding:6px 0;font-size:12.5px;line-height:1.6;overflow-x:auto}.trace-line{white-space:pre;color:var(--muted-2);border-left:2px solid #0000;align-items:center;gap:12px;padding:0 12px;display:flex}.trace-line.here{border-left-color:var(--accent)}.trace-line.here,.trace-line.here .trace-src{color:var(--text)}.trace-ln{opacity:.5;text-align:right;-webkit-user-select:none;user-select:none;min-width:16px}.trace-ln,.trace-src{color:var(--muted-2)}.trace-marker{color:var(--accent);margin-left:auto;padding-left:14px;font-size:10.5px}.trace-controls{border-top:1px solid var(--border);align-items:center;gap:6px;padding:7px 12px;display:flex}.trace-scrub{accent-color:var(--accent);cursor:pointer;flex:1;height:3px}.trace-panes{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;display:grid}.trace-pane{min-width:0;padding:9px 12px}.trace-pane+.trace-pane{border-left:1px solid var(--border)}.trace-pane-h{text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);margin-bottom:6px;font-size:9.5px;font-weight:600}.trace-vars{border-collapse:collapse;width:100%;font-family:var(--mono);margin:0;font-size:11.5px}.prose .trace-vars td,.trace-vars td{vertical-align:top;border:none;padding:2px 8px 2px 0;font-size:11.5px}.trace-vars tr.changed .tv-name,.trace-vars tr.changed .tv-val{color:var(--accent)}.tv-name{color:var(--muted);white-space:nowrap}.tv-val{color:var(--text);word-break:break-word;width:99%}.tv-type{color:var(--muted-2);opacity:.55;text-align:right;white-space:nowrap;font-size:10px}.trace-empty,.trace-frame{color:var(--muted-2);margin:0;font-size:11.5px}.trace-frame{margin-top:7px}.prose .trace-out,.trace-out{font-family:var(--mono);white-space:pre-wrap;color:var(--text);background:0 0;border:none;border-radius:0;min-height:16px;margin:0;padding:0;font-size:11.5px}.trace-note{color:var(--muted-2);border-top:1px solid var(--border);margin:0;padding:8px 12px;font-size:11.5px}@media (max-width:620px){.trace-panes{grid-template-columns:1fr}.trace-pane+.trace-pane{border-left:none;border-top:1px solid var(--border)}}.steps-box{background:var(--bg-2)}.steps-count{font:10.5px var(--mono);color:var(--muted-2);padding-right:6px}.steps-list{counter-reset:none;margin:0;padding:4px 14px 2px;list-style:none}.prose .steps-list{padding-left:14px}.steps-list li{border-top:1px solid var(--border);opacity:.62;grid-template-columns:26px 1fr;gap:10px;padding:10px 0;transition:opacity .2s;display:grid}.steps-list li:first-child{border-top:0}.steps-list li.current{opacity:1}.steps-num{border:1px solid var(--border-2);width:24px;height:24px;font:600 11px var(--mono);color:var(--muted);border-radius:999px;place-items:center;display:grid}.steps-list li.current .steps-num{background:var(--accent-soft);color:var(--accent);border-color:#0000}.steps-body>:first-child{margin-top:2px}.steps-body>:last-child{margin-bottom:0}.steps-body h1,.steps-body h2,.steps-body h3,.steps-body h4{margin:2px 0 6px;font-size:14px}.steps-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:6px;padding:8px 10px;display:flex}@media (prefers-reduced-motion:reduce){.steps-list li{transition:none}}.project-title{font:600 12px var(--display,inherit);color:var(--text);text-transform:none;letter-spacing:0;margin-left:8px}.project-brief{border-bottom:1px solid var(--border);padding:4px 14px 12px;font-size:13.5px;line-height:1.65}.project-brief>:first-child{margin-top:0}.project-brief>:last-child{margin-bottom:0}.project-tests{border-top:1px solid var(--border);gap:6px;margin:0;padding:8px 12px;list-style:none;display:grid}.prose .project-tests{padding-left:12px}.project-tests li{color:var(--muted);grid-template-columns:18px 1fr;align-items:start;gap:8px;margin:0;font-size:12.5px;line-height:1.5;display:grid}.project-tests li.fail,.project-tests li.pass{color:var(--text)}.project-test-mark{border:1px solid var(--border-2);border-radius:999px;place-items:center;width:18px;height:18px;display:grid}.project-test-mark .ic{width:11px;height:11px}.project-tests li.pass .project-test-mark{border-color:var(--green);color:var(--green)}.project-tests li.fail .project-test-mark{border-color:var(--red);color:var(--red)}.project-test-expr{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.project-test-err{font:11.5px var(--mono);color:var(--red);margin-top:2px;display:block}.project-solution,.prose .project-solution{border:0;border-top:1px solid var(--border);font:12px/1.55 var(--mono);white-space:pre-wrap;background:0 0;border-radius:0;margin:0;padding:10px 13px}.quiz-q{color:var(--text);margin:0;padding:6px 13px 12px;font-size:14px;line-height:1.55}.quiz-box .predict-choice{font-family:inherit;font-size:13px}.run-frame{border:0;border-top:1px solid var(--border);background:#fff;width:100%;min-height:220px;display:block}.run-err-line{color:var(--red)}.run-setup{color:var(--muted);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;font-size:12.5px;display:flex}.run-setup-toggle{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.run-setup-sql{white-space:pre;flex-basis:100%;max-height:220px;margin:0;font-size:12px;overflow:auto}.run-table-wrap{border-top:1px solid var(--border);overflow-x:auto}.run-table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:12.5px}.run-table td,.run-table th{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 10px}.run-table th{background:var(--panel-2);font-weight:600}.run-null{color:var(--muted);font-style:italic}.run-table-foot{color:var(--muted);margin:0;padding:4px 10px 8px;font-size:11.5px}.flow-box{border:1px solid var(--border);border-radius:10px;margin:1.25em 0;padding:12px;overflow-x:auto}.flow-svg{justify-content:center;display:flex}.flow-svg svg{max-width:100%;height:auto}.flow-loading{text-align:center;color:var(--muted);padding:24px;font-size:13px}.flow-error pre{white-space:pre-wrap;margin:0 0 8px;font-size:12px}.flow-error figcaption{color:var(--red);font-size:12.5px}.mx-summary{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel);flex-wrap:wrap;align-items:center;gap:22px;margin-bottom:26px;padding:14px 16px;display:flex}.mx-stat{flex-direction:column;line-height:1.1;display:flex}.mx-stat-n{color:var(--text);font-size:22px;font-weight:650;font-family:var(--mono)}.mx-stat-l{color:var(--muted-2);text-transform:uppercase;letter-spacing:.5px;font-size:10.5px}.mx-shape{color:var(--muted);flex:240px;margin:0;font-size:12.5px;line-height:1.55}.mx-shape strong{color:var(--accent);font-weight:600}.mx-cluster{margin-bottom:26px}.mx-cluster-head h2{color:var(--text);margin:0;font-size:14px;font-weight:650}.mx-cluster-head p{color:var(--muted-2);margin:2px 0 9px;font-size:12px}.mx-table{border-collapse:collapse;width:100%}.mx-table thead th{text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);text-align:center;background:0 0;border:none;width:74px;padding:0 0 6px;font-size:9.5px;font-weight:500}.mx-row{cursor:pointer;border-top:1px solid var(--border)}.mx-row:hover{background:var(--panel-2)}.mx-row.unreachable{opacity:.45}.mx-name{text-align:left;color:var(--text);background:0 0;border:none;padding:7px 8px 7px 2px;font-size:12.5px;font-weight:400}.mx-label{margin-right:8px}.mx-cross{color:var(--accent);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;padding:0 5px;font-size:9.5px}.mx-soon{color:var(--muted-2);font-size:9.5px;font-style:italic}.mx-cell{text-align:center;background:0 0;border:none;padding:7px 0}.mx-dot{border:1.5px solid var(--border-2);background:0 0;border-radius:50%;width:9px;height:9px;transition:all .12s;display:inline-block}.mx-cell.on .mx-dot{border-color:var(--accent);background:var(--accent)}.mx-cell.current .mx-dot{box-shadow:0 0 0 3px var(--accent-soft)}.mx-detail-row td{background:0 0;border:none;padding:0 0 12px 2px}.mx-detail{border-left:2px solid var(--accent);padding:4px 0 4px 12px}.mx-blurb{color:var(--muted);margin:0 0 5px;font-size:12.5px;line-height:1.5}.mx-where{color:var(--muted-2);font-size:11px;font-family:var(--mono);margin:0 0 6px}.mx-next{color:var(--accent);font-size:12px;font-weight:500;text-decoration:none}.mx-next:hover{text-decoration:underline}.mx-done{margin:0;font-size:12px}.mx-done,.mx-legend{color:var(--muted-2)}.mx-legend{border-top:1px solid var(--border);align-items:flex-start;gap:8px;margin:26px 0 0;padding-top:12px;font-size:11.5px;line-height:1.55;display:flex}.mx-legend .ic{flex:none;width:12px;height:12px;margin-top:3px}.mx-legend em{color:var(--muted);font-style:normal}.map-wrap{max-width:760px}.map-title{color:var(--text);align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.map-count{color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:99px;padding:2px 9px;font-size:11.5px;font-weight:600}.map-sub{color:var(--muted);margin:5px 0 16px;font-size:12.5px}.map-flow{flex-direction:column;display:flex}.map-node{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer;align-items:flex-start;gap:12px;padding:11px 13px;transition:all .14s;display:flex}.map-node:hover{border-color:var(--border-2);transform:translate(2px)}.map-node-status{background:var(--panel-2);border:1.5px solid var(--border-2);width:24px;height:24px;color:var(--muted);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.map-node.done .map-node-status{background:var(--teal);border-color:var(--teal);color:#fff}.map-node.current{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.map-node.current .map-node-status{border-color:var(--accent);color:var(--accent);animation:pulse 1.6s ease-in-out infinite}.map-node-label{color:var(--text);align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex}.here-pill{text-transform:uppercase;letter-spacing:.5px;background:var(--accent);color:#fff;border-radius:99px;padding:1px 7px;font-size:9.5px;font-weight:700}.map-node-fn{font-family:var(--mono);color:var(--accent-strong);font-size:11.5px}.map-node-role{color:var(--muted);margin-top:3px;font-size:12px}.map-connector{background:var(--border-2);width:2px;height:12px;margin-left:25px}.layout-toggles{border-right:1px solid var(--border);align-items:center;gap:4px;margin-right:4px;padding-right:12px;display:flex}.tg-btn{width:38px;height:32px;color:var(--muted-2);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;place-items:center;transition:all .13s;display:grid}.tg-btn svg{width:22px;height:auto;display:block}.tg-btn.active{color:var(--accent)}.tg-btn:hover{color:var(--accent-strong);background:0 0}.ptab-toggle .pane,.tg-btn .pane{opacity:.28}.panel-tabs{align-items:center}.ptab-toggle{width:32px;height:28px;color:var(--muted-2);cursor:pointer;background:0 0;border:none;border-radius:7px;place-items:center;margin-left:auto;margin-right:2px;transition:all .13s;display:grid}.ptab-toggle svg{width:20px;height:auto;display:block}.ptab-toggle.active{color:var(--accent)}.ptab-toggle:hover{color:var(--accent-strong);background:0 0}.ptab-toggle+.ptab-toggle{margin-left:0}.workbench.panel-collapsed .panel{flex:none;height:auto;min-height:0}.workbench.panel-collapsed .panel-body{display:none}.workbench.panel-maximized .panel{flex:auto;height:auto}.workbench.panel-collapsed .panel-resizer,.workbench.panel-maximized .editor-host,.workbench.panel-maximized .panel-resizer{display:none}.sidebar{transition:width .18s}.app.sidebar-rail .sidebar{width:64px}.app.sidebar-rail .sidebar-inner{padding:12px 0 30px}.app.sidebar-rail .li-num,.app.sidebar-rail .li-title,.app.sidebar-rail .off-route,.app.sidebar-rail .route-picker,.app.sidebar-rail .section-titles,.app.sidebar-rail .soon-pill{display:none}.app.sidebar-rail .section-head{justify-content:center;gap:0;padding:8px 0 4px}.app.sidebar-rail .section-emoji{font-size:20px}.app.sidebar-rail .section-block{margin-bottom:6px}.app.sidebar-rail .lesson-list{margin:0;position:relative}.app.sidebar-rail .lesson-list:before{content:"";background:var(--border-2);z-index:0;width:2px;position:absolute;top:16px;bottom:16px;left:50%;transform:translate(-50%)}.app.sidebar-rail .lesson-item{border:none;justify-content:center;gap:0;margin:0;padding:7px 0}.app.sidebar-rail .lesson-item:hover{background:0 0}.app.sidebar-rail .lesson-item:hover .li-check{border-color:var(--accent)}.app.sidebar-rail .li-check{z-index:1;background:var(--bg-2);border-color:var(--border-2);width:24px;height:24px;font-family:var(--mono);font-size:10px;font-weight:600;transition:all .12s;position:relative}.app.sidebar-rail .lesson-item:not(.done) .li-check:before{content:attr(data-num);color:var(--muted);place-items:center;display:grid;position:absolute;inset:0}.app.sidebar-rail .lesson-item.done .li-check{background:var(--teal);border-color:var(--teal)}.app.sidebar-rail .lesson-item.active .li-check{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.app.sidebar-rail .lesson-item.active .li-check:before{color:var(--accent);font-weight:700}.app.lesson-hidden .lesson-pane,.app.lesson-hidden .resizer{display:none}.app.lesson-hidden .workbench{flex:auto!important}.app.workbench-hidden .resizer,.app.workbench-hidden .workbench{display:none}.app.workbench-hidden .lesson-pane{min-width:0;flex:auto!important}.ic{vertical-align:-.15em;flex-shrink:0;width:1em;height:1em;display:inline-block}.btn,.ic-slot{align-items:center;display:inline-flex}.btn{justify-content:center;gap:6px;padding:5px 16px}.btn-small{padding:3px 12px}.btn .ic{vertical-align:middle;width:15px;height:15px}.btn-icon{padding:8px}.btn-icon .ic{width:17px;height:17px}.brand-mark{align-items:center;display:inline-flex}.brand-mark svg{display:block}.ptab{align-items:center;gap:7px;padding:12px 16px;display:inline-flex}.ptab .ic{width:15px;height:15px}.panel-tabs{padding:0 10px}.section-emoji{align-items:center;display:inline-flex}.section-emoji .ic{width:20px;height:20px;color:var(--muted);vertical-align:middle}.section-locked .section-emoji .ic{color:var(--muted-2)}.app.sidebar-rail .section-emoji .ic{width:22px;height:22px;color:var(--accent)}.task-badge{align-items:center;gap:7px;display:inline-flex}.task-badge .ic{width:15px;height:15px}.ac-chip{align-items:center;gap:6px;display:inline-flex}.ac-chip .ic{width:14px;height:14px}.ac-maplink{align-items:center;gap:4px;display:inline-flex}.ac-maplink .ic{width:15px;height:15px}.res-head{align-items:center;gap:8px;display:inline-flex}.res-head .ic{width:16px;height:16px;color:var(--accent-strong)}.map-title .ic{width:17px;height:17px;color:var(--accent-strong);vertical-align:-.2em}.tag-icon{align-items:center;gap:5px;display:inline-flex}.tag-icon .ic{width:12px;height:12px}.play-tag{align-items:center;gap:6px;display:inline-flex}.play-tag .ic{width:13px;height:13px}.hint summary{align-items:center;gap:8px;display:flex}.hint summary .ic{width:15px;height:15px}.test-summary .ic{width:17px;height:17px}.test-row .t-icon .ic{width:15px;height:15px}.confetti-line{align-items:center;gap:7px;display:flex}.confetti-line .ic{width:16px;height:16px}.map-node-status .ic{width:13px;height:13px}#lesson-title .ic{vertical-align:-.05em;width:.8em;height:.8em;color:var(--muted)}.topbar-right{gap:14px}.lesson-scroll{padding:32px 42px 90px}#lesson-title{margin:0 0 14px}.lesson-tags{gap:8px;margin-bottom:24px}.lesson-item{margin:3px 5px;padding:9px 10px 9px 12px}.task-card{margin-bottom:28px;padding:16px 18px}.app-context{margin-bottom:22px;padding:15px 18px}.prose p{line-height:1.72}.prose h2{margin-top:34px;padding-bottom:8px}.res-item{padding:11px 14px}.res-list{gap:8px}.hint{margin:9px 0}.hint summary{padding:11px 15px}.hint .hint-body{padding:12px 15px 14px}.editor-toolbar{padding:9px 14px}.toolbar-actions{gap:8px}.fn-card-body{padding:14px 16px}.fn-card-head{padding:11px 15px}@media (max-width:1080px){.workspace{flex-direction:column}.lesson-pane,.workbench{flex:none;width:100%;min-width:0}.lesson-pane{height:42%}.workbench{border-left:none;border-top:1px solid var(--border);height:58%}.resizer{display:none}.editor-toolbar{flex-wrap:wrap;row-gap:6px}.file-tab{min-width:0}.toolbar-actions{flex-wrap:wrap;min-width:0}.panel-tabs{scrollbar-width:none;overflow:auto hidden}.panel-tabs::-webkit-scrollbar{display:none}.ptab,.ptab-toggle{white-space:nowrap;flex:none}}@media (max-width:720px){.brand-sub,.sidebar{display:none}}.exercises{margin-top:34px}.ex-head-row{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;padding-top:20px;display:flex}.ex-h2{font:600 21px var(--display);letter-spacing:-.02em;align-items:center;gap:9px;margin:0;display:inline-flex}.ex-h2 .ic{width:20px;height:20px;color:var(--accent)}.ex-progress{color:var(--muted);font-size:12px;font-family:var(--mono)}.ex-intro{color:var(--muted);margin:6px 0 18px;font-size:13.5px}.exercise-card{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel);margin-bottom:18px;padding:16px 18px;transition:border-color .15s}.exercise-card.solved{border-color:var(--green)}.ex-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.ex-name{font-size:15px;font-weight:700}.ex-solved-mark{color:var(--border-2);margin-left:auto;display:inline-flex}.ex-solved-mark .ic{width:20px;height:20px}.exercise-card.solved .ex-solved-mark{color:var(--green)}.ex-level{text-transform:uppercase;letter-spacing:.6px;border-radius:99px;padding:3px 9px;font-size:10px;font-weight:700}.lvl-warmup{background:var(--green)}@supports (color:color-mix(in lab,red,red)){.lvl-warmup{background:color-mix(in srgb,var(--green) 15%,transparent)}}.lvl-warmup{color:var(--green)}.lvl-drill{background:var(--accent-soft);color:var(--accent-strong)}.lvl-build{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.lvl-build{background:color-mix(in srgb,var(--accent) 16%,transparent)}}.lvl-build{color:var(--accent-strong)}.lvl-boss{background:var(--amber)}@supports (color:color-mix(in lab,red,red)){.lvl-boss{background:color-mix(in srgb,var(--amber) 18%,transparent)}}.lvl-boss{color:var(--amber)}.lvl-capstone{background:var(--lilac)}@supports (color:color-mix(in lab,red,red)){.lvl-capstone{background:color-mix(in srgb,var(--lilac) 18%,transparent)}}.lvl-capstone{color:var(--lilac)}.ex-prompt{font-size:14px}.ex-prompt p{margin:0 0 8px}.ex-prompt code{font-family:var(--mono);background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:.88em}.ex-prompt ul{margin:6px 0;padding-left:20px}.ex-skills{flex-wrap:wrap;gap:6px;margin:4px 0 12px;display:flex}.ex-skill{font-size:10.5px;font-family:var(--mono);background:var(--bg-2);border:1px solid var(--border);color:var(--muted);border-radius:99px;padding:2px 8px}.ex-editor{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--editor-bg);overflow:hidden}.ex-editor .CodeMirror{height:auto;font-family:var(--mono);font-size:13px}.ex-editor .CodeMirror-scroll{min-height:90px}.ex-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.ex-console{border-radius:var(--radius-sm);background:var(--code-bg);border:1px solid var(--border);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--code-text);margin:12px 0 0;padding:11px 14px;font-size:12.5px}.ex-console.err{color:var(--red)}.ex-result{margin-top:12px}.ex-result:empty{margin-top:0}.ex-hints{flex-direction:column;gap:6px;margin-top:10px;display:flex}.ex-hint-line{border-radius:var(--radius-sm);background:var(--amber);padding:9px 12px;font-size:13px}@supports (color:color-mix(in lab,red,red)){.ex-hint-line{background:color-mix(in srgb,var(--amber) 8%,transparent)}}.ex-hint-line{border-left:3px solid var(--amber)}.ex-hint-line .ic{width:14px;height:14px;color:var(--amber);vertical-align:-2px}.ex-hint-line code{font-family:var(--mono);background:var(--panel-2);border-radius:4px;padding:1px 5px;font-size:.88em}.ex-walk{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2);margin-top:12px;padding:12px 15px;font-size:13.5px}.ex-walk-title{color:var(--accent-strong);align-items:center;gap:7px;margin-bottom:6px;font-weight:700;display:inline-flex}.ex-walk-title .ic{width:16px;height:16px}.ex-walk p{margin:0 0 8px}.ex-walk code{font-family:var(--mono);background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:.88em}.ex-walk pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;overflow-x:auto}.ex-walk pre code{background:0 0;border:none;padding:0}.theory-done{border-top:1px solid var(--border);margin:28px 0 8px;padding-top:20px}.theory-done-banner{color:var(--green);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.theory-done-banner .ic{width:18px;height:18px}.mx-row.ready .mx-name{color:var(--text)}.mx-ready{color:var(--accent);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;padding:0 5px;font-size:9.5px}.mx-blocked{color:var(--muted);margin:0 0 6px;font-size:12px;line-height:1.5}.mx-blocked strong{color:var(--text);font-weight:600}.mx-blocked em{color:var(--accent);font-style:normal}.rw-main{background:var(--bg);height:calc(100vh - 58px);overflow:hidden}.rw{height:100%}.rw,.rw-body{min-height:0;display:flex}.rw-body{flex-direction:column;flex:1;min-width:0}.rw-unavailable{color:var(--muted);padding:24px;font-size:14px}.rw-blank{flex-direction:column}.rw-head{flex:none;padding:18px 22px 0}.rw-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.rw-head-text{flex:320px;min-width:0}.rw-back{color:var(--accent);align-items:center;gap:6px;font-size:13px;text-decoration:none;display:inline-flex}.rw-back:hover{text-decoration:underline}.rw-title{font:600 30px var(--display);letter-spacing:-.025em;color:var(--text);align-items:center;gap:10px;margin:6px 0 0;line-height:1.15;display:flex}.rw-title-emoji{font-size:24px}.rw-sub{color:var(--muted);margin:6px 0 0;font-size:15px}.rw-head-actions{flex:none;align-items:stretch;gap:12px;display:flex}.rw-stat{border:1px solid var(--border);background:var(--panel);border-radius:12px;align-items:center;gap:10px;padding:8px 14px 8px 10px;display:flex}.rw-ring{flex:none;width:44px;height:44px;transform:rotate(-90deg)}.rw-ring-track{fill:none;stroke:var(--border-2);stroke-width:4px}.rw-ring-fill{fill:none;stroke:var(--accent);stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset .5s cubic-bezier(.2,.8,.2,1)}.rw-stat-text{flex-direction:column;line-height:1.25;display:flex}.rw-stat-text strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:14px;font-weight:650}.rw-stat-text small{color:var(--muted);font-size:11.5px}.rw-continue{background:var(--btn-primary);color:var(--btn-primary-fg);box-shadow:var(--btn-primary-shadow);border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;gap:2px;padding:8px 18px;text-decoration:none;transition:background .12s;display:flex}.rw-continue:hover{background:var(--btn-primary-hover);text-decoration:none}.rw-continue strong{font:600 14px var(--display);align-items:center;gap:6px;display:inline-flex}.rw-continue strong .ic{width:15px;height:15px}.rw-continue small{opacity:.85;font-size:11.5px}.rw-continue.done{background:var(--panel);color:var(--muted);border-color:var(--border);box-shadow:none}.rw-continue.done strong{color:var(--accent)}.rw-chip-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding-bottom:12px;display:flex}.rw-chips{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.rw-chips::-webkit-scrollbar{display:none}.rw-chip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--panel);color:var(--muted);font:500 13px var(--sans);cursor:pointer;flex:none;align-items:center;gap:8px;padding:7px 14px;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.rw-chip:hover{color:var(--text);border-color:var(--outline-border)}.rw-chip.on{color:var(--text);border-color:var(--chip);background:var(--chip)}@supports (color:color-mix(in lab,red,red)){.rw-chip.on{background:color-mix(in srgb,var(--chip) 10%,transparent)}}.rw-chip i{background:var(--chip);border-radius:50%;flex:none;width:9px;height:9px}.rw-switch{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:9px;font-size:13px;display:inline-flex}.rw-switch input{opacity:0;width:0;height:0;position:absolute}.rw-switch-track{background:var(--border-2);border-radius:99px;width:34px;height:20px;transition:background .15s;position:relative}.rw-switch-track:after{content:"";background:var(--bg);width:16px;height:16px;box-shadow:var(--shadow);border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.rw-switch input:checked+.rw-switch-track{background:var(--accent)}.rw-switch input:checked+.rw-switch-track:after{transform:translate(14px)}.rw-switch input:focus-visible+.rw-switch-track{outline:2px solid var(--accent);outline-offset:2px}.c0{--chip:#2bb8dd}.c1{--chip:#f0b84a}.c2{--chip:#f0845c}.c3{--chip:#ef7aa0}.c4{--chip:#c084fc}.c5{--chip:#60a5fa}.c6{--chip:#7ee0c8}.c7{--chip:#e0b087}.c8{--chip:#6fd0e8}.c9{--chip:#9ee0a8}.c10{--chip:#d79ae0}.c11{--chip:#9aa7c7}.rw-canvas{flex:1;min-height:0;position:relative}.rw-viewport{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.rw-viewport.panning,.rw-viewport.panning .rw-node{cursor:grabbing}.rw-svg{width:100%;height:100%;display:block}.rw-camera{transform-origin:0 0;will-change:transform}.rw-camera.smooth{transition:transform .35s cubic-bezier(.2,.8,.2,1)}.rw-lane{fill:var(--text)}@supports (color:color-mix(in lab,red,red)){.rw-lane{fill:color-mix(in srgb,var(--text) 3%,transparent)}}.rw-band.t-advanced .rw-lane{fill:var(--text)}@supports (color:color-mix(in lab,red,red)){.rw-band.t-advanced .rw-lane{fill:color-mix(in srgb,var(--text) 5%,transparent)}}.rw-band.t-expert .rw-lane{fill:var(--text)}@supports (color:color-mix(in lab,red,red)){.rw-band.t-expert .rw-lane{fill:color-mix(in srgb,var(--text) 7%,transparent)}}.rw-lane-title{fill:var(--muted);font-family:var(--sans);text-transform:uppercase;letter-spacing:1.2px;font-size:12.5px;font-weight:700}.rw-band.t-beginner .rw-lane-title{fill:var(--accent)}.rw-lane-count{letter-spacing:.2px;text-transform:none;fill:var(--muted-2);font-size:11px;font-weight:500}.rw-lane-blurb{fill:var(--muted);font-family:var(--sans);font-size:12.5px}.rw-edge{fill:none;stroke:var(--border-2);stroke-width:1.4px;transition:stroke-opacity .15s}.rw-edge.done{stroke:var(--accent);stroke-opacity:.75}.rw-edge.lit{stroke:var(--accent);stroke-opacity:1;stroke-width:2px}.rw-edge.dim{stroke-opacity:.12}.rw-edge.hidden{display:none}.rw-arrow{fill:var(--border-2)}.rw-arrow.done{fill:var(--accent);fill-opacity:.8}.rw-arrow.lit{fill:var(--accent)}.rw-node{cursor:pointer;outline:none;transition:opacity .15s}.rw-card{fill:var(--panel);stroke:var(--border-2);stroke-width:1px;transition:stroke .12s,fill .12s}.rw-label{fill:var(--text);font-family:var(--sans);pointer-events:none;font-size:12.5px;font-weight:500}.rw-node:focus-visible .rw-card,.rw-node:hover .rw-card{stroke:var(--muted-2)}.rw-node.sel .rw-card{stroke:var(--accent);stroke-width:1.6px;fill:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rw-node.sel .rw-card{fill:color-mix(in srgb,var(--accent) 8%,var(--panel))}}.rw-node.sel .rw-label{font-weight:650}.rw-node:focus-visible .rw-card{stroke:var(--accent);stroke-width:2px}.rw-node.st-complete .rw-card{stroke:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rw-node.st-complete .rw-card{stroke:color-mix(in srgb,var(--accent) 55%,var(--border-2))}}.rw-node.st-locked .rw-label{fill:var(--muted)}.rw-node.st-unbuilt .rw-card{stroke-dasharray:3 3}.rw-node.st-unbuilt .rw-label{fill:var(--muted-2)}.rw-node.dim{opacity:.28}.rw-node.off{opacity:.14}.rw-node.in-filter .rw-card{stroke:var(--chip)}.path-mode .rw-node.dim{opacity:.12}.rw-glyph-complete circle{fill:var(--accent)}.rw-glyph-complete path{fill:none;stroke:var(--btn-primary-fg);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.rw-glyph-progress circle{fill:none;stroke:var(--accent);stroke-width:1.6px}.rw-glyph-progress path{fill:var(--accent)}.rw-glyph-available circle{fill:none;stroke:var(--muted-2);stroke-width:1.6px}.rw-glyph-locked rect{fill:var(--muted-2)}.rw-glyph-locked path{fill:none;stroke:var(--muted-2);stroke-width:1.8px;stroke-linecap:round}.rw-glyph-unbuilt circle{fill:none;stroke:var(--muted-2);stroke-width:1.4px;stroke-dasharray:2.5 2.5}.rw-tools{z-index:3;gap:10px;display:flex;position:absolute;bottom:16px;left:18px}.rw-zoom{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-card);border-radius:10px;display:flex;overflow:hidden}.rw-zoom button{width:40px;height:38px;color:var(--text);font:500 20px var(--sans);cursor:pointer;background:0 0;border:none;line-height:1}.rw-zoom button+button,.rw-zoom-pct{border-left:1px solid var(--border)}.rw-zoom-pct{min-width:48px;font:500 12px var(--sans);color:var(--muted);font-variant-numeric:tabular-nums;place-items:center;display:grid}.rw-zoom-pct+button{border-left:1px solid var(--border)}.rw-fit:hover,.rw-zoom button:hover{background:var(--panel-2)}.rw-fit{border:1px solid var(--border);background:var(--panel);height:40px;color:var(--text);font:500 13px var(--sans);cursor:pointer;box-shadow:var(--shadow-card);border-radius:10px;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.rw-fit svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.rw-minimap{z-index:3;border:1px solid var(--border);background:var(--panel);border-radius:12px;padding:6px;position:absolute;bottom:16px;right:18px}@supports (color:color-mix(in lab,red,red)){.rw-minimap{background:color-mix(in srgb,var(--panel) 92%,transparent)}}.rw-minimap{box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.rw-minimap svg{cursor:crosshair;display:block}.rw-mini-lane{fill:var(--text)}@supports (color:color-mix(in lab,red,red)){.rw-mini-lane{fill:color-mix(in srgb,var(--text) 5%,transparent)}}.rw-mini-node{fill:var(--border-2)}.rw-mini-node.st-complete,.rw-mini-node.st-in-progress{fill:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rw-mini-node.st-in-progress{fill:color-mix(in srgb,var(--accent) 55%,var(--border-2))}}.rw-mini-node.sel{fill:var(--accent-strong)}.rw-mini-view{fill:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rw-mini-view{fill:color-mix(in srgb,var(--accent) 10%,transparent)}}.rw-mini-view{stroke:var(--accent);stroke-width:6px}.rw-panel{border-left:1px solid var(--border);background:var(--bg-2);flex:none;width:336px;padding:18px 18px 28px;overflow-y:auto}.rw-panel-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.rw-panel-kicker{color:var(--muted);font-size:12.5px;font-weight:600}.rw-panel-nav{gap:6px;display:flex}.rw-panel-nav button{border:1px solid var(--border);background:var(--panel);width:32px;height:30px;color:var(--muted);cursor:pointer;border-radius:7px;place-items:center;display:grid}.rw-panel-nav button:hover:not(:disabled){color:var(--text);border-color:var(--border-2)}.rw-panel-nav button:disabled{opacity:.4;cursor:default}.rw-panel-nav button:first-child .ic{transform:rotate(180deg)}.rw-panel-nav .ic{width:15px;height:15px}.rw-concept{flex-direction:column;gap:14px;display:flex}.rw-concept-top{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel);align-items:flex-start;gap:12px;padding:14px;display:flex}.rw-concept-icon{background:var(--accent-soft);width:46px;height:46px;color:var(--accent);border:1px solid #0000;border-radius:12px;flex:none;place-items:center;display:grid}.rw-concept-icon .ic{width:22px;height:22px}.rw-concept-titles{min-width:0}.rw-concept-titles h2{font:600 17px var(--display);letter-spacing:-.02em;color:var(--text);margin:0;line-height:1.25}.rw-status{border:1px solid var(--border-2);color:var(--muted);border-radius:99px;align-items:center;gap:6px;margin-top:6px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.rw-status i{background:currentColor;border-radius:50%;width:7px;height:7px}.rw-status.st-available,.rw-status.st-complete,.rw-status.st-in-progress{color:var(--accent);border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rw-status.st-available,.rw-status.st-complete,.rw-status.st-in-progress{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}}.rw-status.st-available,.rw-status.st-complete,.rw-status.st-in-progress{background:var(--accent-soft)}.rw-status.st-unbuilt{border-style:dashed}.rw-meta-row{flex-wrap:wrap;gap:14px;display:flex}.rw-meta{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.rw-meta .ic{width:15px;height:15px}.rw-blurb{color:var(--muted);margin:0;font-size:13.5px;line-height:1.6}.rw-section-head{justify-content:space-between;align-items:center;display:flex}.rw-section-head h3,.rw-taught h3,.rw-why h3{color:var(--text);margin:0;font-size:13.5px;font-weight:650}.rw-count-pill{color:var(--muted);border:1px solid var(--border);background:var(--panel);border-radius:99px;padding:1px 8px;font-size:11px}.rw-prereqs{flex-wrap:wrap;gap:8px;margin:-6px 0 0;padding:0;list-style:none;display:flex}.rw-prereq{border:1px solid var(--border-2);background:var(--panel);color:var(--muted);font:500 12.5px var(--sans);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:5px 11px 5px 7px;display:inline-flex}.rw-prereq:hover{color:var(--text);border-color:var(--muted-2)}.rw-prereq.done{color:var(--text);border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rw-prereq.done{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}}.rw-prereq.external{cursor:default}.rw-prereq small{color:var(--muted-2);text-transform:uppercase;letter-spacing:.4px;font-size:10px}.rw-none{color:var(--muted-2);margin:-6px 0 0;font-size:12.5px}.rw-mark{border:1.5px solid var(--muted-2);width:16px;height:16px;color:var(--btn-primary-fg);border-radius:50%;flex:none;place-items:center;display:grid}.rw-mark i{display:none}.rw-mark .ic{width:10px;height:10px}.rw-mark.st-complete{background:var(--accent);border-color:var(--accent)}.rw-mark.st-complete .ic{stroke-width:3px}.rw-mark.st-in-progress{border-color:var(--accent);background:linear-gradient(90deg,transparent 50%,var(--accent) 50%)}.rw-mark.st-locked{color:var(--muted-2);border:none}.rw-mark.st-locked .ic{width:13px;height:13px}.rw-mark.st-unbuilt{border-style:dashed}.btn.rw-primary{border-radius:var(--radius-pill);justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:14.5px;font-weight:600;display:flex}.btn.rw-primary,.btn.rw-primary:hover{text-decoration:none}.rw-primary .ic{width:16px;height:16px}.rw-actions{flex-direction:column;gap:8px;display:flex}.rw-secondary{border-radius:var(--radius-pill);border:1.5px solid var(--outline-border);background:0 0;justify-content:center;align-items:center;gap:8px;padding:9px 14px;font-size:13.5px;display:flex}.rw-secondary:hover{background:var(--bg-2);border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rw-secondary:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--outline-border))}}.rw-secondary .ic{width:15px;height:15px}.rw-secondary.on{color:var(--accent);border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rw-secondary.on{border-color:color-mix(in srgb,var(--accent) 50%,var(--border-2))}}.rw-secondary.on{background:var(--accent-soft)}.rw-why{border-top:1px solid var(--border);padding-top:14px}.rw-why h3{align-items:center;gap:8px;display:flex}.rw-why h3 .ic{width:16px;height:16px;color:var(--accent)}.rw-why p{color:var(--muted);margin:8px 0 0;font-size:13.5px;line-height:1.6}.rw-nextup{border-top:1px solid var(--border);padding-top:14px}.rw-nextup ol{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.rw-nextup button{width:100%;color:var(--text);font:500 13px var(--sans);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;padding:7px 8px;display:flex}.rw-nextup button:hover{background:var(--panel-2)}.rw-nextup-num{border:1px solid var(--border-2);width:22px;height:22px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.rw-nextup-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.rw-taught{border-top:1px solid var(--border);padding-top:14px}.rw-taught ul{flex-direction:column;gap:5px;margin:8px 0 0;padding:0;list-style:none;display:flex}.rw-taught a{color:var(--text);font-size:13px}.rw-taught a:hover{color:var(--accent)}.rw-taught small{color:var(--muted-2);font-size:11.5px}.rw-empty{flex-direction:column;gap:18px;display:flex}.rw-empty-lead{color:var(--muted);margin:0;font-size:13.5px;line-height:1.6}.rw-suggest{flex-direction:column;gap:8px;display:flex}.rw-suggest-btn{border:1px solid var(--border-2);background:var(--panel);width:100%;color:var(--text);font:600 13.5px var(--sans);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:10px;padding:11px 12px;display:flex}.rw-suggest-btn:hover{border-color:var(--accent)}.rw-suggest-label{flex:1}.rw-suggest-btn .ic{width:15px;height:15px;color:var(--muted)}.rw-legend{border-top:1px solid var(--border);flex-direction:column;gap:12px;margin:0;padding:14px 0 0;list-style:none;display:flex}.rw-legend li{align-items:flex-start;gap:10px;display:flex}.rw-legend .rw-mark{margin-top:2px}.rw-legend-text{grid-template-columns:1fr auto;column-gap:8px;display:grid}.rw-legend-text strong{color:var(--text);font-size:13px;font-weight:650}.rw-legend-text em{color:var(--muted-2);font-variant-numeric:tabular-nums;font-size:12px;font-style:normal}.rw-legend-text small{color:var(--muted);grid-column:1/-1;font-size:12px;line-height:1.5}.rw-index-bar{background:var(--panel-2);border:1px solid var(--border);border-radius:99px;height:6px;overflow:hidden}.rw-index-bar i{background:var(--grad-brand);height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1);display:block}@media (max-width:1100px){.rw-panel{width:300px}}@media (max-width:900px){.rw{flex-direction:column}.rw-head{padding:14px 16px 0}.rw-title{font-size:24px}.rw-head-actions{width:100%}.rw-continue{flex:1}.rw-minimap,.rw-panel{display:none}.rw-panel.open{border-left:none;border-top:1px solid var(--border);border-radius:var(--radius-card) var(--radius-card) 0 0;z-index:30;width:auto;max-height:62vh;display:block;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #0b174938}}@media (max-width:560px){.rw-head-row{gap:12px}.rw-head-actions{flex-wrap:wrap}.rw-continue,.rw-stat{flex:100%;min-width:0}.rw-chip-row{flex-direction:column;align-items:stretch;gap:10px}.rw-tools{bottom:12px;left:12px}}.rw-jumps{scrollbar-width:thin;-webkit-overflow-scrolling:touch;gap:6px;padding:0 0 2px;display:flex;overflow-x:auto}.rw-jump{border:1px solid var(--border-2);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;transition:color .12s,border-color .12s;display:inline-flex}.rw-jump:focus-visible,.rw-jump:hover{color:var(--text);border-color:var(--muted-2)}.rw-jump i{color:var(--muted-2);font-size:11px;font-style:normal;font-weight:500}.rw-band.alt .rw-lane{fill:var(--text)}@supports (color:color-mix(in lab,red,red)){.rw-band.alt .rw-lane{fill:color-mix(in srgb,var(--text) 6%,transparent)}}.rw-tier circle{fill:var(--muted-2);opacity:.22}.rw-tier circle.on{opacity:.8}.rw-node.dim .rw-tier,.rw-node.off .rw-tier{opacity:.5}.ui-label{font:600 9.5px var(--display);text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2)}.ui-desc{color:var(--muted);margin:0 0 8px;font-size:12.5px;line-height:1.55}.ui-desc strong{color:var(--text);font-weight:600}.ui-note{color:var(--muted-2);margin:0;font-size:11.5px;line-height:1.5}.ui-divider{border:none;border-top:1px solid var(--border);margin:12px 0}.ui-divider-labelled{text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);align-items:center;gap:8px;margin:14px 0 8px;font-size:9.5px;font-weight:600;display:flex}.ui-divider-labelled:after{content:"";border-top:1px solid var(--border);flex:1}.pw-wrap{display:block;position:relative}.pw-input{padding-right:40px!important}.pw-toggle{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--muted-2);cursor:pointer;background:0 0;border:none;place-items:center;padding:0;transition:color .12s,background .12s;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-toggle:hover:not(:disabled){color:var(--text);background:var(--panel-2)}.pw-toggle[aria-pressed=true]{color:var(--accent)}.pw-toggle:disabled{opacity:.4;cursor:not-allowed}.pw-toggle .ic{width:16px;height:16px}.pw-input::-ms-clear,.pw-input::-ms-reveal{display:none}.pw-input::-webkit-credentials-auto-fill-button{margin-right:26px}.erd-main{background:var(--bg);height:calc(100vh - 58px);overflow:hidden}.erd,.erd-empty{height:100%;display:flex}.erd-empty{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px}.erd-canvas{background:var(--bg-2);flex:1;min-width:0;position:relative}.erd-svg{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.erd-svg:active{cursor:grabbing}.erd-tools{z-index:2;border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;top:12px;left:12px}.erd-tools button{min-width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 6px;font-size:14px}.erd-tools button:hover{background:var(--panel-2);color:var(--text)}.erd-tool-wide{font-size:12px!important}.erd-zoom{color:var(--muted-2);font-variant-numeric:tabular-nums;padding:0 6px;font-size:11px}.erd-table{cursor:pointer}.erd-box{fill:var(--panel);stroke:var(--border);stroke-width:1px}.erd-head{fill:var(--panel-2)}.erd-table.focused .erd-box{stroke:var(--accent);stroke-width:1.5px}.erd-table.dim{opacity:.26}.erd-schema{fill:var(--muted-2);font-size:10.5px}.erd-name,.erd-schema{font-family:var(--sans)}.erd-name{fill:var(--text);font-size:12px;font-weight:650}.erd-undocumented{fill:var(--amber);opacity:.8}.erd-flag{fill:var(--muted-2);font-size:9px;font-family:var(--sans)}.erd-col{fill:var(--muted);font-family:var(--mono,ui-monospace,monospace);font-size:11px}.erd-col.req{fill:var(--text)}.erd-col.documented{text-decoration:underline;-webkit-text-decoration-color:var(--accent-soft);text-decoration-color:var(--accent-soft);text-underline-offset:3px}.erd-type{fill:var(--muted-2);font-family:var(--mono,ui-monospace,monospace);font-size:10px}.erd-row rect{transition:fill .1s}.erd-row:hover rect{fill:var(--panel-2)!important}.erd-row.sel rect{fill:var(--accent-soft)!important}.erd-table .erd-tint{height:2px}.erd-table.h0 .erd-head{fill:#6ea8fe}@supports (color:color-mix(in lab,red,red)){.erd-table.h0 .erd-head{fill:color-mix(in srgb,#6ea8fe 16%,var(--panel-2))}}.erd-table.h0 .erd-tint{fill:#6ea8fe}.erd-table.h1 .erd-head{fill:#7ee0c8}@supports (color:color-mix(in lab,red,red)){.erd-table.h1 .erd-head{fill:color-mix(in srgb,#7ee0c8 20%,var(--panel-2))}}.erd-table.h1 .erd-tint{fill:#4fb89c}.erd-table.h2 .erd-head{fill:#e8c07a}@supports (color:color-mix(in lab,red,red)){.erd-table.h2 .erd-head{fill:color-mix(in srgb,#e8c07a 22%,var(--panel-2))}}.erd-table.h2 .erd-tint{fill:#d1a45c}.erd-edge{fill:none;stroke:var(--muted-2);stroke-width:1.15px;stroke-opacity:.5}.erd-edge.self{stroke-dasharray:3 3}.erd-edge.lit{stroke:var(--accent);stroke-width:1.9px;stroke-opacity:.95}.erd-edge.dim{stroke-opacity:.12}.erd-side{border-left:1px solid var(--border);background:var(--panel);flex-direction:column;flex:0 0 392px;width:392px;min-height:0;display:flex}.erd-side-bar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;display:flex}.erd-live{color:var(--muted-2);font-size:11px}.erd-live:before{content:"";background:var(--green);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.erd-panel{flex-direction:column;flex:1;min-height:0;display:flex}.erd-panel-head{border-bottom:1px solid var(--border);padding:16px 16px 12px}.erd-panel-kicker{letter-spacing:1px;text-transform:uppercase;color:var(--muted-2);margin:0;font-size:10.5px;font-weight:600}.erd-panel-title{color:var(--text);margin:2px 0 0;font-size:17px;font-weight:650}.erd-panel-meta{color:var(--muted);margin:4px 0 0;font-size:12px}.erd-panel-body{flex:1;padding:14px 16px 40px;overflow-y:auto}.erd-section{margin-bottom:20px}.erd-h3{color:var(--text);justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 7px;font-size:12px;font-weight:650;display:flex}.erd-count{color:var(--muted-2);font-size:11px;font-weight:500}.erd-note{color:var(--muted);margin:6px 0 0;font-size:11.5px;line-height:1.5}.erd-note code{font-size:11px}.erd-textarea{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:7px;padding:8px 10px;font-size:12.5px;line-height:1.5}.erd-textarea:focus{border-color:var(--accent);outline:none}.erd-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.erd-btn{background:var(--btn-primary);color:var(--btn-primary-fg);cursor:pointer;border:1px solid #0000;border-radius:7px;padding:5px 11px;font-size:12px;font-weight:550}.erd-btn:hover:not(:disabled){background:var(--btn-primary-hover)}.erd-btn:disabled{opacity:.45;cursor:not-allowed}.erd-btn.ghost{border-color:var(--border);color:var(--muted);background:0 0}.erd-btn.ghost:hover{background:var(--panel-2);color:var(--text)}.erd-ok{color:var(--green);font-size:11.5px}.erd-err{color:var(--red);font-size:11.5px}.erd-facts{gap:5px;margin:0 0 18px;display:grid}.erd-facts>div{gap:8px;font-size:12px;display:flex}.erd-facts dt{width:88px;color:var(--muted-2);flex:0 0 88px}.erd-facts dd{color:var(--text);margin:0}.erd-columns{margin:0;padding:0;list-style:none}.erd-column{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;padding:5px 8px;display:flex}.erd-column:hover{background:var(--panel-2)}.erd-column.sel{background:var(--accent-soft)}.erd-column-name{min-width:0;color:var(--text);font-size:12px;font-family:var(--mono,ui-monospace,monospace);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.erd-badge{letter-spacing:.3px;background:var(--accent-soft);color:var(--accent);border-radius:3px;margin-right:6px;padding:0 4px;font-size:9px;font-style:normal;font-weight:700}.erd-column-type{color:var(--muted-2);font-size:10.5px}.erd-dot{background:var(--border-2);border-radius:50%;flex:0 0 6px;width:6px;height:6px}.erd-dot.on{background:var(--green)}.erd-column-desc{color:var(--muted);margin:-1px 0 6px;padding:0 8px 0 16px;font-size:11.5px;line-height:1.45}.erd-fks{gap:4px;margin:0;padding:0;list-style:none;display:grid}.erd-fk{cursor:pointer;width:100%;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:11.5px;display:flex}.erd-fk:hover{background:var(--panel-2)}.erd-fk code{color:var(--text);font-size:11px}.erd-fk em{color:var(--muted-2);margin-left:auto;font-size:10px;font-style:normal}.erd-meter{background:var(--panel-2);border-radius:3px;height:6px;overflow:hidden}.erd-meter span{background:var(--accent);height:100%;display:block}.erd-form{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.erd-form label{color:var(--muted-2);flex-direction:column;gap:3px;font-size:11px;display:flex}.erd-form .erd-wide{grid-column:1/-1}.erd-form input,.erd-form select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:5px 8px;font-size:12px}.erd-form input:focus,.erd-form select:focus{border-color:var(--accent);outline:none}.erd-check{align-self:end;align-items:center;padding-bottom:6px;flex-direction:row!important;gap:6px!important}.erd-migration{margin-top:14px}.erd-filename{color:var(--muted);font-size:11px}.erd-code{background:var(--code-bg);color:var(--code-text);font-family:var(--mono,ui-monospace,monospace);white-space:pre;border-radius:8px;margin:8px 0 0;padding:10px 12px;font-size:11px;line-height:1.55;overflow-x:auto}.erd-steps{color:var(--muted);gap:4px;margin:12px 0 0;padding-left:18px;font-size:11.5px;line-height:1.5;display:grid}@media (max-width:900px){.erd{flex-direction:column}.erd-side{border-left:0;border-top:1px solid var(--border);flex:none;width:100%;max-height:46%}}.erd-schemas{gap:2px;margin:0 0 6px;padding:0;list-style:none;display:grid}.erd-schemas li{color:var(--muted-2);border-radius:5px;align-items:baseline;gap:8px;padding:3px 8px;font-size:11.5px;display:flex}.erd-schemas li.owned{background:var(--accent-soft)}.erd-schemas code{color:var(--text);flex:1;font-size:11.5px}.erd-schemas li.owned code{color:var(--accent);font-weight:600}.erd-schemas em{color:var(--accent);font-size:10px;font-style:normal}.erd-enums{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.erd-enums li{border:1px solid var(--border);background:var(--bg);border-radius:7px;padding:7px 9px}.erd-enum-name{color:var(--text);font-size:11px;font-weight:600;display:block}.erd-enum-values{flex-wrap:wrap;gap:4px;margin:5px 0 4px;display:flex}.erd-enum-values em{background:var(--panel-2);color:var(--muted);font-size:10.5px;font-style:normal;font-family:var(--mono,ui-monospace,monospace);border-radius:4px;padding:1px 6px}.erd-enum-used{color:var(--muted-2);font-size:10px}.erd-subform{border:1px solid var(--border);border-radius:7px;margin:10px 0;padding:9px 10px}.erd-warn{background:var(--amber-soft);color:var(--amber);border-radius:6px;margin:8px 0 0;padding:7px 9px;font-size:11.5px;line-height:1.5}.erd-main-col{flex-direction:column;flex:1;min-width:0;display:flex}.erd-main-col .erd-canvas{flex:1;min-height:0}.erd-grid{border-top:1px solid var(--border);background:var(--panel);flex-direction:column;height:48%;min-height:0;display:flex}.erd-grid-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 12px;display:flex}.erd-grid-title{color:var(--text);margin:0;font-size:13px;font-weight:650}.erd-grid-schema{color:var(--muted-2);font-weight:400}.erd-grid-meta{color:var(--muted-2);margin:2px 0 0;font-size:11px}.erd-grid-tools{align-items:center;gap:6px;display:flex}.erd-grid-search{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;width:180px;padding:4px 8px;font-size:11.5px}.erd-grid-search:focus{border-color:var(--accent);outline:none}.erd-grid-error{color:var(--red);margin:0;padding:6px 12px;font-size:11.5px}.erd-grid-scroll{flex:1;min-height:0;overflow:auto}.erd-grid-empty{text-align:center;color:var(--muted-2);padding:20px;font-size:12px}.erd-table-data{border-collapse:collapse;width:100%;font-size:11.5px}.erd-table-data th{z-index:1;text-align:left;vertical-align:bottom;background:var(--panel-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:5px 9px;position:sticky;top:0}.erd-table-data th button{cursor:pointer;color:var(--text);font-size:11.5px;font-weight:650;font-family:var(--mono,ui-monospace,monospace);background:0 0;border:0;padding:0;display:block}.erd-table-data th em{color:var(--muted-2);font-size:9.5px;font-style:normal;font-weight:400;display:block}.erd-table-data td{border-bottom:1px solid var(--border);font-family:var(--mono,ui-monospace,monospace);text-overflow:ellipsis;white-space:nowrap;max-width:320px;padding:4px 9px;overflow:hidden}.erd-table-data tr:hover td{background:var(--panel-2)}.erd-null,.erd-table-data td.key{color:var(--muted-2)}.erd-null{opacity:.7;font-style:italic}.erd-bool{color:var(--accent)}.erd-json{color:var(--muted)}.erd-cell-input{border:1px solid var(--accent);background:var(--bg);width:100%;color:var(--text);font-family:var(--mono,ui-monospace,monospace);border-radius:4px;padding:2px 4px;font-size:11.5px}.erd-cell-input:focus{outline:none}.erd-grid-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;display:flex}.erd-grid-page{color:var(--muted-2);font-size:10.5px}.sketch{max-width:100%;height:auto;display:block;overflow:visible}.sketch-outline{fill:none;stroke:var(--sketch-stroke,var(--text));stroke-linecap:round;stroke-linejoin:round}.sketch-fill-sketch{fill:none;stroke:var(--sketch-fill,transparent);stroke-linecap:round}.sketch-fill-solid{fill:var(--sketch-fill,transparent);stroke:none}.sketch-shape[data-stroke=ink]{--sketch-stroke:var(--text)}.sketch-shape[data-stroke=muted]{--sketch-stroke:var(--muted)}.sketch-shape[data-stroke=faint]{--sketch-stroke:var(--muted-2)}.sketch-shape[data-stroke=line]{--sketch-stroke:var(--border-2)}.sketch-shape[data-stroke=accent]{--sketch-stroke:var(--accent)}.sketch-shape[data-stroke=accent-soft]{--sketch-stroke:var(--accent-soft)}.sketch-shape[data-stroke=red]{--sketch-stroke:var(--red)}.sketch-shape[data-stroke=amber]{--sketch-stroke:var(--amber)}.sketch-shape[data-stroke=panel]{--sketch-stroke:var(--panel)}.sketch-shape[data-stroke=none]{--sketch-stroke:transparent}.sketch-shape[data-fill=ink]{--sketch-fill:var(--text)}.sketch-shape[data-fill=muted]{--sketch-fill:var(--muted)}.sketch-shape[data-fill=faint]{--sketch-fill:var(--muted-2)}.sketch-shape[data-fill=line]{--sketch-fill:var(--border-2)}.sketch-shape[data-fill=accent]{--sketch-fill:var(--accent)}.sketch-shape[data-fill=accent-soft]{--sketch-fill:var(--accent-soft)}.sketch-shape[data-fill=red]{--sketch-fill:var(--red)}.sketch-shape[data-fill=amber]{--sketch-fill:var(--amber)}.sketch-shape[data-fill=panel]{--sketch-fill:var(--panel)}.sketch-shape[data-fill=none]{--sketch-fill:transparent}.sketch-hover:hover .sketch-shape,.sketch-node.is-active .sketch-shape,.sketch-shape.is-active{--sketch-stroke:var(--accent)}.sketch-hover{cursor:pointer}.sketch-node.is-dimmed .sketch-shape,.sketch-shape.is-dimmed{opacity:.45}.sketch-detail,.sketch-label{font-family:var(--sans);text-anchor:middle;dominant-baseline:central}.sketch-label{fill:var(--text);font-size:14px;font-weight:600}.sketch-detail{fill:var(--muted);font-size:11px;font-weight:500}.sketch-node.is-dimmed text{opacity:.55}.explore-box{border:1px solid var(--border);background:var(--code-bg);border-radius:8px;margin:14px 0;transition:border-color .15s;overflow:hidden}.explore-box:hover{border-color:var(--border-2)}.explore-box:hover .play-tag{color:var(--muted)}.explore-box.broken .play-tag{color:var(--red);text-transform:none}.explore-box .explore-ask{color:var(--text);margin:2px 12px 8px;font-size:13.5px;line-height:1.55}.explore-box .explore-ask code{font-family:var(--mono);font-size:.9em}.explore-legend{flex-wrap:wrap;gap:6px 14px;padding:0 12px 4px;display:flex}.explore-legend code{font-family:var(--mono);background:0 0;padding:0;font-size:12px}.explore-legend code:before{content:"";vertical-align:3px;background:currentColor;border-radius:2px;width:14px;height:3px;margin-right:6px;display:inline-block}.explore-plot{width:100%;height:auto;display:block}.explore-grid{stroke:var(--border);stroke-width:1px}.explore-axis{stroke:var(--muted-2);stroke-width:1.2px}.explore-tick{fill:var(--muted-2);font-family:var(--mono);font-size:10px}.explore-curve{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.explore-curve.c0,.explore-legend .c0{stroke:var(--accent);color:var(--accent)}.explore-curve.c1,.explore-legend .c1{stroke:var(--amber);color:var(--amber)}.explore-curve.c2,.explore-legend .c2{stroke:var(--red);color:var(--red)}.explore-sliders{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 18px;padding:10px 12px;display:grid}.explore-slider{align-items:center;gap:10px;display:flex}.explore-name{font-family:var(--mono);background:0 0;min-width:1.5em;padding:0;font-size:13px;font-weight:600}.explore-slider input[type=range]{min-width:0;accent-color:var(--accent);flex:1}.explore-value{font-family:var(--mono);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:3.5em;font-size:12px}.lvl-explain{background:var(--muted)}@supports (color:color-mix(in lab,red,red)){.lvl-explain{background:color-mix(in srgb,var(--muted) 16%,transparent)}}.lvl-explain{color:var(--muted)}.explain-input{box-sizing:border-box;resize:vertical;border:1px solid var(--border-2);border-radius:var(--radius-sm);background:var(--editor-bg);width:100%;min-height:110px;color:var(--text);font-family:var(--sans);padding:10px 12px;font-size:14px;line-height:1.55}.explain-input:focus{border-color:var(--accent);outline:none}.explain-compare{gap:12px;margin-top:12px;display:grid}.explain-rubric{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2);padding:12px 15px;font-size:13.5px}.explain-rubric .ex-walk-title{margin-bottom:8px}.explain-point{cursor:pointer;align-items:flex-start;gap:9px;padding:3px 0;display:flex}.explain-point input{accent-color:var(--accent);margin-top:4px}.explain-point code{font-family:var(--mono);font-size:.88em}.explain-note{color:var(--muted);margin:8px 0 0;font-size:12px}.math-display{margin:14px 0;padding:2px 0;overflow:auto hidden}.katex{color:var(--text);font-size:1.08em}.katex-error{font-family:var(--mono);font-size:.9em}.pebbles-hero{background-image:linear-gradient(90deg,#030f1bf5,#030f1bd4 30%,#030f1b47 61%,#030f1b1a),linear-gradient(#0000 64%,#030f1bcc),url(/images/pebbles-hero-v1.png);background-position:50%;background-size:cover}.pebbles-glass{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#071624bd;box-shadow:0 18px 50px #00000038}.path-card{background:linear-gradient(135deg,var(--accent),white 78%);min-height:126px}@supports (color:color-mix(in lab,red,red)){.path-card{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,white),white 78%)}}[data-theme=dark] .path-card{background:linear-gradient(135deg,var(--accent),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .path-card{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,var(--panel)),var(--panel) 78%)}}:root{--step-green:#16a34a;--step-blue:#2563eb;--step-violet:#7c3aed;--step-orange:#ea580c}[data-theme=dark]{--step-green:#4ade80;--step-blue:#60a5fa;--step-violet:#a78bfa;--step-orange:#fb923c}.step-card-green{background:linear-gradient(135deg,var(--step-green),white 75%)}@supports (color:color-mix(in lab,red,red)){.step-card-green{background:linear-gradient(135deg,color-mix(in srgb,var(--step-green) 10%,white),white 75%)}}.step-card-blue{background:linear-gradient(135deg,var(--step-blue),white 75%)}@supports (color:color-mix(in lab,red,red)){.step-card-blue{background:linear-gradient(135deg,color-mix(in srgb,var(--step-blue) 10%,white),white 75%)}}.step-card-violet{background:linear-gradient(135deg,var(--step-violet),white 75%)}@supports (color:color-mix(in lab,red,red)){.step-card-violet{background:linear-gradient(135deg,color-mix(in srgb,var(--step-violet) 10%,white),white 75%)}}.step-card-orange{background:linear-gradient(135deg,var(--step-orange),white 75%)}@supports (color:color-mix(in lab,red,red)){.step-card-orange{background:linear-gradient(135deg,color-mix(in srgb,var(--step-orange) 10%,white),white 75%)}}[data-theme=dark] .step-card-green{background:linear-gradient(135deg,var(--step-green),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .step-card-green{background:linear-gradient(135deg,color-mix(in srgb,var(--step-green) 18%,var(--panel)),var(--panel) 78%)}}[data-theme=dark] .step-card-blue{background:linear-gradient(135deg,var(--step-blue),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .step-card-blue{background:linear-gradient(135deg,color-mix(in srgb,var(--step-blue) 18%,var(--panel)),var(--panel) 78%)}}[data-theme=dark] .step-card-violet{background:linear-gradient(135deg,var(--step-violet),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .step-card-violet{background:linear-gradient(135deg,color-mix(in srgb,var(--step-violet) 18%,var(--panel)),var(--panel) 78%)}}[data-theme=dark] .step-card-orange{background:linear-gradient(135deg,var(--step-orange),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .step-card-orange{background:linear-gradient(135deg,color-mix(in srgb,var(--step-orange) 18%,var(--panel)),var(--panel) 78%)}}@media (max-width:640px){.pebbles-hero{background-position:61%}}.diagram-box{border:1px solid var(--border);background:var(--code-bg);border-radius:8px;margin:14px 0;transition:border-color .15s;overflow:hidden}.diagram-box:hover{border-color:var(--border-2)}.diagram-box.broken .play-tag{color:var(--red);text-transform:none}.diagram-box .sketch{margin:4px auto 0;padding:0 12px;display:block}.diagram-box .diagram-caption{border-top:1px solid var(--border);color:var(--text);margin:10px 12px 12px;padding-top:10px;font-size:13.5px;line-height:1.55}.diagram-box .diagram-caption code{font-family:var(--mono);font-size:.9em}:root{--viz-role-cursor:var(--accent);--viz-role-pointer:var(--accent);--viz-role-active:var(--accent-soft);--viz-role-compare:var(--amber);--viz-role-done:var(--muted);--viz-role-candidate:var(--muted);--viz-role-excluded:var(--muted-2);--viz-role-error:var(--red)}.viz-box{border:1px solid var(--border);background:var(--code-bg);border-radius:8px;margin:14px 0;transition:border-color .15s;overflow:hidden}.viz-box:hover{border-color:var(--border-2)}.viz-box.broken .play-tag{color:var(--red);text-transform:none}.viz-box .viz-caption{color:var(--text);margin:2px 12px 8px;font-size:13.5px;line-height:1.55}.viz-box .viz-caption code,.viz-box .viz-note code,.viz-box .viz-say code{font-family:var(--mono);font-size:.9em}.viz-traced .play-editor{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.viz-player{border-top:1px solid var(--border);outline:none}.viz-player:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.viz-stage{padding:6px 12px 0}.viz-svg{width:100%;max-width:640px;height:auto;margin:0 auto;display:block;overflow:visible}.viz-box .viz-say{min-height:1.55em;color:var(--text);margin:4px 12px 0;font-size:13.5px;line-height:1.55}.viz-box .viz-note{color:var(--muted-2);font-size:12px;line-height:1.5;font-family:var(--mono);margin:2px 12px 0}.viz-sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.viz-controls{margin-top:8px}.viz-count{text-align:right;min-width:44px;margin-left:4px}.viz-shape{fill:var(--panel);stroke:var(--border-2);stroke-width:1px;transition:fill .2s,stroke .2s,opacity .2s}.viz-bar{fill:var(--muted-2);stroke:none;opacity:.55}.viz-heat{fill:var(--accent);pointer-events:none}.viz-text{fill:var(--text);pointer-events:none;font-size:13px}.viz-index,.viz-sublabel,.viz-text{font-family:var(--mono);text-anchor:middle;dominant-baseline:central}.viz-index,.viz-sublabel{fill:var(--muted-2);font-size:10px}.viz-sublabel{fill:var(--muted)}.viz-right,.viz-row-label{text-anchor:end}.viz-left{text-anchor:start}.viz-el{transition:transform .3s,opacity .25s}.viz-changed .viz-text{font-weight:700}.viz-changed>.viz-shape{animation:viz-pulse .45s}@keyframes viz-pulse{0%{stroke-width:3px}to{stroke-width:1px}}.viz-hatch-line{stroke:var(--viz-role-done);stroke-width:1.4px;opacity:.55}.viz-hatch{pointer-events:none}.viz-strike{stroke:var(--viz-role-excluded);stroke-width:1.5px}.viz-caret{fill:var(--viz-role-cursor)}.viz-badge-error circle{fill:var(--viz-role-error)}.viz-badge-error text{fill:var(--panel);font:700 10px var(--sans);text-anchor:middle;dominant-baseline:central}.viz-pointer-head,.viz-pointer-label{fill:var(--viz-role-pointer)}.viz-pointer-label{font:600 11px var(--mono);text-anchor:middle;dominant-baseline:central}.viz-bracket path{fill:none;stroke:var(--viz-role-compare);stroke-width:1.5px}.viz-bracket[data-roles=excluded] path{stroke:var(--viz-role-excluded);stroke-dasharray:3 3}.viz-bracket[data-roles=done] path{stroke:var(--viz-role-done)}.viz-bracket[data-roles=active] path,.viz-bracket[data-roles=cursor] path{stroke:var(--accent)}.viz-bracket-label{fill:var(--viz-role-compare);font:600 10.5px var(--mono);text-anchor:middle}.viz-ghost .viz-shape{fill:none;stroke:var(--viz-role-error);stroke-dasharray:3 3}.viz-slot{fill:none;stroke:var(--border-2);stroke-dasharray:2 3;opacity:.7}.viz-floor{stroke:var(--muted-2);stroke-width:2px}.viz-cursor-ring{fill:none;stroke:var(--viz-role-cursor);stroke-width:2.5px;pointer-events:none}[data-roles~=active]>.viz-shape{fill:var(--viz-role-active)}[data-roles~=compare]>.viz-shape{fill:var(--amber-soft);stroke:var(--viz-role-compare);stroke-width:2px}[data-roles~=done]>.viz-shape{stroke:var(--viz-role-done)}[data-roles~=candidate]>.viz-shape{stroke:var(--viz-role-candidate);stroke-width:1.5px;stroke-dasharray:4 3}[data-roles~=excluded]{opacity:.4}[data-roles~=excluded]>.viz-shape{stroke-dasharray:4 3}[data-roles~=error]>.viz-shape{stroke:var(--viz-role-error);stroke-width:2.5px}[data-roles~=cursor]>.viz-shape{stroke:var(--viz-role-cursor);stroke-width:2.5px}.viz-edge{fill:none;stroke:var(--border-2);stroke-width:1.5px;transition:stroke .2s}.viz-stub{stroke:var(--border-2);stroke-width:1.2px;stroke-dasharray:2 3}.viz-edge-head{fill:var(--muted-2)}.viz-edge[data-roles~=active],.viz-edge[data-roles~=cursor]{stroke:var(--accent);stroke-width:3px}.viz-edge[data-roles~=compare]{stroke:var(--viz-role-compare);stroke-width:2.5px}.viz-edge[data-roles~=done]{stroke:var(--viz-role-done);stroke-width:3px}.viz-edge[data-roles~=candidate]{stroke:var(--viz-role-candidate);stroke-dasharray:5 4;stroke-width:2px}.viz-edge[data-roles~=excluded]{stroke-dasharray:3 4;opacity:.4}.viz-edge[data-roles~=error]{stroke:var(--viz-role-error);stroke-width:3px}.viz-edge-g[data-roles~=active] .viz-edge-head{fill:var(--accent)}.viz-err-text{fill:var(--viz-role-error)}.viz-weight rect{fill:var(--panel);stroke:var(--border-2)}.viz-node-badge text,.viz-weight text{fill:var(--muted);font:10.5px var(--mono);text-anchor:middle;dominant-baseline:central}.viz-node-badge rect{fill:var(--panel);stroke:var(--accent);stroke-width:1px}.viz-node-badge text{fill:var(--accent);font-weight:600}.viz-badge{fill:var(--accent);font:600 10px var(--mono);text-anchor:start}.viz-region{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1px;opacity:.8}.viz-region[data-roles~=excluded]{fill:none;stroke:var(--viz-role-excluded);stroke-dasharray:5 4}.viz-region[data-roles~=candidate],.viz-region[data-roles~=done]{fill:none;stroke:var(--viz-role-done);stroke-dasharray:5 4}.viz-region[data-roles~=error]{fill:none;stroke:var(--viz-role-error)}.viz-head{fill:var(--muted)}.viz-arrow{fill:none;stroke:var(--muted);stroke-width:1.4px}@media (max-width:620px){.viz-controls{flex-wrap:wrap}}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.right-0{right:0}.-bottom-px{bottom:-1px}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[2px\]{margin-top:2px}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.ml-3{margin-left:calc(var(--spacing) * 3)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-\[calc\(100dvh-58px\)\]{height:calc(100dvh - 58px)}.h-\[calc\(100vh-58px\)\]{height:calc(100vh - 58px)}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-14{width:calc(var(--spacing) * 14)}.w-40{width:calc(var(--spacing) * 40)}.w-52{width:calc(var(--spacing) * 52)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-line>:not(:last-child)){border-color:var(--color-line)}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--green\)\]{border-color:var(--green)}.border-\[var\(--red\)\]{border-color:var(--red)}.border-accent\/50{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\/50{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.border-line{border-color:var(--color-line)}.border-line2{border-color:var(--color-line2)}.bg-\[color-mix\(in_srgb\,var\(--green\)_10\%\,transparent\)\]{background-color:var(--green)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--green\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--green) 10%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--red\)_10\%\,transparent\)\]{background-color:var(--red)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--red\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--red) 10%,transparent)}}.bg-\[var\(--green\)\]{background-color:var(--green)}.bg-bg{background-color:var(--color-bg)}.bg-bg2{background-color:var(--color-bg2)}.bg-panel{background-color:var(--color-panel)}.object-contain{object-fit:contain}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-\[1px\]{padding-block:1px}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.4em\]{--tw-tracking:.4em;letter-spacing:.4em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-\[var\(--red\)\]{color:var(--red)}.text-accent{color:var(--color-accent)}.text-ink{color:var(--color-ink)}.text-muted{color:var(--color-muted)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal}.ordinal,.tabular-nums{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-\[var\(--btn-primary-shadow\)\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[var\(--btn-primary-shadow\)\]{--tw-shadow:var(--btn-primary-shadow)}.shadow-lg{--tw-shadow:var(--shadow-card-hover)}.shadow-lg,.shadow-md{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:var(--shadow-card)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:text-accent:is(:where(.group):hover *){color:var(--color-accent)}}.placeholder\:text-muted\/70::placeholder{color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted\/70::placeholder{color:color-mix(in oklab,var(--color-muted) 70%,transparent)}}.first\:pt-0:first-child{padding-top:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:0}@media (hover:hover){.hover\:border-accent:hover{border-color:var(--color-accent)}.hover\:border-line2:hover{border-color:var(--color-line2)}.hover\:bg-bg2:hover{background-color:var(--color-bg2)}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-lg:hover{--tw-shadow:var(--shadow-card-hover);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);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,)}}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:ring-\[3px\]:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[var\(--accent-soft\)\]:focus{--tw-ring-color:var(--accent-soft)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}.adm{background:var(--bg);color:var(--text);overflow-y:auto}.adm,.adm-rail{height:100dvh;display:flex}.adm-rail{background:var(--bg-2);border-right:1px solid var(--border);flex-direction:column;flex:0 0 236px;width:236px;position:sticky;top:0}.adm-brand{border-bottom:1px solid var(--border);color:inherit;align-items:center;gap:10px;padding:14px 16px;text-decoration:none;display:flex}.adm-logo{object-fit:contain;width:28px;height:28px}.adm-brand-text{flex-direction:column;line-height:1.15;display:flex}.adm-brand-text strong{font:600 14px var(--display);letter-spacing:-.02em}.adm-brand-text span{font:600 11px var(--display);color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.adm-nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.adm-nav-group{letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin:12px 8px 4px;font-size:10.5px;font-weight:600}.adm-nav-item{border-radius:var(--radius);font:500 13.5px var(--display);color:var(--muted);border:1px solid #0000;align-items:center;gap:10px;padding:7px 10px;text-decoration:none;display:flex}.adm-nav-item svg{flex:0 0 16px;width:16px;height:16px}.adm-nav-item:hover{color:var(--text);background:var(--panel-2)}.adm-nav-item.active{color:var(--accent);background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);border-color:#0000}.adm-rail-foot{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:12px;display:flex}.adm-switch{border:1px dashed var(--border-2);border-radius:var(--radius);color:var(--accent);align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;font-weight:600;text-decoration:none;display:flex}.adm-switch:hover{background:var(--accent-soft);border-style:solid}.adm-switch svg{width:14px;height:14px}.adm-me{align-items:center;gap:10px;min-width:0;display:flex}.adm-avatar{background:var(--grad-cta);color:#fff;width:30px;height:30px;font:600 13px var(--display);border-radius:50%;flex:0 0 30px;place-items:center;display:grid}.adm-me-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.adm-me-text strong{font-size:13px}.adm-me-text span,.adm-me-text strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.adm-me-text span{color:var(--muted);font-size:11.5px}.adm-main{flex-direction:column;flex:1;min-width:0;display:flex}.adm-topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:48px;padding:0 20px;display:flex}@supports (color:color-mix(in lab,red,red)){.adm-topbar{border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent)}}.adm-topbar{background:var(--bg)}@supports (color:color-mix(in lab,red,red)){.adm-topbar{background:color-mix(in srgb,var(--bg) 84%,transparent)}}.adm-topbar{-webkit-backdrop-filter:blur(16px)saturate(1.2);z-index:20;position:sticky;top:0}.adm-crumb{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.adm-crumb svg{width:14px;height:14px}.adm-crumb>span{color:var(--text);align-items:center;gap:6px;font-weight:600;display:inline-flex}.adm-topbar-right{align-items:center;gap:8px;display:flex}.adm-content{width:100%;max-width:1180px;padding:24px 28px 48px}@media (max-width:860px){.adm{flex-direction:column}.adm-rail{flex:none;width:auto;height:auto;position:static}.adm-nav{flex-flow:wrap}.adm-nav-group{display:none}.adm-rail-foot{flex-flow:wrap;justify-content:space-between;align-items:center}.adm-content{padding:16px}}@media (max-width:560px){.adm-panel-head,.adm-subpanel-head{flex-wrap:wrap}}.adm-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.adm-head h1{font:600 22px var(--display);letter-spacing:-.02em;margin:0}.adm-head p{color:var(--muted);max-width:60ch;margin:4px 0 0;font-size:13.5px}.adm-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.adm-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px;display:grid}.adm-stat{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel);color:inherit;padding:14px 16px;text-decoration:none;transition:border-color .12s,box-shadow .12s}.adm-stat:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.adm-stat:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}}.adm-stat:hover{box-shadow:var(--shadow-card)}.adm-stat b{font:600 24px var(--display);letter-spacing:-.02em;display:block}.adm-stat span{color:var(--muted);font-size:12.5px}.adm-panel{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel);margin-bottom:16px;padding:18px 20px}.adm-panel h2{font:600 14.5px var(--display);margin:0 0 12px}.adm-panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.adm-panel-head h2{margin:0}.adm-table{border-collapse:collapse;width:100%;font-size:13.5px}.adm-panel:has(>.adm-table){overflow-x:auto}.adm-table th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-2);padding:8px 10px;font-size:11.5px;font-weight:600}.adm-table td,.adm-table th{border-bottom:1px solid var(--border)}.adm-table td{vertical-align:middle;padding:10px}.adm-table tr:last-child td{border-bottom:0}.adm-table tbody tr:hover td{background:var(--panel-2)}.adm-table a{color:var(--text);font-weight:600;text-decoration:none}.adm-table a:hover{color:var(--accent)}.adm-table .num{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.adm-table .mono{font-family:var(--mono);color:var(--muted);font-size:12px}.adm-status{border:1px solid var(--border-2);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.adm-status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.adm-status.published{color:var(--green);border-color:var(--green)}@supports (color:color-mix(in lab,red,red)){.adm-status.published{border-color:color-mix(in srgb,var(--green) 40%,transparent)}}.adm-status.draft{color:var(--amber);border-color:var(--amber)}@supports (color:color-mix(in lab,red,red)){.adm-status.draft{border-color:color-mix(in srgb,var(--amber) 40%,transparent)}}.adm-status.deprecated{color:var(--muted)}.adm-status.retired{color:var(--red);border-color:var(--red)}@supports (color:color-mix(in lab,red,red)){.adm-status.retired{border-color:color-mix(in srgb,var(--red) 40%,transparent)}}.adm-form{grid-template-columns:repeat(12,1fr);gap:12px 14px;display:grid}.adm-field{flex-direction:column;grid-column:span 12;gap:5px;min-width:0;display:flex}.adm-field.c9{grid-column:span 9}.adm-field.c8{grid-column:span 8}.adm-field.c6{grid-column:span 6}.adm-field.c4{grid-column:span 4}.adm-field.c3{grid-column:span 3}.adm-field.c2{grid-column:span 2}@media (max-width:700px){.adm-field.c2,.adm-field.c3,.adm-field.c4,.adm-field.c6,.adm-field.c8,.adm-field.c9{grid-column:span 12}}.adm-field label{color:var(--muted);font-size:12px;font-weight:600}.adm-field .hint{color:var(--muted-2);background:0 0;border:0;border-radius:0;margin:0;padding:0;font-size:11.5px}.adm-field input,.adm-field select,.adm-field textarea,.adm-input{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border-2);border-radius:var(--radius);outline:none;padding:7px 10px;font-size:13.5px;transition:border-color .12s,box-shadow .12s}.adm-field textarea{resize:vertical;min-height:84px;line-height:1.45}.adm-field textarea.mono{font-family:var(--mono);font-size:12.5px}.adm-field input:focus,.adm-field select:focus,.adm-field textarea:focus,.adm-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.adm-field input:disabled,.adm-field select:disabled,.adm-field textarea:disabled{opacity:.6}.adm-tags{border:1px solid var(--border-2);border-radius:var(--radius);background:var(--bg);flex-wrap:wrap;align-items:center;gap:6px;padding:5px 6px;display:flex}.adm-tags:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.adm-field .adm-tags input{width:auto;min-width:140px;box-shadow:none;background:0 0;border:0;flex:1;padding:3px 4px}.adm-tag-chip{background:var(--accent-soft);color:var(--accent);font:500 12px var(--mono);border-radius:999px;align-items:center;gap:4px;padding:2px 4px 2px 9px;display:inline-flex}.adm-tag-chip button{width:18px;height:18px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;font-size:14px;line-height:1;display:grid}.adm-tag-chip button:focus-visible,.adm-tag-chip button:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.adm-tag-chip button:focus-visible,.adm-tag-chip button:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}}.adm-tag-chip button:focus-visible,.adm-tag-chip button:hover{outline:none}.adm-field input[readonly]{color:var(--muted);background:var(--bg-2)}.adm-form-foot{flex-wrap:wrap;grid-column:span 12;align-items:center;gap:10px;margin-top:4px;display:flex}.adm-form-note{color:var(--muted);font-size:12.5px}.adm-form-note.ok{color:var(--green)}.adm-form-note.err{color:var(--red)}.adm-error{border:1px solid var(--red);background:var(--red)}@supports (color:color-mix(in lab,red,red)){.adm-error{background:color-mix(in srgb,var(--red) 10%,transparent)}}.adm-error{border-radius:var(--radius);margin-bottom:12px;padding:8px 12px;font-size:13px}.adm-split{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.adm-side{max-height:calc(100dvh - 80px);position:sticky;top:64px;overflow-y:auto}@media (max-width:1000px){.adm-split{grid-template-columns:minmax(0,1fr)}.adm-side{max-height:none;position:static;overflow:visible}}.adm-list{flex-direction:column;gap:6px;display:flex}.adm-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;align-items:center;gap:10px;padding:8px 10px;display:flex}.adm-row:hover{border-color:var(--muted-2)}.adm-row.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.adm-row.nested{width:calc(100% - 22px);margin-left:22px}.adm-row .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13.5px;overflow:hidden}.adm-row .idx{text-align:right;width:24px;color:var(--muted-2);font-variant-numeric:tabular-nums;flex:0 0 24px;font-size:12px}.adm-row .tag{color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 7px;font-size:11px}.adm-row.retired .grow{color:var(--muted);text-decoration:line-through}.adm-empty{text-align:center;color:var(--muted);border:1px dashed var(--border-2);border-radius:var(--radius);padding:20px;font-size:13.5px}.adm-options{flex-direction:column;gap:6px;display:flex}.adm-option{align-items:center;gap:8px;display:flex}.adm-option input[type=text]{flex:1}.adm-option .adm-input.id{width:64px;font-family:var(--mono);flex:0 0 64px;font-size:12px}.adm-option .correct{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.adm-chips{flex-wrap:wrap;gap:6px;display:flex}.adm-chip{border:1px solid var(--border-2);background:var(--bg-2);border-radius:999px;padding:2px 9px;font-size:12px}.adm-inline-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.adm-inline-form input,.adm-inline-form select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border-2);border-radius:var(--radius);outline:none;padding:7px 10px;font-size:13.5px}.adm-inline-form input:not([type]),.adm-inline-form input[type=text]{flex:1;min-width:160px}.adm-inline-form input:focus,.adm-inline-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.adm-subpanel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin-bottom:10px;padding:12px 14px}.adm-subpanel:last-child{margin-bottom:0}.adm-subpanel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.adm-subpanel-head strong{font-size:13px;font-weight:600}.adm-prose-wrap{grid-template-columns:1fr 1fr;align-items:start;gap:14px;display:grid}.adm-prose-wrap.mode-edit,.adm-prose-wrap.mode-preview{grid-template-columns:1fr}.adm-prose-pane{min-width:0}.adm-prose-editor{resize:vertical;width:100%;min-height:480px;font-family:var(--mono);border:1px solid var(--border-2);border-radius:var(--radius);background:var(--bg);color:var(--text);outline:none;padding:12px;font-size:12.5px;line-height:1.55}.adm-prose-editor:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.adm-prose-preview-box{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel-2);max-height:640px;padding:16px 18px;overflow-y:auto}@media (max-width:900px){.adm-prose-wrap{grid-template-columns:1fr!important}}.adm-resource-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.adm-resource-row .adm-resource-type{flex:90px;min-width:70px;max-width:130px}.adm-resource-row .adm-resource-title{flex:2 160px;min-width:120px}.adm-resource-row .adm-resource-url{flex:3 220px;min-width:140px}.adm-report{flex-direction:column;gap:10px;margin-top:12px;display:flex}.adm-report ul{margin:4px 0 0;padding-left:18px;font-size:12.5px;line-height:1.5}.adm-report .errs{color:var(--red)}.adm-report .warns{color:var(--amber)}.adm-report .ok{color:var(--green);font-size:13px;font-weight:600}.ws-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--panel);box-shadow:var(--shadow-card);color:inherit;flex-direction:column;gap:8px;padding:24px;text-decoration:none;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex}.ws-card:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.ws-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}}.ws-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.ws-card-admin{background:linear-gradient(160deg,var(--panel),var(--accent-soft))}.ws-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:12px;place-items:center;display:grid}.ws-icon svg{width:20px;height:20px}.ws-title{font:600 17px var(--display);letter-spacing:-.02em;margin-top:6px}.ws-desc{color:var(--muted);flex:1;font-size:13.5px;line-height:1.5}.ws-cta{color:var(--accent);align-items:center;gap:6px;margin-top:8px;font-size:13.5px;font-weight:600;display:inline-flex}.ws-cta svg{width:14px;height:14px}.adm-checks{flex-wrap:wrap;gap:14px;padding-top:6px;font-size:13px;display:flex}.adm-checks label{align-items:center;gap:6px;display:inline-flex}.adm-field .adm-checks input{width:auto}.crw{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:16px;display:grid}.crw-list{gap:8px;max-height:calc(100vh - 140px);padding-right:4px;display:grid;position:sticky;top:12px;overflow-y:auto}.crw-list ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.crw-list button{border-radius:var(--radius);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;gap:2px;padding:8px 10px;display:grid}.crw-list button strong{font-size:13px;font-weight:600}.crw-list button span,.crw-list button strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.crw-list button span{color:var(--muted);font-size:11.5px}.crw-list button:hover{background:var(--panel-2)}.crw-list button.on{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);border-color:#0000}.crw-note{color:var(--muted);margin:4px 0 0;font-size:12px}.crw-page{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel);gap:12px;min-width:0;padding:16px;display:grid}.crw-page-head{gap:10px;display:grid}.crw-page-head h2{font:600 16px var(--display)}.crw-page-head a{color:var(--accent);overflow-wrap:anywhere;font-size:12px}.crw-page-head span{color:var(--muted);font-size:12px}.crw-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;display:flex}.crw-tabs button{color:var(--muted);font:500 12.5px var(--display);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:7px 12px}.crw-tabs button.on{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.crw-pre{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);max-height:70vh;font:12px/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:12px;overflow:auto}.crw-text{font-family:var(--sans);font-size:13.5px;line-height:1.7}.crw-edit{gap:10px;display:grid}.crw-replace{border:1px dashed var(--border-2);border-radius:var(--radius);gap:8px;padding:10px;display:grid}.crw-replace>label{color:var(--muted);gap:4px;font-size:12px;font-weight:600;display:grid}.crw-replace input:not([type]),.crw-replace textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border-2);border-radius:var(--radius);padding:6px 8px;font-size:13px}.crw-replace-opts{flex-wrap:wrap;align-items:center;gap:12px;font-size:12.5px;display:flex}.crw-replace-opts label{align-items:center;gap:6px;display:inline-flex}.crw-editor{border:1px solid var(--border-2);border-radius:var(--radius);background:var(--bg);width:100%;min-height:55vh;color:var(--text);font:12.5px/1.6 var(--mono);resize:vertical;padding:12px}.crw-gallery{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.crw-gallery figure{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin:0;overflow:hidden}.crw-gallery img{object-fit:contain;background:var(--bg-2);width:100%;height:140px;display:block}.crw-gallery figcaption{color:var(--muted);justify-content:space-between;gap:8px;padding:6px 8px;font-size:11.5px;display:flex}.crw-gallery figcaption a{color:var(--accent);flex:none}.crw-shot{border:1px solid var(--border);border-radius:var(--radius);max-width:100%}@media (max-width:900px){.crw{grid-template-columns:1fr}.crw-list{max-height:240px;position:static}}.rms-note{color:var(--muted);line-height:1.5}.rms-note,.rms-ok{margin:0 0 12px;font-size:13px}.rms-ok{border-radius:var(--radius);background:var(--accent-soft);color:var(--text);padding:8px 12px}.rms-diff{gap:4px;max-height:320px;margin:0 0 14px;padding:0;font-size:13px;list-style:none;display:grid;overflow-y:auto}.rms-diff li{background:var(--panel-2);overflow-wrap:anywhere;border-radius:6px;align-items:baseline;gap:8px;padding:4px 8px;display:flex}.rms-diff li b{text-align:center;font-family:var(--mono);flex:0 0 14px}.rms-diff li span{color:var(--muted)}.rms-diff li.add b{color:var(--green)}.rms-diff li.del b{color:var(--red)}.rms-diff li.mod b{color:var(--accent)}.rme.rw-main{height:100dvh}.rme-notice{margin:12px 0 0}.rme .rw-jumps{margin-top:12px}.rme-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.rme-legend li{align-items:center;gap:7px;display:inline-flex}.rme-dots{flex-direction:column;gap:2px;display:inline-flex}.rme-dots i{background:var(--muted-2);opacity:.8;border-radius:50%;width:3.4px;height:3.4px}.rme-toggles{flex-wrap:wrap;flex:none;align-items:center;gap:14px;display:flex}.rme-switch{border:1px solid var(--border-2);border-radius:8px;display:inline-flex;overflow:hidden}.rme-switch button{color:var(--muted);font:600 12.5px var(--sans);cursor:pointer;background:0 0;border:0;padding:5px 12px}.rme-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--text)}.rme-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rme-sheet-btn{border:1px solid var(--border-2);color:var(--text);font:600 12.5px var(--sans);cursor:pointer;background:0 0;border-radius:8px;padding:5px 12px;display:none}.rme-sheet-close{display:none}@media (max-width:900px){.rme-sheet-btn,.rme-sheet-close{display:inline-flex}}.rme-list{flex-direction:column;flex:1;gap:6px;min-height:0;padding:16px 22px 40px;display:flex;overflow-y:auto}.rme-list .rw-mark{flex:none}.rme-add-row{color:var(--accent);border-style:dashed;justify-content:center;font-weight:600}.rme-panel .rw-panel-kicker{align-items:center;gap:8px;display:inline-flex}.rme-unsaved{background:var(--accent);color:var(--btn-primary-fg);letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:1px 7px;font-size:10px;font-weight:700}.rme-coverage{color:var(--muted);align-items:center;gap:8px;margin:0 0 14px;font-size:13px;display:flex}.rme-hint{color:var(--muted-2);margin:12px 0 0;font-size:12px}.rme-stack{flex-direction:column;gap:12px;display:flex}.rme-h{font:650 13.5px var(--sans);color:var(--text);margin:6px 0 0}.rme-panel .adm-panel{padding:14px}.rme .rw-node.st-unbuilt .rw-card{stroke-dasharray:none}.rme .rw-node.st-unbuilt .rw-label{fill:var(--text)}.rme .rw-node.k-project .rw-card{fill:var(--teal)}@supports (color:color-mix(in lab,red,red)){.rme .rw-node.k-project .rw-card{fill:color-mix(in srgb,var(--teal) 14%,var(--panel))}}.rme .rw-node.k-project .rw-card{stroke:var(--teal)}@supports (color:color-mix(in lab,red,red)){.rme .rw-node.k-project .rw-card{stroke:color-mix(in srgb,var(--teal) 55%,var(--border-2))}}.rme .rw-node.k-project .rw-label,.rme .rw-node.sel .rw-label{font-weight:500}.rme .rw-node.k-milestone .rw-card{fill:var(--amber-soft);stroke:var(--amber)}.rme .rw-node.ns-draft .rw-label{font-style:italic}.rme .rw-node.ns-deprecated{opacity:.65}.rme .rw-node.ns-retired{opacity:.4}.rme .rw-node.ns-retired .rw-label{text-decoration:line-through}.rme .rw-node.pending .rw-card,.rme .rw-node.sel .rw-card{stroke:var(--accent);stroke-width:1.8px}.rme .rw-node.pending .rw-card{stroke-dasharray:5 3}.rme .rw-node.ghost .rw-card{fill:#0000;stroke:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rme .rw-node.ghost .rw-card{stroke:color-mix(in srgb,var(--accent) 45%,var(--border-2))}}.rme .rw-node.ghost .rw-card{stroke-dasharray:4 4}.rme .rw-node.ghost .rw-glyph{display:none}.rme .rw-node.ghost .rw-label{fill:var(--accent);font-weight:600}.rme .rw-node.ghost:focus-visible .rw-card,.rme .rw-node.ghost:hover .rw-card{stroke:var(--accent);fill:var(--accent-soft)}.rme .rw-node.ghost .rw-tier{display:none}.rme-swatch{border:1px solid var(--border-2);border-radius:3px;width:18px;height:11px;display:inline-block}.rme-swatch.project{background:var(--teal)}@supports (color:color-mix(in lab,red,red)){.rme-swatch.project{background:color-mix(in srgb,var(--teal) 14%,var(--panel))}}.rme-swatch.project{border-color:var(--teal)}@supports (color:color-mix(in lab,red,red)){.rme-swatch.project{border-color:color-mix(in srgb,var(--teal) 55%,var(--border-2))}}.rme-jump-none{border-style:dashed}.rme-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rme-add-after{margin:0 0 14px}.rme-phases{counter-reset:phase;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.rme-phases li{counter-increment:phase;align-items:center;gap:6px;display:flex}.rme-phases li:before{content:counter(phase);width:16px;color:var(--muted-2);text-align:right;flex:none;font-size:11.5px}.rme-phases input{min-width:0;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border-2);border-radius:var(--radius);flex:1;padding:6px 9px;font-size:13px}.rme-phases input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.rme-phase-count{text-align:center;min-width:22px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11.5px}.rme-phases button{border:1px solid var(--border);width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;flex:none}.rme-phases button:hover:not(:disabled){color:var(--text);border-color:var(--border-2)}.rme-phases button:disabled{opacity:.35;cursor:default}.lesson-item,.lesson-item:hover,.section-locked,.section-locked:hover{text-decoration:none}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes pulse{50%{opacity:.5}}