:root{--bg:#0b0f1a;--panel:#10162a;--card:#131a2b;--border:#22304f;--txt:#e8edf7;--muted:#8fa0c2;--accent:#4f7cff;--ok:#2ecc71;--err:#e74c3c;--warn:#f39c12}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--txt);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;height:100vh;overflow:hidden;display:flex;flex-direction:column}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 22px;border-bottom:1px solid var(--border);background:#0d1322;flex:none}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--txt);font-weight:600;font-size:15px}
.brand-logo{width:26px;height:26px;border-radius:6px}
.brand small{color:var(--accent)}
.topbar nav{display:flex;gap:16px}
.topbar nav a{color:var(--muted);text-decoration:none;font-size:13px}
.topbar nav a:hover{color:var(--txt)}
.mission-bar{display:flex;gap:10px;padding:12px 22px;background:#0d1322;border-bottom:1px solid var(--border);flex:none;align-items:center}
#mission-input{flex:1;background:var(--card);border:1px solid var(--border);border-radius:9px;padding:10px 14px;color:var(--txt);font-size:14px}
#mission-input:focus{outline:none;border-color:var(--accent)}
.btn{padding:10px 18px;border-radius:9px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-weight:600;cursor:pointer;font-size:14px}
.btn.primary{background:var(--accent);color:#fff}
.btn.primary:hover{background:#3d68e0}
.btn:disabled{opacity:.5;cursor:not-allowed}
.mission-status{font-size:13px;color:var(--muted);white-space:nowrap}
.ide{flex:1;display:grid;grid-template-columns:250px 1fr 380px;gap:1px;background:var(--border);overflow:hidden}
.panel{background:var(--panel);overflow-y:auto;display:flex;flex-direction:column}
.panel-title{padding:12px 14px;font-size:13px;font-weight:700;color:var(--muted);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex:none}
.mini{background:var(--card);border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:3px 9px;font-size:12px;cursor:pointer}
.mini:hover{color:var(--txt);border-color:var(--accent)}
.mini.warn{color:var(--warn);border-color:var(--warn)}
.file-tree{padding:8px}
.file-item{padding:6px 9px;border-radius:6px;font-size:13px;cursor:pointer;display:flex;justify-content:space-between;gap:8px;color:var(--muted)}
.file-item:hover{background:var(--card);color:var(--txt)}
.file-item.active{background:rgba(79,124,255,.15);color:var(--txt)}
.file-item .sz{font-size:11px;color:var(--muted)}
.file-item .ck{color:var(--ok);font-size:11px}
.hint{color:var(--muted);font-size:13px;padding:16px;text-align:center}
.tabs{display:flex;border-bottom:1px solid var(--border);flex:none;background:#0d1322}
.tab{padding:10px 18px;background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;border-bottom:2px solid transparent}
.tab.active{color:var(--txt);border-bottom-color:var(--accent)}
.tabpane{flex:1;overflow-y:auto;display:none;flex-direction:column}
.tabpane.active{display:flex}
.code-head{padding:8px 14px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex:none;background:#0d1322}
.code-path{font-size:12px;color:var(--accent);font-family:ui-monospace,monospace}
.code-view{flex:1;padding:16px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12.5px;line-height:1.6;overflow:auto;white-space:pre;color:#c9d4ec}
.activity-head{padding:10px 14px;border-bottom:1px solid var(--border);display:flex;gap:8px;flex:none}
#conv-input{flex:1;background:var(--card);border:1px solid var(--border);border-radius:7px;padding:7px 11px;color:var(--txt);font-size:12px;font-family:monospace}
.activity-feed{padding:12px;display:flex;flex-direction:column;gap:9px}
.act{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;padding:10px 12px;font-size:12.5px}
.act.err{border-left-color:var(--err)}
.act .tool{font-weight:700;color:var(--accent)}
.act.err .tool{color:var(--err)}
.act .args{color:var(--muted);font-family:monospace;font-size:11px;margin-top:4px;word-break:break-all}
.act .out{color:#a9b8dd;margin-top:6px;font-family:monospace;font-size:11px;white-space:pre-wrap;max-height:120px;overflow-y:auto;background:#0b1120;padding:7px;border-radius:6px}
.act .ok-badge{color:var(--ok);font-size:11px}
.act .err-badge{color:var(--err);font-size:11px}
.history-list{padding:12px;display:flex;flex-direction:column;gap:9px}
.hist{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px;font-size:13px}
.hist .hp{font-family:monospace;color:var(--accent);font-size:12px}
.hist .hm{color:var(--muted);font-size:12px;margin:6px 0}
.port-input{width:70px;background:var(--card);border:1px solid var(--border);border-radius:6px;padding:4px 8px;color:var(--txt);font-size:12px}
.preview-box{flex:1;display:flex;flex-direction:column}
.preview-box iframe{flex:1;border:none;background:#fff}
