.cad-viewer-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.cad-viewer-canvas.is-dragging{cursor:grabbing}.cad-viewer-webgl-canvas{position:relative;z-index:0}.cad-viewer-text-overlay{display:block;contain:strict;-webkit-user-select:none;user-select:none}:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0b0f17;color:#e5e7eb}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{overflow:hidden}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.cad-app{--app-bg: #0b0f17;--panel-bg: #111827;--panel-bg-2: #0f1624;--bar-bg: #0f1724;--canvas-frame: #151f31;--text: #f3f4f6;--muted: #9ca3af;--subtle: #6b7280;--border: #273244;--border-strong: #334155;--accent: #3b82f6;--accent-strong: #60a5fa;--accent-text: #dbeafe;--danger: #f87171;--shadow: rgba(0, 0, 0, .28);min-height:100%;display:grid;grid-template-rows:44px 32px 1fr;background:var(--app-bg);color:var(--text)}.cad-app[data-ui-theme=light]{--app-bg: #eef1f5;--panel-bg: #ffffff;--panel-bg-2: #f8fafc;--bar-bg: #ffffff;--canvas-frame: #d9e0ea;--text: #111827;--muted: #4b5563;--subtle: #6b7280;--border: #d6dde8;--border-strong: #b8c2d1;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-text: #1e3a8a;--danger: #dc2626;--shadow: rgba(15, 23, 42, .12)}.topbar{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--bar-bg)}.brand{display:inline-flex;align-items:center;gap:9px;min-width:220px;white-space:nowrap}.brand-mark{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid color-mix(in srgb,var(--accent) 65%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent-strong);font-size:12px;font-weight:800;letter-spacing:-.02em}.brand-text{font-size:13px;font-weight:700;letter-spacing:-.01em}.toolbar{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px;overflow-x:auto;scrollbar-width:thin}.toolbar-divider{width:1px;height:22px;background:var(--border);margin:0 2px;flex:0 0 auto}.btn{height:30px;border:1px solid var(--border-strong);border-radius:7px;padding:0 10px;background:var(--panel-bg-2);color:var(--text);cursor:pointer;line-height:1;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.btn:hover{border-color:var(--accent-strong);color:var(--accent-strong)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn-danger{background:color-mix(in srgb,var(--danger) 18%,var(--panel-bg-2));border-color:color-mix(in srgb,var(--danger) 70%,var(--border));color:var(--danger);font-weight:700}.btn-danger:hover{border-color:var(--danger);color:var(--danger)}.btn-ghost{background:transparent}.btn-square{width:30px;padding:0;font-size:17px}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.is-hidden{display:none!important}.btn.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel-bg-2));color:var(--accent-strong)}.toolbar-value{min-width:54px;height:30px;display:inline-grid;place-items:center;padding:0 8px;border:1px solid var(--border);border-radius:7px;background:var(--panel-bg-2);color:var(--text);font-variant-numeric:tabular-nums;font-size:12px;font-weight:650}.status-strip{display:flex;align-items:center;gap:6px;min-width:0;padding:4px 10px;border-bottom:1px solid var(--border);background:var(--panel-bg);color:var(--muted);font-size:12px}.status-item{display:inline-flex;align-items:center;gap:4px;max-width:240px;height:22px;min-width:0;padding:0 7px;border:1px solid var(--border);border-radius:999px;background:var(--panel-bg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-item.strong{color:var(--text);max-width:min(36vw,420px)}.status-item b{color:var(--text);font-weight:700}.status-spacer{flex:1}.status-message{min-width:0;max-width:min(46vw,640px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.status-message.is-error{color:var(--danger);font-weight:650}.workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:8px;padding:8px}.canvas-card{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--canvas-frame);border-radius:10px;background:#05070d;box-shadow:0 12px 36px var(--shadow)}.cad-app[data-drawing-theme=light] .canvas-card{background:#f7f8fb}.canvas-card.is-over{border-color:var(--accent-strong);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}#cad-canvas{width:100%;height:100%;display:block;cursor:grab}#cad-canvas.is-dragging{cursor:grabbing}.empty-hint{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 40px));display:grid;gap:8px;padding:18px 20px;border:1px dashed var(--border-strong);border-radius:12px;background:color-mix(in srgb,var(--panel-bg) 88%,transparent);color:var(--text);text-align:center;pointer-events:none;box-shadow:0 16px 48px var(--shadow)}.empty-hint strong{font-size:16px}.empty-hint span{color:var(--muted);font-size:12px;line-height:1.45}.empty-hint.is-hidden{display:none}.load-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;background:color-mix(in srgb,var(--app-bg) 30%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.load-card{width:min(460px,calc(100% - 40px));border:1px solid var(--border-strong);border-radius:12px;background:color-mix(in srgb,var(--panel-bg) 94%,transparent);box-shadow:0 20px 60px var(--shadow);padding:14px}.load-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--text)}.load-card-head span{color:var(--accent-strong);font-variant-numeric:tabular-nums;font-weight:800}.load-detail{margin-top:7px;color:var(--muted);font-size:12px;line-height:1.45}.progress-track{height:5px;margin-top:12px;overflow:hidden;border-radius:999px;background:var(--border)}.progress-track span{display:block;height:100%;width:0;border-radius:inherit;background:var(--accent-strong);transition:width .16s ease}.canvas-hud{position:absolute;left:10px;right:10px;bottom:10px;display:flex;justify-content:space-between;gap:8px;pointer-events:none}.canvas-hud span{min-width:0;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid color-mix(in srgb,var(--border-strong) 72%,transparent);border-radius:999px;background:color-mix(in srgb,var(--panel-bg) 82%,transparent);color:var(--muted);padding:5px 8px;font-size:11px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.inspector{min-width:0;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--panel-bg);box-shadow:0 12px 36px var(--shadow)}.inspector-section{padding:10px;border-bottom:1px solid var(--border)}.inspector-section:last-child{border-bottom:0}.compact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.compact-grid div{min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--panel-bg-2);padding:7px 8px}dt{color:var(--subtle);font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.08em}dd{margin:5px 0 0;color:var(--text);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inspector h2{margin:0 0 8px;color:var(--text);font-size:12px;font-weight:750}.type-list{display:flex;flex-wrap:wrap;gap:6px}.type-list span{border:1px solid var(--border);border-radius:999px;padding:4px 7px;font-size:11px;color:var(--muted);background:var(--panel-bg-2)}.type-list b{margin-right:5px;color:var(--accent-strong)}.warnings p{margin:0 0 7px;color:var(--danger);font-size:11px;line-height:1.45}.muted{color:var(--subtle);font-size:11px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 980px){body{overflow:auto}.cad-app{min-height:100vh;grid-template-rows:auto auto 1fr}.topbar{grid-template-columns:1fr}.brand{min-width:0}.toolbar{justify-content:flex-start}.status-strip{flex-wrap:wrap;height:auto}.status-message{max-width:100%}.workspace{grid-template-columns:1fr;grid-template-rows:68vh auto}.inspector{max-height:38vh}}.cad-viewer-text-overlay{z-index:1}.empty-hint{z-index:3}.load-overlay{z-index:5}.canvas-hud{z-index:4}
