:root{font-family:Inter,Microsoft YaHei UI,PingFang SC,sans-serif;color:#192e2c;background:#f7f8f4;font-size:15px;--green: #18584d;--line: #d8e1d9;--muted: #586e66}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.file-label{border:1px solid var(--line);border-radius:7px;background:#fff;padding:.55rem .82rem;color:inherit;cursor:pointer}button:hover,.file-label:hover{border-color:#35826e;background:#f0f7f2}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #609e93;outline-offset:2px}a{color:var(--green)}p{line-height:1.65}h1,h2,h3{letter-spacing:-.035em}small,.muted,.page-title p,.panel>p{color:var(--muted)}.layout{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}.sidebar{background:#112e29;color:#e6f4eb;padding:28px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;font-weight:720;font-size:23px;color:#fff;cursor:pointer}.brand small,.user-card small{display:block;font-size:10px;font-weight:500;color:#adccc0;letter-spacing:.12em}.brand-mark{display:grid;place-content:center;background:#d9f697;border-radius:10px;color:#153a2c;width:43px;height:43px;font:700 24px Georgia;display:inline-flex;align-items:center}.brand-mark span{font-style:italic}.workspace-label,.eyebrow,.code-tag,.code-label,.map-footer{font:600 10px IBM Plex Mono,Consolas,monospace;letter-spacing:.12em}.workspace-label{color:#abc7be;margin:46px 8px 12px}.sidebar nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;text-align:left;gap:13px;color:#bcd3c8;background:transparent;border:0;padding:12px}.nav-item:hover,.nav-item.active{background:#25483e;color:#fff}.nav-item.active{box-shadow:inset 3px 0 #c4e382}.nav-item>span{font-size:18px;width:20px}.nav-item small{margin-left:auto;color:#afd09a;font-size:9px}.sidebar-note{margin-top:auto;border-top:1px solid #386051;padding:18px 3px 0;font-size:13px}.sidebar-note p{color:#b5cfc3;font-size:12px}.dot{display:inline-block;background:#b8e779;border-radius:100%;width:8px;height:8px;margin-right:7px}.user-card,.user-card>div{display:flex;gap:8px;align-items:center}.user-card>div{display:block;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-card button{margin-left:auto;flex-shrink:0;color:#153a2c;background:#d9f697;border-color:#c4e382;font-weight:600}.user-card button:hover{color:#153a2c;background:#e6ffb6;border-color:#e6ffb6}.user-card .signout{padding:.55rem;font-size:12px}.signin{width:100%}.avatar{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;line-height:1;border-radius:50%;background:#c1dfb0;color:#22482c;padding:0}.topbar{height:64px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,4vw,64px);color:#496259;font-size:13px}.topbar span{margin:0 7px}.top-actions{display:flex;align-items:center;gap:8px}.top-actions a{text-decoration:none}.pill,.tag,.lang-chips b{background:#e3eee3;color:#275540;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:600}.content{max-width:1500px;margin:auto;padding:32px clamp(18px,4vw,64px)}.eyebrow{color:#34705d}.hero,.library-head,.section-line,.actions,.run-picker,.map-row,.map-footer,.card-top,.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.hero{gap:32px;margin:4px 0 40px}.hero h1,.page-title h1{font-size:clamp(28px,3.6vw,56px);line-height:1.22;margin:16px 0}.hero h1 span{color:#64a978}.hero p,.library-head p{color:var(--muted)}.hero-links,.actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.primary{background:var(--green);color:#fff;border-color:var(--green);font-weight:600}.primary:hover{background:#246f60;color:#fff}.text-btn{background:transparent;border:0;color:var(--green)}.concept-map{width:37%;min-width:220px;border:1px solid #c8daca;border-radius:12px;padding:21px;background-color:#e7f0e1;background-image:radial-gradient(#aec5af 1px,transparent 1px);background-size:11px 11px}.map-row{justify-content:center;margin:15px 0}.map-row span,.lang-chips b{border:1px solid #c6d5c2;background:#f7faf3}.map-row span{padding:4px 8px}.map-core{text-align:center}.map-core small{display:block}.map-core strong{display:block;font:italic 30px Georgia,serif;color:#1d4e41}.lang-chips{margin:13px 0}.lang-chips b{margin:3px}.map-footer{border-top:1px solid #bacdb7;padding-top:10px;font-size:8px}.library-head{border-top:1px solid var(--line);padding-top:18px}.library-head h2{margin-bottom:0}.library-head p{font-size:13px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0 20px}.filters button{border-radius:20px;font-size:13px}.filters .chosen{background:#213d31;color:#fff}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(245px,100%),1fr));gap:14px}.module-card,.panel,.import-zone{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.module-card{text-align:left;display:flex;flex-direction:column;transition:box-shadow .12s}.module-card:hover{box-shadow:0 4px 16px #163c2512}.card-top,.card-bottom{width:100%}.card-number{color:#80978c;font:12px Consolas}.module-card h3{margin:18px 0 0;font-size:21px}.module-card p{margin:6px 0 17px;font-size:14px;color:var(--muted)}.card-bottom{border-top:1px solid #e5ebe4;margin-top:auto;padding-top:12px;font-size:11px;color:#65796b}.tag-2,.tag-3{background:#ece7f8;color:#624788}.tag-4{background:#f6eed5;color:#786128}.tag-5{background:#e1edf2;color:#376479}.page-title{margin:14px 0 26px}.page-title h1{font-size:clamp(26px,3.2vw,42px)}.panel,.import-zone{margin:12px 0}.panel h2{font-size:21px}.panel h2 small{font-size:12px}.section-line h2{margin:0}.actions,.run-picker{margin:14px 0}.run-picker{justify-content:flex-start}.composer,.studio-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:16px}.studio-grid{grid-template-columns:1.6fr 1fr}.compact-list{display:grid;max-height:490px;overflow:auto}.compact-list button,.sequence{display:flex;justify-content:space-between;gap:10px;align-items:center;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left;padding:12px}.compact-list small{display:block}.sequence>span:nth-child(2){flex:1}.sequence button{padding:3px 7px}.step{color:var(--green);font-weight:700}.table-wrap{overflow:auto;max-height:500px}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}td,th{padding:9px;border-bottom:1px solid var(--line)}th{background:#f1f5ee}.import-zone,.stats{display:flex;gap:16px;align-items:center;justify-content:space-between}.stats div{display:grid;gap:4px}.stats strong{font-size:24px}.stats span{font-size:12px}.file-label input{display:none}input,textarea,select{border:1px solid #bccbc1;border-radius:6px;padding:9px;background:#fff;color:inherit;max-width:100%}textarea{width:100%}form{display:grid;gap:12px;margin:15px 0}form label{display:grid;gap:5px;font-size:13px}.inline-form{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end}summary{cursor:pointer;font-weight:600}details{margin:12px 0}.empty{padding:22px;text-align:center;color:var(--muted)}.error,.warning{color:#7c2a1e;background:#fff0e9}.success{background:#dcefdc;color:#205a36}.alert{padding:12px;margin:10px 0;border-radius:8px}.alert button{float:right;padding:0 5px}.conflict{border:1px solid #d6a883;padding:12px;margin:10px 0}.overlay{position:fixed;inset:0;background:#0a211ba6;display:grid;place-items:center;z-index:20;padding:18px}.reader,.auth{background:#fdfefa;border-radius:14px;padding:clamp(16px,4vw,36px);max-height:88vh;overflow:auto;width:min(900px,100%)}.auth{width:min(420px,100%)}.markdown{line-height:1.75;overflow-wrap:anywhere}.markdown pre,.console,.editor{background:#152c27;color:#e1efd9;padding:14px;overflow:auto;border-radius:8px;font:14px/1.6 Consolas,monospace}.editor{min-height:240px}.console{white-space:pre-wrap;max-height:280px}.code-label{display:flex;justify-content:space-between;margin:12px 0}.progress-line{height:2px;background:#6b9f78}.content footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--line);display:flex;gap:14px;color:var(--muted);font-size:12px}@media(max-width:950px){.layout{grid-template-columns:175px minmax(0,1fr)}.sidebar{padding:18px 10px}.concept-map{width:35%}.composer,.studio-grid{grid-template-columns:1fr}.map-footer{display:none}}@media(max-width:720px){.layout{display:block}.sidebar{position:static;height:auto;gap:10px}.sidebar nav{display:flex;overflow:auto}.nav-item{white-space:nowrap}.workspace-label,.sidebar-note,.concept-map,.user-card small,.nav-item small{display:none}.user-card{position:absolute;right:12px;top:20px}.topbar{height:44px}.hero{margin-bottom:22px}.library-head,.import-zone{align-items:stretch;flex-direction:column}.top-actions a{display:none}.stats{flex-wrap:wrap}.content{padding-top:20px}}.status-claimed{background:#d9efdf;color:#174d2b}.status-pending{background:#fff0bd;color:#725009}.status-revoked{background:#fbe0dc;color:#8c2920}.status-removed{background:#e5e7eb;color:#4b5563}.danger-button{color:#8c2920}.row-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:175px}.row-actions button{padding:5px 8px;font-size:12px}.claim-code{display:inline-block;-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;max-width:280px;font:12px Consolas,monospace}.roster-table table{min-width:1000px}.table-wrap thead{position:sticky;top:0;z-index:1}.markdown{overflow-x:auto;overflow-wrap:anywhere}.markdown .table-scroll,.markdown .table-wrapper{overflow-x:auto;margin:16px 0}.markdown table{min-width:580px;font-size:14px}.markdown td,.markdown th{vertical-align:top;min-width:160px}.markdown td pre{min-width:250px;white-space:pre;overflow:auto}.markdown code:not(pre code){background:#edf2e8;color:#174d39;padding:2px 4px;border-radius:3px}.missing-figure{display:block;padding:12px;background:#f0f3eb;color:#586e66}.studio-title{margin-bottom:18px}.studio-title h1{font-size:clamp(26px,3vw,40px);margin:10px 0}.studio-coursebar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:18px}.studio-coursebar>label{display:flex;align-items:center;gap:10px}.studio-coursebar .actions{margin:0}.studio-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);height:max(520px,calc(100dvh - 300px));align-items:stretch}.studio-code-pane{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.studio-selection{display:flex;flex-wrap:wrap;gap:8px}.studio-selection select{max-width:100%}.studio-code-pane .task-prompt{font-size:13px;margin:10px 0}.editor-options{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;margin:12px 0 8px}.editor-options label,.table-toolbar label,.column-chooser label{display:inline-flex;align-items:center;gap:5px}.editor-options input,.table-toolbar input,.column-chooser input{width:auto;margin:0}.editor-options select{padding:2px 4px;width:auto}.editor-options small{color:var(--muted)}.code-editor-frame{border:1px solid #36594d;border-radius:8px;overflow:hidden;min-width:0}.editor-commandbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;background:#203e34;color:#dae8dc;padding:6px 10px;gap:6px;font:12px Consolas,monospace}.editor-commandbar .actions{gap:3px;margin:0}.editor-commandbar button{font-size:11px;padding:3px 6px;background:#244a40;border-color:#45695d;color:#e5f1e6}.stdin-input{font-size:12px;margin-top:12px}.stdin-input textarea{margin-top:8px;font-family:Consolas,monospace}.studio-output{min-height:100px;max-height:300px;margin-bottom:0}.ai-panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.ai-heading{flex-shrink:0}.ai-heading h2{margin:12px 0;font-size:22px}.ai-heading p{font-size:13px;margin:0 0 12px}.ai-conversation{overflow:auto;overscroll-behavior:contain;min-height:80px;flex:1;scrollbar-gutter:stable}.ai-conversation .markdown{font-size:14px;overflow-wrap:anywhere}.ai-conversation pre{max-width:100%;white-space:pre;overflow:auto}.ai-question{background:#edf4eb;padding:10px 12px;border-radius:8px}.ai-question p{white-space:pre-wrap;margin:5px 0 0}.ai-turn+.ai-turn{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.ai-compose{flex-shrink:0;display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.ai-compose textarea{min-height:76px;max-height:160px;resize:vertical;margin:0}.environment-panel{margin-bottom:18px}.environment-panel h2{margin:0}.toolchain-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:16px}.toolchain-list>button{padding:10px;border:1px solid var(--line);border-radius:6px;text-align:left;color:inherit;background:#fff}.toolchain-list>button[aria-pressed=true]{border-color:#18584d;box-shadow:inset 0 0 0 1px #18584d;background:#edf5e9}.environment-switch-hint{font-size:12px;margin:10px 0}.runtime-details{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:8px;background:#f9fbf6}.runtime-details h3{margin:0}.runtime-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.runtime-facts>div{min-width:0}.runtime-facts dt{font-size:12px;color:var(--muted);margin-bottom:5px}.runtime-facts dd{margin:0;overflow-wrap:anywhere}.runtime-facts .runtime-path{grid-column:1 / -1}.runtime-inventory{max-height:200px;overflow:auto;white-space:pre-wrap;font:12px/1.65 Consolas,monospace;background:#edf2e8;padding:12px}.terminal-switch-notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;padding:12px;background:#eef4e8;border-radius:8px;font-size:12px}.toolchain-list small{display:block;font-size:10px;overflow-wrap:anywhere;margin-top:6px}.toolchain-list .tag{margin-left:6px}.compute-settings,.package-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:16px 0}.compute-settings label{flex:1}.package-form label{flex:1;min-width:180px}.package-form input{margin-bottom:0}.package-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:10px 0;max-height:240px;overflow:auto}.workspace-path{display:block;overflow-wrap:anywhere;color:var(--muted);margin:8px 0}.environment-log{font-size:12px}.terminal-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;margin-top:18px}.terminal-panel p{font-size:12px}.terminal-host{height:300px;padding:10px;border-radius:8px;background:#152c27;overflow:hidden}.reader-wide{width:calc(100vw - 32px);max-height:calc(100dvh - 32px);height:calc(100dvh - 32px)}.table-view{border:1px solid var(--line);border-radius:8px;margin:16px 0;min-width:0;overflow:hidden}.markdown .table-scroll,.markdown .table-wrapper{overflow:visible}.table-toolbar{display:flex;flex-wrap:wrap;gap:8px 12px;padding:10px;align-items:center;background:#edf3e9;font-size:12px}.table-toolbar button,.table-navigation button{padding:4px 8px;font-size:12px}.table-toolbar select{margin:0;width:auto;padding:3px}.column-chooser{padding:8px 12px;background:#f5f8f1;font-size:12px}.column-chooser>div{display:flex;flex-wrap:wrap;gap:8px 20px;padding-top:10px}.table-viewport{overflow:auto;max-height:65dvh;overscroll-behavior:contain;position:relative}.markdown .table-view>.table-viewport>.table-zoom>table{margin:0;width:max-content;min-width:100%;font-size:14px;border-collapse:separate;border-spacing:0}.table-view>.table-viewport>.table-zoom>table>:is(thead,tbody,tfoot)>tr>th{position:sticky;top:0;background:#eaf1e5;z-index:3;box-shadow:0 1px var(--line)}.table-pin>.table-viewport>.table-zoom>table>:is(thead,tbody,tfoot)>tr>:first-child{position:sticky;left:0;background:#f4f8f0;z-index:2}.table-pin>.table-viewport>.table-zoom>table>:is(thead,tbody,tfoot)>tr>th:first-child{z-index:4}.table-view>.table-viewport>.table-zoom>table>:is(thead,tbody,tfoot)>tr>td{max-width:800px}.table-viewport td[hidden],.table-viewport th[hidden]{display:none}.table-code-wrap>.table-viewport>.table-zoom>table>:is(thead,tbody,tfoot)>tr>:is(td,th){max-width:42vw}.table-code-wrap>.table-viewport>.table-zoom>table>:is(thead,tbody,tfoot)>tr>td>pre,.table-code-wrap>.table-viewport>.table-zoom>table>:is(thead,tbody,tfoot)>tr>td>pre>code{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.table-navigation{display:flex;gap:10px;align-items:center;background:#f5f8f1;padding:8px 10px;font-size:11px}.table-navigation input{flex:1;min-width:60px;width:auto;margin:0;accent-color:var(--green)}.table-navigation small{max-width:240px}.table-overlay{position:fixed;inset:0;background:#0b2118bb;z-index:100;padding:12px}.table-dialog{height:100%}.table-expanded{background:#fdfefa;height:100%;margin:0;display:flex;flex-direction:column;box-shadow:0 20px 80px #112e2955}.table-expanded>.table-viewport{flex:1;max-height:none}.reader>.markdown{overflow:visible;min-width:0}.textbook-content{min-width:0}.textbook-table-navigation{position:sticky;top:0;z-index:9;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;margin:14px 0;background:#edf4e6;border:1px solid #c8d9bc;border-radius:8px;box-shadow:0 3px 12px #153a2c12;font-size:12px}.textbook-table-navigation select{flex:1;min-width:160px;width:160px;max-width:100%;margin:0;padding:6px}.textbook-table-navigation button{font-size:12px}.table-view{max-width:100%}.table-view.table-nested{width:640px;max-width:calc(100vw - 110px);min-width:280px}.table-view>.table-viewport{min-height:0}.table-caption{max-width:100%;white-space:normal;overflow-wrap:anywhere}.table-view>.table-toolbar{position:sticky;top:0;z-index:5}.table-view>.table-toolbar .table-caption{flex:1 1 100%;font-size:11px;color:var(--muted)}.table-expanded>.table-toolbar .table-caption{flex:0 1 auto}.table-expanded>.table-toolbar,.table-expanded>.table-navigation,.table-expanded>.column-chooser{flex-shrink:0}@media(max-width:1040px){.studio-grid{grid-template-columns:minmax(0,1fr);height:auto}.studio-code-pane,.ai-panel{height:620px}.table-navigation small{display:none}}
