/* Multi-file code explorer + Code Studio */
.code-explorer{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#0d1117;min-height:320px}
.code-explorer-toolbar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:#10141c;flex:none}
.code-explorer-toolbar strong{font-size:12px;color:#c9d1d9;margin-right:auto}
.code-mode-btn{background:#161b22;border:1px solid #30363d;color:#8b949e;padding:6px 10px;border-radius:6px;font-size:12px;cursor:pointer}
.code-mode-btn.is-active,.code-mode-btn:hover{color:#fff;border-color:#58a6ff;background:#1c2330}
.code-explorer-body{display:grid;grid-template-columns:200px minmax(0,1fr);min-height:0;flex:1}
.code-tree{padding:10px 8px;border-right:1px solid var(--line);background:#0d1117;overflow:auto;max-height:min(70vh,640px)}
.code-tree-label{display:block;font:10px DM Mono,ui-monospace,monospace;color:#6e7681;text-transform:uppercase;letter-spacing:.08em;padding:4px 8px 8px}
.code-tree button{display:block;width:100%;text-align:left;background:transparent;border:0;color:#8b949e;padding:8px 10px;border-radius:6px;font:12px/1.35 ui-monospace,DM Mono,monospace;cursor:pointer}
.code-tree button:hover{color:#fff;background:#161b22}
.code-tree button.is-active{color:#fff;background:#1f2937;border:1px solid #30363d}
.code-pane-wrap{overflow:auto;max-height:min(70vh,640px);background:#0d1117}
.code-pane-wrap pre{margin:0;padding:16px 18px;background:transparent!important}
.code-pane-wrap code{font:13px/1.55 ui-monospace,DM Mono,Consolas,monospace!important;tab-size:2;white-space:pre}
.code-raw{padding:12px}
.code-raw textarea{width:100%;min-height:320px;font:13px/1.55 ui-monospace,DM Mono,monospace;background:#0b0c0f;border:1px solid #30333b;color:#fff;padding:12px;border-radius:8px;resize:vertical}
.code-explorer.compact{min-height:220px}
.code-explorer.compact .code-explorer-body{grid-template-columns:160px minmax(0,1fr)}
.code-explorer.compact .code-pane-wrap,.code-explorer.compact .code-tree{max-height:360px}

/* Code Studio fullscreen */
.code-studio-body{margin:0;background:#090b10;color:#e6edf3;min-height:100vh}
.code-studio{display:grid;grid-template-rows:auto 1fr;min-height:100vh}
.code-studio-top{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid #21262d;background:#0d1117}
.code-studio-top h1{margin:0;font-size:16px;font-weight:600;letter-spacing:-.02em}
.code-studio-top .muted{color:#8b949e;font-size:12px}
.code-studio-top-actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.code-studio-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 260px;min-height:0;height:calc(100vh - 57px)}
.code-studio-side,.code-studio-check{border-right:1px solid #21262d;background:#0d1117;overflow:auto;padding:14px 12px}
.code-studio-check{border-right:0;border-left:1px solid #21262d}
.code-studio-main{min-width:0;display:flex;flex-direction:column;background:#010409}
.code-studio-side a{display:block;padding:8px 10px;border-radius:6px;color:#8b949e;font-size:13px}
.code-studio-side a:hover{color:#fff;background:#161b22}
.code-studio-side a.is-active{color:#fff;background:#1f2937}
.code-studio-side .sec{font:10px DM Mono,monospace;color:#6e7681;text-transform:uppercase;letter-spacing:.08em;margin:14px 8px 6px}
.code-studio-side .sec:first-child{margin-top:0}
.code-studio-main .code-explorer{border:0;border-radius:0;flex:1;min-height:0;grid-template-rows:auto 1fr;height:100%}
.code-studio-main .code-tree,.code-studio-main .code-pane-wrap{max-height:none}
.checkpoint-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.checkpoint-list li{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid #30363d;border-radius:8px;background:#161b22;cursor:pointer}
.checkpoint-list li.is-done{opacity:.55;border-color:#238636}
.checkpoint-list li.is-done b{text-decoration:line-through}
.checkpoint-list input{margin-top:3px;accent-color:#3fb950}
.checkpoint-list b{display:block;font-size:13px}
.checkpoint-list small{color:#8b949e;font-size:11px;text-transform:uppercase}
.code-studio-empty{padding:48px 24px;color:#8b949e;text-align:center}
.code-studio-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;padding:24px;max-width:1100px;margin:0 auto}
.code-studio-cards a{display:block;padding:18px;border:1px solid #30363d;border-radius:12px;background:#0d1117;color:#e6edf3}
.code-studio-cards a:hover{border-color:#58a6ff}
.code-studio-cards strong{display:block;margin-bottom:6px}
.code-studio-cards span{color:#8b949e;font-size:12px}

@media(max-width:1000px){
  .code-studio-layout{grid-template-columns:1fr;height:auto}
  .code-studio-side,.code-studio-check{border:0;border-bottom:1px solid #21262d;max-height:220px}
  .code-explorer{grid-template-columns:1fr}
  .code-tree{border-right:0;border-bottom:1px solid var(--line);max-height:160px}
}
