:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#18221e;background:#f2f4f3;font-synthesis:none;letter-spacing:0;--ink: #18221e;--muted: #64726d;--line: #d8dedb;--line-strong: #b9c4bf;--surface: #ffffff;--surface-soft: #f7f9f8;--teal: #0b7067;--teal-dark: #075a53;--teal-soft: #e8f4f1;--red: #b13c2e;--red-dark: #8e2f24;--red-soft: #faece9;--amber: #996117;--amber-soft: #fff5df;--blue: #315f9b;--topbar-height: 58px}*{box-sizing:border-box;letter-spacing:0}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--topbar-height) + 16px)}body{margin:0;min-width:320px;min-height:100vh;background:#f2f4f3}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid rgba(11,112,103,.28);outline-offset:2px}code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.88em}svg{display:block;flex:0 0 auto}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:var(--topbar-height);padding:0 22px;border-bottom:1px solid var(--line);background:#fffffff7}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:.94rem;font-weight:750;text-decoration:none}.brand-mark{position:relative;display:grid;width:32px;height:32px;place-items:center;border-radius:7px;background:var(--ink);color:#fff;box-shadow:0 2px 5px #18221e21}.brand-mark:after{position:absolute;right:6px;bottom:5px;left:6px;height:2px;border-radius:2px;background:#66c4b5;content:""}.brand-mark svg{position:relative;z-index:1;width:18px;height:18px;stroke-width:2.2}.runtime-indicator{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:.78rem}.status-dot{width:8px;height:8px;border-radius:50%;background:#89958f}.runtime-indicator[data-state=booting] .status-dot,.runtime-indicator[data-state=resetting] .status-dot,.runtime-indicator[data-state=validating] .status-dot{background:var(--amber);animation:pulse 1.4s ease-in-out infinite}.runtime-indicator[data-state=ready] .status-dot{background:var(--teal)}.runtime-indicator[data-state=error] .status-dot{background:var(--red)}.workspace{display:grid;grid-template-columns:minmax(330px,380px) minmax(0,1fr);align-items:start;min-height:calc(100vh - var(--topbar-height))}.quest-switcher{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}.quest-switcher label{color:var(--muted);font-size:.7rem;font-weight:700}.quest-switcher select{width:100%;min-width:0;min-height:34px;padding:6px 30px 6px 9px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--ink);font-size:.72rem;font-weight:700}.quest-switcher select:focus-visible{outline:3px solid rgba(11,112,103,.28);outline-offset:2px}.quest-switcher select:disabled{opacity:.55}.mission-panel{min-height:calc(100vh - var(--topbar-height));padding:28px 26px 40px;border-right:1px solid var(--line);background:var(--surface)}.quest-meta,.section-heading,.runtime-toolbar,.runtime-actions,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.phase-label{color:var(--teal);font-size:.72rem;font-weight:750;text-transform:uppercase}.difficulty{color:var(--muted);font-size:.72rem}.mission-panel h1{margin:12px 0 8px;font-size:1.65rem;line-height:1.2}.mission-brief{margin:0;color:#44524d;font-size:.9rem;line-height:1.65}.target-facts{margin:20px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.target-facts>div{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;padding:10px 0}.target-facts>div+div{border-top:1px solid #e9edeb}.target-facts dt{color:var(--muted);font-size:.76rem}.target-facts dd{min-width:0;margin:0;color:#34413c;font-size:.78rem;overflow-wrap:anywhere}.target-facts code{color:var(--teal-dark);font-weight:650}.advanced-active{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;margin-top:16px;padding:11px 0;border-top:1px solid #b8d6d0;border-bottom:1px solid #b8d6d0}.advanced-active>svg{width:22px;height:22px;color:var(--teal)}.advanced-active strong{font-size:.76rem}.advanced-active p{margin:4px 0 7px;color:#52605a;font-size:.69rem;line-height:1.5}.advanced-active-snippet{display:flex;align-items:flex-start;gap:7px;margin-top:8px}.advanced-active-snippet code{flex:1;display:block;color:var(--teal-dark);font-size:.62rem;line-height:1.5;overflow-wrap:anywhere}.advanced-active-why,.advanced-why{margin:7px 0 0;color:#405049;font-size:.68rem;line-height:1.5}.advanced-active-steps,.advanced-steps{display:grid;gap:5px;margin:8px 0 0;padding-left:18px;color:#52605a;font-size:.67rem;line-height:1.45}.lab-steps{display:grid;grid-template-columns:repeat(3,1fr);margin:20px 0;padding:0;list-style:none}.lab-steps li{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;color:#89948f;font-size:.7rem}.lab-steps li:not(:last-child):after{position:absolute;top:11px;left:calc(50% + 15px);width:calc(100% - 30px);height:1px;background:var(--line);content:""}.lab-steps li[data-state=done]:not(:last-child):after{background:var(--teal)}.lab-steps li>span{z-index:1;display:grid;width:23px;height:23px;place-items:center;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface);font-size:.68rem}.lab-steps li[data-state=current]{color:var(--ink)}.lab-steps li[data-state=current]>span{border-color:var(--amber);background:var(--amber-soft);color:var(--amber);font-weight:750}.lab-steps li[data-state=done]{color:var(--teal-dark)}.lab-steps li[data-state=done]>span{border-color:var(--teal);background:var(--teal);color:#fff;font-weight:750}.controls{position:sticky;top:calc(var(--topbar-height) + 10px);z-index:8;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:-10px -8px 0;padding:10px 8px;border-radius:6px;background:#fffffff7;box-shadow:0 1px #d8dedbcc}.editor-location{margin:7px 2px 0;color:var(--muted);font-size:.68rem;line-height:1.45}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:5px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}.button{min-height:40px;gap:8px;padding:9px 12px;font-size:.8rem;font-weight:700}.button svg{width:17px;height:17px}.button-primary{grid-column:1 / -1;background:var(--teal);color:#fff}.button-primary:hover:not(:disabled){background:var(--teal-dark)}.button-secondary{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}.button-secondary:hover:not(:disabled),.button-compact:hover:not(:disabled){border-color:#8b9993;background:var(--surface-soft)}.button-quiet{border-color:transparent;background:transparent;color:var(--muted)}.button-quiet:hover:not(:disabled){background:var(--red-soft);color:var(--red-dark)}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.48}.button.is-loading svg,.boot-cover>svg{animation:spin 1s linear infinite}.boot-cover[data-state=error]>svg{color:var(--red);animation:none}.panel-section{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.section-heading h2{margin:0;font-size:.91rem}.section-note{margin:8px 0 14px;color:var(--muted);font-size:.76rem;line-height:1.55}.result-badge,.hint-progress{font-size:.68rem;font-weight:750}.result-badge{padding:3px 7px;border-radius:4px;background:#eef1ef;color:var(--muted)}.result-badge[data-result=fail]{background:var(--red-soft);color:var(--red-dark)}.result-badge[data-result=pass]{background:var(--teal-soft);color:var(--teal-dark)}.hint-progress{color:var(--muted);font-variant-numeric:tabular-nums}.validation-output{min-height:108px;margin-top:12px}.empty-state{display:flex;min-height:108px;align-items:center;justify-content:center;gap:9px;border:1px dashed var(--line-strong);border-radius:5px;background:var(--surface-soft);color:var(--muted)}.empty-state svg{width:18px;height:18px}.empty-state p{margin:0;font-size:.76rem}.validation-summary{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-left:3px solid var(--red);background:var(--red-soft)}.validation-output[data-result=pass] .validation-summary{border-left-color:var(--teal);background:var(--teal-soft)}.validation-output[data-outcome=regression] .validation-summary{border-left-color:var(--amber);background:var(--amber-soft)}.validation-output[data-outcome=regression] .validation-summary>svg{color:var(--amber)}.validation-summary>svg{width:20px;height:20px;color:var(--red)}.validation-output[data-result=pass] .validation-summary>svg{color:var(--teal)}.validation-summary div{display:grid;gap:3px}.validation-summary strong{font-size:.79rem}.validation-summary span{color:#596660;font-size:.7rem;line-height:1.45}.validation-checks{margin:0;padding:0;list-style:none}.validation-group-label{padding:13px 2px 5px;color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase}.validation-group-label[data-group=regression]{margin-top:3px;border-top:1px solid var(--line);color:var(--blue)}.validation-check{padding:0;border-bottom:1px solid #e8ecea}.check-summary{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:9px;align-items:center;padding:11px 2px;cursor:pointer;list-style:none}.check-summary::-webkit-details-marker{display:none}.check-summary:hover{background:var(--surface-soft)}.check-summary>svg{width:16px;height:16px;color:var(--red)}.validation-check[data-passed=true] .check-summary>svg{color:var(--teal)}.check-copy{display:grid;gap:2px}.check-copy strong{font-size:.75rem}.check-copy span{color:var(--muted);font-size:.67rem}.validation-check details{position:relative}.evidence-toggle{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:.67rem;white-space:nowrap}.evidence-toggle svg{width:14px;height:14px;transition:transform .15s ease}.validation-check details[open] .evidence-toggle svg{transform:rotate(180deg)}.check-evidence{position:static;z-index:5;width:auto;margin:-2px 2px 11px 29px;padding:11px;border:1px solid var(--line-strong);border-radius:5px;background:#fff;box-shadow:0 10px 24px #18221e21}.check-evidence dt{color:var(--muted);font-size:.65rem}.check-evidence dd{margin:2px 0 8px;color:#2f3d37;font-family:SFMono-Regular,Consolas,monospace;font-size:.65rem;line-height:1.45;overflow-wrap:anywhere}.check-evidence dd:last-child{margin-bottom:0}.review-badge{padding:3px 7px;border-radius:4px;background:var(--amber-soft);color:var(--amber);font-size:.66rem;font-weight:800}.review-badge[data-level=production]{background:var(--teal-soft);color:var(--teal-dark)}.review-summary{margin:10px 0 0;color:#405049;font-size:.74rem;line-height:1.55}.review-notes{display:grid;gap:7px;margin:11px 0 0;padding-left:18px;color:var(--muted);font-size:.7rem;line-height:1.55}.advanced-challenge{margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}.advanced-challenge>strong{display:block;color:var(--teal-dark);font-size:.76rem}.advanced-challenge>p{margin:5px 0 8px;color:#52605a;font-size:.7rem;line-height:1.55}.advanced-snippet{display:flex;align-items:flex-start;gap:7px;margin-top:9px;padding:8px 9px;border-left:2px solid var(--teal);background:var(--surface-soft)}.advanced-snippet code{flex:1;display:block;color:#34413c;font-size:.61rem;line-height:1.5;overflow-wrap:anywhere}.advanced-snippet .icon-button,.advanced-active-snippet .icon-button{width:28px;height:28px;color:var(--teal-dark)}.advanced-snippet .icon-button[data-copied],.advanced-active-snippet .icon-button[data-copied]{color:var(--teal);background:var(--teal-soft)}.advanced-challenge .button{width:100%;margin-top:10px;color:var(--teal-dark)}.hint-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.hint-item{display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;padding:12px 0;border-top:1px solid #e8ecea}.hint-number{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:var(--amber-soft);color:var(--amber);font-size:.67rem;font-weight:800}.hint-item strong{display:block;font-size:.75rem}.hint-item p{margin:5px 0 0;color:#52605a;font-size:.72rem;line-height:1.6}.hint-item a{display:inline-flex;align-items:center;gap:5px;margin-top:7px;color:var(--blue);font-size:.7rem;font-weight:700;text-decoration:none}.hint-item a:hover{text-decoration:underline}.hint-item a svg{width:13px;height:13px}.hint-action{min-height:34px;margin-top:9px;padding:6px 10px;border-color:var(--line-strong);background:var(--surface);color:var(--teal-dark);font-size:.7rem}.hint-action:hover:not(:disabled){border-color:var(--teal);background:var(--teal-soft)}.button-hint{width:100%;margin-top:8px;border-color:#e2c58d;background:var(--amber-soft);color:#70470f}.button-hint:hover:not(:disabled){border-color:#c7943d;background:#ffedc6}.research-clue{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) 30px;align-items:center;gap:8px;margin-top:10px;padding:8px 8px 8px 10px;border:1px solid var(--line);border-radius:5px;background:var(--surface-soft)}.research-clue>span{color:var(--muted);font-size:.65rem}.research-clue code{min-width:0;color:#34413c;font-size:.63rem;overflow-wrap:anywhere}.research-clue[data-copied=true]:after{position:absolute;right:40px;padding:3px 6px;border-radius:3px;background:var(--ink);color:#fff;content:"已复制";font-size:.63rem}.icon-button{width:30px;height:30px;padding:0;background:transparent;color:var(--muted)}.icon-button:hover{background:#e7ece9;color:var(--ink)}.icon-button svg{width:15px;height:15px}.runtime-pane{position:sticky;top:var(--topbar-height);min-width:0;padding:20px;background:#f2f4f3}.runtime-toolbar{min-height:48px;margin-bottom:12px}.runtime-toolbar h2{margin:2px 0 0;font-size:1rem}.toolbar-eyebrow{color:var(--muted);font-size:.64rem;font-weight:700;text-transform:uppercase}.runtime-actions code{color:var(--muted);font-size:.7rem}.button-compact{min-height:34px;padding:6px 10px;border-color:var(--line-strong);background:var(--surface);color:var(--ink);font-size:.72rem}.iframe-shell{position:relative;height:calc(100vh - var(--topbar-height) - 100px);min-height:640px;overflow:hidden;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);box-shadow:0 12px 30px #18221e12;transition:border-color .18s ease,box-shadow .18s ease}.workspace[data-result=pass] .iframe-shell{border-color:#72aa9f;box-shadow:0 0 0 2px #0b706714,0 12px 30px #18221e12}iframe{display:block;width:100%;height:100%;border:0;background:#fff}.boot-cover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;background:#fff;color:var(--muted);transition:opacity .18s ease,visibility .18s ease}.boot-cover.is-hidden{visibility:hidden;opacity:0;pointer-events:none}.boot-cover>svg{width:24px;height:24px;color:var(--teal)}.boot-cover strong{color:var(--ink);font-size:.84rem}.boot-cover span{font-size:.72rem}.reset-dialog{width:min(430px,calc(100vw - 32px));padding:0;border:1px solid var(--line-strong);border-radius:7px;color:var(--ink);background:#fff;box-shadow:0 24px 60px #18221e38}.reset-dialog::backdrop{background:#18221e7a}.reset-dialog form{padding:24px}.dialog-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--red-soft);color:var(--red)}.dialog-icon svg{width:20px;height:20px}.reset-dialog h2{margin:15px 0 8px;font-size:1.05rem}.reset-dialog p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.6}.dialog-actions{justify-content:flex-end;margin-top:22px}.dialog-actions .button{min-width:90px}.button-danger{background:var(--red);color:#fff}.button-danger:hover{background:var(--red-dark)}.success-toast{position:fixed;right:20px;bottom:20px;z-index:30;display:grid;grid-template-columns:38px minmax(0,1fr) auto 30px;width:min(620px,calc(100vw - 40px));align-items:center;gap:12px;padding:13px 13px 13px 15px;border:1px solid #76a99f;border-radius:7px;background:#f4fbf9;box-shadow:0 16px 44px #18221e33;opacity:0;transform:translateY(16px);visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.success-toast[data-visible=true]{opacity:1;transform:translateY(0);visibility:visible;pointer-events:auto}.success-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--teal);color:#fff}.success-icon svg{width:21px;height:21px}.success-copy{display:grid;min-width:0;gap:3px}.success-copy strong{color:var(--teal-dark);font-size:.84rem}.success-copy span{color:#50615b;font-size:.7rem;line-height:1.4}.button-toast{min-height:34px;border-color:#76a99f;background:#fff;color:var(--teal-dark);font-size:.72rem}.button-toast:hover{border-color:var(--teal);background:var(--teal-soft)}.dismiss-success{color:#52645e}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@media(max-width:900px){.topbar{position:relative;padding:0 16px}.runtime-indicator{max-width:46%}#runtime-status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace{display:block}.mission-panel{height:auto;padding:24px 18px 30px;overflow:visible;border-right:0;border-bottom:1px solid var(--line)}.controls{position:static;margin:0;padding:0;border-radius:0;box-shadow:none}.runtime-pane{position:static;padding:16px;scroll-margin-top:16px}.iframe-shell{height:680px;min-height:0}.check-evidence{position:static;width:auto;margin-left:29px}}@media(max-width:520px){.brand>span:last-child{font-size:.82rem}.runtime-indicator{font-size:.68rem}.controls{grid-template-columns:1fr}.quest-switcher{grid-template-columns:1fr;gap:6px}.button-primary{grid-column:auto}.runtime-toolbar{align-items:flex-start;flex-direction:column}.runtime-actions{width:100%}.runtime-actions code{flex:1}.iframe-shell{height:610px}.success-toast{right:12px;bottom:12px;grid-template-columns:34px minmax(0,1fr) 30px;width:calc(100vw - 24px);gap:9px;padding:11px}.success-icon{width:34px;height:34px}.button-toast{grid-column:1 / -1;grid-row:2}.dismiss-success{grid-column:3;grid-row:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--ink: #17211d;--muted: #66736e;--line: #dce2df;--line-strong: #bdc8c3;--surface: #ffffff;--surface-soft: #f6f8f7;--canvas: #eef2f0;--teal: #0d766b;--teal-dark: #075c54;--teal-soft: #e7f4f1;--red: #c34738;--red-dark: #943328;--red-soft: #fcedea;--amber: #9b6418;--amber-soft: #fff5df;--blue: #3867a6;--blue-soft: #edf3fb;--topbar-height: 64px;--shadow-sm: 0 1px 2px rgba(23, 33, 29, .05), 0 4px 12px rgba(23, 33, 29, .04);--shadow-md: 0 14px 34px rgba(23, 33, 29, .09), 0 2px 8px rgba(23, 33, 29, .05);--mission-panel-width: 420px}body{overflow:hidden;background:var(--canvas)}.topbar{min-height:var(--topbar-height);padding:0 24px;border-bottom-color:#dfe5e2;background:#fffffff5;box-shadow:0 1px #17211d05;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar-product,.environment-status,.runtime-heading,.runtime-url{display:flex;align-items:center}.topbar-product{min-width:0;gap:14px}.brand{gap:11px;font-size:.92rem;font-weight:760}.brand-mark{width:34px;height:34px;border:1px solid #2d3c36;border-radius:8px;background:#15211c;box-shadow:0 3px 8px #17211d2e}.brand-mark:after{right:7px;bottom:5px;left:7px;background:#5bc0b1}.topbar-divider{width:1px;height:22px;background:var(--line)}.workspace-label,.environment-label{color:var(--muted);font-size:.72rem;font-weight:650}.environment-status{min-width:0;gap:10px}.runtime-indicator{max-width:min(44vw,480px);min-height:32px;gap:8px;padding:6px 11px;border:1px solid var(--line);border-radius:6px;background:var(--surface-soft);color:#4f5e58;font-size:.72rem;font-weight:560}.status-dot{width:7px;height:7px;box-shadow:0 0 0 3px #89958f1f}.runtime-indicator[data-state=ready] .status-dot{box-shadow:0 0 0 3px #0d766b1f}.runtime-indicator[data-state=error] .status-dot{box-shadow:0 0 0 3px #c347381f}.workspace{position:relative;grid-template-columns:var(--mission-panel-width) 1px minmax(0,1fr);height:calc(100vh - var(--topbar-height));min-height:0;overflow:hidden;background:var(--canvas);transition:grid-template-columns .22s ease}.workspace[data-layout=focus]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.workspace[data-layout=focus] .runtime-pane{grid-area:1 / 1;width:100%;height:100%}.workspace[data-sidebar=collapsed]{grid-template-columns:0 0 minmax(0,1fr)}.workspace[data-layout=focus][data-sidebar=collapsed]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.mission-panel{min-width:0;height:calc(100vh - var(--topbar-height));min-height:0;padding:24px 28px 38px;overflow-x:hidden;overflow-y:auto;border-right-color:#d8dfdc;scrollbar-color:#c7d0cc transparent;scrollbar-width:thin;transition:padding .22s ease,opacity .15s ease,visibility .15s ease}.mission-inspector-header,.mission-tabs{display:none}.workspace[data-layout=focus] .mission-panel{position:absolute;top:0;right:0;bottom:0;z-index:16;width:min(var(--mission-panel-width),100%);height:auto;min-height:0;padding:0;overflow:hidden;border:0;border-left:1px solid #c8d1cd;border-radius:0;background:#fffffffa;box-shadow:-18px 0 48px #17211d1f,-2px 0 8px #17211d0d;opacity:1;transform:translate(0);visibility:visible;transition:opacity .18s ease,transform .22s ease,visibility .18s ease;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.workspace[data-layout=focus][data-sidebar=collapsed] .mission-panel{visibility:hidden;padding:0;border:0;border-left:1px solid #c8d1cd;opacity:0;transform:translate(100%)}.workspace[data-layout=focus] .mission-inspector-header{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px 10px 18px;border-bottom:1px solid var(--line)}.mission-inspector-header>div{display:grid;gap:2px}.mission-inspector-header span{color:var(--muted);font-size:.58rem;font-weight:800;text-transform:uppercase}.mission-inspector-header strong{color:#19231f;font-size:.82rem}.workspace[data-layout=focus] .mission-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:8px 12px;border-bottom:1px solid var(--line);background:#f8faf9}.mission-tabs button{min-height:32px;padding:6px 10px;border:0;border-radius:5px;background:transparent;color:#64726c;cursor:pointer;font-size:.69rem;font-weight:700}.mission-tabs button:hover{background:#edf2f0;color:#26332d}.mission-tabs button[aria-selected=true]{background:#fff;color:var(--teal-dark);box-shadow:0 1px 4px #17211d1a}.workspace[data-layout=focus] .mission-overview,.workspace[data-layout=focus] .mission-results,.workspace[data-layout=focus] .hint-section{display:none;height:calc(100% - 111px);margin:0;padding:20px 22px 28px;overflow-x:hidden;overflow-y:auto;border:0;scrollbar-color:#c7d0cc transparent;scrollbar-width:thin}.workspace[data-layout=focus][data-mission-view=overview] .mission-overview,.workspace[data-layout=focus][data-mission-view=results] .mission-results,.workspace[data-layout=focus][data-mission-view=hints] .hint-section{display:block}.workspace[data-layout=focus] .mission-results .panel-section:first-child,.workspace[data-layout=focus] .hint-section{margin-top:0;padding-top:0;border-top:0}.mission-panel::-webkit-scrollbar{width:7px}.mission-panel::-webkit-scrollbar-thumb{border:2px solid #fff;border-radius:8px;background:#c7d0cc}.workspace[data-sidebar=collapsed] .mission-panel{visibility:hidden;padding-right:0;padding-left:0;border-right:0;opacity:0;pointer-events:none}.mission-resizer{position:relative;z-index:12;width:11px;height:100%;margin-left:-5px;cursor:col-resize;touch-action:none}.mission-resizer:before{position:absolute;inset:0 auto 0 5px;width:1px;background:#d8dfdc;content:"";transition:width .15s ease,background-color .15s ease,box-shadow .15s ease}.mission-resizer:hover:before,.mission-resizer:focus-visible:before,.is-resizing-mission-panel .mission-resizer:before{width:3px;background:var(--teal);box-shadow:0 0 0 3px #0d766b1a}.workspace[data-layout=focus] .mission-resizer{position:absolute;top:0;right:calc(var(--mission-panel-width) - 6px);bottom:0;z-index:17;height:auto;margin-left:0}.workspace[data-layout=focus] .mission-resizer:before{inset:calc(50% - 24px) auto auto 5px;height:48px;border-radius:2px;background:#91a099;opacity:.42}.workspace[data-layout=focus] .mission-resizer:hover:before,.workspace[data-layout=focus] .mission-resizer:focus-visible:before,.is-resizing-mission-panel .workspace[data-layout=focus] .mission-resizer:before{opacity:1}.mission-resizer:focus-visible{outline:none}.workspace[data-sidebar=collapsed] .mission-resizer{opacity:0;pointer-events:none}body.is-resizing-mission-panel{cursor:col-resize;-webkit-user-select:none;user-select:none}body.is-resizing-mission-panel .workspace{transition:none}body.is-resizing-mission-panel iframe{pointer-events:none}.quest-switcher{grid-template-columns:76px minmax(0,1fr);gap:12px;margin-bottom:22px;padding-bottom:20px}.quest-switcher label{color:#77837e;font-size:.66rem;font-weight:750;text-transform:uppercase}.quest-switcher select{min-height:38px;padding:8px 34px 8px 11px;border-color:#c8d1cd;border-radius:6px;background-color:#fbfcfb;box-shadow:inset 0 1px #fff,0 1px 2px #17211d0a;font-size:.73rem;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.quest-switcher select:hover:not(:disabled){border-color:#98a8a1;background-color:#fff}.quest-meta{align-items:center}.phase-label{color:var(--teal-dark);font-size:.67rem;font-weight:800}.difficulty{padding:3px 7px;border:1px solid var(--line);border-radius:4px;background:var(--surface-soft);color:#64716c;font-size:.65rem;font-weight:650}.mission-panel h1{margin:11px 0 8px;color:#111a16;font-size:1.56rem;line-height:1.22}.mission-brief{color:#4c5954;font-size:.84rem;line-height:1.68}.target-facts{margin-top:19px;padding:2px 12px;border:1px solid var(--line);border-radius:7px;background:#fafcfb}.target-facts>div{grid-template-columns:72px minmax(0,1fr);padding:11px 0}.target-facts dt{font-size:.7rem;font-weight:650}.target-facts dd{color:#34423c;font-size:.74rem;line-height:1.45}.target-facts code{padding:2px 5px;border-radius:3px;background:var(--teal-soft);font-size:.69rem}.lab-steps{margin:22px 0 20px}.lab-steps li{gap:7px;font-size:.67rem;font-weight:650}.lab-steps li:not(:last-child):after{top:12px;left:calc(50% + 16px);width:calc(100% - 32px)}.lab-steps li>span{width:25px;height:25px;box-shadow:0 0 0 3px #fff}.controls{top:0;gap:8px;margin:0 -10px;padding:10px;border:1px solid rgba(220,226,223,.92);border-radius:8px;background:#fffffff0;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.editor-location{margin:9px 2px 0;color:#78847f;font-size:.65rem}.button,.icon-button{border-radius:6px;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease,opacity .15s ease}.button{min-height:40px;font-size:.76rem}.button:active:not(:disabled){transform:translateY(1px)}.button-primary{background:#0b7066;box-shadow:0 1px 2px #064a4333,inset 0 1px #ffffff24}.button-primary:hover:not(:disabled){background:#075b54;box-shadow:0 4px 12px #064a4333}.button-secondary{border-color:#c5cfca;box-shadow:0 1px 2px #17211d0a}.panel-section{margin-top:28px;padding-top:24px}.section-heading h2{color:#202b26;font-size:.86rem;font-weight:760}.section-note{color:#6d7a74;font-size:.72rem}.result-badge,.review-badge{padding:4px 7px;border-radius:4px}.validation-output{margin-top:13px}.empty-state{min-height:102px;border-color:#cbd4d0;border-radius:7px;background:#f8faf9}.empty-state p{font-size:.72rem}.validation-summary{gap:11px;padding:13px;border-left-width:3px;border-radius:0 6px 6px 0}.validation-summary strong{font-size:.77rem}.validation-summary span{font-size:.68rem}.validation-group-label{padding-top:15px;font-size:.6rem}.check-summary{margin:0 -6px;padding:11px 6px;border-radius:5px}.check-summary:hover{background:#f5f8f6}.check-copy strong{font-size:.72rem}.check-evidence{border-color:#c8d2cd;border-radius:6px;box-shadow:var(--shadow-md)}.hint-number{border:1px solid #efd6a7;background:#fff8e9}.button-hint{border-color:#e5c98f;background:#fff8e8}.research-clue{border-radius:6px;background:#f7f9f8}.runtime-pane{position:relative;top:auto;height:calc(100vh - var(--topbar-height));min-height:0;padding:16px 20px 20px;overflow:auto;background:var(--canvas)}.runtime-toolbar{min-height:52px;margin-bottom:10px}.runtime-heading{min-width:0;gap:12px}.panel-toggle{width:34px;height:34px;border-color:#cbd4d0;background:#ffffffb8;color:#53615b;box-shadow:0 1px 2px #17211d0a;transition:opacity .15s ease,visibility .15s ease,background-color .15s ease,border-color .15s ease,color .15s ease}.panel-toggle:hover{border-color:#9caaa4;background:#fff}.topbar-panel-toggle{width:30px;height:30px;flex:0 0 auto;border-color:#cbd4d0;background:#ffffffb8}.topbar-panel-toggle:hover{border-color:#9caaa4;background:#fff}body[data-mission-panel=expanded] .topbar-panel-toggle{border-color:#8faaa3;background:#eef8f5;color:var(--teal-dark);box-shadow:0 0 0 3px #0d766b14,0 1px 2px #17211d0d}.fullscreen-toggle{width:34px;height:34px;border-color:#c4cec9;background:#fff;color:#485650;box-shadow:0 1px 2px #17211d0d}.fullscreen-toggle:hover{border-color:#8f9f98;background:#f8faf9;color:var(--teal-dark)}.runtime-toolbar h2{margin-top:3px;color:#15201b;font-size:.94rem;font-weight:760}.toolbar-eyebrow{display:inline-flex;align-items:center;gap:6px;color:#697771;font-size:.59rem;font-weight:800}.toolbar-eyebrow>span{width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px #3867a61a}.runtime-actions{min-width:0;gap:9px}.runtime-url{min-width:140px;max-width:280px;min-height:34px;gap:8px;padding:6px 10px;border:1px solid #d2dad6;border-radius:6px;background:#ffffff9e}.runtime-url>span{width:6px;height:6px;border-radius:50%;background:#8d9a94}.runtime-actions code{min-width:0;overflow:hidden;color:#50605a;font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.button-compact{min-height:34px;border-color:#c4cec9;background:#fff;box-shadow:0 1px 2px #17211d0d;font-size:.7rem}.iframe-shell{height:calc(100vh - var(--topbar-height) - 98px);min-height:400px;border-color:#bfc9c4;border-radius:8px;box-shadow:0 18px 42px #17211d14,0 2px 8px #17211d0d}.fullscreen-exit{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:30;display:none;width:40px;height:40px;border-color:#ffffff38;background:#15201bd1;color:#fff;box-shadow:0 8px 24px #0c131047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fullscreen-exit:hover{border-color:#ffffff73;background:#15201bf5}.fullscreen-exit svg{width:17px;height:17px}.iframe-shell:fullscreen,.iframe-shell[data-fullscreen=fallback]{width:100vw;height:100vh;min-height:0;border:0;border-radius:0;background:#fff;box-shadow:none}.iframe-shell[data-fullscreen=fallback]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;height:100dvh}.iframe-shell:fullscreen .fullscreen-exit,.iframe-shell[data-fullscreen=fallback] .fullscreen-exit{display:inline-flex}body[data-runtime-fullscreen=true]{overflow:hidden}.workspace[data-result=pass] .iframe-shell{box-shadow:0 0 0 2px #0d766b14,0 18px 42px #17211d14}.boot-cover{background:#fbfcfb}.boot-cover strong{font-size:.82rem}.reset-dialog{border-color:#c9d2ce;border-radius:8px;box-shadow:0 28px 70px #17211d3d}.reset-dialog::backdrop{background:#111a1685;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.success-toast{border-radius:8px;box-shadow:0 18px 50px #17211d33,0 2px 8px #17211d14}.workspace[data-layout=focus]~.success-toast{right:auto;left:20px}@media(max-width:900px){body{overflow:auto}.topbar{position:sticky;padding:0 16px}.workspace-label,.topbar-divider,.environment-label{display:none}.runtime-indicator{max-width:44vw;padding:5px 8px;border:0;background:transparent}.workspace,.workspace[data-sidebar=collapsed]{display:block;height:auto;min-height:calc(100vh - var(--topbar-height));overflow:visible}.mission-resizer{display:none}.mission-panel,.workspace[data-sidebar=collapsed] .mission-panel,.workspace[data-layout=focus] .mission-panel,.workspace[data-layout=focus][data-sidebar=collapsed] .mission-panel{position:static;display:block;width:auto;visibility:visible;height:auto;min-height:0;padding:24px 20px 32px;overflow:visible;border:0;border-right:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;opacity:1;pointer-events:auto;transform:none;-webkit-backdrop-filter:none;backdrop-filter:none}.workspace[data-layout=focus] .mission-inspector-header,.workspace[data-layout=focus] .mission-tabs{display:none}.workspace[data-layout=focus] .mission-overview,.workspace[data-layout=focus] .mission-results,.workspace[data-layout=focus] .hint-section{display:block;height:auto;margin:0;padding:0;overflow:visible}.workspace[data-layout=focus] .mission-results,.workspace[data-layout=focus] .hint-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.controls{margin:0;border:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.panel-toggle{display:none}.runtime-pane,.workspace[data-layout=focus] .runtime-pane{position:static;height:auto;min-height:0;padding:18px 16px;overflow:visible}.iframe-shell,.workspace[data-layout=focus] .iframe-shell{height:680px;min-height:0}}@media(max-width:520px){.topbar{min-height:58px}.brand{gap:9px}.brand-mark{width:32px;height:32px}.environment-status{max-width:47%}.runtime-indicator{max-width:100%;font-size:.64rem}.mission-panel,.workspace[data-sidebar=collapsed] .mission-panel,.workspace[data-layout=focus] .mission-panel,.workspace[data-layout=focus][data-sidebar=collapsed] .mission-panel{padding:20px 16px 28px}.quest-switcher{grid-template-columns:1fr;gap:7px;margin-bottom:20px;padding-bottom:18px}.mission-panel h1{font-size:1.48rem}.target-facts{padding:2px 10px}.controls{padding:0}.runtime-pane,.workspace[data-layout=focus] .runtime-pane{padding:16px 14px}.runtime-toolbar{gap:12px}.runtime-heading{width:100%}.runtime-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto}.runtime-url{min-width:0}.iframe-shell,.workspace[data-layout=focus] .iframe-shell{height:610px}.workspace[data-layout=focus]~.success-toast{right:12px;left:auto}}
