:root{color:#dce7ef;--panel:#172635;--line:#2f4658;--accent:#91d2f6;--muted:#8da2b1;background:#101b25;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#101b25;min-width:1080px;min-height:100vh;margin:0}button,input,select{font:inherit}button{border:1px solid var(--line);color:#dce7ef;cursor:pointer;background:#22394b;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:7px 10px;font-size:11px;display:inline-flex}button:hover:not(:disabled){background:#2d4a61}button:disabled{opacity:.45;cursor:not-allowed}button.primary,button.active{background:var(--accent);color:#10202d;border-color:#b7e5ff}input,select{border:1px solid var(--line);color:#e6eef4;background:#102131;border-radius:5px;width:100%;padding:8px;font-size:11px}.auth-screen{background:radial-gradient(circle at 50% 0,#1e4055 0,#101b26 44%,#0c1118 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#122533f0;border:1px solid #426175;border-radius:12px;gap:16px;width:min(100%,430px);padding:30px;display:grid;box-shadow:0 18px 70px #00000059}.auth-card h1{margin:0;font-size:28px}.auth-card p{color:var(--muted);margin:0;line-height:1.55}.brand-mark{color:#dbeef9;align-items:center;gap:9px;font-weight:800;display:flex}.auth-google{justify-content:center;min-height:42px;font-size:13px}.auth-error{color:#ffb8b8!important}.landing{min-height:100vh;padding:28px;position:relative}.landing-signout{z-index:2;position:absolute;top:20px;right:28px}.landing-hero{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:24px;min-height:280px;display:grid}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:800}.landing h1{margin:6px 0 8px;font-size:42px;line-height:1}.landing p{color:var(--muted);max-width:560px}.create-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:10px;padding:16px;display:grid}.project-section{padding:22px 0}.section-title{color:#bdd0df;justify-content:space-between;align-items:center;display:flex}.project-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.project-card{border:1px solid var(--line);background:#172635;border-radius:8px;grid-template-rows:minmax(0,1fr) auto;gap:10px;min-height:136px;padding:14px;display:grid}.project-card-open{text-align:left;background:0 0;border:0;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:6px;width:100%;min-height:0;padding:0;display:flex}.project-card-open:hover:not(:disabled){background:0 0}.project-card strong{overflow-wrap:anywhere;max-width:100%;font-size:15px}.project-card span,.project-card small,.muted{color:var(--muted)}.project-card-actions{justify-content:flex-end;gap:7px;display:flex}.project-card-actions button{min-width:78px}.project-card-actions button.icon-only{gap:0;width:32px;min-width:32px;height:32px;padding:0}button.danger{color:#ffd5d5;background:#3c2630;border-color:#71424d}button.danger:hover:not(:disabled){background:#5a303d}.signout-button{color:#f3c9c9;background:#48282d;border-color:#6e3e45}.signout-button:hover:not(:disabled){background:#61333a;border-color:#98515a}.error-text{color:#ff8e8e}.notice-text{color:#91d2f6}.app-shell{grid-template-rows:52px minmax(0,1fr);height:100vh;display:grid}.topbar{border-bottom:1px solid var(--line);background:#162838;justify-content:space-between;align-items:center;gap:12px;padding:0 12px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand div{flex-direction:column;display:flex}.brand small{color:var(--muted);font-size:10px}.brand small.dirty{color:#edc04f}.brand small.error{color:#ff8e8e}.toolbar{align-items:center;gap:7px;display:flex}.toolbar-divider{background:var(--line);width:1px;height:26px}.workspace{grid-template-columns:276px minmax(0,1fr) 318px;min-height:0;display:grid}.workspace.left-collapsed{grid-template-columns:38px minmax(0,1fr) 318px}.workspace.right-collapsed{grid-template-columns:276px minmax(0,1fr) 38px}.workspace.left-collapsed.right-collapsed{grid-template-columns:38px minmax(0,1fr) 38px}.sidebar{background:var(--panel);border-right:1px solid var(--line);min-height:0;overflow-y:auto}.sidebar.collapsed{overflow:hidden}.right-panel{border-right:0;border-left:1px solid var(--line)}.panel-title{border-bottom:1px solid var(--line);color:#bdd0df;text-transform:uppercase;letter-spacing:.12em;justify-content:space-between;align-items:center;height:36px;padding:0 12px;font-size:10px;font-weight:800;display:flex}.right-panel-title{justify-content:flex-start;gap:8px}.right-panel-title span{flex:1}.panel-toggle{letter-spacing:0;border-radius:5px;flex:0 0 28px;gap:0;width:28px;height:28px;padding:0}.sidebar.collapsed .panel-title{padding:0 4px}.left-panel.collapsed .panel-title{justify-content:flex-end}.right-panel.collapsed .panel-title{justify-content:flex-start}.tool-section{border-bottom:1px solid var(--line);gap:9px;padding:12px;display:grid}.tool-section h3,.inspector h4{color:#d9e7f1;margin:3px 0;font-size:11px}.wide{width:100%}.button-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.range-row,.color-row{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:10px;display:flex}.check-row{color:var(--muted);align-items:center;gap:8px;font-size:10px;display:flex}.check-row input{width:auto;padding:0}.image-preview-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.image-preview-wrap{min-width:0;position:relative}.image-preview{border:1px solid var(--line);text-align:left;background:#0c1118;border-radius:6px;width:100%;height:92px;padding:0;position:relative;overflow:hidden}.image-preview.active{border-color:#6fb9e3;box-shadow:0 0 0 1px #6fb9e3}.image-preview img{object-fit:cover;width:100%;height:100%}.image-preview span{background:#070a0ed1;padding:5px 7px;font-size:9px;position:absolute;inset:auto 0 0}.image-preview-remove{z-index:1;color:#ffd7d7;background:#59232af0;border-color:#9d5058;border-radius:50%;width:22px;height:22px;padding:0;position:absolute;top:4px;right:4px}.image-preview-remove:hover:not(:disabled){background:#7d3540;border-color:#e17682}.viewport-panel{background:#152533;min-width:0;min-height:0;position:relative}.viewport-loading{color:#cbe1ef;place-items:center;display:grid;position:absolute;inset:0}.scene-canvas.select-mode{cursor:default}.scene-canvas.drag-mode{cursor:grab}.scene-canvas.drag-mode:active{cursor:grabbing}.empty-state{pointer-events:none;color:var(--muted);place-content:center;justify-items:center;gap:8px;display:grid;position:absolute;inset:0}.empty-state strong{color:#e2edf4}.operation-indicators{z-index:8;pointer-events:none;justify-items:end;gap:6px;max-width:min(420px,100% - 24px);display:grid;position:absolute;top:12px;right:12px}.processing-indicator{color:#d9edf8;pointer-events:none;background:#0c1e2beb;border:1px solid #75bee68c;border-radius:6px;align-items:center;gap:7px;min-width:185px;max-width:100%;padding:7px 9px;font-size:10px;display:flex;position:relative;overflow:hidden;box-shadow:0 5px 16px #0003}.processing-indicator>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.processing-line{background:linear-gradient(90deg,#0000,#7fe0ff,#0000);height:2px;animation:1.4s ease-in-out infinite processing-line;position:absolute;inset:auto 0 0}@keyframes processing-line{0%{transform:translate(-65%)}to{transform:translate(65%)}}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.status-bar{border-top:1px solid var(--line);color:#aec1cf;background:#132635f0;justify-content:space-between;align-items:center;gap:8px;min-height:30px;padding:0 10px;font-size:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.status-bar.error{color:#ff9696}.viewport-badge{color:#cbe1ef;background:#0c1a25b3;border:1px solid #91d2f666;border-radius:5px;padding:5px 8px;font-size:11px;position:absolute;top:14px;left:14px}.axis-gizmo{background:#0c1a25c2;border:1px solid #91d2f661;border-radius:50%;width:58px;height:58px;font-size:12px;font-weight:700;position:absolute;bottom:16px;right:16px}.axis-gizmo span{text-shadow:0 1px 2px #000;position:absolute}.axis-gizmo .axis-x{color:#f77;bottom:9px;right:7px}.axis-gizmo .axis-y{color:#75e28d;top:6px;left:25px}.axis-gizmo .axis-z{color:#7aa8ff;bottom:9px;left:7px}.webgl-recovery{color:#dbeaf5;background:#091119d1;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.viewport-error{text-align:center;color:#dbeaf5;background:#152533;align-content:center;justify-items:center;gap:10px;padding:24px;font-size:12px;display:grid;position:absolute;inset:0}.viewport-error span{color:#9cb2c1;max-width:46ch}.hierarchy-actions{border-bottom:1px solid var(--line);grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:8px;display:grid}.hierarchy-actions button{min-width:0;padding-inline:6px}.hierarchy{padding:6px}.hierarchy-item{background:0 0;border:0;justify-content:flex-start;width:100%;padding:7px 5px}.hierarchy-item.selected{background:#31516a;outline:1px solid #5d83a0}.hierarchy-item-action{color:#9cb2c1;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.hierarchy-item-action:hover{color:#e6f1f8;background:#3a5b74}.object-menu{z-index:70;border:1px solid var(--line);background:var(--panel);border-radius:7px;gap:2px;min-width:186px;padding:5px;display:grid;position:fixed;box-shadow:0 14px 34px #00000080}.object-menu-title{text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:3px;padding:5px 8px 6px;font-size:10px;font-weight:700;overflow:hidden}.object-menu button{background:0 0;border:0;justify-content:flex-start;width:100%;padding:7px 8px}.object-menu button:hover:not(:disabled){background:#2d4a61}.object-modal-backdrop{z-index:60;background:#040a109e;place-items:center;padding:34px;display:grid;position:fixed;inset:0}.object-modal{border:1px solid var(--line);background:var(--panel);border-radius:9px;grid-template-rows:42px minmax(0,1fr);width:min(980px,78vw);height:min(720px,86vh);display:grid;overflow:hidden;box-shadow:0 26px 64px #0000008c}.object-modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:0 8px 0 14px;display:flex}.object-modal-head strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.object-modal-close{width:28px;height:28px;padding:0}.object-modal-stage{background:#101d29;min-height:0;position:relative}.object-modal-stage canvas{touch-action:none;display:block}.object-modal-message{height:100%;color:var(--muted);justify-content:center;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.object-modal-hint{border:1px solid var(--line);color:#9cb2c1;pointer-events:none;background:#101d29d1;border-radius:4px;padding:4px 8px;font-size:10px;position:absolute;bottom:10px;left:12px}.node-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;overflow:hidden}.points-icon{background:radial-gradient(circle,#dce6ed 1px,#0000 1.5px) 0 0/4px 4px;border:1px solid #8ea0ad;border-radius:50%;width:13px;height:13px}.inspector{gap:8px;padding:10px;display:grid}.inspector-empty{padding:12px}.meta-row,.dimension-grid{flex-wrap:wrap;gap:6px;display:flex}.meta-row span,.dimension-grid span{border:1px solid var(--line);color:#a8bfce;background:#102131;border-radius:4px;padding:4px 6px;font-size:9px}.vector-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.number-field{color:#9cb2c1;gap:4px;font-size:9px;display:grid}.number-field input{padding:6px;font-size:10px}.color-row input{width:40px;height:29px;padding:2px}.dimension-label{color:#eef3f6;white-space:nowrap;pointer-events:none;background:#090d11e6;border:1px solid #596875;border-radius:4px;flex-direction:column;gap:2px;padding:6px 8px;font-size:10px;display:flex}.missing-asset-label{color:#ffd1d1;white-space:nowrap;pointer-events:none;background:#2d1014eb;border:1px solid #ff7777b3;border-radius:4px;padding:5px 7px;font-size:10px}
