:root{color-scheme:light;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;background:#f3f4f6}.app-shell{display:flex;gap:0;height:100%;padding:16px}.panel{background:#fff;border:1px solid #d1d5db;border-radius:12px;overflow:hidden}.sketch-panel{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;position:relative}.sketch-stage{flex:1 1 auto;min-height:0;padding:6px;display:flex;align-items:center;justify-content:center}.guide-panel{min-width:360px}.guide-card{border:1px solid #dbe3ef;background:#f8fbff;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.guide-title{font-size:13px;font-weight:600;color:#1e293b}.runtime-indicator{font-size:12px;font-weight:700;border-radius:8px;padding:6px 8px;text-transform:uppercase;letter-spacing:.02em}.runtime-indicator.on{color:#14532d;background:#dcfce7;border:1px solid #86efac}.runtime-indicator.off{color:#7f1d1d;background:#fee2e2;border:1px solid #fca5a5}.guide-step{font-size:12px}.guide-step.done{color:#166534}.guide-step.pending{color:#475569}.guide-help summary{cursor:pointer;font-size:12px;color:#334155}.guide-help p{margin:8px 0 0;font-size:12px;line-height:1.4;color:#475569}.guide-row{border-bottom:none;padding:0;gap:6px}.guide-row button{flex:1}.runtime-inline-status{margin-top:-2px}.runtime-controls-corner{position:absolute;right:14px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:stretch;gap:6px;z-index:6;width:220px}.runtime-controls-row{border-bottom:none;background:#ffffffeb;border:1px solid #e5e7eb;border-radius:10px;padding:8px;box-shadow:0 2px 10px #0f172a14}.runtime-controls-status{background:#ffffffeb;border:1px solid #e5e7eb;border-radius:10px;padding:4px 8px}.sketch-canvas-wrap{width:100%;height:100%;flex:0 0 auto;display:flex;align-items:center;justify-content:center}.unified-viewport-shell{width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;position:relative;border:1px solid #d1d5db;border-radius:8px;overflow:hidden;background:#fff}.unified-viewport-stage{width:100%;height:100%;position:relative}.unified-viewport-stage .mesh-view{width:100%;height:100%;min-height:0;border:none;border-radius:0}.unified-sketch-layer{position:absolute;top:0;right:0;bottom:0;left:0}.unified-sketch-layer.active{pointer-events:auto}.unified-sketch-layer.passive{pointer-events:none;opacity:0}.unified-sketch-layer .sketch-canvas{background:transparent}.unified-viewport-hud{position:absolute;top:10px;right:10px;display:flex;gap:6px;z-index:4}.unified-viewport-hud button{padding:6px 10px;font-size:12px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.toolbar{display:flex;gap:8px;padding:12px;border-bottom:1px solid #e5e7eb}.tool-row{padding-top:8px;padding-bottom:8px}.debug-row{padding:0;border-bottom:none;gap:6px}.debug-row button{flex:1;padding:6px 8px;font-size:12px}.hidden-upload{display:none}.active-tool{border-color:#2563eb;background:#dbeafe}button{border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;border-radius:8px;padding:8px 12px;cursor:pointer}button:disabled{opacity:.6;cursor:default}.sketch-canvas{width:100%;height:100%;aspect-ratio:1 / 1;object-fit:contain;display:block;touch-action:none;background:#f8fafc}.preview-panel{min-width:320px;max-width:calc(100% - 320px);flex:0 0 auto;padding:12px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;overflow-x:hidden;height:100%}.panel-divider{width:10px;flex:0 0 10px;cursor:col-resize;position:relative;margin:0 8px}.panel-divider:before{content:"";position:absolute;top:0;bottom:0;left:4px;width:2px;background:#d1d5db;border-radius:2px}.panel-divider:hover:before,.panel-divider.dragging:before{background:#94a3b8}.status-row{display:flex;justify-content:space-between;font-size:13px;color:#334155}.pointsize-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:12px;color:#334155}.pointsize-row input[type=range]{width:100%}.preview-canvas{width:100%;border:1px solid #d1d5db;border-radius:8px;image-rendering:pixelated;background:#fff}.preview-label{font-size:12px;color:#475569}.depth-scale-wrap{display:flex;flex-direction:column;gap:4px;margin-top:-4px}.depth-scale-bar{width:100%;height:10px;border-radius:6px;border:1px solid #cbd5e1;background:linear-gradient(90deg,#000,#fff)}.depth-scale-labels{display:flex;justify-content:space-between;font-size:11px;color:#64748b}.mesh-view{width:100%;height:360px;min-height:360px;border:1px solid #d1d5db;border-radius:8px;overflow:hidden;background:#fff;position:relative;pointer-events:auto;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;cursor:grab}.mesh-view:active{cursor:grabbing}.mesh-view canvas{width:100%!important;height:100%!important;display:block;pointer-events:auto;touch-action:none}.wireframe-bottom-section{display:flex;flex-direction:column;gap:12px}.wireframe-bottom-view{min-width:0}.wireframe-bottom-controls{display:grid;grid-template-columns:1fr;gap:8px}.error{color:#7f1d1d;background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.35}.advanced-debug{display:flex;flex-direction:column;gap:8px}.advanced-debug.collapsed{display:none}
