@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-panel: rgba(12, 12, 20, .92);--bg-hover: rgba(255, 255, 255, .06);--border: rgba(255, 255, 255, .08);--text: #e0e0e0;--text-dim: #888;--accent: #6c9fff;--accent-glow: rgba(108, 159, 255, .15);--green: #4ade80;--red: #f87171;--radius: 6px}*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden;background:#0a0a14;font-family:Inter,sans-serif}canvas{display:block}#topbar{position:fixed;top:0;left:0;right:0;height:48px;background:var(--bg-panel);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:50;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}#logo{font-size:16px;font-weight:500;letter-spacing:.5px;color:var(--text)}#logo span{color:var(--accent)}#topbar-left{display:flex;gap:8px;align-items:center;margin-left:24px}#topbar-actions{display:flex;gap:8px;align-items:center}.btn{background:#ffffff0d;color:var(--text);border:1px solid var(--border);padding:6px 14px;font:13px Inter,sans-serif;border-radius:var(--radius);cursor:pointer;transition:all .15s}.btn:hover{background:var(--bg-hover);border-color:#ffffff26}.btn.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent)}.btn.connected{background:#4ade801a;border-color:var(--green);color:var(--green)}.btn.danger{border-color:var(--red);color:var(--red)}#panel{position:fixed;top:48px;left:0;width:320px;bottom:36px;background:var(--bg-panel);border-right:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:40;display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1)}#panel.collapsed{transform:translate(-100%)}.panel-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;background:#0003}.panel-tab{flex:1;padding:10px 2px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);font:500 10px Inter,sans-serif;text-transform:uppercase;letter-spacing:.3px;cursor:pointer;transition:all .15s;white-space:nowrap}.panel-tab:hover{color:var(--text);background:#ffffff08}.panel-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:#6c9fff0d}.panel-tab-body{flex:1;overflow-y:auto}.panel-tab-content{display:none}.panel-tab-content.active{display:block}#panel-toggle{position:fixed;top:48px;left:320px;width:24px;height:36px;background:var(--bg-panel);border:1px solid var(--border);border-left:none;border-radius:0 8px 8px 0;color:var(--text-dim);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;z-index:41;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:left .3s cubic-bezier(.4,0,.2,1),background .15s,color .15s}#panel-toggle:hover{background:#ffffff14;color:var(--text)}#panel-toggle.collapsed{left:0}#panel-toggle svg .bar{transition:transform .3s ease,opacity .2s ease;transform-origin:center}#panel-toggle:not(.collapsed) .bar-1{transform:translateY(4.25px) rotate(45deg)}#panel-toggle:not(.collapsed) .bar-2{opacity:0}#panel-toggle:not(.collapsed) .bar-3{transform:translateY(-4.25px) rotate(-45deg)}.panel-section{padding:16px;border-bottom:1px solid var(--border)}.panel-section h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:12px}.panel-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.panel-row:last-child{margin-bottom:0}.panel-row label{font-size:13px;color:var(--text)}select.ctrl,input[type=color].ctrl,input[type=text].ctrl{background:#1e1e2e;color:var(--text);border:1px solid var(--border);padding:5px 8px;font:12px JetBrains Mono,monospace;border-radius:var(--radius);cursor:pointer}select.ctrl:hover,input[type=color].ctrl:hover,input[type=text].ctrl:hover{border-color:#fff3}input[type=text].ctrl{width:120px}input[type=color].ctrl{width:36px;height:28px;padding:2px}.toggle{position:relative;width:36px;height:20px;background:#ffffff1a;border-radius:10px;cursor:pointer;transition:background .2s}.toggle.on{background:var(--accent)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s}.toggle.on:after{transform:translate(16px)}#hud{position:fixed;bottom:0;left:0;right:0;height:36px;color:var(--green);font:12px JetBrains Mono,monospace;background:var(--bg-panel);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);pointer-events:none;z-index:50;white-space:nowrap;display:flex;align-items:center;padding:0 16px;gap:24px}#hud .hud-section{display:flex;align-items:center;gap:6px}#hud .hud-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim)}#hud .hud-sep{width:1px;height:18px;background:var(--border)}.research-flag{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--red);opacity:.8}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}.status-dot.off{background:var(--red)}.status-dot.on{background:var(--green);box-shadow:0 0 6px var(--green)}#drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a14f2;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#drop-overlay.hidden{display:none}#drop-overlay .drop-icon{width:64px;height:64px;border:2px dashed var(--accent);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--accent);margin-bottom:16px}#drop-overlay p{color:var(--text);font-size:16px}#drop-overlay .hint{color:var(--text-dim);font-size:13px;margin-top:8px}#file-input{display:none}.dropdown{position:relative;display:inline-block}.dropdown-menu{display:none;position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);min-width:160px;z-index:60;overflow:hidden}.dropdown-menu.open{display:block}.dropdown-menu button{display:block;width:100%;background:none;color:var(--text);border:none;padding:8px 14px;font:13px Inter,sans-serif;text-align:left;cursor:pointer;transition:background .15s}.dropdown-menu button:hover{background:var(--bg-hover)}#panel::-webkit-scrollbar{width:4px}#panel::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.cmm-btn-row{display:flex;gap:6px;margin-bottom:8px}.cmm-btn-row .btn{flex:1;text-align:center;font-size:12px;padding:5px 8px}.cmm-point-list,.cmm-measure-list{font:12px JetBrains Mono,monospace;color:var(--text-dim);margin-top:8px;max-height:150px;overflow-y:auto}.cal-bone{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.04)}.cal-bone-name{font:500 11px JetBrains Mono,monospace;color:var(--accent);margin-bottom:6px}.cal-axis-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}.cal-axis-label{font:11px JetBrains Mono,monospace;width:14px;text-align:center}.cal-axis-label.x{color:#f44}.cal-axis-label.y{color:#4f4}.cal-axis-label.z{color:#48f}.cal-slider{flex:1;accent-color:var(--accent);cursor:pointer;height:4px}.cal-value{font:11px JetBrains Mono,monospace;color:var(--text);width:52px;text-align:right;background:#ffffff0d;border:1px solid var(--border);border-radius:4px;padding:2px 4px}.cal-value:focus{outline:none;border-color:var(--accent)}.mesh-item{padding:10px 12px;margin-bottom:6px;background:#ffffff05;border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s}.mesh-item:hover{border-color:#ffffff26}.mesh-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.mesh-item-name{font:500 12px JetBrains Mono,monospace;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.mesh-item-controls{display:flex;gap:4px;margin-bottom:8px}.mesh-ctrl-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#ffffff0d;color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font:600 11px Inter,sans-serif;transition:all .15s;padding:0}.mesh-ctrl-btn:hover{background:var(--bg-hover);color:var(--text);border-color:#ffffff26}.mesh-ctrl-btn.active{background:var(--accent-glow);color:var(--accent);border-color:var(--accent)}.mesh-item-opacity{display:flex;align-items:center;gap:8px}.mesh-opacity-slider{flex:1;height:4px;accent-color:var(--accent);cursor:pointer}.mesh-opacity-val{font:11px JetBrains Mono,monospace;color:var(--text);min-width:36px;text-align:right}#viewcube-container{position:fixed;bottom:44px;right:12px;width:70px;height:70px;z-index:45;cursor:pointer;border-radius:6px;overflow:hidden}#viewcube-container canvas{display:block;width:100%!important;height:100%!important}#loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a14;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;transition:opacity .6s ease,visibility .6s ease}#loading-overlay.fade-out{opacity:0;visibility:hidden}.loader-ring{position:relative;width:200px;height:200px}.loader-ring svg{position:absolute;top:0;left:0;width:100%;height:100%}.ring-outer{animation:spin-cw 3s linear infinite}.ring-outer circle{fill:none;stroke:url(#grad-outer);stroke-width:2;stroke-dasharray:220 100;stroke-linecap:round}.ring-mid{animation:spin-ccw 2s linear infinite}.ring-mid circle{fill:none;stroke:url(#grad-mid);stroke-width:1.5;stroke-dasharray:60 30 90 40;stroke-linecap:round}.ring-inner{animation:spin-cw 1.2s linear infinite}.ring-inner circle{fill:none;stroke:url(#grad-inner);stroke-width:2.5;stroke-dasharray:40 80;stroke-linecap:round}.loader-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:#6c9fff;border-radius:50%;box-shadow:0 0 20px #6c9fff,0 0 40px #6c9fff66,0 0 80px #6c9fff26;animation:pulse-core 1.5s ease-in-out infinite}.orbit-dot{position:absolute;width:4px;height:4px;background:#4ade80;border-radius:50%;top:50%;left:50%;box-shadow:0 0 8px #4ade80}.orbit-dot:nth-child(1){animation:orbit 2.5s linear infinite}.orbit-dot:nth-child(2){animation:orbit 2.5s linear infinite .83s}.orbit-dot:nth-child(3){animation:orbit 2.5s linear infinite 1.66s}.scan-line{position:absolute;top:50%;left:50%;width:100px;height:1px;transform-origin:0 0;background:linear-gradient(90deg,rgba(108,159,255,.8),transparent);animation:scan-rotate 2s linear infinite}.loader-text{margin-top:32px;font:500 13px Inter,sans-serif;letter-spacing:3px;text-transform:uppercase;color:#6c9fff;animation:text-flicker 2s ease-in-out infinite}.loader-sub{margin-top:8px;font:11px JetBrains Mono,monospace;color:#444;animation:text-flicker 2s ease-in-out infinite .5s}@keyframes spin-cw{to{transform:rotate(360deg)}}@keyframes spin-ccw{to{transform:rotate(-360deg)}}@keyframes pulse-core{0%,to{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.8);opacity:.6}}@keyframes orbit{0%{transform:translate(-50%,-50%) rotate(0) translate(80px) scale(1);opacity:1}50%{transform:translate(-50%,-50%) rotate(180deg) translate(80px) scale(.5);opacity:.4}to{transform:translate(-50%,-50%) rotate(360deg) translate(80px) scale(1);opacity:1}}@keyframes scan-rotate{to{transform:rotate(360deg)}}@keyframes text-flicker{0%,to{opacity:1}50%{opacity:.5}}#login-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a14;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10000}#login-screen.fade-out{opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s ease}.login-box{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:40px 36px;width:320px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.login-logo{text-align:center;font-size:22px;font-weight:500;color:var(--text);margin-bottom:8px}.login-logo span{color:var(--accent)}.login-sub{text-align:center;font-size:12px;color:var(--text-dim);margin-bottom:28px;letter-spacing:2px;text-transform:uppercase}.login-field{margin-bottom:16px}.login-field label{display:block;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}.login-field input{width:100%;background:#ffffff0d;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font:14px JetBrains Mono,monospace;outline:none;transition:border-color .2s}.login-field input:focus{border-color:var(--accent)}.login-field input::placeholder{color:#ffffff26}#login-btn{width:100%;padding:10px;background:var(--accent);color:#0a0a14;border:none;border-radius:var(--radius);font:600 14px Inter,sans-serif;cursor:pointer;transition:opacity .2s;margin-top:4px}#login-btn:hover{opacity:.85}#login-error{color:var(--red);font-size:12px;text-align:center;margin-top:12px;display:none}.align-step-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#0a0a14;font:700 11px JetBrains Mono,monospace;margin-right:6px;vertical-align:middle}.align-hint{font:11px JetBrains Mono,monospace;color:var(--text-dim);line-height:1.5;margin:0 0 10px}.align-status{font:12px JetBrains Mono,monospace;padding:8px 10px;border-radius:var(--radius);margin-bottom:8px;background:#ffffff08;border-left:3px solid var(--border)}.align-status-idle{color:var(--text-dim);border-left-color:var(--border)}.align-status-picking-floating{color:var(--red);border-left-color:var(--red)}.align-status-picking-fixed{color:var(--green);border-left-color:var(--green)}.align-status-ready{color:var(--accent);border-left-color:var(--accent)}.align-status-running{color:var(--green);border-left-color:var(--green);animation:status-pulse 1.2s ease-in-out infinite}.align-status-done{color:var(--green);border-left-color:var(--green)}.align-status-error{color:var(--red);border-left-color:var(--red)}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.5}}.align-pair-list{font:12px JetBrains Mono,monospace;color:var(--text-dim);margin-bottom:8px;max-height:140px;overflow-y:auto}.align-pair-item{display:flex;align-items:center;gap:6px;padding:3px 6px;margin-bottom:2px;border-radius:3px;background:#ffffff05}.align-pair-item:hover{background:#ffffff0d}.align-progress-track{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden;margin-top:6px}.align-progress-bar{height:100%;width:0;background:var(--accent);border-radius:2px;transition:width .15s ease}.align-adv-header{cursor:pointer;font:11px JetBrains Mono,monospace;color:var(--text-dim);padding:4px 0;-webkit-user-select:none;user-select:none}.align-adv-header:hover{color:var(--text)}#align-result{font:12px JetBrains Mono,monospace;color:var(--text-dim);margin-top:8px;padding:8px 10px;border-radius:var(--radius);background:#ffffff08}.align-heatmap-legend{margin-top:8px}.align-heatmap-gradient{height:12px;border-radius:3px;background:linear-gradient(to right,#00f,#0080ff,#00ffb3,#0f0,#b3ff00,#fc0,#ff4d00 90%,red)}.align-heatmap-legend-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--text-dim);margin-top:2px}.occ-status{font:12px JetBrains Mono,monospace;padding:8px 10px;border-radius:var(--radius);background:#ffffff08;border-left:3px solid var(--border);transition:border-color .2s,color .2s}.occ-status-idle{color:var(--text-dim);border-left-color:var(--border)}.occ-status-registering,.occ-status-aligning{color:var(--accent);border-left-color:var(--accent);animation:status-pulse 1.2s ease-in-out infinite}.occ-status-parenting{color:var(--green);border-left-color:var(--green)}.occ-status-active{color:var(--green);border-left-color:var(--green);background:#4ade800f;font-weight:500}.occ-status-picking-scan{color:var(--red);border-left-color:var(--red)}.occ-status-picking-fbx{color:var(--green);border-left-color:var(--green)}.occ-status-ready{color:var(--accent);border-left-color:var(--accent)}.occ-arch-list{font:12px JetBrains Mono,monospace;color:var(--text-dim);line-height:1.8;padding:6px 0}#scale-bar{position:fixed;bottom:46px;left:16px;z-index:39;pointer-events:none;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.scale-bar-line{height:2px;background:#ffffffb3;border-left:2px solid rgba(255,255,255,.7);border-right:2px solid rgba(255,255,255,.7);min-width:20px;box-shadow:0 0 4px #0009;padding-top:4px;border-top:none}.scale-bar-label{font:10px JetBrains Mono,monospace;color:#ffffffb3;text-shadow:0 0 4px rgba(0,0,0,.8);letter-spacing:.5px}#mobile-menu-btn{display:none}#motion-record-btn.active{animation:rec-pulse 1s ease-in-out infinite;border-color:var(--red);color:var(--red)}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.5}}#motion-timeline{width:100%;accent-color:var(--accent);cursor:pointer;height:4px}#contactmap-legend{position:fixed;bottom:46px;left:50%;transform:translate(-50%);z-index:55;pointer-events:none;background:#0c0c14cc;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:5px 8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#contactmap-legend canvas{display:block}#contactmap-stats{font:11px JetBrains Mono,monospace;color:var(--text-dim);margin-top:8px;line-height:1.5}#contactmap-progress{margin-top:6px}#section-popup{position:fixed;right:20px;bottom:160px;width:400px;height:350px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;z-index:45;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 32px #0006;display:flex;flex-direction:column;overflow:hidden}.section-popup-title{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#0000004d;border-bottom:1px solid var(--border);cursor:grab;flex-shrink:0;font:500 12px Inter,sans-serif;color:var(--text);-webkit-user-select:none;user-select:none}.section-popup-close{background:none;border:none;color:var(--text-dim);font-size:18px;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.section-popup-close:hover{color:var(--red)}#section-popup-canvas{flex:1;overflow:hidden;position:relative}#section-popup-canvas canvas{display:block;width:100%!important;height:100%!important}.section-popup-resize{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,var(--text-dim) 50%);opacity:.3;border-radius:0 0 8px}.section-popup-resize:hover{opacity:.6}.section-hint{font:11px JetBrains Mono,monospace;color:var(--text-dim);opacity:0;max-height:0;overflow:hidden;transition:opacity .25s,max-height .25s,margin .25s;margin:0}.section-hint.visible{opacity:.7;max-height:24px;margin:2px 0 6px}.section-split-divider{position:fixed;top:48px;bottom:36px;left:50%;width:2px;background:var(--accent);z-index:44;pointer-events:none;display:none}@media(max-width:768px){#topbar{height:40px;padding:0 10px}#logo{font-size:13px}#topbar-left,#topbar-actions{display:none}#topbar.menu-open #topbar-left,#topbar.menu-open #topbar-actions{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;width:100%}#topbar.menu-open{height:auto;flex-wrap:wrap;padding:8px 10px;gap:6px}#mobile-menu-btn{display:block;background:none;border:1px solid var(--border);color:var(--text);font-size:18px;padding:4px 10px;border-radius:var(--radius);cursor:pointer;line-height:1}.btn{padding:5px 8px;font-size:10px}#panel{width:100%;max-width:100vw;top:0;bottom:0;z-index:55;transform:translate(-100%)}#panel:not(.collapsed){transform:translate(0)}#panel-toggle{top:4px;left:auto;right:8px;z-index:60;width:36px;height:36px;border-radius:var(--radius);border-left:1px solid var(--border)}#panel-toggle.collapsed{left:auto;right:8px}.panel-tab{font-size:10px;padding:8px 2px}#hud{height:24px;padding:0 8px;gap:8px;font-size:9px;overflow:hidden}.research-flag{font-size:7px;letter-spacing:.5px}#viewcube-container{width:60px;height:60px;bottom:30px;right:6px}#contactmap-legend{bottom:30px}.login-box{width:90vw;max-width:320px;padding:28px 24px}.dropdown-menu{min-width:140px}#section-popup{width:90vw;right:5vw;bottom:60px;height:280px}}@media(max-width:480px){#logo{font-size:12px}#viewcube-container{width:50px;height:50px}.login-logo{font-size:18px}}
