*{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#0f1117;color:#e8eaed}#app{display:flex;flex-direction:column;position:relative}.toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.65rem 1rem;background:#141821eb;border-bottom:1px solid #2a3142;z-index:10}.toolbar h1{font-size:.95rem;font-weight:600;margin-right:.5rem;color:#9ecbff}.btn{display:inline-flex;align-items:center;padding:.4rem .85rem;border-radius:8px;border:1px solid #3d4f6f;background:#1e6fff;color:#fff;font-size:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.btn.secondary{background:#252b38}.btn:hover{filter:brightness(1.08)}.status{font-size:.8rem;color:#9aa3b5;flex:1;min-width:120px}.lang-toggle{margin-left:auto;min-width:3rem;justify-content:center;background:#252b38;font-weight:600;flex-shrink:0}#canvas-host{flex:1;position:relative;min-height:0}#canvas-host canvas{display:block;width:100%!important;height:100%!important}.help{position:absolute;right:12px;bottom:12px;max-width:320px;padding:.75rem 1rem;border-radius:10px;background:#141821e0;border:1px solid #2a3142;font-size:.78rem;line-height:1.5;color:#b8c0d0;pointer-events:none;z-index:5}.help code{background:#1a2030;padding:.1rem .35rem;border-radius:4px;font-size:.75rem}.help ul{margin-left:1.1rem;margin-top:.35rem}body.drag-over #canvas-host:after{content:var(--i18n-drag-hint, "Release to load PLY");position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1e6fff26;border:2px dashed #1e6fff;font-size:1.1rem;color:#9ecbff;pointer-events:none;z-index:20}
