*{box-sizing:border-box;margin:0;padding:0}
body{background:#0b0f17;color:#e6edf3;font-family:"Microsoft YaHei","PingFang SC",sans-serif;height:100vh;overflow:hidden}
.app{display:grid;grid-template-columns:250px 1fr 360px;height:100vh;gap:1px;background:#1b2230}
aside,main{background:#0d121b;overflow-y:auto;padding:12px}
.left h2,.right h2{font-size:15px;margin-bottom:8px;color:#8ab4f8}
.hint{font-size:11px;color:#8b98a9;line-height:1.5;margin:6px 0}
hr{border:0;border-top:1px solid #222c3c;margin:10px 0}
.obj-btn{display:block;width:100%;padding:8px;margin:5px 0;background:#172032;color:#cfe3ff;border:1px solid #2b3a52;border-radius:6px;cursor:pointer;font-size:13px;text-align:left}
.obj-btn:hover{background:#1f2b45}
select,input[type=text],input[type=password]{width:100%;padding:6px;margin:4px 0;background:#0f1522;color:#e6edf3;border:1px solid #2b3a52;border-radius:5px;font-size:12px}
.layers label{display:block;font-size:12px;margin:3px 0;color:#a9b6c9}
.small{font-size:11px;color:#7f8c9e;margin:3px 0}
.dbbox{margin-top:8px}
.mini{display:block;width:100%;padding:5px;margin:4px 0;background:#1a2337;color:#9ecbff;border:1px solid #2b3a52;border-radius:5px;cursor:pointer;font-size:11px}
.mini:hover{background:#22304d}
.center{display:flex;flex-direction:column;gap:8px}
.canvas-wrap{position:relative;flex:1;min-height:320px;background:#05070d;border:1px solid #222c3c;border-radius:6px;overflow:hidden}
#unifiedCanvas{width:100%;height:100%;display:block}
#unifiedCanvas.drag{border:2px dashed #4dabf7}
.probe{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.6);padding:3px 8px;border-radius:4px;font-size:11px;color:#9ecbff;pointer-events:none}
.status{position:absolute;right:8px;top:8px;background:rgba(0,0,0,.6);padding:3px 8px;border-radius:4px;font-size:11px;color:#8ce99a}
.drawer-bar{display:flex;align-items:center;gap:10px}
.drawer-bar button{padding:5px 12px;background:#1a2337;color:#9ecbff;border:1px solid #2b3a52;border-radius:5px;cursor:pointer;font-size:12px}
.drawer{max-height:0;overflow:hidden;transition:max-height .25s ease;background:#0b1220;border:1px solid #222c3c;border-radius:6px}
.drawer.open{max-height:420px;overflow-y:auto}
.drawer-inner{padding:10px}
.adv-table{width:100%;border-collapse:collapse;font-size:11px;margin:6px 0}
.adv-table td{border:1px solid #222c3c;padding:4px 6px;color:#b9c6d8}
.drawer-ctl{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.drawer-ctl button{padding:4px 10px;background:#1a2337;color:#9ecbff;border:1px solid #2b3a52;border-radius:5px;cursor:pointer;font-size:11px}
.drawer-ctl label{font-size:11px;color:#a9b6c9;display:flex;align-items:center;gap:4px}
.right{display:flex;flex-direction:column}
.chat-log{flex:1;overflow-y:auto;background:#0a0f18;border:1px solid #222c3c;border-radius:6px;padding:8px;font-size:12px;line-height:1.6;min-height:200px}
.msg{margin:6px 0;padding:7px 9px;border-radius:6px;white-space:pre-wrap;word-break:break-word}
.msg.user{background:#12304a;color:#cfe3ff}
.msg.ai{background:#132318;color:#b2f2bb}
.msg.sys{background:#1a1a24;color:#a9b6c9;font-size:11px}
.msg-body{white-space:pre-wrap}
.apply-btn{margin-top:5px;padding:3px 8px;background:#1f6feb;color:#fff;border:0;border-radius:4px;cursor:pointer;font-size:11px}
.chat-input{display:flex;gap:6px;margin-top:8px}
.chat-input input{flex:1}
.chat-input button{padding:6px 14px;background:#1f6feb;color:#fff;border:0;border-radius:5px;cursor:pointer}
.llm-box{margin-top:10px;background:#0b1220;border:1px solid #222c3c;border-radius:6px;padding:8px}
.llm-box summary{cursor:pointer;color:#8ab4f8;font-size:12px}
.llm-box label{display:block;font-size:11px;color:#a9b6c9;margin:5px 0 2px}

/* 经典实验库 */
.exp-lib { max-height: 320px; overflow-y: auto; }
.exp-group { font-size: 11px; color: #94a3b8; margin: 8px 0 4px; padding-left: 2px; letter-spacing: .5px; }
.exp-btn { display: block; width: 100%; text-align: left; margin-bottom: 4px; padding: 6px 8px;
  background: #0f172a; color: #e2e8f0; border: 1px solid #1e293b; border-radius: 6px;
  font-size: 12px; cursor: pointer; line-height: 1.35; }
.exp-btn:hover { background: #1e293b; border-color: #38bdf8; }
.exp-dom { display: block; font-size: 10px; color: #64748b; margin-top: 2px; }

/* AI 消息反馈按钮（持续学习） */
.fb-row { margin-top: 4px; display: flex; gap: 4px; }
.fb-btn { background: transparent; border: 1px solid #334155; color: #94a3b8;
  border-radius: 4px; font-size: 11px; padding: 2px 6px; cursor: pointer; }
.fb-btn:hover { border-color: #38bdf8; color: #e2e8f0; }

/* ===== 帮助栏（v18） ===== */
.btn-help{background:#1d4ed8;color:#fff;border:none;border-radius:6px;padding:6px 12px;cursor:pointer}
.btn-help:hover{background:#2563eb}
.btn-x{background:transparent;color:#9fb3c8;border:1px solid #334155;border-radius:6px;padding:3px 10px;cursor:pointer}
.btn-x:hover{color:#e6edf3;border-color:#64748b}
.help-drawer{max-height:62vh;overflow:auto}
.help-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.help-body{font-size:13px;line-height:1.75;color:#cbd5e1}
.help-title{font-size:16px;font-weight:700;color:#e6edf3;margin-bottom:10px}
.help-sec{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #1e293b}
.help-sec:last-child{border-bottom:none}
.help-h{font-size:14px;font-weight:700;color:#7dd3fc;margin-bottom:6px}
.help-ul{margin:6px 0 6px 18px;padding:0}
.help-ol{margin:6px 0 6px 18px;padding:0}
.help-ul li,.help-ol li{margin:3px 0}
.help-body code{background:#0b1220;border:1px solid #1e293b;border-radius:4px;padding:1px 5px;color:#fbbf24;font-size:12px}
.help-warn{background:#3f2d12;border-left:3px solid #f59e0b;padding:7px 10px;border-radius:4px;color:#fde68a;margin:8px 0}
.help-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:center;margin-top:6px}
.help-grid code{white-space:nowrap}
.help-grid span{color:#94a3b8;font-size:12px}
