.code-lab{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:14px;background:#fff}.code-lab.locked{opacity:.72}.code-lab .section-title>strong{color:#6c7f97}.code-workbench{display:grid;grid-template-columns:260px minmax(0,1fr) 310px;gap:16px;padding:16px}.code-brief{padding:16px;background:#f5f9fe;border-left:4px solid var(--blue)}.code-brief h3{margin:0 0 14px;color:var(--navy);font-size:16px}.code-brief ol{list-style:none;padding:0;margin:0}.code-brief li{display:flex;gap:10px;align-items:flex-start;margin:13px 0}.code-brief li b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#e0edfc;color:var(--blue);font-size:11px;flex:none}.code-brief li span{font-size:12px;color:#405a79}.code-brief p{font-size:11px;color:#6a7d95;margin:16px 0 0}.editor-panel,.test-panel{border:1px solid #bcd1e8;border-radius:8px;overflow:hidden}.editor-panel>header,.test-panel>header{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;background:#f1f6fc;border-bottom:1px solid #cad9e9}.editor-panel>header strong,.test-panel>header strong{color:#123866}.editor-panel>header span,.test-panel>header span{color:#647992;font-size:11px}.editor-panel>textarea{display:block;width:100%;height:328px;border:0;resize:vertical;padding:14px 16px;background:#071c38;color:#dce9f8;font:13px/1.55 Consolas,"Cascadia Code",monospace;tab-size:4}.editor-panel>textarea:focus{outline:3px solid #78aef7;outline-offset:-3px}.editor-panel>textarea:disabled{color:#9fb0c5;background:#172b45}.editor-panel>footer{display:flex;gap:10px;padding:10px 12px;border-top:1px solid #cad9e9}.editor-panel button,.test-panel button,.adapter-note button{min-height:44px;border:1px solid var(--blue);border-radius:6px;padding:0 16px;background:#fff;color:var(--blue);font-weight:750}.editor-panel button:last-child,.test-panel button,.adapter-note button:first-child{background:var(--blue);color:#fff}.editor-panel button:disabled,.test-panel button:disabled,.adapter-note button:disabled{opacity:.45}.editor-panel button:not(:disabled),.test-panel button:not(:disabled),.adapter-note button:not(:disabled){cursor:pointer}.editor-panel>p,.test-panel>p{min-height:42px;margin:0;padding:10px 13px;border-top:1px solid #d8e4f0;color:#5f748e;font-size:12px}.editor-panel>p.pass,.test-panel>p.pass{color:#08784d;background:var(--green-bg)}.editor-panel>p.fail,.test-panel>p.fail{color:#8b5400;background:var(--amber-bg)}.test-panel>ol{list-style:none;margin:0;padding:8px 12px}.test-panel li{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e0e9f3}.test-panel li b{font-size:12px}.test-panel li span{font-size:11px;color:#6d8097}.test-panel li.pass span{color:var(--green);font-weight:800}.test-panel li.fail span{color:var(--danger);font-weight:800}.test-panel>button{display:block;margin:12px;width:calc(100% - 24px)}.adapter-note{display:grid;grid-template-columns:1fr 300px;gap:16px;padding:16px;border-top:1px solid var(--line);background:#f8fbfe}.adapter-note label{display:flex;flex-direction:column}.adapter-note label>span{font-weight:800;color:#17385f;margin-bottom:8px}.adapter-note textarea{height:112px;border:1px solid #b9cde5;border-radius:7px;padding:11px;resize:vertical;color:#203c60}.adapter-note small{align-self:flex-end;color:#6d8097;margin-top:4px}.adapter-note>div{display:flex;flex-direction:column;justify-content:center;gap:10px}.adapter-note>p{grid-column:1/3;margin:0;padding:10px 12px;border-left:4px solid #b9cbe0;background:#fff;color:#60758f}.adapter-note>p.pass{border-color:var(--green);background:var(--green-bg);color:#08784d}.adapter-note>p.fail{border-color:#d58b1a;background:var(--amber-bg);color:#8b5400}@media(max-width:1000px){.code-workbench{grid-template-columns:1fr}.code-brief{border-left:0;border-top:4px solid var(--blue)}.adapter-note{grid-template-columns:1fr}.adapter-note>p{grid-column:1}.editor-panel>textarea{height:360px}}@media(max-width:480px){.code-workbench{padding:10px}.editor-panel>textarea{height:390px;font-size:11px;padding:12px}.editor-panel>footer{flex-direction:column}.editor-panel button,.test-panel button,.adapter-note button{width:100%}.adapter-note{padding:12px}.adapter-note textarea{height:150px}}
