:root{color:#eef1f6;background:#12151b;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.45;--list-preview-size: 56px;--axis-x-color: #ff3653;--axis-y-color: #51ff51;--axis-z-color: #4da6ff;scrollbar-width:thin;scrollbar-color:#3a4558 #1a1f28}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#3a4558 #1a1f28}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:#1a1f28}*::-webkit-scrollbar-thumb{background:#3a4558;border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:#4a5568}*::-webkit-scrollbar-corner{background:#1a1f28}body{margin:0;overflow:hidden}button,input{font:inherit}.app-shell{min-height:100vh;height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-shell.center{align-items:center;justify-content:center;padding:1rem}.topbar{--topbar-height: 8.25rem;flex-shrink:0;padding:.7rem 1rem .8rem;border-bottom:1px solid #2a3140;background:linear-gradient(180deg,#171b23,#141820)}.topbar-inner{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;max-width:none;margin:0 auto}.topbar-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%}.topbar-brand{display:flex;align-items:center;gap:.7rem;min-width:0}.app-logo{width:2.5rem;height:2.5rem;flex-shrink:0}.topbar-brand-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.topbar-brand-text strong{font-size:1.05rem;line-height:1.2}.topbar-user{color:#9aa6ba;font-size:.88rem;line-height:1.2}.builder-name-root{flex-shrink:0}.builder-name-field{display:flex;align-items:center;gap:.55rem}.builder-name-field-label{flex-shrink:0;color:#9aa6ba;font-size:.92rem}.builder-name-field input{width:min(18rem,42vw);padding:.5rem .7rem;border-radius:.55rem;border:1px solid #3a4558;background:#0f1218;color:inherit}.topbar-toolbar-row{display:flex;align-items:center;justify-content:center;width:100%}.topbar-header-end{display:flex;align-items:center;gap:.75rem;flex-shrink:0;margin-left:auto}.topbar-toolbar-center{display:flex;flex-wrap:nowrap;align-items:flex-start;justify-content:center;gap:.65rem .85rem;width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:.1rem;scrollbar-width:thin;scrollbar-color:#3a4558 transparent}.topbar-toolbar-center::-webkit-scrollbar{height:6px}.topbar-toolbar-center::-webkit-scrollbar-thumb{background:#3a4558;border-radius:999px}.builder-toolbar-root,.topbar-nav{display:contents}.topbar-btn-group{display:flex;flex-wrap:nowrap;flex-shrink:0;align-items:flex-start;justify-content:center;gap:.45rem}.topbar-btn-separator{width:1px;align-self:center;height:3.25rem;margin:0 .1rem;background:#3a4558;flex-shrink:0}.topbar-menu-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.3rem;flex-shrink:0;min-width:4.5rem;max-width:7.5rem;padding:.5rem .45rem .42rem;border:1px solid #3a4558;border-radius:.55rem;background:#222833;color:inherit;cursor:pointer;text-align:center}.topbar-menu-btn span{font-size:.72rem;line-height:1.15;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.topbar-menu-btn .toolbar-btn-icon,.topbar-menu-btn .tab-btn-icon{width:2.15rem;height:2.15rem}.topbar-menu-btn:hover:not(:disabled){border-color:#4f5d74;background:#2a3140}.topbar-menu-btn:disabled{cursor:not-allowed;opacity:.45}.topbar-menu-btn.active{background:#3559ff;border-color:#3559ff}.topbar-menu-btn:disabled .toolbar-btn-icon{filter:grayscale(.85) opacity(.45)}.builder-toolbar-message-root{flex:1;min-width:0;min-height:1.35rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;padding:0 .75rem;text-align:center}.builder-toolbar-message{margin:0;font-size:.88rem;color:#9aa6ba;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.builder-toolbar-message--lock{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem .6rem}.builder-toolbar-message-btn{padding:.2rem .55rem;font-size:.82rem;line-height:1.2}.toolbar-btn-icon{width:2rem;height:2rem;flex-shrink:0;object-fit:contain;vertical-align:middle;background:transparent;image-rendering:auto;display:block}.tab-btn-icon{width:1.65rem;height:1.65rem;flex-shrink:0;object-fit:contain;vertical-align:middle;background:transparent;image-rendering:auto}.actions button,.auth-form button,.chip,.part-list button,.part-list-item-main{border:1px solid #3a4558;background:#222833;color:inherit;border-radius:.5rem;padding:.45rem .75rem;cursor:pointer}.part-list-item-main{border:none;background:transparent;padding:0;border-radius:0}.tabs button.active,.part-list-item.active,.chip.active{background:#3559ff;border-color:#3559ff}.part-list-item.active{background:#3559ff1f;border-color:#3559ff59}.part-list-item.active .part-list-item-main{background:transparent;border-color:transparent}button.secondary{border:1px solid #4a5568;background:transparent;color:#c8d0dc;border-radius:.5rem;padding:.45rem .75rem;cursor:pointer}button.secondary:hover:not(:disabled){background:#ffffff0f;border-color:#5a6475;color:#eef1f6}.modal-actions button,.group-settings button{border:1px solid #3a4558;background:#222833;color:#eef1f6;border-radius:.5rem;padding:.45rem .75rem;cursor:pointer}.modal-actions button:not(.secondary){background:#3559ff;border-color:#3559ff;color:#fff}.modal-actions button.secondary,.group-settings button.secondary{background:transparent;border-color:#4a5568;color:#c8d0dc}.modal-actions button.secondary:hover:not(:disabled),.group-settings button.secondary:hover:not(:disabled){background:#ffffff0f;border-color:#5a6475;color:#eef1f6}.modal-actions button:not(.secondary):hover:not(:disabled){background:#4a6bff;border-color:#4a6bff}.modal-actions button:disabled,.group-settings button:disabled{opacity:.45;cursor:not-allowed}.group-settings button.secondary{width:100%;margin-top:.5rem}button.danger,.chip.danger{border-color:#8b3040;color:#ffb4c0}main{flex:1;min-height:0;overflow:hidden}.split-view{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.split-view.builder-layout{grid-template-columns:auto minmax(0,1fr) auto}.builder-left-panel{display:flex;flex-direction:column;min-height:0;min-width:0;border-right:1px solid #2a3140;background:#171b23;overflow:hidden}.builder-left-panel--open{width:340px;max-width:min(340px,42vw)}.builder-left-panel--collapsed{width:2.35rem;flex:0 0 2.35rem}.builder-left-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid #2a3140;flex-shrink:0}.builder-left-panel-title{margin:0;font-size:.95rem;line-height:1.2;min-width:0}.builder-left-panel-body{flex:1;min-height:0;overflow:auto;padding:1rem}.builder-left-panel-body>.property-action-group:first-child{margin-top:0}.builder-left-panel-expand{width:100%;height:100%;min-height:0;border:none;background:#141820;color:#9aa6ba;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:.5rem .2rem}.builder-left-panel-expand:hover{background:#1c2230;color:#eef1f6}.builder-left-panel-expand-label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.78rem;letter-spacing:.02em;line-height:1.2;max-height:100%;overflow:hidden;text-overflow:ellipsis}.builder-left-panel-expand-icon{font-size:.95rem;line-height:1}.split-view>*{min-width:0;min-height:0}.panel{padding:1rem;overflow:auto;border-right:1px solid #2a3140;background:#171b23}.builder-right-panel{display:flex;flex-direction:row;align-items:stretch;border-right:none;border-left:1px solid #2a3140;padding:0;overflow:hidden;min-width:0}.builder-strip{position:relative;flex:0 0 240px;width:240px;min-width:160px;max-width:480px;display:flex;flex-direction:column;min-height:0;border-left:1px solid #2a3140;background:#171b23}.builder-strip--resizing{-webkit-user-select:none;user-select:none}.builder-strip--inactive .builder-strip-body{opacity:.45;pointer-events:none}.builder-strip--inactive .builder-strip-resize-handle{pointer-events:none}.builder-strip-resize-handle{position:absolute;left:0;top:0;bottom:0;width:5px;margin-left:-2px;cursor:col-resize;touch-action:none;z-index:2}.builder-strip-resize-handle:hover,.builder-strip--resizing .builder-strip-resize-handle{background:#4da6ff59}.decoration-section{margin-top:1rem;padding-top:.85rem;border-top:1px solid #2a3140}.decoration-section--top{margin-top:0;padding-top:0;border-top:none;padding-bottom:.75rem;margin-bottom:.5rem;border-bottom:1px solid #2a3140}.decoration-section-title,.parts-section-title{margin:0 0 .55rem;font-size:.82rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#9aa8b8}.parts-section-title{margin-top:.15rem}.decoration-import-btn{width:100%;margin-bottom:.35rem;background:#2d6cdf;color:#f4f7fb;border:1px solid #3d7cf0;font-weight:600}.decoration-import-btn:hover:not(:disabled){background:#3a7aef}.decoration-import-hint{font-size:.78rem;line-height:1.35;margin:0 0 .65rem}.decoration-size-hint{font-size:.78rem;line-height:1.35;margin:.45rem 0 .75rem}.track-bom{display:flex;flex-direction:column;align-items:center;gap:1.1rem;width:100%}.track-bom-warning{margin:0;font-size:.78rem;color:#e8a84a;text-align:center}.track-bom-section{display:flex;flex-direction:column;align-items:stretch;width:100%}.track-bom-stack{display:flex;flex-direction:column;align-items:stretch;gap:1.1rem;width:fit-content;max-width:100%}.track-bom-section-title{margin:0 0 .45rem;font-size:.82rem;font-weight:600;color:#c8d0dc;text-align:center}.track-bom-lines{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;width:100%}.track-bom-line{display:flex;align-items:center;gap:.55rem;width:100%;box-sizing:border-box;padding:.35rem .4rem;border-radius:.45rem;background:#ffffff05}.track-bom-line-label{min-width:0;font-size:.82rem;line-height:1.3}.track-bom-line-qty{flex-shrink:0;min-width:2.4rem;font-size:.88rem;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;color:#eef1f6}.track-bom-leds{margin:.45rem 0 0;font-size:.78rem;line-height:1.35}.track-bom-led-total{color:#7a8496}.track-bom-empty{margin:0;font-size:.78rem}.track-bom-gates{display:flex;flex-direction:column;align-items:stretch;gap:.45rem;width:100%;max-width:100%}.track-bom-gate{border:1px solid #3a4558;border-radius:.45rem;background:#ffffff04;width:auto;min-width:0;max-width:100%}.track-bom-gate-summary{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.45rem .7rem;cursor:pointer;list-style:none}.track-bom-gate-summary::-webkit-details-marker{display:none}.track-bom-gate-name{font-size:.82rem;font-weight:500;min-width:0}.track-bom-gate-count{font-size:.75rem;white-space:nowrap}.track-bom-gate-body{padding:.45rem .55rem .55rem;border-top:1px solid #3a4558}.track-bom-gate-preview{width:200px;height:200px;margin:0 auto .55rem;border-radius:.45rem;overflow:hidden;border:1px solid #a8adb8;background:#d0d4dc;display:flex;align-items:center;justify-content:center}.track-bom-gate-preview-image{width:200px;height:200px;display:block;object-fit:contain}.track-bom-actions{margin-bottom:.65rem}.track-bom-modal{width:min(100%,42rem);max-height:min(90vh,720px);display:flex;flex-direction:column;padding:1rem 1.15rem 1.1rem}.track-bom-modal h3{margin:0 0 .25rem}.track-share-modal{width:min(100%,34rem);max-height:min(90vh,640px);overflow-y:auto;scrollbar-gutter:stable;padding:1rem 1.15rem 1.1rem}.track-share-modal h3{margin:0 0 .25rem}.track-share-intro{margin:0 0 .85rem;font-size:.85rem}.track-share-section+.track-share-section{margin-top:1rem;padding-top:.85rem;border-top:1px solid #2a3140}.track-share-section-title{margin:0 0 .55rem;font-size:.82rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#9aa6ba}.track-share-radio{display:flex;align-items:flex-start;gap:.45rem;margin:0 0 .45rem;font-size:.86rem;line-height:1.35;cursor:pointer}.track-share-radio input{margin-top:.15rem;flex-shrink:0}.track-share-user-list{display:flex;flex-direction:column;gap:.35rem;min-height:10rem;max-height:10rem;overflow-y:auto;scrollbar-gutter:stable;margin-top:.55rem;padding:.55rem .6rem;border:1px solid #2a3140;border-radius:.45rem;background:#00000026}.track-share-user-list-status{margin:auto 0;text-align:center}.user-profile-modal{width:min(100%,34rem);max-height:min(90vh,720px);overflow-y:auto;scrollbar-gutter:stable;padding:1rem 1.15rem 1.1rem;-webkit-user-select:text;user-select:text}.modal.help-modal{width:min(96vw,52rem);max-height:min(90vh,48rem);display:flex;flex-direction:column;overflow:hidden;padding:1rem 1.15rem 1.1rem;-webkit-user-select:text;user-select:text}.help-modal h3{margin:0 0 .25rem;flex-shrink:0}.help-intro{margin:0 0 .85rem;font-size:.85rem;flex-shrink:0}.help-modal .modal-actions{flex-shrink:0;margin-top:.75rem}.help-sections{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding-right:.25rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:.75rem}.help-section{border:1px solid #2e3747;border-radius:.5rem;padding:.6rem .75rem .7rem;background:#1c212b}.help-section--current{border-color:#4a7cc4}.help-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}.help-section-head h4{margin:0;font-size:.95rem}.help-section-scope{font-size:.72rem;color:#8a96a8;white-space:nowrap}.help-rows{margin:0;display:grid;gap:.35rem}.help-row{display:grid;grid-template-columns:minmax(8rem,42%) 1fr;gap:.6rem;align-items:start;font-size:.82rem;line-height:1.4}.help-row dt{margin:0;display:flex;flex-wrap:wrap;align-items:flex-start;gap:.2rem 0}.help-row dd{margin:0;padding-top:.1rem;color:#c8d0dc}.help-row kbd{display:inline-block;padding:.05rem .35rem;border:1px solid #3f4a5e;border-bottom-width:2px;border-radius:.3rem;background:#262d3a;color:#e3e8f0;font-family:inherit;font-size:.76rem;line-height:1.35}.help-or{color:#6f7b8e}.user-profile-modal input{width:100%;user-select:text;-webkit-user-select:text}.user-profile-field>label{color:#c5cede}.user-profile-modal h3,.users-admin-modal h3{margin:0 0 .25rem}.users-admin-stats{margin:0 0 .75rem;font-size:.85rem}.users-admin-layout{display:grid;grid-template-columns:minmax(12rem,18rem) minmax(0,1fr);gap:1rem;min-height:0;flex:1}.users-admin-list-pane{display:flex;flex-direction:column;gap:.45rem;min-height:0}.users-admin-list-pane input[type=search]{width:100%;padding:.45rem .6rem;border-radius:.45rem;border:1px solid #3a4558;background:#0f1218;color:inherit}.users-admin-show-deleted{margin:0}.users-admin-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;min-height:8rem;border:1px solid #2a3140;border-radius:.45rem}.users-admin-list-item{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;padding:.45rem .6rem;border:0;border-bottom:1px solid #2a3140;border-radius:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.users-admin-list-item:hover{background:#ffffff0d}.users-admin-list-item.active{background:#3559ff29}.users-admin-list-item.is-deleted{opacity:.65}.users-admin-list-name{font-weight:600}.users-admin-list-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.75rem;color:#9aa6ba}.users-admin-stat-chip{display:inline-flex;align-items:baseline;gap:.25rem;padding:.12rem .4rem;border-radius:.35rem;background:#3559ff29;border:1px solid rgba(53,89,255,.35);color:#d5def0;font-size:.72rem;line-height:1.2}.users-admin-stat-chip strong{font-variant-numeric:tabular-nums;color:#eef1f6}.users-admin-stat-chip.is-deleted{background:#e85d0429;border-color:#e85d0466}.users-admin-role-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:0 0 .65rem}.users-admin-role-row .user-profile-field{flex:1 1 10rem;margin:0;min-width:0}.users-admin-stat-boxes{display:flex;flex-wrap:wrap;gap:.45rem;flex:1 1 16rem}.users-admin-stat-box{display:flex;flex-direction:column;justify-content:center;min-width:5.5rem;padding:.4rem .65rem;border-radius:.45rem;background:#3559ff24;border:1px solid rgba(53,89,255,.38)}.users-admin-stat-box.is-deleted{background:#e85d0429;border-color:#e85d0466}.users-admin-stat-value{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2;color:#eef1f6}.users-admin-stat-value--text{font-size:.92rem}.users-admin-stat-label{font-size:.72rem;color:#9aa6ba;letter-spacing:.02em}.users-admin-detail{min-height:0;overflow-y:auto;padding-right:.15rem}.users-admin-detail input,.users-admin-detail select{width:100%;padding:.5rem .65rem;border-radius:.45rem;border:1px solid #3a4558;background:#0f1218;color:inherit}.users-admin-detail .modal-actions{position:sticky;bottom:0;z-index:1;margin-top:.75rem;padding-top:.5rem;background:#171b23}@media (max-width: 720px){.users-admin-layout{grid-template-columns:1fr}.users-admin-list{max-height:12rem}}.user-profile-intro{margin:0 0 .85rem;font-size:.85rem}.user-profile-section+.user-profile-section{margin-top:1rem;padding-top:.85rem;border-top:1px solid #2a3140}.user-profile-section-title{margin:0 0 .55rem;font-size:.82rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#9aa6ba}.user-profile-field{display:flex;flex-direction:column;gap:.3rem;margin:0 0 .65rem;font-size:.86rem}.user-profile-field-label{display:inline-flex;align-items:center;gap:.4rem;color:#c5cede;-webkit-user-select:none;user-select:none}.user-profile-social-icon{flex-shrink:0}.user-profile-social-icon--facebook{color:#1877f2}.user-profile-social-icon--youtube{color:red}.user-profile-social-icon--instagram{color:#e4405f}.user-profile-feedback{margin:.35rem 0 0;font-size:.85rem}.user-profile-success{color:#7dcea0}.track-bom-dialog-intro{margin:0 0 .75rem;font-size:.85rem}.track-bom-dialog-body{flex:1;min-height:0;overflow:auto;padding-right:.15rem}.track-bom-dialog-section+.track-bom-dialog-section{margin-top:1rem}.track-bom-dialog-section-title,.track-bom-dialog-gate-title{margin:0 0 .45rem;font-size:.88rem;font-weight:600;color:#c8d0dc}.track-bom-dialog-gate{margin-bottom:.85rem}.track-bom-dialog-gate-title{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-size:.82rem;font-weight:500}.track-bom-table-wrap{margin-bottom:0;width:100%;max-width:100%;box-sizing:border-box;border:1px solid #3a4558;border-radius:.45rem;background:#ffffff04;padding:.15rem .2rem .45rem}.track-bom-table{width:100%;border-collapse:collapse;font-size:.82rem}.track-bom-table th,.track-bom-table td{padding:.35rem .55rem;border-bottom:1px solid #3a4558;text-align:left;white-space:nowrap}.track-bom-table th{color:#9aa6ba;font-weight:500}.track-bom-table-qty{width:3.25rem;text-align:right!important;font-variant-numeric:tabular-nums;font-weight:600}.track-bom-table-thumb{width:calc(var(--list-preview-size) * 2 + .35rem);padding-left:.2rem!important;padding-right:.35rem!important;vertical-align:middle}.track-bom-table-part{padding-left:.2rem!important}.track-bom-table-thumb .part-list-preview{margin:0;width:calc(var(--list-preview-size) * 2);height:calc(var(--list-preview-size) * 2);min-width:calc(var(--list-preview-size) * 2);min-height:calc(var(--list-preview-size) * 2)}.track-bom-line--text{padding-left:.4rem}.track-bom-strip-name{margin:0;font-size:.82rem}.track-bom-strip .builder-strip-sticky-head .secondary{width:100%}.track-bom-page{display:flex;flex-direction:column;height:100%;max-height:100%;min-height:0;overflow:hidden;background:#12151c}.track-bom-page-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid #3a4558;background:#171b23}.track-bom-page-heading h2{margin:0;font-size:1.05rem}.track-bom-page-heading p{margin:.15rem 0 0;font-size:.85rem}.track-bom-page-body{flex:1;min-height:0;overflow:auto;padding:1rem 1rem 2rem;display:flex;justify-content:center;align-items:flex-start}.track-bom-table-led-row td{color:#d4dae4}.track-bom-table-led-detail{margin:.35rem .55rem 0;font-size:.78rem}.decoration-asset-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.builder-strip:first-child{border-left:none}.builder-strip--collapsed{display:flex;flex-direction:column;flex:0 0 2.35rem;width:2.35rem;min-width:2.35rem;max-width:2.35rem}.builder-strip-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid #2a3140;flex-shrink:0}.builder-strip-title-row{display:flex;align-items:baseline;gap:.35rem;min-width:0;flex:1}.builder-strip-title{margin:0;font-size:.95rem;line-height:1.2;min-width:0}.builder-strip-title-count{font-size:.72rem;font-weight:600;line-height:1.2;color:#9aa6ba;white-space:nowrap;flex-shrink:0}.builder-strip-header-actions{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.builder-strip-close,.builder-strip-refresh{flex-shrink:0;width:1.65rem;height:1.65rem;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid #3a4558;border-radius:.35rem;background:#222833;color:#9aa6ba;cursor:pointer;font-size:1.1rem;line-height:1}.builder-strip-close:hover,.builder-strip-refresh:hover:not(:disabled){color:#eef1f6;border-color:#4a5568}.builder-strip-refresh:disabled{opacity:.55;cursor:wait}.builder-strip-refresh--pinned{margin:.35rem auto 0;flex-shrink:0}.builder-strip-body{flex:1;min-height:0;overflow:auto;padding:.75rem}.builder-strip-body .part-list,.builder-strip-body .gate-list{margin-top:0}.builder-strip-sticky-head{position:sticky;top:0;z-index:2;display:flex;flex-direction:column;gap:.5rem;margin:-.75rem -.75rem .6rem;padding:.75rem .75rem .6rem;background:#171b23;box-shadow:0 1px #2a3140}.builder-strip-sticky-head .saved-gate-list-toolbar{margin-bottom:0}.builder-strip-sticky-head .gate-folder-manage-toolbar{margin-top:0;margin-bottom:0}.saved-gate-list-toolbar{display:flex;gap:.4rem;align-items:center;margin-bottom:.6rem}.saved-gate-list-filter{flex:1;min-width:0;padding:.35rem .5rem;border:1px solid #3a4558;border-radius:.35rem;background:#1a1f28;color:#eef1f6;font-size:.85rem}.saved-gate-list-filter::placeholder{color:#6b7788}.saved-gate-list-filter:focus{outline:none;border-color:#5a8fd4}.saved-gate-list-sort{flex:0 0 auto;min-width:2.75rem;justify-content:center}.saved-gate-list-sort-group{display:flex;flex:0 0 auto;gap:.25rem}.saved-gate-list-sort-dir{min-width:2rem;padding-left:.45rem;padding-right:.45rem}.builder-strip-expand{width:100%;flex:1;height:auto;min-height:0;border:none;background:#141820;color:#9aa6ba;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:.5rem .2rem}.builder-strip-expand:hover{background:#1c2230;color:#eef1f6}.builder-strip-expand-label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.78rem;letter-spacing:.02em;line-height:1.2;max-height:100%;overflow:hidden;text-overflow:ellipsis}.builder-strip-expand-icon{font-size:.95rem;line-height:1}.viewport{min-height:0}.viewport--editor{position:relative}.view-nav-overlay{--view-nav-btn-size: 2.25rem;--view-nav-gap: .3rem;--view-nav-accent: #2db8ff;--view-nav-accent-dim: rgba(45, 184, 255, .35);--view-nav-panel-bg: linear-gradient(165deg, rgba(14, 22, 42, .5), rgba(8, 12, 24, .5));position:absolute;top:.65rem;right:.65rem;z-index:5;pointer-events:none}.view-nav-panel{display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.55rem .5rem .5rem;border:1px solid var(--view-nav-accent-dim);border-radius:.65rem;background:var(--view-nav-panel-bg);box-shadow:0 0 0 1px #2db8ff14 inset,0 0 18px #2db8ff1f,0 8px 24px #00000059;pointer-events:auto}.view-nav-cube{--view-nav-btn-size: 2.25rem;--view-nav-gap: .3rem;position:relative;display:grid;grid-template-columns:var(--view-nav-btn-size) var(--view-nav-btn-size) var(--view-nav-btn-size);grid-template-rows:repeat(4,var(--view-nav-btn-size));gap:var(--view-nav-gap);width:fit-content;height:fit-content}.view-nav-connectors{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.view-nav-connectors line{stroke:#2db8ff73;stroke-width:1.5;vector-effect:non-scaling-stroke}.view-nav-btn,.view-nav-home{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:var(--view-nav-btn-size);height:var(--view-nav-btn-size);padding:.35rem;border:1px solid rgba(45,184,255,.28);border-radius:.4rem;background:linear-gradient(180deg,#18243ef2,#0e1628fa);color:#e8f4ff;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}.view-nav-btn:hover,.view-nav-home:hover{background:linear-gradient(180deg,#223458fa,#142038fc);border-color:#2db8ff8c;box-shadow:0 0 10px #2db8ff2e}.view-nav-btn:active,.view-nav-home:active{transform:scale(.96)}.view-nav-icon{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:brightness(1.05)}.view-nav-front{border-color:#2db8ffbf;box-shadow:0 0 0 1px #2db8ff33 inset,0 0 14px #2db8ff59}.view-nav-front:hover{border-color:#50c8ffe6;box-shadow:0 0 0 1px #2db8ff4d inset,0 0 18px #2db8ff73}.view-nav-spacer{display:block;width:var(--view-nav-btn-size);height:var(--view-nav-btn-size);pointer-events:none}.view-nav-top{grid-column:2;grid-row:1}.view-nav-orbit-left{grid-column:1;grid-row:1}.view-nav-orbit-right{grid-column:3;grid-row:1}.view-nav-left{grid-column:1;grid-row:2}.view-nav-front{grid-column:2;grid-row:2}.view-nav-right{grid-column:3;grid-row:2}.view-nav-gap-left{grid-column:1;grid-row:3}.view-nav-back{grid-column:2;grid-row:3}.view-nav-gap-right{grid-column:3;grid-row:3}.view-nav-gap-bottom-left{grid-column:1;grid-row:4}.view-nav-bottom{grid-column:2;grid-row:4}.view-nav-gap-bottom-right{grid-column:3;grid-row:4}.view-nav-divider{width:calc(100% - .25rem);height:1px;background:linear-gradient(90deg,transparent,rgba(45,184,255,.35) 20%,rgba(45,184,255,.35) 80%,transparent)}.view-nav-home{flex-shrink:0}.view-mode-toggle{position:absolute;bottom:.65rem;left:.65rem;z-index:5;min-width:2.75rem;padding:.35rem .55rem;border:1px solid #5a6475;border-radius:.35rem;background:#171b23e0;color:#c8d0dc;font-size:.75rem;font-weight:700;letter-spacing:.04em;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.view-mode-toggle:hover{background:#2a3140f2;border-color:#7a8498;color:#fff}.view-mode-toggle.active{border-color:#3559ff;color:#fff;background:#3559ff38}.auth-form{width:min(100%,24rem);display:grid;gap:.75rem;padding:1.25rem;border:1px solid #2a3140;border-radius:.75rem;background:#171b23}.auth-screen{display:flex;flex-direction:column;align-items:flex-end;gap:.65rem;width:min(100%,24rem)}.auth-language-selector{align-self:flex-end}.language-selector{display:inline-flex;align-items:center;gap:.45rem;color:#9aa6ba;font-size:.88rem}.language-selector-label{white-space:nowrap}.language-selector select{padding:.35rem .55rem;border-radius:.45rem;border:1px solid #3a4558;background:#0f1218;color:inherit}.language-selector-compact select{min-width:6.5rem}.topbar-header-row .topbar-right{margin-left:0;display:flex;align-items:center;gap:.5rem}.auth-form label,.builder-left-panel-body label:not(.group-align-checkbox):not(.checkbox-row){display:grid;gap:.35rem}.auth-form input,.builder-left-panel-body input:not([type=checkbox]){width:100%;padding:.5rem .65rem;border-radius:.45rem;border:1px solid #3a4558;background:#0f1218;color:inherit}.link-button{background:none;border:none;color:#8fb0ff;text-align:left;padding:0}.muted{color:#9aa6ba}.error{color:#ff8ea3}.part-list,.gate-list{list-style:none;padding:0;margin:.75rem 0 0;display:grid;gap:.35rem}.part-list-item{display:flex;flex-direction:column;gap:.45rem;width:100%;padding:.45rem .55rem;border:1px solid transparent;border-radius:.5rem}.part-list-item-main{display:flex;align-items:center;gap:.65rem;width:100%;text-align:left}.part-list-item.has-params{border-color:#3a4558;background:#ffffff05}.part-list-item.has-params.active{border-color:#3559ff8c}.part-list-item-head{display:flex;align-items:center;gap:.4rem}.part-list-item-head .part-list-item-main{flex:1;min-width:0}.part-list-item-head .gate-bom-toggle{flex-shrink:0}.part-list-params{margin-top:.1rem;padding:.45rem .5rem .15rem;padding-left:calc(var(--list-preview-size) + .65rem);border-top:1px solid #3a4558}.part-list-param-head{display:flex;justify-content:space-between;gap:.5rem;font-size:.85rem}.part-list-param-label{color:#9aa6ba}.part-list-param-value{font-variant-numeric:tabular-nums}.part-list-param input[type=range]{width:100%;margin-top:.25rem}.part-list-param-presets{margin-top:.35rem}.part-list-preview{width:var(--list-preview-size);height:var(--list-preview-size);min-width:var(--list-preview-size);min-height:var(--list-preview-size);flex-shrink:0;border-radius:.35rem;overflow:hidden;border:1px solid #a8adb8;background:#d0d4dc;display:flex;align-items:center;justify-content:center}.part-list-preview-image{width:100%;height:100%;display:block;object-fit:cover}.list-thumbnail-host,.preview-capture-host{position:fixed;left:0;top:0;width:var(--list-preview-size);height:var(--list-preview-size);opacity:0;pointer-events:none;z-index:-1;overflow:hidden}.part-list-preview--empty{display:flex;align-items:center;justify-content:center}.part-list-preview--static{display:flex;align-items:center;justify-content:center;background:#252a33;border-color:#3a4250}.part-list-preview-static-label{color:#9aa6ba;font-size:.62rem;line-height:1.15;text-align:center;padding:.15rem;word-break:break-word}.part-list-preview-placeholder{color:#6b7280;font-size:1.25rem;line-height:1}.group-settings{margin-top:.75rem;padding-top:.65rem;border-top:1px solid #2a3140}.part-list-label{flex:1;min-width:0;font-size:.92rem;line-height:1.25}.chip-row{display:flex;gap:.35rem}.chip-row.wrap{flex-wrap:wrap}.chip{padding:.35rem .55rem;font-size:.92rem}.chip.chip-icon{min-width:2rem;padding:.35rem .4rem;text-align:center;line-height:1}.track-route-flythrough-controls{flex-wrap:nowrap}.pipe-controls,.selection-box,.actions{margin-top:1rem}.selection-box{padding:.75rem;border:1px solid #2a3140;border-radius:.5rem;background:#12151b}.property-action-group{margin-top:.7rem;border:1px solid #2a3140;border-radius:.45rem;background:#0000001f;overflow:hidden}.property-action-group-header{display:flex;align-items:stretch;border-bottom:1px solid transparent}.property-action-group-drag-handle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:0 .45rem;color:#6b7788;cursor:grab;-webkit-user-select:none;user-select:none;border-right:1px solid #2a3140}.property-action-group-drag-icon{width:.62rem;height:.88rem;flex-shrink:0}.property-action-group-drag-handle:active{cursor:grabbing}.property-action-group-toggle{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex:1;min-width:0;padding:.45rem .55rem;border:none;background:transparent;color:inherit;cursor:pointer;text-align:left}.property-action-group-toggle:hover{background:#ffffff08}.property-action-group--drag-over{outline:1px solid #5a8fd4;outline-offset:-1px}.property-action-group-chevron{flex-shrink:0;width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid #3a4558;border-radius:.3rem;background:#222833;color:#9aa6ba;font-size:.95rem;line-height:1}.property-action-group-title{display:block;font-size:.8rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#7d8799}.property-action-group-body,.property-action-group-inline{padding:.45rem .55rem .55rem}.property-action-group-body--stack{display:flex;flex-direction:column;gap:.5rem;width:100%}.property-action-group-body--stack button.secondary{width:100%;margin-top:.15rem}.property-action-group--danger .property-action-group-title{color:#b8707a}.property-action-group--bright-title .property-action-group-title{color:#eef1f6}.property-action-group--tools{border-radius:.65rem;background:#12151b}.property-action-group--tools .property-action-group-header{border-bottom:1px solid #2a3140}.track-tools-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.55rem .6rem .65rem}.track-tool-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;width:100%;min-width:0;padding:.5rem .4rem .42rem;border:1px solid #3a4558;border-radius:.55rem;background:transparent;color:#eef1f6;font-size:.86rem;line-height:1.2;text-align:center;cursor:pointer}.track-tool-btn span{font-size:.72rem;line-height:1.15}.track-tool-btn:hover:not(:disabled):not(.active){background:#ffffff0a;border-color:#4a5568}.track-tool-btn.active{background:#3559ff;border-color:#3559ff;color:#fff}.track-tool-btn:disabled{opacity:.45;cursor:not-allowed}.track-tool-btn-icon{width:1.85rem;height:1.85rem;flex-shrink:0;object-fit:contain;background:transparent;image-rendering:auto}.gate-rotation-fields,.rotation-axis-quick-row{display:flex;gap:.35rem;width:100%}.rotation-axis-quick-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.12rem}.rotation-axis-quick-col--disabled{opacity:.38}.rotation-axis-quick-label{font-size:.72rem;font-weight:600;letter-spacing:.04em;line-height:1}.rotation-axis-quick-col.axis-x .rotation-axis-quick-label{color:var(--axis-x-color)}.rotation-axis-quick-col.axis-y .rotation-axis-quick-label{color:var(--axis-y-color)}.rotation-axis-quick-col.axis-z .rotation-axis-quick-label{color:var(--axis-z-color)}.rotation-axis-quick-icon{display:flex;align-items:center;justify-content:center;height:1.1rem;color:#9aa6ba}.rotation-axis-quick-col.axis-x .rotation-axis-quick-icon{color:var(--axis-x-color)}.rotation-axis-quick-col.axis-y .rotation-axis-quick-icon{color:var(--axis-y-color)}.rotation-axis-quick-col.axis-z .rotation-axis-quick-icon{color:var(--axis-z-color)}.rotation-axis-quick-icon .property-btn-icon{width:1rem;height:1rem}.rotation-axis-quick-btns{display:flex;gap:.12rem;width:100%}.rotation-axis-quick-btn{flex:1 1 0;min-width:0;padding:.22rem .05rem;border:1px solid #3a4455;border-radius:4px;background:#252b36;color:#c8d0dc;font-size:.68rem;font-weight:600;line-height:1.1;cursor:pointer}.plate-image-rotation{display:flex;flex-direction:column;gap:.35rem}.plate-image-rotation-label{font-size:.82rem;color:#c8d0dc}.plate-image-rotation-presets{display:flex;gap:.2rem}.plate-image-rotation-presets .rotation-axis-quick-btn{padding:.35rem .2rem;font-size:.78rem}.plate-image-rotation-presets .rotation-axis-quick-btn.active{border-color:#3559ff;background:#243056;color:#e8eeff}.plate-image-rotation-field{max-width:7.5rem;text-transform:none;letter-spacing:0;font-size:.82rem;color:#c8d0dc}.rotation-axis-quick-btn:hover:not(:disabled){background:#2f3848;border-color:#4a5568}.rotation-axis-quick-btn:disabled{cursor:not-allowed}.rotation-axis-quick-col.axis-x .rotation-axis-quick-btn:not(:disabled):hover{border-color:var(--axis-x-color);color:var(--axis-x-color)}.rotation-axis-quick-col.axis-y .rotation-axis-quick-btn:not(:disabled):hover{border-color:var(--axis-y-color);color:var(--axis-y-color)}.rotation-axis-quick-col.axis-z .rotation-axis-quick-btn:not(:disabled):hover{border-color:var(--axis-z-color);color:var(--axis-z-color)}.property-action-group-body--stack .rotation-axis-quick-row{margin-bottom:.35rem}.gate-rotation-field{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:.2rem;margin:0;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#9aa6ba}.gate-rotation-field.axis-x{color:var(--axis-x-color)}.gate-rotation-field.axis-y{color:var(--axis-y-color)}.gate-rotation-field.axis-z{color:var(--axis-z-color)}.builder-left-panel-body .gate-rotation-field input:not([type=checkbox]){width:100%;padding:.28rem .1rem;text-align:center;font-size:.82rem;border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.gate-rotation-input-wrap{display:flex;align-items:stretch;width:100%;min-width:0}.gate-rotation-steppers{display:flex;flex-direction:column;flex-shrink:0;border:1px solid #3a4558;border-radius:0 .45rem .45rem 0;overflow:hidden;background:#0f1218}.gate-rotation-step{flex:1;width:1.15rem;padding:0;margin:0;border:none;border-radius:0;background:#151a22;color:#9aa6ba;font-size:.45rem;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none}.gate-rotation-step+.gate-rotation-step{border-top:1px solid #3a4558}.gate-rotation-step:hover{background:#1e2633;color:#d8dee9}.track-floor-texture{display:grid;gap:.35rem}.track-floor-texture-name{margin:0;font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-floor-texture-actions{display:grid;grid-template-columns:4.2rem 1fr;gap:.4rem}.track-floor-texture button.secondary{width:100%}.plate-color-field .plate-color-inputs{display:flex;gap:.35rem;align-items:center}.plate-color-field input[type=color]{width:2.5rem;height:2rem;padding:.1rem;flex-shrink:0;cursor:pointer}.plate-color-field input[type=text]{flex:1;min-width:0;font-family:ui-monospace,monospace;font-size:.82rem}.plate-image-name{margin:0;font-size:.85rem}.plate-image-actions{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.plate-image-upload-btn,.plate-image-select-btn{width:100%;min-width:0;font-size:.8rem;line-height:1.25;padding:.45rem .4rem;white-space:normal;text-align:center}.plate-image-library-modal{width:min(100%,44rem);max-width:44rem}.plate-image-library-modal h3{margin:0 0 .65rem;font-size:.95rem}.plate-image-library-empty{margin:0 0 .75rem;font-size:.85rem}.plate-image-library{display:flex;flex-direction:column;gap:.35rem}.plate-image-library-title{margin:0;font-size:.78rem;color:#9aa6ba}.plate-image-library-grid{list-style:none;margin:0 0 .75rem;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.5rem;max-height:21rem;overflow-y:auto}.plate-image-library-item{display:flex;flex-direction:column;align-items:stretch;width:100%;margin:0;padding:.3rem;border:1px solid #3a4456;border-radius:6px;background:#151a24;cursor:pointer;color:#c8d0dc;text-align:left}.plate-image-library-item:hover:not(:disabled){border-color:#5a6a84;background:#1c2433}.plate-image-library-item.selected{border-color:#4da6ff;box-shadow:0 0 0 1px #4da6ff inset}.plate-image-library-item:disabled{opacity:.45;cursor:not-allowed}.plate-image-library-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;display:block;background:#0d1018}.plate-image-library-name{margin-top:.25rem;font-size:.82rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-with-icon{display:inline-flex;align-items:center;gap:.35rem}.property-btn-icon{width:.95rem;height:.95rem;flex-shrink:0}.group-align-checkbox{display:flex;flex-direction:row;align-items:center;gap:.35rem;margin:0;font-size:.88rem;line-height:1.25;cursor:pointer;width:100%;min-width:0}.builder-left-panel-body label.group-align-checkbox{display:flex;flex-direction:row;align-items:center;gap:.35rem;width:100%}.group-align-checkbox span{flex:1;min-width:0}.group-align-checkbox .property-btn-icon{width:.9rem;height:.9rem;flex-shrink:0;color:#9aa6ba}.group-align-checkbox input[type=checkbox]{width:auto;min-width:1rem;margin:0;padding:0;flex-shrink:0;accent-color:#3559ff}.move-hint{margin:.65rem 0 0;font-size:.88rem}.snap-hint{margin:.45rem 0 0;font-size:.88rem;color:#6fdc8c}.axis-lock{margin-top:.75rem}.axis-lock-label{display:block;margin-bottom:.35rem;font-size:.92rem;color:#9aa6ba}.chip.axis-x:not(.active){color:var(--axis-x-color)}.chip.axis-y:not(.active){color:var(--axis-y-color)}.chip.axis-z:not(.active){color:var(--axis-z-color)}.gate-list li{padding:0;border-bottom:1px solid #242b38}.gate-list-item{display:flex;align-items:flex-start;gap:.65rem;width:100%;padding:.45rem .35rem}button.gate-list-item{border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}button.gate-list-item:hover{background:#ffffff0a;border-radius:.45rem}.gate-list-item.active{background:#3559ff1f;border-radius:.45rem}.gate-list-meta{flex:1;min-width:0;display:grid;gap:.4rem}.gate-list-name{font-size:.92rem;line-height:1.25;word-break:break-word}.builder-gate-meta-fields{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem .85rem}.builder-folder-field select{width:min(14rem,36vw);padding:.5rem .7rem;border-radius:.55rem;border:1px solid #3a4558;background:#0f1218;color:inherit}.gate-folder-manage-toolbar{display:flex;align-items:stretch;gap:.4rem;margin-top:.5rem;margin-bottom:.5rem}.gate-folder-manage-toolbar .gate-folder-new-btn{flex:0 0 auto;padding:calc(.28rem - 2.5px) .5rem;font-size:.82rem;line-height:1.1}.gate-folder-stats{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:calc(.28rem - 2.5px) .45rem;border:1px solid #3a4558;border-radius:.5rem;background:#1a1f28;font-size:.7rem;font-weight:600;line-height:1.15;color:#9aa6ba;text-align:center;white-space:nowrap}.gate-folder-block{padding:0;border-bottom:1px solid #242b38;background:#ffffff09;border-radius:.45rem;margin-bottom:.2rem}.gate-folder-header{display:grid;gap:.3rem;padding:.45rem .35rem}.gate-folder-toggle{display:flex;align-items:center;gap:.65rem;width:100%;padding:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.gate-folder-toggle:hover{opacity:.92}.gate-folder-preview{position:relative;width:var(--list-preview-size);height:var(--list-preview-size);min-width:var(--list-preview-size);min-height:var(--list-preview-size);flex-shrink:0}.gate-folder-icon{width:100%;height:100%;object-fit:contain;display:block}.gate-folder-count-badge{position:absolute;top:-.15rem;right:-.15rem;min-width:1.15rem;height:1.15rem;padding:0 .2rem;border-radius:999px;background:#3559ff;color:#fff;font-size:.68rem;font-weight:600;line-height:1.15rem;text-align:center;font-variant-numeric:tabular-nums;box-shadow:0 0 0 1px #12151b}.gate-folder-name-wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.gate-folder-name{font-size:.92rem;font-weight:600;word-break:break-word}.gate-folder-shared-by{font-size:.72rem;line-height:1.2}.gate-folder-chevron{flex-shrink:0;width:1.25rem;text-align:center;color:#9aa6ba;font-size:1rem;line-height:1}.gate-folder-actions{padding-left:0;flex-wrap:wrap}.gate-folder-actions,.gate-list-item-actions{align-items:center}.gate-folder-action-btn,.icon-action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.35rem;height:2.35rem;min-width:2.35rem;padding:0;border:none;background:transparent;border-radius:.35rem;cursor:pointer;color:inherit;line-height:0}.gate-folder-action-btn:hover,.icon-action-btn:hover{background:#ffffff12}.gate-folder-action-btn:focus-visible,.icon-action-btn:focus-visible{outline:2px solid #5a8fd4;outline-offset:1px}.gate-folder-action-icon,.icon-action-img{width:100%;height:100%;object-fit:contain;display:block}.icon-action-img--share{transform:scale(1.18)}.icon-action-img--delete{transform:scale(1)}.icon-action-img--gate-load,.icon-action-img--track-load{transform:scale(.85)}.icon-action-img--rename{transform:scale(.84)}.gate-folder-gates{list-style:none;margin:0;padding:0 0 .15rem;display:grid;gap:0;border-top:1px solid #4a5568}.gate-folder-gates>li{border-bottom:1px solid #4a5568}.gate-folder-gates>li:last-child{border-bottom:none}.gate-folder-empty{padding:.2rem .35rem .45rem;font-size:.85rem}.gate-list .chip,.gate-folder-block .chip{padding:.28rem .5rem;font-size:.86rem;line-height:1.15}@media (max-width: 720px){.topbar{--topbar-height: 9rem;padding:.65rem .75rem .75rem}.topbar-header-row{flex-direction:column;align-items:center;text-align:center}.topbar-header-end{margin-left:0;flex-wrap:wrap;justify-content:center}.builder-toolbar-message-root{width:100%;flex:none;order:3;padding:0 .25rem}.topbar-brand{justify-content:center}.topbar-toolbar-center{justify-content:flex-start}.builder-name-field{flex-direction:column;width:100%}.builder-name-field input{width:100%;max-width:20rem}.topbar-menu-btn{min-width:4.25rem;max-width:6.75rem}.builder-toolbar-message{white-space:normal}.split-view,.split-view.builder-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,34vh) minmax(0,1fr) auto}.builder-right-panel{flex-direction:column;border-left:none;border-top:1px solid #2a3140;max-height:min(50vh,560px)}.builder-strip{flex:1 1 auto;width:auto;max-width:none;min-width:0;border-left:none;border-top:1px solid #2a3140}.builder-strip:first-child{border-top:none}.builder-strip--collapsed{flex-direction:row;align-items:center;flex:0 0 2.35rem;width:auto;min-width:0;max-width:none}.builder-strip-refresh--pinned{margin:0 0 0 .35rem}.builder-strip-expand{flex-direction:row;justify-content:flex-start;padding:.45rem .75rem}.builder-strip-expand-label{writing-mode:horizontal-tb;transform:none;font-size:.88rem}.builder-toolbar-message{flex-basis:100%;white-space:normal}}.context-menu{position:fixed;z-index:1000;min-width:11rem;padding:.35rem;border:1px solid #3a4558;border-radius:.5rem;background:#171b23;box-shadow:0 8px 24px #00000073}.context-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;border:none;background:transparent;color:inherit;padding:.35rem .5rem;border-radius:.35rem;cursor:pointer}.context-menu-item-icon-slot{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.context-menu-item-icon{width:24px;height:24px;object-fit:contain;display:block}.context-menu-item-label{flex:1;min-width:0}.context-menu-separator{height:1px;margin:.3rem .4rem;background:#3a4558}.context-menu-item--id{padding-top:.2rem;padding-bottom:.2rem}.context-menu-item--id .context-menu-item-icon-slot{display:none}.context-menu-item--id .context-menu-item-label{font-size:.75rem;line-height:1.35;font-family:ui-monospace,Consolas,monospace;color:#d7dee8;word-break:break-all}.context-menu-item:hover:not(:disabled){background:#2a3140}.context-menu-item:disabled{opacity:.45;cursor:not-allowed}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:1rem}.modal{width:min(100%,22rem);padding:1rem 1.1rem;border:1px solid #3a4558;border-radius:.65rem;background:#171b23}.modal.users-admin-modal{width:min(96vw,74rem);height:min(92vh,56rem);max-height:min(92vh,56rem);overflow:hidden;display:flex;flex-direction:column;padding:1rem 1.15rem 1.1rem}.led-editor-modal{width:min(100%,26rem)}.led-editor-modal h3{margin:0 0 .35rem}.led-ring-tabs{margin-top:.75rem}.led-second-ring-toggle{display:flex;align-items:center;gap:.5rem;margin:.65rem 0 .35rem;font-size:.92rem}.led-ring-picker{margin-top:.35rem}.led-ring-stage{position:relative;width:min(100%,300px);margin:0 auto}.led-ring-svg{width:100%;display:block}.led-slot-palette{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.led-slot-choice{position:absolute;width:1.2rem;height:1.2rem;padding:0;border-radius:50%;border:2px solid #8b95a8;background:linear-gradient(135deg,transparent 46%,#8b95a8 46%,#8b95a8 54%,transparent 54%),#2a3140;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;box-shadow:0 2px 8px #0006}.led-slot-choice.is-current{outline:2px solid #eef1f6;outline-offset:2px}.led-slot-choice:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.08)}.led-slot-choice:disabled{opacity:.35;cursor:not-allowed}.led-ring-track{fill:none;stroke:#3a4558;stroke-width:2}.led-ring-slot{cursor:pointer}.led-ring-slot--facing{stroke:#5ec8ff;stroke-width:3}.led-ring-slot--facing-primary{stroke:#93e8ff;stroke-width:3.5}.led-ring-facing-ring{fill:#5ec8ff1f;stroke:#5ec8ff;stroke-width:1.5;pointer-events:none}.led-ring-facing-ring--primary{fill:#93e8ff2e;stroke:#93e8ff;stroke-width:2}.led-ring-facing-spoke{stroke:#5ec8ff59;stroke-width:1.5;pointer-events:none}.led-ring-facing-spoke--primary{stroke:#93e8ff8c;stroke-width:2}.led-ring-facing-hint{margin:.35rem 0 0;font-size:.85rem;color:#8ec8e8}.led-ring-slot:focus{outline:2px solid #3559ff;outline-offset:2px}.led-ring-slot-label{fill:#eef1f6;font-size:9px;pointer-events:none;-webkit-user-select:none;user-select:none}.led-ring-hint{margin:.5rem 0 0;font-size:.85rem;text-align:center}.modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;margin-top:1rem}.scene-export-modal{width:min(100%,22rem);max-height:min(90dvh,40rem);overflow:auto}.scene-export-modal .modal-actions{position:sticky;bottom:0;margin:.5rem -1.1rem -1rem;padding:.75rem 1.1rem 1rem;background:#171b23}.scene-export-modal h3{margin:0 0 .75rem}.scene-export-field{display:flex;flex-direction:column;gap:.35rem;margin:0 0 .75rem;padding:0;border:0;font-size:.86rem;color:#c5cede}.scene-export-field legend{padding:0;margin:0 0 .35rem}.scene-export-filename-row{display:flex;align-items:center;gap:.35rem}.scene-export-filename-row input{flex:1;min-width:0;padding:.5rem .65rem;border-radius:.45rem;border:1px solid #3a4558;background:#0f1218;color:inherit}.scene-export-ext{flex-shrink:0;color:#9aa6ba;font-variant-numeric:tabular-nums}.scene-export-radio{display:flex;align-items:center;gap:.45rem;margin:0 0 .35rem;font-size:.86rem;cursor:pointer}.ar-link-qr{display:block;margin:.75rem auto;background:#fff;border-radius:.5rem}.ar-link-url{margin:0 0 .75rem;font-size:.78rem;word-break:break-all;color:#c8d0dc}.scene-export-hint{margin:.15rem 0 0;font-size:.82rem}.checkbox-row{display:flex;flex-direction:row;align-items:center;gap:.5rem;margin:0;font-size:.9rem;line-height:1.35;cursor:pointer;width:100%}.share-checkboxes{display:flex;flex-direction:column;gap:.45rem;margin-top:.35rem}.checkbox-row input[type=checkbox]{width:1rem;height:1rem;margin:0;flex:0 0 1rem;padding:0;border-radius:.2rem}.track-readonly-hint{color:#f0dfaa}.share-badge{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;font-size:.72rem;background:#243047;color:#b9cff9}.share-badge.public{background:#1f3a2d;color:#b8eaca}.share-badge.lock{background:#3a241f;color:#f0c9b8}.gate-bom-toggle{gap:.28rem;cursor:pointer;color:#d5dbe6;background:#1c2430}.gate-bom-toggle input{margin:0}.gate-bom-toggle:has(input:disabled){cursor:default;opacity:.7}.track-share-badges{margin:.25rem 0}.public-track-view .public-track-main{height:calc(100vh - 56px)}.public-track-view .scene-shell{height:100%}.track-measure-label{background:#141820e0;border:1px solid rgba(255,183,77,.55);border-radius:4px;color:#ffe0b2;font-size:.72rem;font-weight:600;padding:.15rem .4rem;white-space:nowrap;-webkit-user-select:none;user-select:none}.track-measure-hint{margin:0 0 .5rem;font-size:.82rem;line-height:1.35}.track-label-edit{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.65rem}.track-measure-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.track-measure-list li{display:flex;align-items:stretch;gap:.25rem}.track-measure-list li.selected .track-measure-list-row{border-color:#5c8fd6;background:#1a2838}.track-measure-list-row{flex:1;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:.1rem .5rem;align-items:center;text-align:left;padding:.4rem .5rem;border:1px solid #2a3344;border-radius:6px;background:#151a22;color:inherit;cursor:pointer}.track-measure-list-index{grid-row:1 / span 2;display:flex;align-items:center;gap:.35rem;font-weight:600;color:#8b9cb3}.track-measure-list-dist{font-weight:600;color:#ffb74d}.track-label-list-name{width:100%;min-width:0;margin:0;padding:.1rem .25rem;border:1px solid transparent;border-radius:4px;background:transparent;color:#ffb74d;font:inherit;font-weight:600}.track-label-list-name:hover,.track-label-list-name:focus{border-color:#3a4a62;background:#10151d;outline:none}.track-measure-list-meta{font-size:.75rem}.track-measure-list-dist{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}.track-route-create-row{display:flex;align-items:flex-end;gap:.45rem;width:100%;flex:1 0 100%}.builder-left-panel-body .track-route-new-btn,.builder-left-panel-body .track-route-height-field input{height:2.25rem;box-sizing:border-box}.builder-left-panel-body .track-route-new-btn{width:auto;flex:0 0 auto;align-self:flex-end;padding:0 .75rem;border-radius:.45rem;line-height:1}.builder-left-panel-body label.track-route-height-field{display:grid;gap:.35rem;width:auto;margin:0 0 0 auto;font-size:.82rem;justify-items:stretch}.builder-left-panel-body .track-route-height-field input{width:100%;min-width:5.5rem;padding-top:0;padding-bottom:0}.track-route-list{list-style:none;margin:0;padding:0;width:100%;flex:1 0 100%;display:flex;flex-direction:column;align-items:stretch;gap:.35rem}.track-route-list li{border:1px solid rgba(255,255,255,.08);border-radius:6px;overflow:hidden}.track-route-list li.selected{border-color:#00e5ff73}.track-route-list-row{display:flex;align-items:center;gap:.45rem;width:100%;padding:.45rem .5rem;background:transparent;border:none;color:inherit;text-align:left;cursor:pointer}.track-route-color-swatch{width:.75rem;height:.75rem;border-radius:999px;flex-shrink:0;border:1px solid rgba(255,255,255,.25)}.track-route-list-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-route-list-meta{font-size:.78rem}.track-route-list-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .55rem;padding:0 .45rem .45rem}.checkbox-row.compact{font-size:.78rem;gap:.25rem}.track-route-edit-fields{margin-top:.65rem;display:flex;flex-direction:column;gap:.45rem}.track-route-flythrough{margin-top:.85rem;padding-top:.65rem;border-top:1px solid rgba(255,255,255,.08)}.track-route-flythrough h4{margin:0 0 .45rem;font-size:.88rem}.track-route-point-label{display:inline-flex;align-items:center;justify-content:center;min-width:1rem;padding:.05rem .25rem;border-radius:4px;background:#0000008c;color:#fff;font-size:.65rem;font-weight:600;pointer-events:none}.transform-axis-label{display:inline-block;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:9px;font-weight:800;line-height:1;letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none;text-shadow:0 0 4px rgba(0,0,0,.95),0 1px 2px rgba(0,0,0,.85)}.transform-axis-label--x{color:#ff3653}.transform-axis-label--y{color:#51ff51}.transform-axis-label--z{color:#4da6ff}.gizmo-mode-toggle{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:4px;background:#0c1018e0;color:#e8edf5;cursor:pointer;box-shadow:0 1px 6px #00000073}.gizmo-mode-toggle:hover{background:#1c2434f2;border-color:#ffffff8c}.gizmo-mode-toggle-icon{font-size:13px;line-height:1;font-weight:700}.public-track-route-panel{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.public-track-route-panel .property-field.compact{margin:0;min-width:8rem}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:.5rem}.fitting-editor-layout .fitting-editor-panel{max-width:22rem;overflow-y:auto}.fitting-editor-hint{font-size:.82rem;line-height:1.4;margin-bottom:.75rem}.fitting-editor-section{margin-bottom:1.1rem;padding-bottom:.85rem;border-bottom:1px solid rgba(255,255,255,.08)}.fitting-editor-section h3{margin:0 0 .5rem;font-size:.92rem}.fitting-editor-section__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.fitting-editor-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}.fitting-file-name{font-size:.8rem;margin:.25rem 0}.fitting-error{color:#ef9a9a;font-size:.82rem}.fitting-vec3-fields{display:grid;grid-template-columns:2.5rem 1fr 1fr 1fr;gap:.35rem;align-items:center;margin:.35rem 0}.fitting-vec3-fields__label{font-size:.78rem;color:var(--muted, #9aa3b2)}.fitting-num-field{display:flex;flex-direction:column;gap:.15rem;font-size:.75rem}.fitting-num-field--wide{margin:.35rem 0}.fitting-num-field input{width:100%}.fitting-socket-list{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:0;margin:0 0 .5rem}.fitting-socket-list button{font-size:.78rem;padding:.2rem .45rem;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem}.fitting-socket-list__pos{font-family:ui-monospace,monospace;font-size:.62rem;opacity:.85}.fitting-socket-list button.fitting-socket-list__warn{border-color:#ef5350;color:#ffcdd2}.fitting-socket-list button.active{background:#2e7d32}.fitting-socket-tag{background:#141820e0;border:1px solid rgba(102,187,106,.7);border-radius:3px;color:#c8e6c9;font-size:.58rem;font-weight:600;padding:.05rem .28rem;white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1.2}.fitting-socket-tag--warn{border-color:#ef5350d9;color:#ffcdd2}.fitting-insert-label{background:#141820e6;border:1px solid rgba(255,152,0,.65);border-radius:3px;color:#ffe0b2;font-size:.58rem;font-weight:600;padding:.05rem .28rem;white-space:nowrap;-webkit-user-select:none;user-select:none}.fitting-check-field{display:flex;align-items:center;gap:.4rem;font-size:.82rem;margin-bottom:.35rem}.fitting-check-field input{margin:0}.fitting-socket-editor{display:flex;flex-direction:column;gap:.35rem}.fitting-export-area{width:100%;font-family:ui-monospace,monospace;font-size:.68rem;margin-bottom:.5rem;resize:vertical}.fitting-dim-label{background:#141820e0;border:1px solid rgba(255,183,77,.55);border-radius:4px;color:#ffe0b2;font-size:.68rem;font-weight:600;padding:.1rem .35rem;white-space:nowrap;-webkit-user-select:none;user-select:none}.fitting-corner-label{display:flex;flex-direction:column;align-items:center;gap:.1rem;background:#141820e0;border:1px solid rgba(79,195,247,.5);border-radius:4px;color:#b3e5fc;font-size:.62rem;padding:.15rem .3rem;white-space:nowrap;-webkit-user-select:none;user-select:none}.fitting-corner-label__idx{font-weight:700;color:#4fc3f7}
