/* One local presentation layer. Learning state, editor geometry and safety contracts stay owned by their original modules. */
:root{--ui-bg:#0e141e;--ui-panel:#151e2b;--ui-raised:#1c2838;--ui-line:#304057;--ui-text:#e7edf6;--ui-dim:#a7b7cb;--ui-accent:#86b4ff;--ui-button:#2663bd;--ui-radius:12px;--ui-font:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif}
:root[data-ui-theme=light]{--ui-bg:#f4f6fa;--ui-panel:#fff;--ui-raised:#eaf0f8;--ui-line:#cad5e4;--ui-text:#17283d;--ui-dim:#52647c;--ui-accent:#245aa7;--ui-button:#245aa7}
html[data-ui-theme]{background:var(--ui-bg)}
html[data-ui-theme=dark]{color-scheme:dark}html[data-ui-theme=light]{color-scheme:light}
html[data-practice-route=loading] :is(#practiceSelection,#practiceWorkspace,#sourceWorkspace){display:none!important}
html[data-practice-route=loading] #practiceRouteLoading{display:block!important}
#practiceRouteLoading{padding:48px 24px;min-height:220px;color:var(--ui-dim)}
#practiceRouteLoading :is(a,button){margin-right:16px;color:var(--ui-accent);font:inherit}
#practiceRouteLoading button{border:1px solid var(--ui-line);border-radius:8px;padding:7px 12px;background:var(--ui-panel)}
#sourceLessons{scroll-margin-top:24px}
body[data-ui-page]{background:var(--ui-bg)!important;color:var(--ui-text)!important;font-family:var(--ui-font);--bg:var(--ui-bg);--surface:var(--ui-panel);--surface-hover:var(--ui-raised);--border:var(--ui-line);--text:var(--ui-text);--text-dim:var(--ui-dim);--text-muted:var(--ui-dim);--accent:var(--ui-accent);--pv-bg:var(--ui-bg);--pv-panel:var(--ui-panel);--pv-line:var(--ui-line);--pv-text:var(--ui-text);--pv-dim:var(--ui-dim);--pv-blue:var(--ui-accent)}
body[data-ui-page]::before,body[data-ui-page]::after{display:none!important;pointer-events:none}
body[data-ui-page]{padding-top:0!important}
body[data-ui-page] :is(a,button,input,select,summary):focus-visible{outline:2px solid var(--ui-accent)!important;outline-offset:3px}
body[data-ui-page] :is(button,summary,a){-webkit-tap-highlight-color:transparent}
/* Text links keep a clear underline; button links have a padded hit area instead. */
body[data-ui-page] a{ text-underline-offset:.23em;text-decoration-thickness:1px;text-decoration-skip-ink:auto }
body[data-ui-page] :is(a[class*="btn"],a[role=button],.ui-button,.trace-line){text-decoration:none!important}
body[data-ui-page] .history-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:6px 12px;line-height:1.5;vertical-align:middle;border-radius:9px}
body[data-ui-page] .history-action-btn:hover{background:var(--ui-raised);border-color:var(--ui-accent)}
body[data-ui-page] .trace-line{display:inline-flex;padding:3px 8px;border:1px solid var(--ui-line);border-radius:6px;line-height:1.5;vertical-align:baseline}
body[data-ui-page] button:not([hidden]){cursor:pointer}
body[data-ui-page] button:disabled{cursor:not-allowed}
.ui-button,.ui-nav a,.ui-nav button{font:500 14px/1.4 var(--ui-font);min-height:38px;display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;border:1px solid var(--ui-line);border-radius:8px;background:var(--ui-panel);color:var(--ui-text);text-decoration:none}
.ui-button:hover,.ui-nav a:hover{background:var(--ui-raised)}
.ui-primary{background:var(--ui-button)!important;color:#fff!important;border-color:var(--ui-button)!important}
.ui-muted{color:var(--ui-dim);font-size:13px;line-height:1.65}
.ui-nav{position:relative;z-index:50;display:flex;flex-direction:row!important;align-items:center!important;gap:14px;flex-wrap:wrap;padding:12px max(20px,3vw)!important;border-bottom:1px solid var(--ui-line)!important;background:var(--ui-panel)!important;color:var(--ui-text)!important;box-shadow:none!important;min-height:64px}
body[data-ui-page] .navbar.ui-nav{position:sticky;top:0;height:auto;max-width:none;width:100%}
.ui-nav .nav-logo{margin-right:auto;font-weight:750!important;font-size:17px!important;border:0;background:transparent!important;white-space:nowrap;gap:8px;color:var(--ui-text)!important}
.ui-nav .nav-logo-icon{background:var(--ui-button)!important;box-shadow:none!important}
.ui-nav .nav-links,.ui-links{display:flex!important;flex-direction:row!important;align-items:center;gap:4px;margin:0;padding:0;list-style:none;position:static!important;background:transparent!important;border:0!important;box-shadow:none!important;width:auto!important}
.ui-nav .nav-links a,.ui-links a{border:0;background:transparent;color:var(--ui-dim)!important;padding:8px 12px;white-space:nowrap}
.ui-nav :is(.nav-links,.ui-links) a:is(.active,[aria-current=page]){background:var(--ui-raised)!important;color:var(--ui-accent)!important}
.ui-nav .nav-menu-btn{display:none!important}
.ui-nav .nav-search-wrap{max-width:300px;flex:1;min-width:180px;margin:0}
.ui-nav .nav-search-input{background:var(--ui-bg)!important;border-color:var(--ui-line)!important;color:var(--ui-text)!important}
.ui-nav #navTitle{display:none}
.ui-nav .ui-theme{margin-left:auto;flex-shrink:0}
.ui-nav > span:not(.nav-title){font-size:12px;color:var(--ui-dim);max-width:250px}
.ui-skip{position:fixed;left:12px;top:-100px;z-index:10000;padding:10px 16px;background:var(--ui-button);color:white;border-radius:8px}.ui-skip:focus{top:10px}
body[data-ui-page] :is(.page-header,.guide-hero){background:transparent!important;border:0!important;box-shadow:none!important;padding-top:22px}
body[data-ui-page] :is(.page-header h1,.guide-hero h1){font-size:clamp(24px,3vw,34px)!important;line-height:1.35!important;color:var(--ui-text)!important;letter-spacing:-.025em}
body[data-ui-page] :is(.page-header p,.guide-hero p){color:var(--ui-dim)!important;font-size:14px!important;line-height:1.7!important;max-width:820px}
body[data-ui-page] :is(.project-card,.side-card,.featured-card,.assistant-card,.module-card,.bom-card,.periph-card,.guide-card,.learning-entry,.practice-panel,.practice-bottom>section){background:var(--ui-panel)!important;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:none!important;color:var(--ui-text)!important}
body[data-ui-page] :is(.project-card,.side-card,.featured-card,.module-card,.periph-card):hover{border-color:var(--ui-accent)!important;transform:none!important;box-shadow:none!important}
body[data-ui-page] :is(.featured-card,.side-card,.project-card,.module-card)::before,body[data-ui-page] :is(.featured-card,.side-card,.project-card,.module-card)::after{display:none!important}
body[data-ui-page] :is(.featured-title,.project-card-title,.side-card-title,.module-name,.periph-card-name,.guide-card h2){color:var(--ui-text)!important}
body[data-ui-page] :is(.featured-desc,.side-card-desc,.module-learn,.periph-card-desc){color:var(--ui-dim)!important}
body[data-ui-page] .footer{background:transparent!important;color:var(--ui-dim)!important;border-color:var(--ui-line)!important}
body[data-ui-page] .footer a{color:var(--ui-accent)!important}
.ui-fold{border:1px solid var(--ui-line);border-radius:10px;background:var(--ui-panel);margin:12px 0;padding:0 14px;min-width:0;color:var(--ui-text)}
.ui-fold>summary{cursor:pointer;padding:13px 0;font-size:14px;font-weight:600;color:var(--ui-text)}
.ui-fold[open]{padding-bottom:14px}
.ui-fold>p{color:var(--ui-dim);line-height:1.7}
.ui-intro{padding:24px 0 18px}.ui-intro h1{font-size:clamp(27px,4vw,40px);line-height:1.35;letter-spacing:-.035em;margin:0 0 10px;text-wrap:balance}.ui-intro p{margin:0;color:var(--ui-dim);line-height:1.7}
body[data-ui-page=index]>.page{max-width:1300px;margin:auto;padding:12px 28px 40px;display:grid!important;grid-template-columns:1fr!important;gap:24px}
body[data-ui-page=index] .main-content{width:auto;min-width:0;margin:0;order:0!important}
body[data-ui-page=index] .learning-entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 26px}
body[data-ui-page=index] .learning-entry,body[data-ui-page=index] #assistantNextCard{margin:0;padding:18px;min-height:175px}
body[data-ui-page=index] :is(.learning-entry h2,.assistant-title){font-size:16px;margin:0 0 12px;color:var(--ui-text)}
body[data-ui-page=index] .learning-entry p{font-size:13px;line-height:1.7;min-height:44px;margin:0 0 14px;color:var(--ui-dim)}
body[data-ui-page=index] .assistant-next-desc,body[data-ui-page=index] .assistant-progress{display:none}
body[data-ui-page=index] .assistant-next-project{color:var(--ui-text)}
body[data-ui-page=index] .assistant-next-module{color:var(--ui-accent)}
body[data-ui-page=index] .featured-meta{color:var(--ui-dim)!important}
body[data-ui-page=index] .featured-card .project-stage-badge{color:var(--ui-accent)!important;background:var(--ui-raised)!important;border-color:var(--ui-line)!important}
body[data-ui-page=index] #learningAssistant{width:auto;position:static;padding-top:32px;min-width:0;order:1!important}
body[data-ui-page=index] .hero-row{display:grid!important;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)!important;gap:12px;margin:0 0 12px}
body[data-ui-page=index] .side-cards{display:grid!important;grid-template-columns:1fr!important;gap:12px;width:auto!important}
body[data-ui-page=index] .featured-card{min-height:0;padding:22px;grid-column:auto!important}
body[data-ui-page=index] .featured-content{padding:0;max-width:none}
body[data-ui-page=index] .featured-title{font-size:24px;margin:10px 0}
body[data-ui-page=index] .featured-desc{font-size:14px;line-height:1.7;max-width:460px}
body[data-ui-page=index] :is(.hot-badge,.project-recommend,.project-card-time,.badge-medium,.badge-hard){display:none!important}
body[data-ui-page=index] .side-card{padding:16px;min-height:120px}.ui-section-heading{font-size:19px;line-height:1.5;margin:22px 0 14px}
body[data-ui-page=index] .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
body[data-ui-page=index] .project-card{padding:20px 16px;min-height:170px;height:auto}
body[data-ui-page=index] :is(.project-card,.side-card)[data-pid]{justify-content:flex-start;gap:8px}
body[data-ui-page=index] :is(.project-card,.side-card)[data-pid] :is(.project-card-icon,.side-card-icon){position:static;width:38px;height:38px;margin:0 0 4px;background:var(--ui-raised)!important;border-color:var(--ui-line);box-shadow:none;font-size:22px}
body[data-ui-page=index] :is(.project-card,.side-card)[data-pid] .project-stage-badge{position:absolute;top:16px;right:16px;left:auto;width:auto;align-self:flex-end}
body[data-ui-page=index] :is(.project-card,.side-card)[data-pid] :is(.project-card-title,.side-card-title){color:var(--ui-text)!important;text-shadow:none}
body[data-ui-page=index] :is(.project-card,.side-card)[data-pid] :is(.project-card-desc,.side-card-desc){color:var(--ui-dim)!important;text-shadow:none}
.ui-card-progress{font-size:12px;color:var(--ui-dim);margin-top:14px}.ui-card-goal{font-size:13px;color:var(--ui-dim);line-height:1.65;margin:8px 0}
body[data-ui-page=project]>.page{max-width:1160px;padding:8px 24px 35px;margin:auto}
body[data-ui-page=project] #pageHeader{min-height:0!important;padding:24px 0!important;margin:0 0 16px!important}
body[data-ui-page=project] #pageHeader::after{display:none!important}
body[data-ui-page=project] .wiring-card{min-height:0!important;margin:0 0 24px!important}
body[data-ui-page=project] .wiring-card-image{max-height:190px!important;object-fit:contain}
body[data-ui-page=project] .wiring-card{grid-template-columns:minmax(0,1fr) 280px!important}
body[data-ui-page=project] .wiring-preview{min-height:0!important;height:210px!important}
body[data-ui-page=project] .wiring-preview img{height:100%!important;max-height:210px!important;object-fit:contain!important}
body[data-ui-page=project] .wiring-card-info{padding:20px!important}
body[data-ui-page=index] #uiFilters{margin:0 0 16px}
body[data-ui-page=index] #uiFilters .assistant-card{border:0!important;padding:8px 0!important}
body[data-ui-page=index] #uiFilters .assistant-title{display:none}
body[data-ui-page=index] #uiFilters .assistant-filter-group{display:flex;flex-wrap:wrap;gap:8px}
body[data-ui-page=index] #uiFilters #learningAssistant{width:100%;padding:0;margin:0;position:static}
body[data-ui-page=index] #learningAssistant:empty{display:none!important}
body[data-ui-page=project] .module-card{padding:18px;gap:15px;margin-bottom:10px;min-height:96px;align-items:flex-start}
body[data-ui-page=project] .module-header{flex-wrap:wrap;gap:7px}
.ui-module-note{font-size:13px;color:var(--ui-dim);margin:8px 0;line-height:1.65}.ui-start{font-size:12px;color:var(--ui-accent);white-space:nowrap;align-self:center;margin-left:auto}
.ui-module-details{margin:8px 0 0;border:0;background:transparent;padding:0}.ui-module-details>summary{padding:3px 0;font-size:12px;font-weight:500;color:var(--ui-dim)}
body[data-ui-page=project] .wiring-card{box-shadow:none!important;background:var(--ui-panel)!important;border-color:var(--ui-line)!important}
body[data-ui-page=project] .wiring-card-desc{font-size:13px;line-height:1.65}
body[data-ui-page=project] .module-observation-goal{font-size:13px}
/* Menus do not move editor DOM or change line-height/scroll synchronization. */
/* The editor owns its palette; a light site must never paint over its syntax layer. */
body[data-ui-page] :is(#codeOverlay,.ca-popup[data-context=legacy]){--ed-bg:#101722;--ed-panel:#172131;--ed-code:#151d29;--ed-line:#34455e;--ed-text:#e0e8f3;--ed-dim:#a8b8cd;--ed-accent:#9ec5ff;--ed-comment:#92bb87;--ed-keyword:#9ec5ff;--ed-type:#8ee0cc;--ed-string:#edbc98;--ed-number:#bedfa8;--ed-macro:#d9a9dd;--bg:var(--ed-bg);--surface:var(--ed-panel);--surface-hover:var(--ed-line);--border:var(--ed-line);--text:var(--ed-text);--text-dim:var(--ed-dim);--text-muted:var(--ed-dim);--accent:var(--ed-accent);--panel:var(--ed-panel);--dim:var(--ed-dim);--ui-text:var(--ed-text);--ui-line:var(--ed-line);--ui-accent:var(--ed-accent);background:var(--ed-bg)!important;color:var(--ed-text);color-scheme:dark}
/* Open an opaque workspace immediately; fading the whole dialog exposes the page through code. */
body[data-ui-page] #codeOverlay{transition:none!important;backdrop-filter:none!important}
html[data-editor-scheme=light] body[data-ui-page] :is(#codeOverlay,.ca-popup[data-context=legacy]){--ed-bg:#f0f0f0;--ed-panel:#f5f5f5;--ed-code:#fff;--ed-line:#d3d3d3;--ed-text:#000;--ed-dim:#505050;--ed-accent:#24578c;--ed-comment:#008000;--ed-keyword:#0000ff;--ed-type:#000;--ed-string:#a000a0;--ed-number:#008080;--ed-macro:#000;--ed-preprocessor:#808000;color-scheme:light}
body[data-ui-page] #codeOverlay :is(.overlay-topbar,.overlay-check-panel,.ui-editor-settings>div){background:var(--ed-panel)!important;color:var(--ed-text)!important;border-color:var(--ed-line)!important}
body[data-ui-page] #codeOverlay :is(.overlay-body,.overlay-editor-wrap){background:var(--ed-bg)!important}
body[data-ui-page] #codeOverlay :is(.editor-highlight-layer,.overlay-source-panel){background:var(--ed-code)!important;color:var(--ed-text)!important;border-color:var(--ed-line)!important}
body[data-ui-page] #codeOverlay .overlay-editor{background:transparent!important;color:transparent!important;-webkit-text-fill-color:transparent;caret-color:var(--ed-text)!important;border-color:var(--ed-line)!important}
body[data-ui-page] #codeOverlay .editor-gutter{background:var(--ed-panel)!important;color:var(--ed-dim)!important;border-color:var(--ed-line)!important}
body[data-ui-page] #codeOverlay :is(.overlay-module-name,.overlay-module-name-btn,.overlay-module-count,.overlay-nav-label,.check-title,.check-label){color:var(--ed-text)!important}
body[data-ui-page] #codeOverlay :is(.check-hint,.notes-area){color:var(--ed-dim)!important}
body[data-ui-page] #codeOverlay :is(.overlay-back,.overlay-source-btn,.overlay-wiring-btn,.overlay-lib-btn,.overlay-nav-btn,.overlay-font-btn,.ui-editor-settings>summary){color:var(--ed-text)!important;background:var(--ed-panel)!important;border-color:var(--ed-line)!important}
body[data-ui-page] #codeOverlay .kw{color:var(--ed-keyword)!important}
body[data-ui-page] #codeOverlay .dt{color:var(--ed-type)!important}
body[data-ui-page] #codeOverlay .co{color:var(--ed-comment)!important}
body[data-ui-page] #codeOverlay .st{color:var(--ed-string)!important}
body[data-ui-page] #codeOverlay .num{color:var(--ed-number)!important}
body[data-ui-page] #codeOverlay :is(.ma,.pp){color:var(--ed-macro)!important}
body[data-ui-page] #codeOverlay .pp{color:var(--ed-preprocessor,var(--ed-macro))!important}
body[data-ui-page] #codeOverlay .fu{color:var(--ed-text)!important}
body[data-ui-page] #codeOverlay .check-item{background:var(--ed-code)!important;border-color:var(--ed-line)!important}
body[data-ui-page] #codeOverlay .check-item.pass{background:color-mix(in srgb,#239765 12%,var(--ed-code))!important}
body[data-ui-page] #codeOverlay .check-item.fail{background:color-mix(in srgb,#dd4665 10%,var(--ed-code))!important}
body[data-ui-page] #codeOverlay :is(.ca-bar,#moduleObservation){--panel:var(--ed-panel);--dim:var(--ed-dim);--text:var(--ed-text);--text-dim:var(--ed-dim);--surface:var(--ed-panel);--border:var(--ed-line);--accent:var(--ed-accent);--bg:var(--ed-bg);color:var(--ed-text)}
body[data-ui-page] #codeOverlay .ca-trigger{white-space:nowrap;min-height:36px;min-width:76px}
body[data-ui-page] #codeOverlay #moduleObservation .obs-card{background:var(--ed-panel)}
body[data-ui-page] #codeOverlay .ac-dropdown{background:var(--ed-panel)!important;border-color:var(--ed-line)!important}
body[data-ui-page] #codeOverlay .ac-item{color:var(--ed-text)!important}
body[data-ui-page] #codeOverlay :is(.ac-label,.ac-detail,.ac-info){color:var(--ed-text)!important}
body[data-ui-page] #codeOverlay .ac-item:is(:hover,.active){background:var(--ed-line)!important;color:var(--ed-text)!important}
body[data-ui-page] #codeOverlay .ac-type{color:var(--ed-accent)!important;background:var(--ed-code)!important}
.ui-editor-settings{position:relative;margin-left:auto;flex-shrink:0}
.ui-editor-settings>summary{list-style:none;border:1px solid var(--ui-line);padding:8px 12px;border-radius:8px;font-size:13px;cursor:pointer;color:inherit;white-space:nowrap}
.ui-editor-settings>summary::-webkit-details-marker{display:none}
.ui-editor-settings>div{position:absolute;right:0;top:calc(100% + 8px);width:240px;padding:12px;background:#172131;border:1px solid #3a4d65;border-radius:10px;box-shadow:0 10px 30px #0006;z-index:3000;display:flex;flex-wrap:wrap;gap:8px}
.ui-editor-settings .overlay-font-btn{display:inline-flex!important;width:auto!important;min-width:42px;justify-content:center;margin:0!important}
html[data-editor-scheme=light] .ui-editor-settings>div{background:#f8fafc;border-color:#cbd5e1;color:#17283d}
html[data-editor-scheme=light] .ui-editor-settings>summary{color:#243b57;border-color:#b9c9df}
body[data-ui-page] .overlay-topbar:has(#overlayEditor):not(.unused){box-shadow:none}
body[data-ui-page] #codeOverlay>.overlay-topbar{gap:9px;padding:10px 16px}
body[data-ui-page] .overlay-module-info{min-width:120px;max-width:360px}
body[data-ui-page] .overlay-module-tags{display:none!important}
body[data-ui-page] #overlayLibBtn{padding:8px 12px}
body[data-ui-page] .overlay-body{min-height:0}
/* Keep all original error/lock visibility. Only optional instructional blocks are folded. */
body[data-ui-page=practice]{min-height:100vh;min-height:100dvh}
body[data-ui-page=practice] .practice-shell{padding:22px 24px;max-width:1560px}
body[data-ui-page=practice] .practice-selection{max-width:820px;margin:6vh auto}
body[data-ui-page=practice] .practice-workspace{grid-template-columns:minmax(215px,.8fr) minmax(420px,1.8fr) minmax(230px,.9fr)}
body[data-ui-page=practice] .practice-panel :is(h1,h2,h3){line-height:1.5}
body[data-ui-page=practice] .practice-panel h1{font-size:20px}
body[data-ui-page=practice] :is(.practice-target,.hint,.practice-keil,.practice-choices a,.practice-diagnostics details){background:var(--ui-panel);color:var(--ui-text)}
body[data-ui-page=practice] :is(.practice-prediction textarea,.practice-mode-buttons button,.practice-scenario-buttons button){background:var(--ui-raised);color:var(--ui-text);border-color:var(--ui-line)}
body[data-ui-page=practice] :is(.practice-actions button,.hint button,.practice-tabs button){background:var(--ui-raised);color:var(--ui-text);border-color:var(--ui-line)}
body[data-ui-page=practice] .practice-actions #practiceRun{background:#176b46;color:#fff;border-color:#339b69}
body[data-ui-page=practice] :is(.practice-mode-buttons,.practice-scenario-buttons,.practice-tabs) .active{background:var(--ui-button);color:#fff;border-color:var(--ui-button)}
body[data-ui-page=practice] :is(.practice-shell a,.trace-line){color:var(--ui-accent)}
body[data-ui-page=practice] :is(.practice-reference,.pwm-wave){background:var(--ui-raised);color:var(--ui-text)}
html[data-ui-theme=light] body[data-ui-page=practice]{--pv-green:#166534;--pv-red:#b42318;--pv-yellow:#865900}
body[data-ui-page=practice] .practice-steps{display:flex;gap:12px;padding:0 0 16px;color:var(--ui-dim);font-size:13px;flex-wrap:wrap}
body[data-ui-page=practice] .practice-keil{border:0;padding:8px 0}
/* Knowledge practice follows the page palette; overlay editor schemes stay independent. */
body[data-ui-page=practice] :is(.editor-wrap,#practiceEditor){background:var(--ui-panel);color:var(--ui-text);caret-color:var(--ui-accent);color-scheme:dark}
html[data-ui-theme=light] body[data-ui-page=practice] :is(.editor-wrap,#practiceEditor){color-scheme:light}
body[data-ui-page=practice] .practice-line-numbers{background:var(--ui-raised);color:var(--ui-dim);border-right:1px solid var(--ui-line)}
body[data-ui-page=practice] .editor-header{background:var(--ui-raised);color:var(--ui-dim)}
body[data-ui-page=practice] #practiceEditor::selection{background:color-mix(in srgb,var(--ui-accent) 25%,transparent)}
/* Keil5-style light code palette, independent from the surrounding site theme. */
html[data-ui-theme=light] body[data-ui-page=practice] :is(.editor-wrap,#practiceEditor,#sourceEditor,.practice-reference,.source-layout pre){background:#fff;color:#000;caret-color:#000;color-scheme:light}
html[data-ui-theme=light] body[data-ui-page=practice] :is(.practice-line-numbers,.editor-header,.practice-editor .code-edit-status){background:#f5f5f5;color:#505050;border-color:#d3d3d3}
html[data-ui-theme=light] body[data-ui-page=practice] :is(#practiceEditor,#sourceEditor)::selection{background:#5a9be650;color:transparent}
.keil-syntax-host,.keil-editor-host{position:relative;min-width:0}
.keil-editor-host{width:100%}.keil-editor-host>textarea{display:block}
body[data-ui-page] .keil-syntax-layer{display:none;position:absolute;z-index:1;box-sizing:border-box;margin:0;max-height:none;overflow:hidden;white-space:pre;overflow-wrap:normal;word-break:normal;border-color:transparent;pointer-events:none;user-select:none}
html[data-ui-theme=light] body[data-ui-page] .keil-syntax-layer{display:block;background:#fff;color:#000}
html[data-ui-theme=light] body[data-ui-page] .keil-syntax-input[data-syntax-ready=true]{position:relative;z-index:2;background:transparent!important;color:transparent!important;-webkit-text-fill-color:transparent;caret-color:#000}
body[data-ui-page] .keil-code-line{display:inline-block;min-width:100%;min-height:1em}
html[data-ui-theme=light] body[data-ui-page=practice] .keil-syntax-layer .kw{color:#0000ff}
html[data-ui-theme=light] body[data-ui-page=practice] .keil-syntax-layer .co{color:#008000}
html[data-ui-theme=light] body[data-ui-page=practice] .keil-syntax-layer .st{color:#a000a0}
html[data-ui-theme=light] body[data-ui-page=practice] .keil-syntax-layer .pp{color:#808000}
html[data-ui-theme=light] body[data-ui-page=practice] .keil-syntax-layer .num{color:#008080}
html[data-editor-scheme=light] body[data-ui-page] #highlightLayer .hl-line{display:inline-block;min-width:100%;min-height:1lh;vertical-align:top}
html[data-ui-theme=light] body[data-ui-page=practice] .keil-current-line,
html[data-ui-theme=light] body[data-ui-page^=xunji-] .keil-current-line,
html[data-editor-scheme=light] body[data-ui-page] #highlightLayer .hl-line.keil-current-line:not(.err-line){background:#e0ffe8}
/* All C viewers use one palette, including read-only examples and SPL sources. */
body[data-ui-page]{--code-bg:#151d29;--code-text:#e0e8f3;--code-gutter:#172131;--code-dim:#a8b8cd;--code-keyword:#9ec5ff;--code-comment:#92bb87;--code-string:#edbc98;--code-number:#bedfa8;--code-preprocessor:#d9a9dd;--code-doc:#edbc98;--code-current:#254137}
html[data-ui-theme=light] body[data-ui-page]{--code-bg:#fff;--code-text:#000;--code-gutter:#f5f5f5;--code-dim:#505050;--code-keyword:#0000ff;--code-comment:#008000;--code-string:#a000a0;--code-number:#008080;--code-preprocessor:#808000;--code-doc:#8b4513;--code-current:#e0ffe8}
body[data-ui-page] .keil-code{background:var(--code-bg)!important;color:var(--code-text)!important;tab-size:4;white-space:pre;word-break:normal;overflow-wrap:normal}
body[data-ui-page] :is(.keil-code,.keil-syntax-layer) .kw{color:var(--code-keyword)!important}
body[data-ui-page] :is(.keil-code,.keil-syntax-layer) .co{color:var(--code-comment)!important;font-style:normal}
body[data-ui-page] :is(.keil-code,.keil-syntax-layer) .st{color:var(--code-string)!important}
body[data-ui-page] :is(.keil-code,.keil-syntax-layer) .pp{color:var(--code-preprocessor)!important}
body[data-ui-page] :is(.keil-code,.keil-syntax-layer) .num{color:var(--code-number)!important}
body[data-ui-page] :is(.keil-code,.keil-syntax-layer) :is(.ma,.dt,.fu){color:var(--code-text)!important}
body[data-ui-page] :is(.keil-code,.keil-syntax-layer) .doc-tag{color:var(--code-doc)!important}
html[data-editor-scheme=light] body[data-ui-page] #codeOverlay .doc-tag{color:#8b4513!important}
body[data-ui-page=spl-library] #libOverlay{transition:none;backdrop-filter:none}
body[data-ui-page=spl-library] #libCodeWrap{background:var(--code-bg)!important;overflow:auto;min-width:0}
body[data-ui-page=spl-library] #libCodePre{background:var(--code-bg)!important;color:var(--code-text)!important;white-space:pre!important;word-break:normal!important;overflow-wrap:normal;tab-size:4;flex:1 0 auto;max-height:none}
body[data-ui-page=spl-library] .lib-source-line{display:inline-block;min-width:100%;min-height:1lh;vertical-align:top;scroll-margin-top:65px}
body[data-ui-page=spl-library] .lib-target-line{background:var(--code-current)}
body[data-ui-page=spl-library] #libGutter{position:sticky;left:0;background:var(--code-gutter)!important;color:var(--code-dim)!important;border-right:1px solid var(--ui-line);z-index:1;flex-shrink:0}
.lib-jump-status{padding:9px 12px;margin:0;font:12px/1.5 Consolas,monospace;color:var(--ui-text);background:var(--ui-raised);overflow-wrap:anywhere}
.code-library-jump{font:12px/1.4 var(--ui-font);white-space:nowrap;padding:5px 9px;border:1px solid var(--ui-line);border-radius:6px;color:var(--ui-text);background:var(--ui-panel)}
.code-library-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0}
.code-library-status{font:12px/1.5 var(--ui-font);color:var(--ed-dim,var(--ui-dim));white-space:normal;flex-basis:100%;max-width:440px}
html[data-ui-theme=light] body[data-ui-page^=xunji-] #source::selection{background:#5a9be650;color:transparent}
body[data-ui-page=practice] .editor-header{align-items:center;flex-wrap:wrap}
.practice-naming{font:inherit;font-size:12px;padding:4px 8px;color:inherit;border:1px solid currentColor;border-radius:6px;background:transparent}
.code-edit-status{flex:0 0 auto;min-height:25px;padding:4px 12px;background:var(--ed-panel,var(--ui-raised));color:var(--ed-dim,var(--ui-dim));border-top:1px solid var(--ed-line,var(--ui-line));font:11px/1.5 Consolas,monospace;font-variant-numeric:tabular-nums}
/* Source comparison has exactly two code panes; actions live in the toolbar. */
body[data-ui-page] #codeOverlay .overlay-editor-wrap{min-height:0}
body[data-ui-page] #codeOverlay .overlay-editor-wrap.split .overlay-editor-area{flex:0 0 calc(var(--split-pct,50%) - 15px)}
body[data-ui-page] #codeOverlay .overlay-source-panel{min-width:0;min-height:0;white-space:pre;overflow:auto;overflow-wrap:normal;word-break:normal;tab-size:4}
body[data-ui-page] #codeOverlay .overlay-source-panel .hl-line{white-space:inherit}
body[data-ui-page] #codeOverlay .overlay-copy-btn{position:static;inset:auto;flex:0 0 auto;align-self:center;padding:8px 12px;max-height:42px;border:1px solid var(--ed-line);border-radius:8px;background:var(--ed-panel);color:var(--ed-text);box-shadow:none;font:500 12px/1.5 var(--font);white-space:nowrap;cursor:pointer}
body[data-ui-page] #codeOverlay .overlay-copy-btn:hover{background:var(--ed-panel);color:var(--ed-accent);border-color:var(--ed-accent);box-shadow:none}
body[data-ui-page] #codeOverlay .overlay-copy-btn[hidden]{display:none}
@media(max-width:900px){
 body[data-ui-page] #codeOverlay .overlay-editor-wrap{min-height:50vh}
 body[data-ui-page] #codeOverlay .overlay-editor-wrap.split{flex-direction:column;overflow-y:auto}
 body[data-ui-page] #codeOverlay .overlay-editor-wrap.split .overlay-editor-area{flex:0 0 42vh;min-height:260px}
 body[data-ui-page] #codeOverlay .overlay-editor-wrap.split .overlay-source-panel{flex:0 0 42vh;min-height:260px}
 body[data-ui-page] #codeOverlay .overlay-editor-wrap.split .overlay-resize-handle{display:none}
}
textarea[data-editing-ready]{tab-size:4}
/* Interaction accents remain outside code and honor both the user's switch and OS preference. */
.ui-pointer-card{position:relative;isolation:isolate}
.ui-pointer-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(280px circle at var(--ui-spot-x,50%) var(--ui-spot-y,50%),#38cfc326,transparent 75%);opacity:0;transition:opacity .18s}
html[data-ui-motion=on] .ui-pointer-card.ui-pointer-active::after{opacity:1}
html[data-ui-motion=on] .ui-pointer-active .ui-project-art img{transform:translateY(-3px) rotate(var(--ui-art-tilt,0deg));transition:transform .2s ease-out}
html[data-ui-motion=on] :is(.project-card,.module-card,.learning-entry):focus-visible{box-shadow:0 0 0 4px #38cfc326!important}
.ui-click-target{position:relative;overflow:hidden}
.ui-click-wave{position:absolute;pointer-events:none;border-radius:50%;background:currentColor;opacity:0;transform:translate(-50%,-50%) scale(0);animation:ui-click-wave .55s ease-out forwards}
@keyframes ui-click-wave{from{opacity:.24;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}
.ui-result-arrive{animation:ui-result-arrive .85s ease-out}
@keyframes ui-result-arrive{0%{box-shadow:inset 3px 0 #36cc94,0 0 0 0 #36cc9438;background:#36cc9420}100%{box-shadow:inset 0 0 transparent,0 0 0 10px transparent;background:transparent}}
html[data-ui-motion=off] :is(.ui-lab-art img,.ui-result-arrive,.ui-click-wave){animation:none!important}
html[data-ui-motion=off] .ui-pointer-card::after{opacity:0;transition:none}
html[data-ui-motion=off] .ui-project-art img{transform:none!important;transition:none!important}
.ui-nav .ui-motion-toggle{font-size:12px;white-space:nowrap;min-width:76px}
/* Module illustrations describe function, never wiring or completion evidence. */
body[data-ui-page=project] .module-card.ui-module-illustrated{display:grid;grid-template-columns:36px minmax(0,1fr) 132px;grid-template-rows:auto auto;gap:8px 18px;align-items:start;min-height:151px}
.ui-module-illustrated>.module-num{grid-column:1;grid-row:1}
.ui-module-illustrated>.module-info{grid-column:2;grid-row:1 / span 2;min-width:0}
.ui-module-illustrated>.ui-start{grid-column:3;grid-row:2;justify-self:center;margin:0;align-self:end}
.ui-module-art{grid-column:3;grid-row:1;align-self:center;width:132px;color:#93bfff;border:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:12px;background:linear-gradient(140deg,#203449,#15232e);padding:5px 9px 7px;pointer-events:none;overflow:hidden}
.ui-module-art svg{display:block;width:100%;height:68px;transition:transform .24s ease-out;transform-origin:center}
.ui-module-art>span{display:block;text-align:center;font:9px/1.6 Consolas,monospace;letter-spacing:.06em;white-space:nowrap;opacity:.85}
.ui-module-grid{stroke:currentColor;stroke-width:.5;opacity:.16}
.ui-module-signal{stroke:#63dac5;stroke-width:2.5}
html[data-ui-theme=light] .ui-module-art{color:#346a93;background:linear-gradient(140deg,#e4eee9,#edf2f5)}
html[data-ui-theme=light] .ui-module-signal{stroke:#26796b}
body[data-ui-page=project] .module-card.ui-module-illustrated:is(:hover,:focus-visible){border-color:var(--ui-accent)!important}
html[data-ui-motion=on] .ui-module-illustrated:is(:hover,:focus-visible) .ui-module-art svg{transform:translateY(-2px) rotate(var(--ui-art-tilt,0deg))}
html[data-ui-motion=on] .ui-module-illustrated:is(:hover,:focus-visible) .ui-module-signal{stroke-dasharray:9 5;animation:ui-module-signal 1.6s linear infinite}
@keyframes ui-module-signal{to{stroke-dashoffset:-28}}
html[data-ui-motion=off] .ui-module-art svg{transition:none;transform:none}
@media(prefers-reduced-motion:reduce){.ui-module-art svg,.ui-module-signal{transition:none!important;animation:none!important;transform:none!important}}
@media(max-width:600px){
 body[data-ui-page=project] .module-card.ui-module-illustrated{grid-template-columns:28px minmax(0,1fr) 68px;gap:9px 10px;padding:14px 12px}
 .ui-module-illustrated>.module-num{width:28px;height:30px;font-size:11px}
 .ui-module-illustrated>.module-info{grid-row:1}
 .ui-module-illustrated>.ui-start{grid-column:2 / span 2;justify-self:start}
 .ui-module-art{width:68px;padding:3px}
 .ui-module-art svg{height:48px}
 .ui-module-art>span{display:none}
}
.ui-export-note{padding:8px 14px;color:var(--ui-dim);font-size:12px;line-height:1.65}
body[data-ui-page=keil-guide] .guide-grid{grid-template-columns:1fr}.ui-guide-start{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.ui-guide-start span{padding:12px 18px;background:var(--ui-raised);border-radius:9px}
body[data-ui-page=keil-guide] :is(.guide-code,.guide-link,.guide-nav a,.guide-note:not(.guide-warn):not(.guide-danger)){background:var(--ui-raised);color:var(--ui-text);border-color:var(--ui-line)}
.ui-download-kinds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.ui-download-kinds>section{padding:18px;background:var(--ui-panel);border:1px solid var(--ui-line);border-radius:12px}.ui-download-kinds h2{font-size:17px;margin:0 0 9px}.ui-download-kinds p{font-size:13px;color:var(--ui-dim);line-height:1.7}
body[data-ui-page=download] #projectList>.card{background:var(--ui-panel);color:var(--ui-text);border-color:var(--ui-line);border-radius:var(--ui-radius)}
body[data-ui-page=download] #projectList>.card:hover{border-color:var(--ui-accent)}
body[data-ui-page=download] #projectList .card-title{color:var(--ui-text)}
body[data-ui-page=download] #projectList :is(.card-desc,.card-meta){color:var(--ui-dim)}
body[data-ui-page=download] #projectList .btn-primary{background:var(--ui-button);color:#fff;text-decoration:none;min-height:44px;border-radius:10px}
.ui-lib-guide{max-width:860px;margin:15px 0;padding:15px 18px;border-left:3px solid var(--ui-accent);background:var(--ui-raised);color:var(--ui-text);line-height:1.7;font-size:14px}.ui-lib-guide p{margin:4px 0}.ui-lib-guide code{font-family:Consolas,monospace;overflow-wrap:anywhere}
.ui-lib-guide pre{white-space:pre-wrap;max-height:220px;overflow:auto;font:12px/1.6 Consolas,monospace}.ui-lib-guide>p{overflow-wrap:anywhere}
body[data-ui-page=spl-library] .periph-card-files{font-size:11px;color:var(--ui-dim)}
body[data-ui-page=spl-library] .spl-search{height:44px;background:var(--ui-panel)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important;width:100%;max-width:640px}
body[data-ui-page=spl-library] #libOverlay{background:var(--ui-bg)!important}
body[data-ui-page=spl-library] #libOverlay .overlay-topbar{background:var(--ui-panel)!important;color:var(--ui-text)}
.ui-records-details{margin:16px 0}.ui-records-details>summary{padding:14px}
body[data-ui-page=index] .records-next-card{background:var(--ui-panel)!important;border-color:var(--ui-line)!important;color:var(--ui-text)!important}
body[data-ui-page=index] .records-drawer-panel,body[data-ui-page=index] .records-drawer-header,body[data-ui-page=index] .records-drawer-footer{background:var(--ui-bg)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important}
body[data-ui-page=index] .records-row2{grid-template-columns:1fr!important}
body[data-ui-page^=wiring-3d] :is(.side,.sidebar,.control-panel){background:var(--ui-panel)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important}
body[data-ui-page^=wiring-3d] :is(.section,.panel-section){border-color:var(--ui-line)!important}
body[data-ui-page^=wiring-3d] :is(.topbar,.app-header){background:var(--ui-panel)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important}
body[data-ui-page^=wiring-3d] :is(.topbar,.app-header) .back-link{background:var(--ui-panel);color:var(--ui-text);border-color:var(--ui-line)}
body[data-ui-page^=wiring-3d] :is(.title,.section-title,h2,h3){color:var(--ui-text)!important}
body[data-ui-page^=wiring-3d] .ui-wiring-return{display:flex;align-items:center;gap:10px;margin:0 0 14px;flex-wrap:wrap}
body[data-ui-page^=wiring-3d] .ui-fold{margin:10px 0}.ui-wiring-help{font-size:13px;line-height:1.7;color:var(--ui-dim)}
body[data-ui-page^=xunji-] main{max-width:1440px;padding:22px 3vw;margin:auto}
body[data-ui-page^=xunji-] .workspace>section{border-color:var(--ui-line);border-radius:12px}
body[data-ui-page=cover] .desc{max-width:530px;line-height:1.8}
@media(max-width:1100px){body[data-ui-page=index]>.page{grid-template-columns:1fr}body[data-ui-page=index] #learningAssistant{padding-top:0;display:block;width:100%}body[data-ui-page=index] .assistant-filters{padding:16px}body[data-ui-page=practice] .practice-workspace{grid-template-columns:1fr}body[data-ui-page=practice] .practice-tabs{display:flex}body[data-ui-page=practice] .practice-workspace [data-practice-panel][hidden]{display:none}.ui-nav .nav-search-wrap{order:3;max-width:none;flex-basis:100%}}
@media(max-width:760px){.ui-nav{padding:10px 14px!important;gap:8px}.ui-nav .nav-links,.ui-links{order:4;flex:1 0 100%;overflow:auto;justify-content:space-between}.ui-nav :is(.nav-links,.ui-links) a{font-size:13px;padding:8px}.ui-nav>span:not(.nav-title){display:none}.ui-nav .ui-theme{padding:8px}body[data-ui-page=index]>.page,body[data-ui-page=project]>.page{padding:12px 14px 30px}body[data-ui-page=index] .learning-entry-grid{grid-template-columns:1fr}body[data-ui-page=index] :is(.learning-entry,#assistantNextCard){min-height:0}body[data-ui-page=index] .hero-row{grid-template-columns:1fr}body[data-ui-page=index] .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-intro{padding:14px 0 20px}.ui-download-kinds{grid-template-columns:1fr}body[data-ui-page=practice] .practice-shell{padding:12px}body[data-ui-page=project] .module-card{padding:14px;gap:10px}.ui-start{margin-left:0}.ui-editor-settings>div{width:216px}body[data-ui-page] #codeOverlay>.overlay-topbar{gap:6px;padding:8px}body[data-ui-page] .overlay-module-info{max-width:calc(100% - 85px)}body[data-ui-page] #codeOverlay .overlay-check-btn{order:0}body[data-ui-page] .ui-editor-settings{margin-left:0}.ui-guide-start{display:grid}.ui-lib-guide{font-size:13px}}
@media(prefers-reduced-motion:reduce){body[data-ui-page] *,body[data-ui-page] *::before,body[data-ui-page] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:760px){body[data-ui-page=index] .hero-row{grid-template-columns:1fr!important}body[data-ui-page=project] .wiring-card{grid-template-columns:1fr!important}body[data-ui-page=project] .wiring-preview{height:130px!important}.ui-nav .nav-search-wrap{display:block!important}}

/* Lab visual pass: a distinctive landing page, with quiet study/workspace surfaces. */
body[data-ui-page] a.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:11px 18px;border-radius:12px;font:600 14px/1.35 var(--ui-font);text-decoration:none!important;white-space:nowrap;color:var(--ui-text);background:var(--ui-raised);border:1px solid var(--ui-line);transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
body[data-ui-page] a.ui-button:hover{border-color:var(--ui-accent);background:var(--ui-panel);box-shadow:0 5px 18px #0002}
body[data-ui-page] a.ui-button:active{transform:translateY(1px);box-shadow:none}
body[data-ui-page] a.ui-button:focus-visible{outline-width:3px!important;outline-offset:4px}
body[data-ui-page=index]{--lab-mint:#9ef3d0;--lab-cyan:#89dffc;--lab-panel:#121e2b;--lab-line:#30454f;background:#0a111a!important}
html[data-ui-theme=light] body[data-ui-page=index]{--lab-mint:#107458;--lab-cyan:#126c95;--lab-panel:#fff;--lab-line:#c8dbdf;background:#f2f7f9!important}
body[data-ui-page=index]>.page{max-width:1440px;padding:0 40px 56px;gap:0}
body[data-ui-page=index] .ui-nav{background:color-mix(in srgb,var(--ui-bg) 88%,transparent)!important;backdrop-filter:blur(18px);border-bottom-color:color-mix(in srgb,var(--lab-line) 65%,transparent)!important}
body[data-ui-page=index] .nav-logo-icon{background:linear-gradient(145deg,#b5f7ce,#6bdbe7)!important;color:#0a302f!important}
body[data-ui-page=index] .ui-lab-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:1.03fr 1fr;align-items:center;min-height:475px;padding:40px 0 46px;margin:0;gap:0;overflow:hidden;background:radial-gradient(ellipse at 79% 49%,#1767762e,transparent 56%);border-bottom:1px solid var(--lab-line)}
.ui-lab-hero::before{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(#80c9c508 1px,transparent 1px),linear-gradient(90deg,#80c9c508 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(90deg,transparent 12%,#000 90%);pointer-events:none}
.ui-lab-copy{position:relative;z-index:2;min-width:0;padding:10px 0 0 6px}
.ui-lab-eyebrow{display:flex;align-items:center;gap:12px;font:11px/1.4 Consolas,monospace;font-weight:600;letter-spacing:2.5px;color:var(--lab-mint);margin-bottom:22px}
.ui-lab-eyebrow::before{content:"";width:26px;height:2px;background:var(--lab-mint)}
body[data-ui-page=index] .ui-lab-hero h1{font-size:clamp(36px,4.15vw,64px);font-weight:800;line-height:1.24;letter-spacing:-.035em;margin:0 0 22px;text-wrap:initial}
.ui-lab-hero h1>span{display:block;white-space:nowrap}
.ui-lab-title-accent{color:var(--lab-mint);background:linear-gradient(105deg,var(--lab-mint) 10%,var(--lab-cyan) 85%);background-clip:text;-webkit-text-fill-color:transparent}
body[data-ui-page=index] .ui-lab-copy>p{font-size:15px;line-height:1.8;color:var(--ui-dim);margin:0;max-width:480px}
.ui-lab-hero-actions{display:flex;align-items:center;gap:18px;margin-top:28px;flex-wrap:wrap}
.ui-lab-caption{color:var(--ui-dim);font-size:12px;line-height:1.6}
.ui-lab-flow{display:flex;gap:0;flex-wrap:wrap;margin-top:30px;color:var(--ui-dim);font-size:11px;font-family:var(--ui-font);letter-spacing:1px}
.ui-lab-flow span+span::before{content:"/";margin:0 17px;color:var(--lab-line)}
.ui-lab-art{position:relative;margin:-10px -36px -10px -18px;min-width:0;pointer-events:none}
.ui-lab-art img{display:block;width:100%;height:auto;max-height:460px;object-fit:contain;filter:drop-shadow(0 24px 28px #0005);animation:lab-float 7s ease-in-out infinite}
.ui-lab-art figcaption{text-align:center;font:10px/1.5 var(--ui-font);color:var(--ui-dim);opacity:.8;letter-spacing:1px;margin-top:-18px}
.ui-lab-motion{position:absolute;right:12px;bottom:14px;border:0;border-radius:6px;padding:5px 8px;background:transparent;color:var(--ui-dim);font:11px/1.4 var(--ui-font)}
.ui-lab-motion:hover{background:var(--ui-raised);color:var(--ui-text)}
.ui-lab-motion:disabled{opacity:.65}
.ui-lab-hero[data-paused=true] .ui-lab-art img{animation-play-state:paused}
@keyframes lab-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
body[data-ui-page=index] a.ui-lab-action{gap:20px;min-height:48px;padding:11px 12px 11px 20px;line-height:1.4;border-radius:12px;background:#203342;color:#e0f5f3;border-color:#44606c;font-weight:650}
body[data-ui-page=index] a.ui-lab-action:hover{background:#294351;border-color:#8bd9c8;box-shadow:0 8px 24px #0003;transform:translateY(-2px)}
body[data-ui-page=index] a.ui-lab-action:active{transform:translateY(0)}
body[data-ui-page=index] a.ui-lab-action.ui-primary{background:linear-gradient(115deg,#b3f7cf,#80e4df)!important;color:#082d2c!important;border-color:#a5e9d3!important;box-shadow:0 4px 20px #63dbb31c}
body[data-ui-page=index] a.ui-lab-action.ui-primary:hover{box-shadow:0 7px 28px #73edcc30;background:linear-gradient(115deg,#c9ffdf,#9cf2ed)!important}
.ui-action-arrow{display:grid;place-items:center;width:25px;height:25px;flex:none;border-radius:50%;background:#ffffff0c;transition:transform .18s ease}
.ui-primary .ui-action-arrow{background:#083e3610}
.ui-action-arrow svg{width:16px;height:16px}
.ui-lab-action:hover .ui-action-arrow{transform:translateX(2px)}
html[data-ui-theme=light] body[data-ui-page=index] a.ui-lab-action:not(.ui-primary){background:#e2f0f0;color:#16444d;border-color:#b1ced1}
html[data-ui-theme=light] body[data-ui-page=index] a.ui-lab-action:not(.ui-primary):hover{background:#d6e9eb;border-color:#498978}
body[data-ui-page=index] .learning-entry-grid{gap:16px;margin:28px 0 40px;scroll-margin-top:110px}
body[data-ui-page=index] .learning-entry,body[data-ui-page=index] #assistantNextCard{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:246px;padding:24px;border-radius:18px!important;background:linear-gradient(140deg,#182b36,#121d2b 80%)!important;border-color:var(--lab-line)!important;box-shadow:inset 0 1px #ffffff05!important}
body[data-ui-page=index] .learning-entry:hover,body[data-ui-page=index] #assistantNextCard:hover{border-color:#597c83!important}
body[data-ui-page=index] #assistantNextCard{background:radial-gradient(ellipse at 110% 0,#38766745,transparent 70%),linear-gradient(130deg,#1a3036,#14232f)!important}
body[data-ui-page=index] :is(.learning-entry h2,.assistant-title){font-size:18px;line-height:1.4;letter-spacing:-.02em;margin-bottom:9px}
body[data-ui-page=index] .learning-entry p{min-height:0;margin:0 0 22px;max-width:310px;font-size:13px;line-height:1.7}
.ui-lab-entry-icon{width:34px;height:34px;display:grid;place-items:center;margin-bottom:14px;color:var(--lab-mint)}
.ui-lab-entry-icon svg{width:26px;height:26px}
.ui-lab-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:auto;width:100%}
body[data-ui-page=index] #assistantNextCard .assistant-next-project{font-size:18px;max-width:100%}
body[data-ui-page=index] #assistantNextCard .assistant-next-module{margin-top:15px;font-weight:500}
body[data-ui-page=index] #assistantNextCard .assistant-next-meta{width:100%;font-size:11px;margin:10px 0 18px;color:var(--ui-dim)}
body[data-ui-page=index] #assistantNextCard .assistant-primary{width:100%;margin-top:auto;padding:12px 18px;min-height:48px;border-radius:12px;background:linear-gradient(110deg,#c1f9d9,#91e6e2);color:#103a36;border:1px solid #b2f3dd;box-shadow:none;font-size:14px;font-weight:700;text-align:left}
body[data-ui-page=index] #assistantNextCard .assistant-primary::after{content:"→";float:right;font-size:18px;line-height:20px}
body[data-ui-page=index] #assistantNextCard .assistant-primary:hover{background:#cdffec;box-shadow:0 6px 20px #68d7b921}
body[data-ui-page=index] .ui-section-heading{display:flex;align-items:center;gap:14px;font-size:23px;letter-spacing:-.03em;margin:36px 0 22px}
body[data-ui-page=index] .ui-section-heading::before{content:"";width:4px;height:21px;border-radius:3px;background:var(--lab-mint)}
body[data-ui-page=index] #uiFilters{background:transparent;border-color:var(--lab-line);margin:0 0 22px;border-radius:12px}
body[data-ui-page=index] :is(.project-card,.side-card,.featured-card){border-radius:18px!important;border-color:var(--lab-line)!important;background:var(--lab-panel)!important;transition:background .2s ease,border-color .2s ease}
body[data-ui-page=index] :is(.project-card,.side-card,.featured-card):hover{border-color:var(--lab-mint)!important;box-shadow:0 8px 32px #0002!important}
body[data-ui-page=index] .featured-card{background:radial-gradient(ellipse at 100% 30%,#24464c66,transparent 65%),var(--lab-panel)!important;padding:28px}
body[data-ui-page=index] .featured-title{font-size:30px}
body[data-ui-page=index] .featured-card .btn-start{padding:12px 20px;border-radius:12px;background:#a9efd5!important;color:#103a36!important;box-shadow:none!important;font-size:14px}
body[data-ui-page=index] .project-card{padding:24px}
body[data-ui-page=index] #projectGrid{scroll-margin-top:105px}
html[data-ui-theme=light] body[data-ui-page=index] :is(.learning-entry,#assistantNextCard){background:linear-gradient(135deg,#fff,#edf6f5)!important}
html[data-ui-theme=light] body[data-ui-page=index] .featured-card{background:radial-gradient(ellipse at 100% 30%,#d9efec,transparent 65%),#fff!important}
html[data-ui-theme=light] body[data-ui-page=index] .ui-lab-hero{background:radial-gradient(ellipse at 78% 55%,#b8e9de9c,transparent 65%)}
html[data-ui-theme=light] .ui-lab-art img{filter:drop-shadow(0 18px 20px #38576d25)}
@media(min-width:1700px){body[data-ui-page=index] .ui-lab-hero{min-height:525px}}
@media(max-width:1100px){body[data-ui-page=index]>.page{padding-left:28px;padding-right:28px}body[data-ui-page=index] .ui-lab-hero h1{font-size:clamp(36px,4.5vw,49px)}.ui-lab-caption{display:none}.ui-lab-art{margin:0 -40px 0 -10px}.ui-lab-flow span+span::before{margin:0 10px}body[data-ui-page=index] .learning-entry,body[data-ui-page=index] #assistantNextCard{padding:20px}.ui-lab-actions{gap:8px}body[data-ui-page=index] a.ui-lab-action{gap:12px;padding-left:15px}}
@media(max-width:760px){body[data-ui-page=index]>.page{padding:0 18px 32px}body[data-ui-page=index] .ui-lab-hero{grid-template-columns:1fr;min-height:0;padding:32px 0 42px}.ui-lab-copy{padding:0 3px}.ui-lab-eyebrow{font-size:10px;letter-spacing:2px;margin-bottom:18px}body[data-ui-page=index] .ui-lab-hero h1{font-size:clamp(30px,8vw,48px);line-height:1.28;margin-bottom:16px}body[data-ui-page=index] .ui-lab-copy>p{max-width:340px;font-size:13px}.ui-lab-hero-actions{margin-top:20px}.ui-lab-flow{margin-top:23px}.ui-lab-art{width:100%;max-width:490px;justify-self:center;margin:12px 0 -4px}.ui-lab-art img{max-height:285px}.ui-lab-art figcaption{margin-top:-9px;font-size:9px}.ui-lab-motion{bottom:10px;right:0;font-size:10px}body[data-ui-page=index] .learning-entry-grid{gap:12px;margin-top:22px;margin-bottom:28px}body[data-ui-page=index] .learning-entry,body[data-ui-page=index] #assistantNextCard{padding:23px;min-height:220px}body[data-ui-page=index] .ui-section-heading{font-size:21px;margin-top:28px}body[data-ui-page=index] .project-card{padding:18px 14px}body[data-ui-page=index] .featured-title{font-size:25px}.ui-lab-entry-icon{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){body[data-ui-page] a.ui-button,.ui-action-arrow{transition:none!important}.ui-lab-art img{animation:none!important;transform:none!important}}

/* Generated project cutouts have their own space; all card links stay original. */
.ui-art-note{display:block;margin-top:6px;font:400 11px/1.6 var(--ui-font);letter-spacing:0;color:var(--ui-dim)}
body[data-ui-page=index] .ui-project-art{position:relative;display:grid;place-items:center;min-width:0;height:190px;margin:16px 0 18px;border-radius:14px;background:radial-gradient(ellipse at 50% 55%,#72c7b11b,transparent 70%);isolation:isolate;pointer-events:none}
body[data-ui-page=index] .ui-project-art img{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;opacity:0;filter:drop-shadow(0 12px 12px #0003)}
body[data-ui-page=index] .ui-project-art[data-state=ready] img{opacity:1}
body[data-ui-page=index] .ui-project-art[data-state=error] img{visibility:hidden}
body[data-ui-page=index] .ui-project-art .ui-art-fallback{position:absolute;width:56px;height:56px;display:grid;place-items:center;margin:0;border:1px solid var(--ui-line);border-radius:16px;background:var(--ui-raised)!important;font-size:30px;box-shadow:none}
body[data-ui-page=index] .ui-project-art[data-state=ready] .ui-art-fallback{display:none!important}
body[data-ui-page=index] .featured-card.ui-with-art{display:flex;flex-direction:column}
body[data-ui-page=index] .featured-card.ui-with-art>.ui-project-art{height:260px;margin:0 0 12px;flex:none}
body[data-ui-page=index] .featured-card.ui-with-art>.featured-content{position:relative;flex:1}
body[data-ui-page=index] .side-card.ui-with-art{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px!important;align-items:center;padding:18px}
body[data-ui-page=index] .side-card.ui-with-art>.ui-project-art{height:170px;margin:0;grid-column:1;grid-row:1}
body[data-ui-page=index] .ui-side-copy{min-width:0;grid-column:2;grid-row:1}
body[data-ui-page=index] .side-card.ui-with-art .project-stage-badge{position:static;display:inline-flex;margin:0 0 10px;width:auto}
body[data-ui-page=index] .ui-side-copy .side-card-title{font-size:17px;margin:0 0 8px}
body[data-ui-page=index] .ui-side-copy .side-card-desc{font-size:12px;line-height:1.7}
body[data-ui-page=index] .project-card.ui-with-art>.project-stage-badge{z-index:2}
body[data-ui-page=index] .project-card.ui-with-art .project-card-title{font-size:17px;line-height:1.5}
html[data-ui-theme=light] body[data-ui-page=index] .ui-project-art{background:radial-gradient(ellipse at 50% 55%,#9bd6c72e,transparent 72%)}
html[data-ui-theme=light] body[data-ui-page=index] .ui-project-art img{filter:drop-shadow(0 10px 10px #335c6426)}
@media(max-width:1100px){body[data-ui-page=index] .ui-project-art{height:170px}body[data-ui-page=index] .featured-card.ui-with-art>.ui-project-art{height:230px}body[data-ui-page=index] .side-card.ui-with-art{padding:14px;gap:10px!important}body[data-ui-page=index] .side-card.ui-with-art>.ui-project-art{height:145px}}
@media(max-width:760px){body[data-ui-page=index] .featured-card.ui-with-art>.ui-project-art{height:210px}body[data-ui-page=index] .project-card.ui-with-art>.ui-project-art{height:120px;margin:22px 0 12px}body[data-ui-page=index] .side-card.ui-with-art>.ui-project-art{height:145px}body[data-ui-page=index] .project-card.ui-with-art .project-card-title{font-size:15px}.ui-art-note{font-size:10px}}
@media(max-width:360px){body[data-ui-page=index] .project-grid{grid-template-columns:1fr}body[data-ui-page=index] .project-card.ui-with-art>.ui-project-art{height:170px;margin-top:14px}}

/* A single navigation shell for every study page, including the journal. */
body[data-ui-page] .ui-site-nav{position:sticky!important;top:0;z-index:60;display:grid!important;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:center;gap:20px!important;flex-shrink:0;width:100%;max-width:none;margin:0;padding:12px max(20px,3vw)!important;min-height:72px;height:auto!important;background:var(--ui-panel)!important;border:0!important;border-bottom:1px solid var(--ui-line)!important;border-radius:0;box-shadow:none!important;backdrop-filter:none!important;font-family:var(--ui-font)}
.ui-site-nav .ui-nav-brand,.ui-site-nav .ui-nav-controls{display:flex;align-items:center;gap:12px;min-width:0}
.ui-site-nav .ui-nav-controls{justify-self:end;gap:8px}
body[data-ui-page] .ui-site-nav .nav-logo{margin:0!important;padding:0!important;font:700 16px/1.4 var(--ui-font)!important;gap:9px;color:var(--ui-text)!important;min-height:38px!important;height:38px!important;text-decoration:none!important;flex-shrink:0}
body[data-ui-page] .ui-site-nav .nav-logo-icon{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;background:linear-gradient(145deg,#b5f7ce,#6bdbe7)!important;color:#0a302f!important;border-radius:9px;font:700 14px/1 var(--ui-font);box-shadow:none!important}
body[data-ui-page] .ui-site-nav .nav-logo-icon::before,body[data-ui-page] .ui-site-nav .nav-logo-icon::after{display:none!important}
body[data-ui-page] .ui-site-nav .nav-links{grid-column:2;grid-row:1;justify-self:center;gap:4px;width:auto!important;min-width:0;margin:0!important;padding:0!important;overflow:visible;order:0}
body[data-ui-page] .ui-site-nav .nav-links a{font:500 14px/1.4 var(--ui-font)!important;min-height:38px;padding:8px 12px!important;border-radius:9px;display:flex;align-items:center;justify-content:center;text-decoration:none!important}
body[data-ui-page] .ui-site-nav button{font:500 12px/1.4 var(--ui-font)!important;min-height:38px;padding:8px 11px!important;border:1px solid var(--ui-line)!important;border-radius:9px;background:var(--ui-panel)!important;color:var(--ui-text)!important;box-shadow:none!important;margin:0;white-space:nowrap}
body[data-ui-page] .ui-site-nav button:hover:not(:disabled){background:var(--ui-raised)!important}
body[data-ui-page] .ui-site-nav .ui-nav-back{gap:6px;min-width:64px}
body[data-ui-page] .ui-site-nav .ui-nav-back:disabled{opacity:.4;cursor:default}
body[data-ui-page] .ui-site-nav .ui-theme{min-width:48px}
body[data-ui-page] .ui-site-nav .ui-motion-toggle{min-width:82px}
.ui-page-tools{display:flex;justify-content:flex-end;margin:14px 0;position:relative;z-index:45}
.ui-page-tools .nav-search-wrap{display:block!important;position:relative;width:min(100%,370px);flex:0 1 370px;min-width:0;max-width:370px;margin:0}
.ui-page-tools .nav-search-input{background:var(--ui-panel)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important;border-radius:10px!important}
.ui-page-tools .nav-search-dropdown{background:var(--ui-panel)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important}
#sourceLessons{scroll-margin-top:calc(var(--ui-nav-height,72px) + 24px)}
@media(max-width:1050px){body[data-ui-page] .ui-site-nav{grid-template-columns:1fr auto;gap:9px 14px!important;padding:10px 20px!important}body[data-ui-page] .ui-site-nav .nav-links{grid-column:1/-1;grid-row:2;justify-self:center;justify-content:center;width:100%!important;overflow-x:auto}body[data-ui-page] .ui-site-nav .ui-nav-controls{grid-column:2;grid-row:1}}
@media(max-width:480px){body[data-ui-page] .ui-site-nav{padding:9px 14px!important;gap:8px!important}.ui-site-nav .ui-brand-label{display:none}.ui-site-nav .ui-nav-brand{gap:10px}body[data-ui-page] .ui-site-nav .nav-links{justify-content:space-between;gap:2px}body[data-ui-page] .ui-site-nav .nav-links a{font-size:13px!important;padding:8px 10px!important}body[data-ui-page] .ui-site-nav .ui-nav-back{min-width:60px}.ui-page-tools{margin:10px 0}}

/* Failed source checks: one action first, explanations on request. */
body[data-ui-page] #codeOverlay .diagnostic-brief{padding:14px;margin:0 0 12px;background:var(--ed-code)!important;color:var(--ed-text)!important;border:1px solid var(--ed-line)!important;border-left:3px solid var(--ed-accent)!important;border-radius:9px;box-shadow:none!important;overflow-wrap:anywhere}
.diagnostic-brief .diagnostic-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
body[data-ui-page] #codeOverlay .diagnostic-brief .diagnostic-title{color:var(--ed-text)!important;font-size:14px;line-height:1.5;font-weight:650;margin:0}
.diagnostic-brief .diagnostic-close{font:18px/1 system-ui!important;flex-shrink:0;background:none!important;border:0;padding:2px 4px;color:var(--ed-dim)!important;cursor:pointer}
.diagnostic-brief .diagnostic-location{margin-top:7px;font-size:11px;color:var(--ed-dim);line-height:1.6}
.diagnostic-brief .diagnostic-location code{font:11px/1.6 Consolas,monospace;color:var(--ed-accent);margin-left:5px;white-space:normal}
.diagnostic-brief .diagnostic-problem{font-size:12px;line-height:1.65;margin:13px 0 0;color:var(--ed-dim)}
.diagnostic-brief .diagnostic-action{border-radius:7px;padding:10px 11px;margin-top:10px;background:color-mix(in srgb,var(--ed-accent) 9%,var(--ed-code));border:1px solid color-mix(in srgb,var(--ed-accent) 25%,var(--ed-line))}
.diagnostic-brief .diagnostic-action b{display:block;font-size:11px;font-weight:600;color:var(--ed-accent);margin-bottom:3px}
.diagnostic-brief .diagnostic-action p{font-size:13px;line-height:1.7;color:var(--ed-text);margin:0}
.diagnostic-brief .diagnostic-more{border:0;background:none;margin-top:12px;padding:0;font-size:11px;color:var(--ed-dim)}
.diagnostic-brief .diagnostic-more summary{cursor:pointer;padding:4px 0;color:var(--ed-dim);font-weight:400}
.diagnostic-brief .diagnostic-more p{margin:9px 0;font-size:12px;line-height:1.7;color:var(--ed-dim)}
.diagnostic-brief .diagnostic-more .diagnostic-limit{font-size:11px;border-top:1px solid var(--ed-line);padding-top:9px}
.diagnostic-brief .diagnostic-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.diagnostic-brief .diagnostic-actions:empty{display:none}
body[data-ui-page] #codeOverlay .diagnostic-brief :is(.diagnostic-locate,.diagnostic-reference,.diagnostic-copy){border:1px solid var(--ed-line);border-radius:7px;padding:7px 10px;font:500 11px/1.4 var(--ui-font);color:var(--ed-text)!important;background:var(--ed-panel)!important;cursor:pointer}
body[data-ui-page] #codeOverlay .diagnostic-brief .diagnostic-locate{color:var(--ed-accent)!important}
.diagnostic-brief .diagnostic-status{margin:8px 0 0;font-size:11px;color:var(--ed-dim);line-height:1.6}
.diagnostic-brief .diagnostic-status:empty{display:none}
/* Project learning goals: small surface, detailed checks on demand. */
.check-goal { border: 1px solid var(--border, #334155); border-radius: 14px; padding: 12px 14px; margin: 10px 0; background: var(--bg-secondary, rgba(120,140,170,.05)); }
.check-goal-title { display:flex; align-items:center; justify-content:space-between; gap:12px; font-weight:650; line-height:1.5; }
.check-goal-state { font-size:11px; font-weight:500; white-space:nowrap; color:var(--text-muted, #8996a9); }
.check-goal.all-pass .check-goal-state { color:var(--success, #159c70); }
.check-goal.has-fail .check-goal-state { color:var(--warning, #c8872b); }
.check-goal.needs-observation { border-style:dashed; }
.check-goal-pending { margin:7px 0 0; font-size:12px; color:var(--text-muted, #8996a9); }
.check-summary.has-pending { border-left:3px solid var(--accent, #86b4ff); background:var(--bg-secondary, rgba(120,140,170,.05)); }
.check-goal > .check-item { margin-top:8px; border:0; background:transparent; padding:8px 0; }
.check-goal-details > summary { cursor:pointer; font-size:12px; color:var(--text-muted, #8996a9); padding:7px 0 1px; }
.check-goal-details[open] > summary { margin-bottom:8px; }
.check-goal .check-label { overflow-wrap:anywhere; }
.check-next-test { display:block; margin:10px 0 0; padding:7px 11px; border:1px solid currentColor; border-radius:8px; background:transparent; color:inherit; cursor:pointer; font:inherit; font-size:12px; }
.check-next-note { display:block; margin-top:8px; font-size:12px; }

/* Project workbench: compact navigation above code, reference scrolls independently. */
body[data-ui-page] #codeOverlay .wb-editor-area{flex-direction:column;min-height:0}
body[data-ui-page] #codeOverlay .wb-code-surface{display:flex;flex:1;min-width:0;min-height:0}
body[data-ui-page] #codeOverlay .wb-code-surface>div{min-height:0}
body[data-ui-page] #codeOverlay .wb-pane-header{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-height:42px;padding:5px 10px;background:var(--ed-panel);color:var(--ed-dim);border:1px solid var(--ed-line);border-radius:9px 9px 0 0;font:12px/1.4 var(--font);white-space:nowrap}
body[data-ui-page] #codeOverlay .wb-pane-name{font-weight:600;color:var(--ed-text);flex-shrink:0}
body[data-ui-page] #codeOverlay .wb-pane-header :is(button,select),body[data-ui-page] #codeOverlay .wb-findbar :is(button,input){min-height:30px;padding:4px 8px;border:1px solid var(--ed-line);border-radius:6px;color:var(--ed-text);background:var(--ed-code);font:12px/1.4 var(--font)}
body[data-ui-page] #codeOverlay .wb-pane-header button,body[data-ui-page] #codeOverlay .wb-findbar button{cursor:pointer;flex-shrink:0}
body[data-ui-page] #codeOverlay .wb-pane-header :is(button,select):hover,body[data-ui-page] #codeOverlay .wb-findbar button:hover{border-color:var(--ed-accent)}
body[data-ui-page] #codeOverlay :is(.wb-pane-header,.wb-findbar) :is(button,select,input):focus-visible{outline:2px solid var(--ed-accent);outline-offset:2px}
body[data-ui-page] #codeOverlay .wb-pane-header button[aria-pressed=true]{color:var(--ed-accent);border-color:color-mix(in srgb,var(--ed-accent) 45%,var(--ed-line));background:color-mix(in srgb,var(--ed-accent) 8%,var(--ed-code))}
body[data-ui-page] #codeOverlay #projectFunctionNav{min-width:70px;width:0;flex:1;text-overflow:ellipsis;font-family:Consolas,monospace}
body[data-ui-page] #codeOverlay .wb-reference-pane{display:none;flex:1;min-width:0;min-height:0}
body[data-ui-page] #codeOverlay .split .wb-reference-pane{display:flex;flex-direction:column}
body[data-ui-page] #codeOverlay .wb-reference-pane .overlay-source-panel{flex:1;min-height:0;padding:14px 0;border-radius:0 0 9px 9px;border-top:0}
body[data-ui-page] #codeOverlay .wb-readonly{font-size:10px;color:var(--ed-dim);padding:2px 5px;border:1px solid var(--ed-line);border-radius:4px}
body[data-ui-page] #codeOverlay .wb-reference-function{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ed-accent);font:12px/1.4 Consolas,monospace}
body[data-ui-page] #codeOverlay .wb-reference-pane .hl-line{display:inline-block;min-width:100%;padding-right:14px;box-sizing:border-box;scroll-margin-top:20px}
body[data-ui-page] #codeOverlay .wb-reference-pane .hl-line::before{content:attr(data-line);display:inline-block;position:sticky;left:0;min-width:3.6em;margin-right:14px;padding:0 10px 0 6px;text-align:right;color:var(--ed-dim);background:var(--ed-code);border-right:1px solid var(--ed-line);box-sizing:border-box;user-select:none}
body[data-ui-page] #codeOverlay .overlay-source-panel .hl-line:is(.err-line,.peer-line,.wb-reference-target){background:color-mix(in srgb,var(--ed-accent) 12%,var(--ed-code));box-shadow:inset 3px 0 var(--ed-accent);border-left:0;padding-left:0;margin-left:0;text-decoration:none}
body[data-ui-page] #codeOverlay .wb-reference-pane .hl-line:is(.err-line,.peer-line,.wb-reference-target)::before{color:var(--ed-accent);background:color-mix(in srgb,var(--ed-accent) 12%,var(--ed-code))}
body[data-ui-page] #codeOverlay .wb-findbar{display:flex;gap:6px;align-items:center;padding:6px 10px;background:var(--ed-panel);border:1px solid var(--ed-line);border-top:0;color:var(--ed-dim);flex:0 0 auto}
body[data-ui-page] #codeOverlay .wb-findbar[hidden]{display:none}
body[data-ui-page] #codeOverlay .wb-findbar input{min-width:50px;width:0;flex:1}
body[data-ui-page] #codeOverlay .wb-findbar button{min-width:30px}
body[data-ui-page] #codeOverlay .wb-findbar button:disabled{opacity:.4;cursor:default}
body[data-ui-page] #codeOverlay .wb-find-count{min-width:36px;font:11px/1.4 Consolas,monospace;text-align:center}
body[data-ui-page] #highlightLayer::highlight(project-find){background-color:#a47f2e66}
body[data-ui-page] #highlightLayer::highlight(project-find-current){background-color:#f6d47c;color:#192537}
body[data-ui-page] #codeOverlay.wb-focus-mode .overlay-check-panel{display:none}
body[data-ui-page] #codeOverlay .overlay-resize-handle:focus-visible{outline:2px solid var(--ed-accent);outline-offset:0;background:var(--ed-line)}
@media(max-width:900px){
 body[data-ui-page] #codeOverlay .overlay-editor-wrap.split .wb-reference-pane{flex:0 0 calc(42vh + 42px);min-height:302px}
 body[data-ui-page] #codeOverlay .overlay-editor-wrap.split .wb-reference-pane .overlay-source-panel{flex:1;min-height:260px}
 body[data-ui-page] #codeOverlay .wb-pane-header{gap:6px;padding-inline:7px}
 body[data-ui-page] #codeOverlay .wb-pane-header :is(button,select){padding-inline:6px}
}
