/* 工具箱 · CAD 转 3D 白模（在 toolbox.css 基础上补充） */
.cad-icon{background:#24525c;font-size:12.5px;letter-spacing:.02em}
.cad-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1.5px dashed var(--line,#e2ddcf);border-radius:14px;padding:26px 16px;margin-bottom:14px;cursor:pointer;background:#fff;text-align:center;transition:border-color .15s,background .15s}
.cad-drop:hover,.cad-drop.over{border-color:var(--pri,#0f3d33);background:color-mix(in srgb,var(--pri,#0f3d33) 4%,#fff)}
.cad-drop b{font-size:14px;word-break:break-all}
.cad-drop small{font-size:12px;color:var(--muted,#8c9187)}
.cad-drop-icon{width:38px;height:38px;border-radius:50%;background:var(--soft,#e2eae5);color:var(--pri,#0f3d33);display:flex;align-items:center;justify-content:center;font-size:17px}
.cad-history{margin-top:22px;border-top:1px solid var(--line,#e2ddcf);padding-top:14px}
.cad-history-title{font-size:13px;font-weight:600;margin:0 0 8px}
.cad-jobs{display:grid;gap:6px;max-height:320px;overflow:auto}
.cad-job{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;text-align:left;border:1px solid var(--line,#e2ddcf);border-radius:10px;background:#fff;padding:8px 10px;cursor:pointer;font:inherit}
.cad-job.active{border-color:var(--pri,#0f3d33);box-shadow:0 0 0 1px var(--pri,#0f3d33)}
.cad-job b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cad-job small{grid-column:1/-1;font-size:11.5px;color:var(--muted,#8c9187)}
.cad-muted{font-size:12.5px;color:var(--muted,#8c9187);margin:0}
.cad-badge{font-size:11px;border-radius:999px;padding:1px 8px;background:var(--soft,#e2eae5);color:var(--pri,#0f3d33);white-space:nowrap}
.cad-badge.run{background:#fff4dc;color:#8a6200}
.cad-badge.fail{background:#fbe7e4;color:var(--danger,#a03d35)}
.cad-panel{background:var(--surface,#fdfcf9);border:1px solid var(--line,#e2ddcf);border-radius:16px;padding:18px 20px;margin-bottom:16px}
.cad-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cad-panel-head h2{margin:0;font-size:16px}
.cad-panel-head p{margin:2px 0 0;font-size:12.5px;color:var(--muted,#8c9187)}
.cad-progress{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink,#1a1c19);padding:12px 0 2px}
.cad-spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--soft,#e2eae5);border-top-color:var(--pri,#0f3d33);animation:cadspin .8s linear infinite;flex:none}
@keyframes cadspin{to{transform:rotate(360deg)}}
.cad-drawings{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:14px}
.cad-drawing{border:1px solid var(--line,#e2ddcf);border-radius:12px;background:#fff;padding:12px;display:flex;flex-direction:column;gap:6px}
.cad-drawing.plan{border-color:color-mix(in srgb,var(--pri,#0f3d33) 35%,var(--line,#e2ddcf))}
.cad-drawing b{font-size:14px}
.cad-drawing small{font-size:12px;color:var(--muted,#8c9187)}
.cad-row{display:flex;gap:6px;align-items:center;justify-content:space-between;margin-top:4px}
.cad-btn{border:1px solid var(--pri,#0f3d33);border-radius:9px;background:var(--pri,#0f3d33);color:#fff;font:inherit;font-size:13px;padding:6px 12px;cursor:pointer;white-space:nowrap}
.cad-btn.ghost{background:#fff;color:var(--pri,#0f3d33)}
.cad-btn:disabled{opacity:.6;cursor:wait}
.cad-link{font-size:12.5px;color:var(--pri,#0f3d33);background:none;border:0;cursor:pointer;padding:0;font:inherit;text-decoration:underline}
.cad-more{margin-top:12px}
.cad-viewer{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;background:var(--surface,#fdfcf9)}
.cad-viewer-head{display:flex;align-items:center;gap:12px;padding:8px 14px;padding-top:calc(8px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--line,#e2ddcf);flex-wrap:wrap}
.cad-viewer-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cad-viewer-head b{font-size:14px}
.cad-viewer-head small{font-size:12px;color:var(--muted,#8c9187);margin-left:8px}
.cad-viewer iframe{display:block;flex:1;width:100%;min-height:0;border:0;background:#fff}
body.cad-viewing{overflow:hidden}
.cad-stats{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.cad-stats span{font-size:12px;background:#f1efe9;border-radius:999px;padding:2px 9px}
@media (max-width:1100px){.tb-main{grid-template-columns:1fr}.tb-form{position:static}}
