:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f8fafc;background:#0b1120;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;overflow:hidden}button,select,input{font:inherit}button{min-width:44px;min-height:44px;padding:6px 10px;color:inherit;background:#1e293b;border:1px solid #334155;border-radius:10px;touch-action:manipulation}button[aria-pressed=true]{background:#2563eb;border-color:#60a5fa}button:disabled{opacity:.45}button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.app-shell{display:grid;grid-template-rows:auto minmax(180px,1fr) auto auto;width:100%;height:100dvh;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#0b1120}.topbar{position:relative;z-index:10;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:48px;padding:6px 10px;border-bottom:1px solid #334155;background:#111827}.brand{display:grid;min-width:0;line-height:1.1}.brand strong{font-size:.95rem}.brand span{overflow:hidden;margin-top:3px;color:#94a3b8;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.history-actions{display:flex;gap:4px}.history-actions button{padding-inline:9px;font-size:.78rem}.project-menu summary{display:flex;min-height:44px;align-items:center;padding:6px 10px;color:#e2e8f0;font-size:.78rem;list-style:none;border:1px solid #334155;border-radius:10px;cursor:pointer}.project-menu summary::-webkit-details-marker{display:none}.project-menu[open] summary{color:#fff;background:#2563eb;border-color:#60a5fa}.project-panel{position:absolute;top:calc(100% + 6px);right:10px;display:grid;width:min(360px,calc(100vw - 20px));gap:10px;padding:14px;border:1px solid #475569;border-radius:14px;background:#172033;box-shadow:0 18px 50px #00000073}.project-panel label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;font-size:.8rem}.project-panel select{width:100%;min-width:0;min-height:44px;padding-inline:10px;color:inherit;background:#1e293b;border:1px solid #475569;border-radius:8px}.project-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.project-actions button{padding-inline:4px;font-size:.78rem}.app-message{color:#bfdbfe;font-weight:600}.app-message[role=alert]{color:#fecaca}.viewport{position:relative;min-width:0;min-height:0;overflow:hidden;background:radial-gradient(circle,#263449,#0f172a 70%)}.viewport-canvas-wrap,.viewport canvas{width:100%;height:100%}.viewport-canvas-wrap{position:relative;overflow:hidden;touch-action:none}.viewport canvas{display:block}.viewport-camera-chip{position:absolute;right:8px;bottom:8px;z-index:2;display:flex;gap:4px;align-items:stretch;pointer-events:auto}.viewport-camera-chip>button{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;min-width:52px;min-height:44px;padding:2px 6px;color:#e2e8f0;font-size:.65rem;line-height:1.1;background:#0f172ad1;border-color:#475569b8;border-radius:10px;filter:drop-shadow(0 2px 6px rgb(0 0 0 / 45%))}.viewport-camera-chip>button:hover:not(:disabled){background:#1e293beb}.viewport-camera-chip>button[aria-pressed=true]{color:#fff;background:#2563ebd1;border-color:#93c5fdad}.viewport-camera-chip>button svg{width:16px;height:16px}.viewport-camera-chip__label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-touch-action-toggle{display:flex;gap:4px;align-items:stretch}.camera-touch-action-toggle>button{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;min-width:52px;min-height:44px;padding:2px 6px;color:#e2e8f0;font-size:.65rem;line-height:1.1;background:#0f172ad1;border:1px solid rgb(71 85 105 / 72%);border-radius:10px;filter:drop-shadow(0 2px 6px rgb(0 0 0 / 45%))}.camera-touch-action-toggle>button:hover:not(:disabled){background:#1e293beb}.camera-touch-action-toggle>button[aria-pressed=true]{color:#fff;background:#2563ebd1;border-color:#93c5fdad}.camera-touch-action-toggle>button svg{width:16px;height:16px}.camera-preset-overflow{position:relative}.camera-preset-overflow summary{display:inline-flex;width:44px;min-width:44px;height:44px;min-height:44px;align-items:center;justify-content:center;padding:0;color:#e2e8f0;list-style:none;background:#0f172ad1;border:1px solid rgb(71 85 105 / 72%);border-radius:10px;cursor:pointer;filter:drop-shadow(0 2px 6px rgb(0 0 0 / 45%))}.camera-preset-overflow summary::-webkit-details-marker{display:none}.camera-preset-overflow summary svg{width:18px;height:18px}.camera-preset-overflow--active summary{color:#fff;background:#2563ebd1;border-color:#93c5fdad}.camera-preset-overflow__menu{position:absolute;right:0;bottom:calc(100% + 6px);z-index:3;display:grid;gap:4px;min-width:108px;padding:6px;border:1px solid #475569;border-radius:12px;background:#0f172af5;box-shadow:0 10px 28px #0000006b}.camera-preset-overflow:not([open]) .camera-preset-overflow__menu{display:none}.camera-preset-overflow__menu button{display:flex;gap:8px;align-items:center;justify-content:flex-start;min-height:44px;padding:6px 10px;color:#e2e8f0;font-size:.72rem;background:#1e293bb8;border-color:#475569b8}.camera-preset-overflow__menu button svg{width:16px;height:16px;flex:none}.camera-preset-overflow__menu button[aria-pressed=true]{color:#fff;background:#2563ebd1;border-color:#93c5fdad}.viewport-icon-toolbar{display:flex;gap:4px;pointer-events:auto}.viewport-icon-toolbar button{display:inline-flex;width:44px;min-width:44px;height:44px;min-height:44px;align-items:center;justify-content:center;padding:0;color:#e2e8f0;background:transparent;border-color:transparent;border-radius:10px;filter:drop-shadow(0 1px 2px rgb(0 0 0 / 90%))}.viewport-icon-toolbar button:hover:not(:disabled){background:#0f172a7a}.viewport-icon-toolbar button:active:not(:disabled){background:#1e293bb8}.viewport-icon-toolbar button[aria-pressed=true]{color:#fff;background:#2563ebc7;border-color:#93c5fdad}.viewport-icon-toolbar button:disabled{opacity:.28}.viewport-icon-toolbar svg{width:22px;height:22px}.workspace-column{display:grid;min-height:0;grid-template-rows:auto auto}.creation-compact{display:grid;gap:6px;padding:6px 8px;border-top:1px solid #334155;background:#111827}.creation-compact .creation-progress,.creation-compact .creation-primary-action{margin:0}.workspace-tools{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;border-top:1px solid #334155;background:#111827}.workspace-tools--collapsed{grid-template-rows:auto}.workspace-tools--expanded{height:clamp(190px,32dvh,280px)}.workspace-sheet-handle{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;touch-action:pan-y}.workspace-sheet-toggle{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;margin:4px 8px 4px 0;padding:0;color:#cbd5e1;font-size:.85rem;background:#1e293b;border-color:#334155;border-radius:10px}.workspace-panel--creation{overflow:hidden}.panel-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:6px 8px;border-bottom:1px solid #263449}.panel-tabs button{min-width:0;padding-inline:3px;color:#cbd5e1;font-size:.75rem;background:transparent;border-color:transparent}.panel-tabs button[aria-pressed=true]{color:#fff;background:#1e40af;border-color:#3b82f6}.workspace-panel{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.bottom-dock{position:relative;z-index:5;grid-row:4;display:grid;grid-template-rows:auto auto auto;background:#0f172a;border-top:1px solid #263449;box-shadow:0 -4px 14px #0000002e}.bottom-dock__primary{grid-template-columns:auto auto repeat(4,minmax(0,1fr));border-top:0}.bottom-dock__primary .history-action{min-width:52px;padding-inline:8px;font-size:.72rem}.bottom-dock__primary .mode-control{min-width:0;min-height:46px;padding:0;color:#cbd5e1;background:#1e293b;border-color:#334155}.bottom-dock__primary .mode-control svg{width:22px;height:22px}.constraint-chips{grid-template-columns:repeat(5,minmax(0,1fr));padding-block:4px}.constraint-chips button{min-height:44px;padding:2px 0;font-size:.68rem;color:#cbd5e1;background:#1e293b;border-color:#334155}.constraint-chips button[aria-pressed=true]{color:#eff6ff;background:#334155;border-color:#475569}.constraint-chips__snap{font-size:.62rem}.toolbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:5px 8px;border-top:1px solid #263449}.toolbar button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:46px;padding:3px 2px;overflow:hidden;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.toolbar button svg{width:20px;height:20px;flex:none}.toolbar button span{max-width:100%;overflow:hidden;text-overflow:ellipsis}.mode-controls button{color:#cbd5e1}.context-actions{grid-template-columns:repeat(6,minmax(0,1fr));max-height:0;padding-bottom:0;overflow:hidden;opacity:0;border-top-color:transparent;transition:max-height .22s ease,opacity .22s ease,padding-bottom .22s ease}.bottom-dock--context-open .context-actions{max-height:72px;padding-bottom:max(6px,env(safe-area-inset-bottom));opacity:1;border-top-color:#263449}.context-actions button{font-size:.68rem;padding:4px 2px;color:#eff6ff;background:#1e3a5f;border-color:#31577f}.context-actions button:disabled{color:#64748b;background:#172033;border-color:#263449}.settings-panel{display:grid;gap:12px;padding:10px}.selection-controls{display:grid;grid-template-columns:minmax(0,2fr) minmax(90px,1fr);gap:6px}.selection-controls span{display:flex;align-items:center;justify-content:center;color:#cbd5e1;font-size:.75rem;text-align:center}.setting-group{display:grid;gap:4px}.setting-group>strong{color:#cbd5e1;font-size:.75rem}.setting-group .toolbar{padding:0;border:0}.snap-controls{grid-template-columns:repeat(6,minmax(0,1fr))}.haptics-controls{grid-template-columns:minmax(0,1fr)}.reference-panel,.modeling-panel,.object-panel{padding:10px;background:transparent}.modeling-panel--creation{display:grid;min-height:0;height:100%;padding:8px 10px}.reference-panel-heading,.reference-controls{display:flex;align-items:center;gap:10px}.reference-panel-heading{justify-content:space-between}.file-button{display:inline-flex;min-height:44px;align-items:center;padding-inline:14px;border:1px solid #475569;border-radius:10px;background:#1e293b;cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}.reference-controls{margin-top:8px;padding-bottom:2px;overflow-x:auto}.reference-controls label{display:inline-flex;min-height:44px;align-items:center;gap:6px;white-space:nowrap}.reference-controls input[type=number]{width:68px;min-height:40px;color:inherit;background:#1e293b;border:1px solid #475569;border-radius:8px}.reference-controls input[type=range]{width:96px}.reference-filename{max-width:140px;overflow:hidden;color:#cbd5e1;font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.object-list{display:grid;gap:6px}.object-row{display:grid;grid-template-columns:minmax(82px,1fr) minmax(100px,2fr) 68px;gap:6px}.object-row input{min-width:0;color:inherit;background:#1e293b;border:1px solid #475569;border-radius:8px}.object-panel .modeling-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.object-panel .modeling-actions button,.object-panel .modeling-actions input{width:100%;min-width:0}.object-panel .object-transform-controls label{display:grid;min-width:0;gap:3px;color:#cbd5e1;font-size:.7rem;white-space:normal}.object-transform-controls label span{overflow:hidden;text-overflow:ellipsis}.modeling-panel details+details{margin-top:6px}.modeling-panel summary{min-height:44px;padding:8px 2px;font-weight:700;cursor:pointer}.contour-viewport-overlay,.contour-viewport-canvas{position:absolute;inset:0;width:100%;height:100%}.contour-viewport-overlay{z-index:3}.contour-viewport-canvas{display:block;touch-action:none}.contour-viewport-hud{position:absolute;top:10px;left:50%;z-index:2;display:grid;width:min(370px,calc(100% - 16px));gap:5px;padding:8px;background:#0f172ae0;border:1px solid #475569;border-radius:12px;box-shadow:0 10px 24px #00000047;transform:translate(-50%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.contour-status{display:flex;align-items:center;justify-content:space-between;gap:8px}.contour-status strong{font-size:.85rem}.contour-status span,.contour-viewport-hud>p{color:#cbd5e1;font-size:.7rem}.contour-viewport-hud>p{margin:0}.contour-viewport-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.contour-viewport-actions button{min-width:0;min-height:44px;padding-inline:3px;font-size:.7rem}.contour-viewport-actions button.contour-confirm-primary{color:#fff;font-weight:700;background:#1d4ed8;border-color:#60a5fa}.contour-viewport-actions button.contour-confirm-primary:disabled{opacity:.45}.contour-viewport-error{margin:0;color:#fecaca;font-size:.72rem}.modeling-actions,.vertex-list{display:flex;gap:6px;margin-top:7px;padding-bottom:2px;overflow-x:auto}.modeling-actions button,.vertex-list button{min-width:48px;padding:6px 10px;white-space:nowrap}.modeling-actions label{display:flex;align-items:center;gap:4px;white-space:nowrap}.modeling-actions input,.modeling-actions select{width:72px;min-height:40px;color:inherit;background:#1e293b;border:1px solid #475569;border-radius:8px}.modeling-help{margin:7px 0 0;color:#cbd5e1;font-size:.78rem}.creation-flow{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;min-height:0;height:100%}.creation-body{display:grid;min-height:0;overflow:hidden}.creation-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.creation-progress span{display:grid;min-height:28px;place-items:center;padding-inline:2px;color:#94a3b8;font-size:.68rem;font-weight:700;line-height:1.1;background:#1e293b;border:1px solid #334155;border-radius:999px}.creation-progress span[aria-current=step]{color:#fff;background:#1d4ed8;border-color:#60a5fa}.creation-step{display:grid;gap:6px;min-height:0}.creation-step--sections{gap:5px}.creation-step h2,.creation-step p{margin:0}.creation-step h2{font-size:.95rem}.creation-step p{color:#cbd5e1;font-size:.78rem}.creation-primary-action{width:100%;min-height:46px;color:#fff;font-weight:700;background:#1d4ed8;border-color:#60a5fa}.section-selector{display:grid;gap:4px}.section-selector-label{color:#cbd5e1;font-size:.72rem}.section-selector-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.section-selector-buttons button{min-width:0;padding-inline:4px}.creation-complete{grid-template-columns:minmax(0,1fr) auto}.creation-complete h2,.creation-complete p{grid-column:1}.creation-complete button{grid-column:2;grid-row:1 / span 2}.modeling-error{margin:7px 0 0;color:#fca5a5}.vertex-list button{min-width:44px}@media(min-width:760px){.app-shell{grid-template-columns:minmax(0,1fr) minmax(340px,38vw);grid-template-rows:auto minmax(0,1fr) auto}.topbar,.bottom-dock{grid-column:1 / -1}.viewport{grid-column:1;grid-row:2}.workspace-column{grid-column:2;grid-row:2;grid-template-rows:auto minmax(0,1fr);min-height:0;border-left:1px solid #334155}.creation-compact{border-top:0;border-bottom:1px solid #334155}.workspace-tools{height:auto;min-height:0;border-top:0}.workspace-tools--collapsed,.workspace-tools--expanded{height:auto}.workspace-sheet-toggle{display:none}.workspace-tools .workspace-panel[hidden]{display:block!important}.bottom-dock{grid-row:3}.context-actions{padding-bottom:5px}}
