/* Student appearance only; administration and code editor token themes stay intact. */
body.lab-theme{--lab-bg:#f5f8fc;--lab-surface:#ffffff;--lab-line:#dbe5ef;--lab-text:#263950;--lab-muted:#63768d;background:var(--lab-bg)!important;color:var(--lab-text)!important;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;background-image:radial-gradient(ellipse at 80% 10%,#7bafc355,transparent 42%)!important}
body.lab-theme #app,body.lab-theme #app>.full-height{background:transparent!important}
.lab-theme #oj-content{max-width:1440px;margin:26px auto 40px!important;padding:0 30px!important;box-sizing:border-box;width:100%;background:transparent!important}
.lab-theme .el-menu,.lab-theme .el-submenu__title,.lab-theme .el-menu-item{background:#ffffff!important;color:#287bb0!important;border-color:var(--lab-line)!important}
.lab-theme .el-menu--horizontal{box-shadow:0 4px 30px #7bafc322}
.lab-theme .el-menu--horizontal>.el-menu-item,.lab-theme .el-menu--horizontal>.el-submenu>.el-submenu__title{height:70px;line-height:70px;font-weight:600;font-size:14px}
.lab-theme .el-menu-item.is-active,.lab-theme .el-menu-item:hover,.lab-theme .el-submenu__title:hover{color:#168364!important;background:#dbe6ef!important;border-bottom-color:#168364!important}
.lab-theme .logo{position:relative;min-width:175px;padding:0 20px!important;display:flex;align-items:center;height:70px!important;box-sizing:border-box}
.lab-theme .logo .el-image{display:none!important}.lab-theme .logo:before{content:'⌘';font-size:30px;color:#168364;margin-right:9px}.lab-theme .logo:after{content:'利教 CODELAB';font-size:15px;font-weight:800;letter-spacing:.8px;color:#287bb0;white-space:nowrap}
.lab-theme .el-card{background:linear-gradient(125deg,#ffffff,#fafdff)!important;color:var(--lab-text)!important;border:1px solid var(--lab-line)!important;border-radius:16px!important;box-shadow:0 8px 30px #7bafc322!important}
.lab-theme .el-card__header{border-color:var(--lab-line)!important;padding:20px 24px!important;color:var(--lab-text)}
.lab-theme .el-card__body{padding:22px!important}.lab-theme .panel-title,.lab-theme .home-title{color:var(--lab-text)!important;font-weight:700!important}
.lab-theme .el-table,.lab-theme .el-table tr,.lab-theme .el-table th,.lab-theme .el-table td,.lab-theme .el-table__expanded-cell{background:#ffffff!important;color:#287bb0!important;border-color:#e2eaf2!important}
.lab-theme .el-table th{background:#edf3f9!important;color:#287bb0!important;font-weight:600;letter-spacing:.3px}
.lab-theme .el-table td{padding-top:14px!important;padding-bottom:14px!important}.lab-theme .el-table:before,.lab-theme .el-table--border:after{background:#dbe5ef!important}
.lab-theme .el-table--enable-row-hover .el-table__body tr:hover>td,.lab-theme .el-table tr.hover-row>td{background:#eaf4fb!important}
.lab-theme .el-input__inner,.lab-theme .el-textarea__inner{background:#ffffff!important;color:#287bb0!important;border:1px solid #cbd8e7!important;border-radius:9px!important}
.lab-theme .el-input__inner::placeholder,.lab-theme .el-textarea__inner::placeholder{color:#287bb0!important}
.lab-theme .el-input__inner:focus,.lab-theme .el-textarea__inner:focus{border-color:#168364!important;box-shadow:0 0 0 3px #73b9c015}
.lab-theme .el-button{background:#f1f6fb!important;border-color:#c9d7e7!important;color:#287bb0!important;border-radius:8px!important}
.lab-theme .el-button:hover{border-color:#168364!important;color:#168364!important}.lab-theme .el-button--primary{background:#168364!important;border-color:#168364!important;color:#dbe6ef!important;font-weight:700}
.lab-theme .el-button--text{background:transparent!important;border-color:transparent!important;color:#287bb0!important}.lab-theme .el-button.is-disabled{opacity:.45}
.lab-theme a{color:#287bb0}.lab-theme a:hover{color:#168364}.lab-theme .el-tag{background:#eaf4fa!important;border-color:#d0e3ee!important;color:#287bb0!important;border-radius:6px}
.lab-theme .el-pagination button,.lab-theme .el-pager li{background:#edf3f9!important;color:#287bb0!important;border-radius:6px;margin:0 3px}.lab-theme .el-pager li.active{color:#168364!important;background:#dbe6ef!important}
.lab-theme .el-dialog,.lab-theme .el-message-box,.lab-theme .el-select-dropdown,.lab-theme .el-dropdown-menu,.lab-theme .el-popover,.lab-theme .el-picker-panel{background:#ffffff!important;border-color:#c9d7e7!important;color:#287bb0!important;border-radius:12px!important}
.lab-theme .el-dialog__title,.lab-theme .el-message-box__title,.lab-theme .el-form-item__label,.lab-theme .el-radio,.lab-theme .el-checkbox{color:#287bb0!important}
.lab-theme .el-select-dropdown__item,.lab-theme .el-dropdown-menu__item{color:#287bb0!important}.lab-theme .el-select-dropdown__item.hover,.lab-theme .el-select-dropdown__item:hover,.lab-theme .el-dropdown-menu__item:hover{background:#edf7f6!important;color:#168364!important}
.lab-theme .el-collapse,.lab-theme .el-collapse-item__header,.lab-theme .el-collapse-item__wrap,.lab-theme .el-collapse-item__content{background:transparent!important;color:#287bb0!important;border-color:#dbe6ef!important}
.lab-theme .el-tabs__item{color:#287bb0!important}.lab-theme .el-tabs__item.is-active{color:#168364!important}.lab-theme .el-tabs__active-bar{background:#168364!important}.lab-theme .el-tabs__nav-wrap:after{background:#dbe5ef!important}
.lab-theme .markdown-body,.lab-theme .v-show-content{background:transparent!important;color:#287bb0!important}.lab-theme .markdown-body h1,.lab-theme .markdown-body h2,.lab-theme .markdown-body h3{color:#287bb0!important;border-color:#dbe5ef!important}
.lab-theme .markdown-body pre{background:#f3f7fb!important;color:#287bb0!important;border:1px solid #dbe6ef;border-radius:10px}.lab-theme .markdown-body code{background:#edf3f9;color:#168364}.lab-theme .markdown-body pre code{background:transparent;color:inherit}
.lab-theme .el-progress-bar__outer{background:#e4edf5!important}.lab-theme footer{background:#eef4fa!important;border-top:1px solid #dce6f0!important;color:#287bb0!important;padding:32px 20px!important}.lab-theme footer h1{color:#287bb0!important;font-size:18px}
.lab-home .lab-old-welcome{display:none!important}.lab-home .announcements-container{color:#287bb0}.lab-home .announcements-container li{border-color:#dbe6ef!important}.lab-home .card-top{margin-top:22px!important}
#lab-home-hero{position:relative;display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:center;padding:52px 40px 44px;margin:0 0 28px;overflow:hidden;border:1px solid #d6e7e9;border-radius:22px;background:radial-gradient(ellipse at 90% 90%,#7bafc330,transparent 60%),linear-gradient(110deg,#f8fbff,#f0faf7);box-shadow:0 20px 80px #7bafc322}
#lab-home-hero:before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#73b9c008 1px,transparent 1px),linear-gradient(90deg,#73b9c008 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(90deg,transparent,#dbe6ef)}
.lab-hero-copy,.lab-terminal{position:relative;z-index:1}.lab-eyebrow{font:600 11px/1.5 Consolas,monospace;letter-spacing:1.8px;color:#168364;display:flex;gap:9px;align-items:center}.lab-eyebrow>span{width:6px;height:6px;border-radius:50%;background:#168364;box-shadow:0 0 12px #73b9c080}
.lab-hero-copy h1{font-size:clamp(28px,3.2vw,46px);line-height:1.45;letter-spacing:-1.8px;font-weight:800;margin:22px 0 18px;color:#287bb0}.lab-hero-copy h1>span{background:linear-gradient(100deg,#287bb0,#168364);-webkit-background-clip:text;background-clip:text;color:transparent}
.lab-hero-copy>p{font-size:14px;line-height:1.9;color:#287bb0;margin:0 0 26px}.lab-actions{display:flex;flex-wrap:wrap;gap:12px}.lab-actions a{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:13px 18px;border-radius:9px;font-size:13px;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s}
.lab-actions a:hover{transform:translateY(-3px);box-shadow:0 8px 24px #7bafc333}.lab-actions .lab-primary{background:#168364;color:#dbe6ef!important}.lab-actions .lab-secondary{color:#287bb0!important;background:#ffffff;border:1px solid #cedfe9}
.lab-meta{display:flex;align-items:center;gap:12px;margin-top:26px;font:11px/1.5 Consolas,"Microsoft YaHei",monospace;color:#287bb0}.lab-meta i{width:3px;height:3px;background:#287bb0;border-radius:50%}
.lab-terminal{border:1px solid #cbdfe5;border-radius:14px;background:#ffffff;box-shadow:0 20px 50px #7bafc333;transform:rotate(-1deg)}.lab-terminal-bar{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #e0ebf1;color:#287bb0;font:11px Consolas,monospace}.lab-terminal-bar b{display:flex;gap:5px}.lab-terminal-bar i{width:7px;height:7px;background:#287bb0;border-radius:50%}.lab-terminal-bar i:first-child{background:#516b83}.lab-terminal-bar i:nth-child(2){background:#516b83}.lab-terminal-bar i:nth-child(3){background:#168364}.lab-terminal-bar em{font-size:9px;font-style:normal;color:#168364;letter-spacing:1px}
.lab-code{padding:22px 18px 5px;font:12px/2.2 Consolas,monospace;white-space:pre;color:#287bb0}.lab-code small{color:#287bb0;display:inline-block;width:28px;user-select:none}.lab-comment{color:#287bb0}.lab-purple{color:#7654ab}.lab-blue{color:#287bb0}.lab-green{color:#168364}
.lab-farm{height:130px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#73b9c014,transparent 65%)}.lab-orbit{position:absolute;width:240px;height:88px;transform:rotate(-18deg);border:1px dashed #287bb0;border-radius:50%;opacity:.5}.lab-sprouts{display:grid;grid-template-columns:repeat(3,34px);gap:6px;transform:perspective(300px) rotateX(42deg) rotateZ(-35deg);margin-top:-12px}.lab-sprouts>span{display:grid;place-items:center;width:34px;height:30px;border:1px solid #168364;border-bottom:4px solid #add8c4;border-radius:4px;background:#ddf4e9;color:#168364;font-size:20px;animation:lab-grow 4s ease-in-out infinite alternate}.lab-sprouts>span:nth-child(2n){animation-delay:-2s;color:#516b83;background:#e8f3d9}
.lab-farm-label{position:absolute;bottom:8px;left:18px;right:18px;display:flex;justify-content:space-between;letter-spacing:1.3px;font:9px Consolas,monospace;color:#287bb0}.lab-farm-label span{color:#168364}.lab-terminal-output{padding:12px 18px;border-top:1px solid #dbe6ef;font:11px Consolas,monospace;color:#287bb0}.lab-terminal-output>span{color:#168364;margin-right:8px}.lab-terminal-output>b{color:#168364;animation:lab-blink 1.5s steps(2,start) infinite}
@keyframes lab-grow{to{transform:translateY(-3px);border-color:#168364}}@keyframes lab-blink{to{opacity:0}}
@media(max-width:1100px){.lab-theme .el-menu--horizontal>.el-menu-item,.lab-theme .el-menu--horizontal>.el-submenu>.el-submenu__title{padding:0 11px}.lab-theme .logo{min-width:160px;padding:0 12px!important}#lab-home-hero{gap:24px;padding:32px 26px}.lab-code{font-size:10px}.lab-meta{gap:7px;font-size:10px}}
@media(max-width:767px){.lab-theme #oj-content{padding:0 14px!important;margin-top:18px!important}.lab-theme .el-card__body{padding:16px!important}.lab-theme .el-card__header{padding:16px!important}#lab-home-hero{grid-template-columns:1fr;gap:28px;padding:28px 22px;border-radius:16px}.lab-hero-copy h1{font-size:31px;letter-spacing:-1px}.lab-hero-copy>p{font-size:13px}.lab-eyebrow{font-size:9px}.lab-meta{flex-wrap:wrap;font-size:10px;gap:8px}.lab-actions a{padding:12px 14px;gap:16px;font-size:12px}.lab-terminal{transform:none}.lab-code{font-size:12px}.lab-desktop{display:none}.lab-theme .el-dialog{width:92%!important}.lab-theme .el-table{font-size:12px}.lab-theme .el-pagination{white-space:normal!important}.lab-theme .el-menu--popup{min-width:150px}.lab-theme footer{font-size:11px!important;line-height:1.8}.lab-theme .el-table__body-wrapper{overflow-x:auto!important}}
@media(prefers-reduced-motion:reduce){.lab-sprouts>span,.lab-terminal-output>b{animation:none}.lab-actions a{transition:none}.lab-actions a:hover{transform:none}}
.lab-theme #app .el-menu--horizontal>.el-menu-item.is-active,.lab-theme #app .el-menu--horizontal>.el-menu-item:hover{background:#e8f6f0!important;color:#168364!important;border-bottom-color:#168364!important}
.lab-home .announcements-container .entry{color:#287bb0!important;font-style:normal;font-weight:600}.lab-home .announcements-container .entry:hover{color:#168364!important}.lab-home .announcements-container li{border-radius:10px;background:#ffffff;margin-bottom:10px!important}.lab-home .announcements-container .flex-container{padding:5px 10px}.lab-home .announcements-container .info{color:#287bb0!important;font-size:11px!important}
.lab-home .el-card h1{color:#287bb0!important;font-size:17px!important;font-weight:500!important}
.lab-theme .vxe-table,.lab-theme .vxe-table--header,.lab-theme .vxe-table--body,.lab-theme .vxe-table--header-wrapper,.lab-theme .vxe-table--body-wrapper,.lab-theme .vxe-header--column,.lab-theme .vxe-body--column{background:#ffffff!important;color:#287bb0!important;border-color:#dce6f0!important}.lab-theme .vxe-body--row.row--stripe{background:#f4f8fc!important}.lab-theme .vxe-body--row.row--hover,.lab-theme .vxe-body--row.row--hover .vxe-body--column{background:#e9f3fa!important}.lab-theme .vxe-header--column{background:#edf4fa!important;color:#287bb0!important}.lab-theme .vxe-table--border-line{border-color:#dce6f0!important}
.lab-theme #js-left-ProblemDetails,.lab-theme .js-left,.lab-theme .el-tabs--border-card,.lab-theme .el-tabs--border-card>.el-tabs__header{background:#ffffff!important;border-color:#dce6f0!important;color:#287bb0!important}.lab-theme .question-intr{background:#f1f6fb!important;border-color:#cedfe9!important;color:#287bb0!important}.lab-theme .question-intr div,.lab-theme .question-intr span:not(.el-tag){color:#287bb0!important}.lab-theme .example pre,.lab-theme .example-input pre,.lab-theme .example-output pre,.lab-theme .sample{background:#f3f7fb!important;color:#287bb0!important;border-color:#dce6f0!important}.lab-theme .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background:#e8f6f1!important;border-color:#dce6f0!important}.lab-theme #js-left-ProblemDetails .panel-title{font-size:20px!important;line-height:1.5}.lab-theme .splitpanes__pane{background:#ffffff!important}.lab-theme .el-tabs__content{color:#287bb0}

/* Light reading and coding surfaces, including the original CodeMirror theme. */
.lab-theme{color-scheme:light}
.lab-theme #lab-home-hero{background:radial-gradient(ellipse at 100% 100%,#d5f4e8,transparent 60%),linear-gradient(120deg,#f9fcff,#edf5fe)}
.lab-theme .lab-hero-copy h1{color:#233b53}.lab-theme .lab-hero-copy h1>span{background:linear-gradient(100deg,#357ab8,#178869);background-clip:text;-webkit-background-clip:text;color:transparent}
.lab-theme .lab-primary{background:#1b8c6d!important;color:#fff!important}.lab-theme .lab-secondary{background:#fff!important;color:#38627c!important}.lab-theme .lab-terminal{background:#ffffff;box-shadow:0 16px 45px #3e788515}.lab-theme .lab-terminal-bar{background:#f7fafc;border-radius:14px 14px 0 0}.lab-theme .lab-terminal-bar i:first-child{background:#ed8d91}.lab-theme .lab-terminal-bar i:nth-child(2){background:#e5c06b}.lab-theme .lab-terminal-bar i:nth-child(3){background:#67bc98}
.lab-theme .lab-code{color:#364b65}.lab-theme .lab-comment{color:#70899a}.lab-theme .lab-purple{color:#8c53a5}.lab-theme .lab-blue{color:#287eae}.lab-theme .lab-green{color:#2c8a63}.lab-theme .lab-terminal-output{color:#4e6c82}.lab-theme .lab-sprouts>span{background:#dcf3e8;border-color:#7ac6a4;border-bottom-color:#accfbd;color:#3e9670}.lab-theme .lab-sprouts>span:nth-child(2n){background:#edf3dc;color:#849d46}
.lab-theme .lab-actions .lab-primary{background:#1b8c6d!important;color:#fff!important}.lab-theme .el-button--primary{background:#268a74!important;border-color:#268a74!important;color:#fff!important}.lab-theme .el-button:hover{background:#edf7f4!important;color:#18795e!important}.lab-theme .el-button--primary:hover{background:#1d7863!important;color:#fff!important}
.lab-theme .logo:after{color:#263f58}.lab-theme .el-table td,.lab-theme .vxe-body--column{color:#40576c!important}.lab-theme .el-card h1{color:#53758b!important}.lab-theme .markdown-body,.lab-theme .v-show-content{color:#354c63!important}.lab-theme .question-intr{color:#527088!important}.lab-theme .question-intr div,.lab-theme .question-intr span:not(.el-tag){color:#527088!important}
.lab-theme .CodeMirror,.lab-theme .cm-s-monokai.CodeMirror,.lab-theme .cm-s-dracula.CodeMirror{background:#fff!important;color:#253a52!important;font-family:Consolas,'Cascadia Code',monospace!important;font-size:15px!important;line-height:1.65!important}
.lab-theme .CodeMirror-gutters{background:#f3f7fb!important;border-right:1px solid #e0e8f1!important}.lab-theme .CodeMirror-linenumber{color:#8da1b5!important}.lab-theme .CodeMirror-cursor{border-left-color:#243c58!important}.lab-theme .CodeMirror-selected{background:#cfe4fa!important}.lab-theme .CodeMirror-activeline-background{background:#f4f8fc!important}.lab-theme .CodeMirror-matchingbracket{color:#187e67!important;background:#e3f5eb!important}.lab-theme .CodeMirror .cm-keyword{color:#9254a1!important}.lab-theme .CodeMirror .cm-atom,.lab-theme .CodeMirror .cm-number{color:#ad6d17!important}.lab-theme .CodeMirror .cm-def,.lab-theme .CodeMirror .cm-builtin{color:#2879b2!important}.lab-theme .CodeMirror .cm-variable,.lab-theme .CodeMirror .cm-operator,.lab-theme .CodeMirror .cm-property{color:#304e68!important}.lab-theme .CodeMirror .cm-string,.lab-theme .CodeMirror .cm-string-2{color:#27835d!important}.lab-theme .CodeMirror .cm-comment{color:#8295a6!important}.lab-theme .CodeMirror .cm-meta{color:#4f6ea8!important}
@media(max-width:767px){.lab-theme .el-menu--horizontal.el-menu{display:flex!important;flex-wrap:nowrap!important;align-items:center;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;height:62px!important;scrollbar-width:thin;scrollbar-color:#c4dcd5 transparent}.lab-theme .el-menu--horizontal.el-menu>li,.lab-theme .el-menu--horizontal.el-menu>div{flex:0 0 auto!important;float:none!important}.lab-theme .el-menu--horizontal.el-menu .logo{min-width:160px!important;max-width:none!important;height:60px!important;padding:0 12px!important}.lab-theme .el-menu--horizontal.el-menu>.el-menu-item,.lab-theme .el-menu--horizontal.el-menu>.el-submenu>.el-submenu__title{height:60px!important;line-height:60px!important;padding:0 13px!important}.lab-theme .logo:after{font-size:13px!important}.lab-theme .logo:before{font-size:25px!important}}
@media(max-width:767px){.lab-theme #app>.full-height>div:first-child{height:62px!important;min-height:62px!important;flex-shrink:0!important}.lab-theme #header{height:62px!important;min-height:0!important;margin:0!important;padding:0!important}}
