@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css";.map-canvas-container{width:100%;height:100%;position:relative;overflow:hidden}.map-canvas{width:100%;height:100%;display:block}.map-canvas-inline-editor{overflow:hidden;line-height:1.2}.toolbar{position:fixed;left:0;top:0;bottom:42px;width:42px;display:flex;flex-direction:column;align-items:center;padding:0;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-right:1px solid var(--color-interface-border);z-index:100}.toolbar-tools{display:flex;flex-direction:column;gap:0;width:100%;padding:0}.toolbar-btn{width:100%;height:42px;padding:0;display:flex;align-items:center;justify-content:center;font-size:.9rem;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.toolbar-btn:hover{color:var(--color-text);background:var(--color-interface-hover)}.toolbar-btn--active{color:var(--color-text);background:#ffffff14}.toolbar-separator{width:100%;height:1px;background:var(--color-interface-border);margin:0}.toolbar-spacer{flex:1}.dropdown{position:relative;display:flex;align-items:stretch;height:100%;background:transparent}.dropdown-trigger{display:flex;align-items:stretch;cursor:pointer;height:100%;background:transparent}.dropdown-menu{position:absolute;top:calc(100% + .5vh);min-width:150px;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--color-interface-border);z-index:1000}.dropdown-menu--right{right:0}.dropdown-menu--left{left:0}.dropdown-item{display:block;width:100%;padding:var(--padding-interface);text-align:left;color:var(--color-text);background:transparent;border:none;cursor:pointer;transition:background var(--transition-fast);font-size:.85rem}.dropdown-item:hover{background:var(--color-interface-hover)}.dropdown-divider{height:1px;background:var(--color-interface-border);margin:.5vh 0}.modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:2000}.modal{background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--color-interface-border);min-width:300px;max-width:90vw}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--padding-interface);border-bottom:1px solid var(--color-interface-border)}.modal-title{font-size:.9rem;font-weight:500;color:var(--color-text)}.modal-close{background:transparent;border:none;padding:.5vh;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast)}.modal-close:hover{color:var(--color-text);background:transparent}.modal-content{padding:var(--padding-interface)}.login-form{display:flex;flex-direction:column;gap:1.5vh;min-width:250px}.login-field input{width:100%}.login-error{padding:var(--padding-interface);background:#ff44441a;border:1px solid rgba(255,68,68,.3);color:var(--color-error);font-size:.85rem}.login-submit{width:100%;margin-top:.5vh}.login-switch{text-align:center;font-size:.8rem;color:var(--color-text-muted)}.login-switch-btn{background:transparent;border:none;color:var(--color-text);text-decoration:underline;cursor:pointer;padding:0;font-size:inherit}.login-switch-btn:hover{background:transparent;color:var(--color-text)}.register-form{display:flex;flex-direction:column;gap:1.5vh;min-width:250px}.register-field input{width:100%}.register-error{padding:var(--padding-interface);background:#ff44441a;border:1px solid rgba(255,68,68,.3);color:var(--color-error);font-size:.85rem}.register-submit{width:100%;margin-top:.5vh}.register-switch{text-align:center;font-size:.8rem;color:var(--color-text-muted)}.register-switch-btn{background:transparent;border:none;color:var(--color-text);text-decoration:underline;cursor:pointer;padding:0;font-size:inherit}.register-switch-btn:hover{background:transparent;color:var(--color-text)}.create-map-form{display:flex;flex-direction:column;gap:1.5vh;min-width:280px}.create-map-field{display:flex;flex-direction:column;gap:.5vh}.create-map-field label{font-size:.8rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.create-map-field input,.create-map-field select{width:100%}.create-map-hint{font-size:.75rem;color:var(--color-text-muted)}.create-map-error{padding:var(--padding-interface);background:#ff44441a;border:1px solid rgba(255,68,68,.3);color:var(--color-error);font-size:.85rem}.create-map-submit{width:100%;margin-top:.5vh}.create-map-folder-row{display:flex;gap:.5rem}.create-map-folder-row select{flex:1}.create-map-folder-add{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.create-map-new-folder{display:flex;gap:.5rem;margin-top:.5rem}.create-map-new-folder input{flex:1}.create-map-new-folder button{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;font-size:.8rem}.create-map-new-folder button:first-of-type{color:#4caf50}.create-map-new-folder button:last-of-type{color:var(--color-text-muted)}.delete-map-content{display:flex;flex-direction:column;gap:1.5vh;min-width:280px}.delete-map-error{padding:var(--padding-interface);background:#ff44441a;border:1px solid rgba(255,68,68,.3);color:var(--color-error);font-size:.85rem}.delete-map-message{font-size:.9rem;color:var(--color-text)}.delete-map-message strong{color:var(--color-text)}.delete-map-warning{font-size:.8rem;color:var(--color-text-muted)}.delete-map-actions{display:flex;gap:1vh;margin-top:.5vh}.delete-map-cancel,.delete-map-confirm{flex:1}.checkbox{display:flex;align-items:center;gap:.75vh;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox--disabled{opacity:.5;cursor:not-allowed}.checkbox-input{position:absolute;opacity:0;pointer-events:none}.checkbox-box{width:1.6vh;height:1.6vh;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid var(--color-interface-border);font-size:.6rem;color:var(--color-text);transition:background var(--transition-fast),border-color var(--transition-fast)}.checkbox:hover .checkbox-box{border-color:#ffffff4d}.checkbox-input:checked+.checkbox-box{background:#ffffff1a;border-color:#ffffff4d}.checkbox-label{font-size:.8rem;color:var(--color-text)}.toggle{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle--disabled{opacity:.5;cursor:not-allowed}.toggle input{display:none}.toggle-switch{position:relative;width:40px;height:20px;background:#0006;border:1px solid var(--color-interface-border);transition:all var(--transition-fast)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--color-text-muted);transition:all var(--transition-fast)}.toggle input:checked+.toggle-switch{background:#ffffff26;border-color:var(--color-text-muted)}.toggle input:checked+.toggle-switch:after{left:22px;background:var(--color-text)}.toggle:not(.toggle--disabled):hover .toggle-switch{background:#ffffff1a;border-color:var(--color-text-muted)}.toggle-label{font-size:.85rem;color:var(--color-text)}.general-settings-tab{display:flex;flex-direction:column;gap:2vh;padding:var(--padding-interface);overflow-y:auto;height:100%}.general-settings-section{background:var(--color-interface-bg);border:1px solid var(--color-interface-border);padding:var(--padding-interface)}.general-settings-section-title{font-size:.9rem;font-weight:500;color:var(--color-text);margin-bottom:1.5vh;padding-bottom:1vh;border-bottom:1px solid var(--color-interface-border)}.general-settings-field{display:flex;flex-direction:column;gap:.5vh;margin-bottom:1.5vh}.general-settings-field:last-child{margin-bottom:0}.general-settings-field label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.general-settings-field input,.general-settings-field select{max-width:400px}.general-settings-field-disabled{opacity:.5;cursor:not-allowed}.general-settings-field-hint{font-size:.7rem;color:var(--color-text-muted);font-style:italic}.general-settings-subsection{margin-bottom:2vh}.general-settings-subsection:last-child{margin-bottom:0}.general-settings-subsection-title{font-size:.8rem;color:var(--color-text-muted);margin-bottom:1vh}.general-settings-loading,.general-settings-empty{display:flex;align-items:center;gap:1vh;padding:1.5vh;color:var(--color-text-muted);font-size:.85rem}.general-settings-materials-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:1vh;max-width:600px}.general-settings-material-item{display:flex;flex-direction:column;align-items:center;gap:.5vh;padding:.5vh;background:transparent;border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.general-settings-material-item:hover{background:var(--color-interface-hover)}.general-settings-material-item--selected{border-color:var(--color-primary);background:#ffffff0d}.general-settings-material-preview{width:60px;height:60px;overflow:hidden;background:#0000004d;display:flex;align-items:center;justify-content:center}.general-settings-material-preview img{width:100%;height:100%;object-fit:cover}.general-settings-material-none{color:var(--color-text-muted);font-size:1.5rem}.general-settings-material-color{position:relative}.general-settings-material-color-swatch{width:100%;height:100%;border:1px solid rgba(255,255,255,.2)}.general-settings-color-input-row{display:flex;align-items:center;gap:.5rem;margin-top:1vh;max-width:200px}.general-settings-color-input-row input[type=text]{flex:1;font-family:monospace;text-transform:uppercase}.general-settings-color-input-row input[type=color]{width:36px;height:36px;padding:0;border:1px solid var(--color-interface-border);background:transparent;cursor:pointer}.general-settings-color-input-row input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.general-settings-color-input-row input[type=color]::-webkit-color-swatch{border:none}.general-settings-material-item span{font-size:.7rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.general-settings-material-item--selected span{color:var(--color-text)}.general-settings-options{display:flex;flex-direction:column;gap:.5vh}.general-settings-option-hint{font-size:.7rem;color:var(--color-text-muted);margin-left:2.5vh;margin-bottom:1vh}.general-settings-error{display:flex;align-items:center;gap:1vh;padding:var(--padding-interface);background:#ff44441a;border:1px solid rgba(255,68,68,.3);color:var(--color-error);font-size:.85rem}.general-settings-actions{display:flex;align-items:center;gap:1.5vh;padding-top:1vh}.general-settings-save-btn{display:flex;align-items:center;gap:.8vh;padding:var(--padding-interface) calc(var(--padding-interface) * 2)}.general-settings-save-btn:disabled{opacity:.5;cursor:not-allowed}.general-settings-unsaved{font-size:.8rem;color:#fa4}.general-settings-folder-row{display:flex;gap:.5rem;max-width:400px}.general-settings-folder-row select{flex:1}.general-settings-folder-add{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.general-settings-new-folder{display:flex;gap:.5rem;margin-top:.5rem;max-width:400px}.general-settings-new-folder input{flex:1}.general-settings-new-folder button{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;font-size:.8rem}.general-settings-new-folder button:first-of-type{color:#4caf50}.general-settings-new-folder button:last-of-type{color:var(--color-text-muted)}.general-settings-visibility{display:flex;flex-direction:column;gap:1.5vh}.general-settings-toggle-row{display:flex;flex-direction:column;gap:.5vh}.map-browser-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease}.map-browser{width:90vw;height:85vh;max-width:1200px;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--color-interface-border);display:flex;flex-direction:column;animation:slideUp .25s ease}.map-browser-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--color-interface-border)}.map-browser-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:500;color:var(--color-text)}.map-browser-title i{color:var(--color-text-muted)}.map-browser-search{flex:1;max-width:400px;display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#0000004d;border:1px solid var(--color-interface-border);border-radius:4px}.map-browser-search i{color:var(--color-text-muted);font-size:.85rem}.map-browser-search input{flex:1;background:transparent;border:none;outline:none;color:var(--color-text);font-size:.9rem;padding:0}.map-browser-search input::placeholder{color:var(--color-text-muted)}.map-browser-search-clear{background:transparent;border:none;padding:.25rem;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast)}.map-browser-search-clear:hover{color:var(--color-text);background:transparent}.map-browser-close{background:transparent;border:none;padding:.5rem;color:var(--color-text-muted);cursor:pointer;font-size:1.1rem;transition:color var(--transition-fast);margin-left:auto}.map-browser-close:hover{color:var(--color-text);background:transparent}.map-browser-content{flex:1;display:flex;overflow:hidden}.map-browser-sidebar{width:400px;border-right:1px solid var(--color-interface-border);display:flex;flex-direction:column;overflow:hidden;position:relative}.map-browser-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;transition:background var(--transition-fast)}.map-browser-list--drop-target{background:#ffffff08}.map-browser-list-items{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:.75rem .5rem}.map-folder{display:flex;flex-direction:column}.map-folder-header{display:flex;align-items:center;gap:.5vh;padding:.6vh 1vh;cursor:grab;transition:background var(--transition-fast),border-color var(--transition-fast);border:2px solid transparent;margin:0 .5vh;border-radius:4px}.map-folder-header:hover{background:var(--color-interface-hover)}.map-folder-header--drop-target{background:#64c8ff26;border-color:#64c8ff80}.map-folder-header--dragging{opacity:.5}.map-folder-toggle{width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;font-size:.6rem;transition:color var(--transition-fast);flex-shrink:0}.map-folder-toggle:hover{color:var(--color-text);background:transparent}.map-folder-icon{color:#f0c040;font-size:.9rem;flex-shrink:0}.map-folder-name{flex:1;font-size:.85rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text}.map-folder-name-input{flex:1;font-size:.85rem;padding:.2vh .5vh;background:#ffffff1a;border:1px solid var(--color-primary);color:var(--color-text);outline:none}.map-folder-stats{display:flex;align-items:center;gap:.8vh;margin-left:auto}.map-folder-stat{font-size:.7rem;color:var(--color-text-muted);display:flex;align-items:center;gap:.3vh}.map-folder-stat i{font-size:.6rem}.map-folder-add-subfolder,.map-folder-delete{width:24px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;opacity:0;transition:all var(--transition-fast);flex-shrink:0}.map-folder-header:hover .map-folder-add-subfolder,.map-folder-header:hover .map-folder-delete{opacity:1}.map-folder-add-subfolder:hover{color:#f0c040}.map-folder-delete:hover{background:var(--color-error);color:#fff}.map-folder-content{display:flex;flex-direction:column}.map-folder-empty{font-size:.75rem;color:var(--color-text-muted);font-style:italic;padding:.5vh 1vh;opacity:.6}.map-item{display:flex;align-items:center;gap:1vh;padding:.6vh 1vh;margin:0 .5vh;border-radius:4px;transition:background var(--transition-fast),opacity var(--transition-fast);cursor:grab;border:2px solid transparent}.map-item:hover{background:var(--color-interface-hover)}.map-item--dragging{opacity:.5}.map-item--selected{background:#ffffff1a;border-color:#fff3}.map-item-icon{color:var(--color-text-muted);font-size:.85rem;flex-shrink:0}.map-item-info{flex:1;min-width:0;display:flex;align-items:center}.map-item-label{font-size:.85rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-item-folder{font-size:.7rem;color:var(--color-text-muted);opacity:.7;margin-left:auto;padding:.1rem .4rem;background:#ffffff0d;border-radius:3px;flex-shrink:0}.map-item-id{flex-shrink:0;margin-left:auto;padding-left:1vh}.map-item-id span{font-size:.7rem;color:var(--color-text-muted);font-family:monospace}.map-browser-fab-container{position:absolute;bottom:1.5vh;right:1.5vh;display:flex;gap:1vh;z-index:10}.map-browser-fab{width:40px;height:40px;border-radius:50%;border:none;font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.map-browser-fab:hover{transform:scale(1.1);box-shadow:0 4px 12px #0006}.map-browser-fab-folder{background:#f0c040;color:#000}.map-browser-fab-folder:hover{background:#f0c040}.map-browser-fab-add{background:var(--color-primary);color:#000}.map-browser-fab-add:hover{background:var(--color-primary)}.map-browser-loading,.map-browser-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5vh;height:100%;color:var(--color-text-muted);font-size:.9rem}.map-browser-empty i{font-size:2rem;opacity:.5}.map-browser-empty-hint{font-size:.75rem;opacity:.7}.map-browser-details{flex:1;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto}.map-browser-details-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--color-text-muted);text-align:center}.map-browser-details-empty i{font-size:3rem;opacity:.3}.map-browser-details-empty span{font-size:1rem}.map-browser-details-empty p{font-size:.85rem;opacity:.7;margin:0}.map-browser-details-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-interface-border)}.map-browser-details-title{display:flex;flex-direction:column;gap:.25rem}.map-browser-details-header h3{margin:0;font-size:1.4rem;font-weight:500;color:var(--color-text)}.map-browser-details-id{font-size:.85rem;font-family:monospace;color:var(--color-text-muted)}.map-browser-details-header-actions{display:flex;align-items:center;gap:.5rem}.map-browser-details-tabs{display:flex;gap:.25rem;padding:.25rem;background:#0003;border-radius:4px}.map-browser-details-tab{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:transparent;border:none;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast);border-radius:3px}.map-browser-details-tab:hover{color:var(--color-text);background:#ffffff0d}.map-browser-details-tab--active{color:var(--color-text);background:#ffffff1a}.map-browser-details-tab i{font-size:.85rem}.map-browser-details-content{flex:1;overflow-y:auto}.map-browser-details-info{display:flex;flex-direction:column;gap:.75rem}.map-browser-details-row{display:flex;align-items:center;gap:.75rem;color:var(--color-text-muted);font-size:.9rem}.map-browser-details-row i{width:16px;text-align:center}.map-browser-details-open,.map-browser-details-delete{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border:1px solid var(--color-interface-border);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast)}.map-browser-details-open{background:#64b4ff33;color:#7cc4ff}.map-browser-details-open:hover{background:#64b4ff4d}.map-browser-details-delete{background:#ff646426;color:#ff7070}.map-browser-details-delete:hover{background:#ff646440}.map-browser-search-results{display:flex;flex-direction:column;padding:.75rem .5rem}.asset-tab{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.asset-tab-loading,.asset-tab-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1vh;height:100%;color:var(--color-text-muted)}.asset-tab-error i{font-size:2rem}.asset-tab-error button{margin-top:1vh}.asset-tab-hotbar{padding:.5rem;border-bottom:1px solid var(--color-interface-border);background:#00000026}.asset-tab-hotbar-title{display:flex;align-items:center;gap:.4rem;font-size:.65rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}.asset-tab-hotbar-title i{font-size:.6rem}.asset-tab-hotbar-presets{display:flex;gap:.5rem}.asset-tab-hotbar-preset{flex:1;display:flex;flex-direction:column;gap:2px}.asset-tab-hotbar-preset-label{font-size:.55rem;color:var(--color-text-muted);text-align:center;font-weight:600;opacity:.6}.asset-tab-hotbar-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:2px}.asset-tab-hotbar-slot{aspect-ratio:1;background:#ffffff08;border:1px dashed rgba(255,255,255,.1);border-radius:2px;display:flex;align-items:center;justify-content:center;position:relative;transition:all var(--transition-fast);overflow:hidden}.asset-tab-hotbar-slot:not(.asset-tab-hotbar-slot--empty){border-style:solid;border-color:#ffffff26}.asset-tab-hotbar-slot img{width:100%;height:100%;object-fit:cover}.asset-tab-hotbar-slot--drop-target{border-color:var(--color-text);background:#ffffff1a}.asset-tab-hotbar-slot--empty{cursor:default}.asset-tab-hotbar-slot-placeholder{width:100%;height:100%}.asset-tab-hotbar-slot-clear{position:absolute;top:1px;right:1px;width:12px;height:12px;padding:0;background:#000c;border:none;border-radius:50%;color:var(--color-text-muted);font-size:.5rem;cursor:pointer;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast);display:flex;align-items:center;justify-content:center}.asset-tab-hotbar-slot:hover .asset-tab-hotbar-slot-clear{opacity:1}.asset-tab-hotbar-slot-clear:hover{color:#f66}.asset-tab-hotbar-hint{font-size:.55rem;color:var(--color-text-muted);text-align:center;margin-top:.3rem;opacity:.5}.asset-tab-list{flex:1;display:flex;flex-direction:column;overflow:hidden;transition:background var(--transition-fast)}.asset-tab-list--drop-target{background:#ffffff08}.asset-tab-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.5vh;color:var(--color-text-muted);font-size:.9rem}.asset-tab-list-empty-hint{font-size:.75rem;opacity:.7}.asset-tab-list-items{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:.5vh 0}.asset-folder{display:flex;flex-direction:column}.asset-folder-header{display:flex;align-items:center;gap:.5vh;padding:.6vh 1vh;cursor:grab;transition:background var(--transition-fast),border-color var(--transition-fast);border:2px solid transparent;margin:0 .5vh;border-radius:4px}.asset-folder-header:hover{background:var(--color-interface-hover)}.asset-folder-header--drop-target{background:#64c8ff26;border-color:#64c8ff80}.asset-folder-header--dragging{opacity:.5}.asset-folder-toggle{width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;font-size:.6rem;transition:color var(--transition-fast);flex-shrink:0}.asset-folder-toggle:hover{color:var(--color-text);background:transparent}.asset-folder-icon{color:#f0c040;font-size:.9rem;flex-shrink:0}.asset-folder-name{flex:1;font-size:.85rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text}.asset-folder-name-input{flex:1;font-size:.85rem;padding:.2vh .5vh;background:#ffffff1a;border:1px solid var(--color-primary);color:var(--color-text);outline:none}.asset-folder-stats{display:flex;align-items:center;gap:.8vh;margin-left:auto}.asset-folder-stat{font-size:.7rem;color:var(--color-text-muted);display:flex;align-items:center;gap:.3vh}.asset-folder-stat i{font-size:.6rem}.asset-folder-add-subfolder,.asset-folder-delete{width:24px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;opacity:0;transition:all var(--transition-fast);flex-shrink:0}.asset-folder-header:hover .asset-folder-add-subfolder,.asset-folder-header:hover .asset-folder-delete{opacity:1}.asset-folder-add-subfolder:hover{color:#f0c040}.asset-folder-delete:hover{background:var(--color-error);color:#fff}.asset-folder-content{display:flex;flex-direction:column}.asset-folder-empty{font-size:.75rem;color:var(--color-text-muted);font-style:italic;padding:.5vh 1vh;opacity:.6}.asset-tab-item{display:flex;align-items:center;gap:1vh;padding:.6vh 1vh;margin:0 .5vh;border-radius:4px;transition:background var(--transition-fast),opacity var(--transition-fast);cursor:grab;border:2px solid transparent}.asset-tab-item:hover{background:var(--color-interface-hover)}.asset-tab-item--dragging{opacity:.5}.asset-tab-item-preview{width:28px;height:28px;flex-shrink:0;overflow:hidden;background:#0000004d;display:flex;align-items:center;justify-content:center;border-radius:3px}.asset-tab-item-preview img{width:100%;height:100%;object-fit:cover}.asset-tab-item-info{flex:1;min-width:0;display:flex;align-items:center}.asset-tab-item-label{font-size:.85rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-tab-item-filename{flex-shrink:0;margin-left:auto;padding-left:1vh}.asset-tab-item-filename span{font-size:.7rem;color:var(--color-text-muted);font-family:monospace}.asset-tab-item-actions{flex-shrink:0;display:flex;gap:.3vh;opacity:0;transition:opacity var(--transition-fast);margin-left:.5vh}.asset-tab-item:hover .asset-tab-item-actions{opacity:1}.asset-tab-item-delete{width:24px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;background:transparent;border:1px solid transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.asset-tab-item-delete:hover{background:var(--color-error);border-color:var(--color-error);color:#fff}.asset-tab-fab-container{position:absolute;bottom:1.5vh;right:1.5vh;display:flex;gap:1vh;z-index:10}.asset-tab-fab{width:40px;height:40px;border-radius:50%;border:none;font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.asset-tab-fab:hover{transform:scale(1.1);box-shadow:0 4px 12px #0006}.asset-tab-fab-folder{background:#f0c040;color:#000}.asset-tab-fab-folder:hover{background:#f0c040}.asset-tab-fab-add{background:var(--color-primary);color:#000}.asset-tab-fab-add:hover{background:var(--color-primary)}.asset-tab-add-form{position:absolute;bottom:0;left:0;right:0;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-top:1px solid var(--color-interface-border);padding:var(--padding-interface);z-index:20;box-shadow:0 -4px 20px #0000004d}.asset-tab-add-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5vh}.asset-tab-add-form-title{font-size:.9rem;font-weight:500;color:var(--color-text)}.asset-tab-add-form-close{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast)}.asset-tab-add-form-close:hover{color:var(--color-text);background:transparent}.asset-tab-add-form-error{padding:1vh;margin-bottom:1vh;background:#ff44441a;border:1px solid rgba(255,68,68,.3);color:var(--color-error);font-size:.8rem}.asset-tab-add-form-fields{display:flex;flex-direction:column;gap:1vh}.asset-tab-add-form-field{display:flex;flex-direction:column;gap:.3vh}.asset-tab-add-form-field label{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.asset-tab-add-form-field input[type=text],.asset-tab-add-form-field input[type=number]{padding:.8vh 1vh}.asset-tab-add-form-field input[type=file]{font-size:.8rem;color:var(--color-text-muted)}.asset-tab-add-form-field input[type=file]::file-selector-button{background:var(--color-interface-bg);border:1px solid var(--color-interface-border);color:var(--color-text);padding:.5vh 1vh;margin-right:1vh;cursor:pointer;transition:background var(--transition-fast)}.asset-tab-add-form-field input[type=file]::file-selector-button:hover{background:var(--color-interface-hover)}.asset-tab-add-form-actions{display:flex;justify-content:flex-end;gap:1vh;margin-top:1.5vh}.asset-tab-add-form-cancel{padding:.8vh 1.5vh;background:transparent;border:1px solid var(--color-interface-border);color:var(--color-text-muted);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast)}.asset-tab-add-form-cancel:hover{background:var(--color-interface-hover);color:var(--color-text)}.asset-tab-add-form-submit{display:flex;align-items:center;gap:.5vh;padding:.8vh 1.5vh;background:var(--color-primary);border:none;color:#000;font-size:.85rem;cursor:pointer;transition:opacity var(--transition-fast)}.asset-tab-add-form-submit:hover{background:var(--color-primary);opacity:.9}.asset-tab-add-form-submit:disabled{opacity:.5;cursor:not-allowed}.project-settings-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.project-settings{width:90vw;height:85vh;max-width:1000px;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--color-interface-border);display:flex;flex-direction:column;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.project-settings-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--color-interface-border)}.project-settings-title{display:flex;align-items:center;gap:.75rem;font-size:1.1rem;font-weight:600;color:var(--color-text);text-transform:uppercase;letter-spacing:.05em}.project-settings-title i{color:var(--color-text-muted)}.project-settings-close{background:transparent;border:none;padding:.5rem;color:var(--color-text-muted);cursor:pointer;font-size:1.1rem;transition:color var(--transition-fast)}.project-settings-close:hover{color:var(--color-text);background:transparent}.project-settings-content{flex:1;display:flex;overflow:hidden}.project-settings-sidebar{width:200px;border-right:1px solid var(--color-interface-border);padding:1rem 0;display:flex;flex-direction:column;gap:.25rem}.project-settings-section-title{padding:.5rem 1rem;font-size:.7rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em}.project-settings-nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:transparent;border:none;border-left:3px solid transparent;color:var(--color-text-muted);font-size:.9rem;cursor:pointer;transition:all var(--transition-fast);text-align:left}.project-settings-nav-item:hover{background:var(--color-interface-hover);color:var(--color-text)}.project-settings-nav-item--active{background:#ffffff1a;border-left-color:var(--color-text);color:var(--color-text)}.project-settings-nav-item i{width:16px;text-align:center}.project-settings-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.project-settings-main-header{padding:1rem 1.5rem;border-bottom:1px solid var(--color-interface-border)}.project-settings-main-header h3{margin:0;font-size:1.2rem;font-weight:500;color:var(--color-text)}.project-settings-main-content{flex:1;overflow-y:auto;padding:1rem}.bottom-bar{position:fixed;bottom:0;left:0;right:0;height:42px;display:flex;align-items:stretch;justify-content:space-between;padding:0;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-top:1px solid var(--color-interface-border);z-index:100;font-size:.75rem}.bottom-bar-left{display:flex;align-items:stretch;gap:0}.bottom-bar-coords{display:flex;align-items:center;gap:16px;padding:0 16px;font-family:monospace;color:var(--color-text-muted);border-right:1px solid var(--color-interface-border)}.bottom-bar-zoom{color:var(--color-text)}.bottom-bar-position{min-width:180px}.bottom-bar-scale{display:flex;align-items:center;padding:0 16px;border-right:1px solid var(--color-interface-border)}.bottom-bar-scale .scale-bar{border:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0}.bottom-bar-right{display:flex;align-items:stretch;gap:0}.bottom-bar-btn{display:flex;align-items:center;justify-content:center;width:42px;height:100%;padding:0;background:transparent;border:none;color:var(--color-text-muted);font-size:.9rem;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.bottom-bar-btn:hover{background:var(--color-interface-hover);color:var(--color-text)}.bottom-bar-btn--active{background:#ffffff14;color:var(--color-text)}.bottom-bar-btn:disabled{opacity:.4;cursor:not-allowed}.bottom-bar-btn:disabled:hover{background:transparent;color:var(--color-text-muted)}.bottom-bar-btn-save--unsaved{color:#fa4}.bottom-bar-btn-save--unsaved:hover{color:#fc6}.bottom-bar-btn-save--saving{color:var(--color-text-muted)}.bottom-bar-map-btn{display:flex;align-items:center;gap:8px;padding:0 16px;height:100%;background:transparent;border:none;color:var(--color-text-muted);font-size:.75rem;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.bottom-bar-map-btn:hover{background:var(--color-interface-hover);color:var(--color-text)}.bottom-bar-map-btn i:first-child{font-size:.8rem}.bottom-bar-map-label{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bottom-bar-map-btn i:last-child{font-size:.55rem;margin-left:4px}.bottom-bar-profile{display:flex;align-items:stretch;height:100%;background:transparent}.bottom-bar-profile .dropdown{height:100%;background:transparent}.bottom-bar-profile-trigger{display:flex;align-items:center;gap:8px;padding:0 16px;height:100%;background:transparent;border:none;cursor:pointer;font-size:.75rem;color:var(--color-text-muted);transition:color var(--transition-fast),background var(--transition-fast)}.bottom-bar-profile-trigger:hover{background:var(--color-interface-hover);color:var(--color-text)}.bottom-bar-profile-trigger i{font-size:.8rem}.bottom-bar-profile .dropdown-menu{bottom:100%;top:auto;border-bottom:none;background:#0d0d0d;-webkit-backdrop-filter:none;backdrop-filter:none}.viewer-map-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.viewer-map-modal{width:400px;max-width:90vw;max-height:70vh;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--color-interface-border);display:flex;flex-direction:column}.viewer-map-modal-header{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--color-interface-border)}.viewer-map-modal-title{font-size:.9rem;font-weight:500;color:var(--color-text)}.viewer-map-search{flex:1;display:flex;align-items:center;gap:8px;padding:6px 10px;background:#0000004d;border:1px solid var(--color-interface-border)}.viewer-map-search i{color:var(--color-text-muted);font-size:.75rem}.viewer-map-search input{flex:1;background:transparent;border:none;color:var(--color-text);font-size:.8rem;outline:none}.viewer-map-search input::placeholder{color:var(--color-text-muted)}.viewer-map-search-clear{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:0;font-size:.75rem}.viewer-map-search-clear:hover{color:var(--color-text)}.viewer-map-modal-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:4px 8px;font-size:.85rem}.viewer-map-modal-close:hover{color:var(--color-text)}.viewer-map-modal-content{flex:1;overflow-y:auto;padding:8px 0}.viewer-map-tree,.viewer-map-search-results{display:flex;flex-direction:column}.viewer-map-folder{display:flex;align-items:center;gap:8px;padding:8px;cursor:pointer;color:var(--color-text-muted);font-size:.8rem;transition:background var(--transition-fast)}.viewer-map-folder:hover{background:var(--color-interface-hover)}.viewer-map-chevron{width:12px;font-size:.6rem}.viewer-map-folder-icon{font-size:.8rem;color:#f7d060}.viewer-map-folder-name{color:var(--color-text)}.viewer-map-item{display:flex;align-items:center;gap:8px;padding:8px;cursor:pointer;color:var(--color-text);font-size:.8rem;transition:background var(--transition-fast)}.viewer-map-item:hover{background:var(--color-interface-hover)}.viewer-map-item--selected{background:#ffffff1a}.viewer-map-icon{font-size:.75rem;color:var(--color-text-muted)}.viewer-map-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-map-folder-path{font-size:.7rem;color:var(--color-text-muted);margin-left:auto}.viewer-map-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;color:var(--color-text-muted);font-size:.85rem}.viewer-map-empty i{font-size:1.5rem;opacity:.5}.scale-bar{display:flex;flex-direction:column;align-items:flex-start;gap:.3vh;padding:.8vh 1vh;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--color-interface-border);pointer-events:none;-webkit-user-select:none;user-select:none}.scale-bar-label{font-size:.75rem;font-weight:500;color:var(--color-text);letter-spacing:.02em;transition:opacity .2s ease}.scale-bar-track{position:relative;height:6px;background:#ffffff1a;border-radius:1px;overflow:hidden;transition:width .3s cubic-bezier(.4,0,.2,1)}.scale-bar-fill{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--color-accent) 0%,var(--color-accent) 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 100%);background-size:50% 100%}.scale-bar-ticks{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:space-between;align-items:stretch}.scale-bar-tick{width:1px;height:100%;background:var(--color-text)}.scale-bar-tick--start,.scale-bar-tick--end{height:150%;margin-top:-25%}.scale-bar-tick--middle{height:120%;margin-top:-10%;opacity:.5}.slider{display:flex;flex-direction:column;gap:.5vh}.slider-header{display:flex;justify-content:space-between;align-items:center}.slider-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.slider-value{font-size:.75rem;color:var(--color-text);font-family:monospace}.slider-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:#ffffff1a;border:none;padding:0;cursor:pointer}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;background:var(--color-text);cursor:pointer}.slider-input::-moz-range-thumb{width:12px;height:12px;background:var(--color-text);border:none;cursor:pointer}.slider-input:focus{outline:none}.slider-input:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px #fff3}.slider-input:focus::-moz-range-thumb{box-shadow:0 0 0 2px #fff3}.brush-panel{position:fixed;left:42px;top:0;bottom:42px;width:240px;overflow-y:auto;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-right:1px solid var(--color-interface-border);z-index:99;animation:panelSlideIn .15s ease-out}.brush-panel-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1vh;padding:calc(var(--padding-interface) * 2);color:var(--color-text-muted);font-size:.8rem}.brush-panel-section{border-bottom:1px solid var(--color-interface-border)}.brush-panel-section:last-child{border-bottom:none}.brush-panel-section-title{display:flex;align-items:center;justify-content:space-between;padding:var(--padding-interface);font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-interface-border)}.brush-panel-preset-switcher{display:flex;gap:2px}.brush-panel-preset-btn{width:18px;height:18px;padding:0;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:2px;color:var(--color-text-muted);font-size:.6rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.brush-panel-preset-btn:hover{background:#ffffff1a;border-color:#ffffff4d;color:var(--color-text)}.brush-panel-preset-btn--active,.brush-panel-preset-btn--active:hover{background:var(--color-primary);border-color:var(--color-primary);color:#000}.brush-panel-empty{padding:var(--padding-interface);font-size:.8rem;color:var(--color-text-muted);text-align:center}.brush-panel-hotbar{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:4px;padding:var(--padding-interface)}.brush-panel-hotbar-slot{aspect-ratio:1;padding:0;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);cursor:pointer;overflow:hidden;transition:border-color var(--transition-fast),background var(--transition-fast);display:flex;align-items:center;justify-content:center}.brush-panel-hotbar-slot img{width:100%;height:100%;object-fit:cover}.brush-panel-hotbar-slot:hover:not(:disabled){border-color:#fff6}.brush-panel-hotbar-slot--selected{border-color:var(--color-text);box-shadow:0 0 0 1px var(--color-text)}.brush-panel-hotbar-slot--empty{cursor:default;background:#0003;border-style:dashed}.brush-panel-hotbar-slot-empty-icon{width:30%;height:30%;border:1px dashed rgba(255,255,255,.2);border-radius:2px}.brush-panel-settings{display:flex;flex-direction:column;gap:1.5vh;padding:var(--padding-interface)}.brush-panel-rotation-mode{display:flex;flex-direction:column;gap:.5vh}.brush-panel-rotation-mode-label{font-size:.75rem;color:var(--color-text-muted)}.brush-panel-rotation-options{display:flex;flex-direction:column;gap:.5vh}.prop-panel{position:fixed;left:42px;top:0;bottom:42px;width:260px;overflow-y:auto;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-right:1px solid var(--color-interface-border);z-index:99;animation:panelSlideIn .15s ease-out}@keyframes panelSlideIn{0%{transform:translate(-16px);opacity:0}to{transform:translate(0);opacity:1}}.prop-panel-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1vh;padding:calc(var(--padding-interface) * 2);color:var(--color-text-muted);font-size:.8rem}.prop-panel-section{border-bottom:1px solid var(--color-interface-border)}.prop-panel-section:last-child{border-bottom:none}.prop-panel-section-title{display:flex;align-items:center;justify-content:space-between;padding:var(--padding-interface);font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-interface-border)}.prop-panel-preset-switcher{display:flex;gap:2px}.prop-panel-preset-btn{width:18px;height:18px;padding:0;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:2px;color:var(--color-text-muted);font-size:.6rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.prop-panel-preset-btn:hover{background:#ffffff1a;border-color:#ffffff4d;color:var(--color-text)}.prop-panel-preset-btn--active,.prop-panel-preset-btn--active:hover{background:var(--color-primary);border-color:var(--color-primary);color:#000}.prop-panel-section-subtitle{padding:var(--padding-interface);padding-top:.5vh;font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.prop-panel-section-divider{height:1px;background:var(--color-interface-border);margin:.5vh 0}.prop-panel-deselect{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.3vh .5vh;font-size:.75rem;transition:color var(--transition-fast)}.prop-panel-deselect:hover{color:var(--color-text)}.prop-panel-empty{padding:var(--padding-interface);font-size:.8rem;color:var(--color-text-muted);text-align:center}.prop-panel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5vh;padding:var(--padding-interface)}.prop-panel-grid--small{grid-template-columns:repeat(5,1fr);gap:.3vh}.prop-panel-asset{aspect-ratio:1;padding:0;background:#ffffff0d;border:2px solid transparent;cursor:pointer;overflow:hidden;transition:border-color var(--transition-fast)}.prop-panel-asset img{width:100%;height:100%;object-fit:contain}.prop-panel-asset:hover{border-color:#ffffff4d}.prop-panel-asset--selected{border-color:var(--color-text)}.prop-panel-asset-wrapper{display:flex;flex-direction:column;align-items:center;gap:.2vh}.prop-panel-hotbar{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:4px;padding:var(--padding-interface)}.prop-panel-hotbar-wrapper{display:flex;flex-direction:column;align-items:center;gap:2px}.prop-panel-hotbar-slot{aspect-ratio:1;width:100%;padding:0;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);cursor:pointer;overflow:hidden;transition:border-color var(--transition-fast),background var(--transition-fast);display:flex;align-items:center;justify-content:center}.prop-panel-hotbar-slot img{width:100%;height:100%;object-fit:contain}.prop-panel-hotbar-slot:hover:not(:disabled){border-color:#fff6}.prop-panel-hotbar-slot--selected{border-color:var(--color-text);box-shadow:0 0 0 1px var(--color-text)}.prop-panel-hotbar-slot--empty{cursor:default;background:#0003;border-style:dashed}.prop-panel-hotbar-slot-empty-icon{width:30%;height:30%;border:1px dashed rgba(255,255,255,.2);border-radius:2px}.prop-panel-size-label{background:none;border:none;color:var(--color-text-muted);font-size:.6rem;cursor:pointer;padding:.1vh .3vh;transition:color var(--transition-fast)}.prop-panel-size-label:hover{color:var(--color-text)}.prop-panel-size-input{width:100%;max-width:40px;background:#0000004d;border:1px solid var(--color-text);color:var(--color-text);font-size:.6rem;text-align:center;padding:.1vh .2vh}.prop-panel-size-input:focus{outline:none;border-color:var(--color-primary, #00aaff)}.prop-panel-settings{display:flex;flex-direction:column;gap:1.5vh;padding:var(--padding-interface)}.prop-panel-selected{background:#ffffff08}.prop-panel-selected-info{display:flex;align-items:center;gap:1vh;padding:var(--padding-interface)}.prop-panel-selected-preview{width:48px;height:48px;background:#0000004d;border:1px solid var(--color-interface-border);display:flex;align-items:center;justify-content:center}.prop-panel-selected-preview img{max-width:100%;max-height:100%;object-fit:contain}.prop-panel-selected-name{font-size:.85rem;color:var(--color-text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-panel-actions{display:flex;gap:.5vh;padding:0 var(--padding-interface) var(--padding-interface)}.prop-panel-action-btn{flex:1;padding:.8vh;background:#ffffff1a;border:1px solid var(--color-interface-border);color:var(--color-text);cursor:pointer;font-size:.8rem;transition:all var(--transition-fast)}.prop-panel-action-btn:hover{background:#fff3}.prop-panel-action-btn--danger:hover{background:#ff50504d;border-color:#ff505080}.prop-panel-help{padding:var(--padding-interface);background:#0003;border-top:1px solid var(--color-interface-border)}.prop-panel-help-item{display:flex;align-items:center;gap:.8vh;font-size:.7rem;color:var(--color-text-muted);margin-bottom:.4vh}.prop-panel-help-item:last-child{margin-bottom:0}.prop-panel-help-item kbd{padding:.2vh .5vh;background:#ffffff1a;border:1px solid var(--color-interface-border);font-family:inherit;font-size:.65rem}.select-dropdown{position:relative;display:flex;flex:1}.select-dropdown:focus{outline:none}.select-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5vh;width:100%;padding:.5vh .8vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.8rem;cursor:pointer;text-align:left;transition:border-color var(--transition-fast)}.select-dropdown-trigger:hover{border-color:#ffffff4d}.select-dropdown--open .select-dropdown-trigger{border-color:var(--color-primary, #00aaff)}.select-dropdown-trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-dropdown-trigger-icon{flex-shrink:0;font-size:.65rem;color:var(--color-text-muted);transition:transform var(--transition-fast)}.select-dropdown--open .select-dropdown-trigger-icon{color:var(--color-primary, #00aaff)}.select-dropdown-list{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:#141414fa;border:1px solid var(--color-interface-border);border-top:none;z-index:1000}.select-dropdown-option{padding:.6vh .8vh;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast);font-size:.8rem}.select-dropdown-option:hover,.select-dropdown-option--highlighted{background:#ffffff1a}.select-dropdown-option--selected{background:#0af3}.select-dropdown-option--selected.select-dropdown-option--highlighted{background:#00aaff4d}.select-dropdown-list::-webkit-scrollbar{width:6px}.select-dropdown-list::-webkit-scrollbar-track{background:#0003}.select-dropdown-list::-webkit-scrollbar-thumb{background:#fff3}.select-dropdown-list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.text-panel{position:fixed;left:42px;top:0;bottom:42px;width:260px;overflow-y:auto;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-right:1px solid var(--color-interface-border);z-index:99;animation:textPanelSlideIn .15s ease-out}@keyframes textPanelSlideIn{0%{transform:translate(-16px);opacity:0}to{transform:translate(0);opacity:1}}.text-panel-section{border-bottom:1px solid var(--color-interface-border)}.text-panel-section:last-child{border-bottom:none}.text-panel-section-title{display:flex;align-items:center;justify-content:space-between;padding:var(--padding-interface);font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-interface-border)}.text-panel-deselect{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.3vh .5vh;font-size:.75rem;transition:color var(--transition-fast)}.text-panel-deselect:hover{color:var(--color-text)}.text-panel-selected{background:#ffffff08}.text-panel-controls{display:flex;flex-direction:column;gap:.8vh;padding:var(--padding-interface)}.text-panel-control{display:flex;align-items:center;gap:.8vh}.text-panel-label{width:50px;font-size:.75rem;color:var(--color-text-muted);flex-shrink:0}.text-panel-input{flex:1;padding:.5vh .8vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.8rem;width:60px}.text-panel-input:focus{outline:none;border-color:var(--color-primary, #00aaff)}.text-panel-color-row{flex:1;display:flex;align-items:center;gap:.5vh}.text-panel-color{width:28px;height:28px;padding:0;border:1px solid var(--color-interface-border);cursor:pointer;background:none}.text-panel-color::-webkit-color-swatch-wrapper{padding:2px}.text-panel-color::-webkit-color-swatch{border:none}.text-panel-color-input{flex:1;padding:.5vh .8vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.75rem;font-family:monospace}.text-panel-color-input:focus{outline:none;border-color:var(--color-primary, #00aaff)}.text-panel-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #00aaff)}.text-panel-stroke-width{width:45px;padding:.4vh .6vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.75rem}.text-panel-stroke-width:focus{outline:none;border-color:var(--color-primary, #00aaff)}.text-panel-alignment{display:flex;gap:0}.text-panel-align-btn{padding:.5vh .8vh;background:#ffffff0d;border:1px solid var(--color-interface-border);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.text-panel-align-btn:first-child{border-radius:3px 0 0 3px}.text-panel-align-btn:last-child{border-radius:0 3px 3px 0}.text-panel-align-btn:not(:first-child){border-left:none}.text-panel-align-btn:hover{background:#ffffff1a;color:var(--color-text)}.text-panel-align-btn--active{background:var(--color-primary, #00aaff);border-color:var(--color-primary, #00aaff);color:#000}.text-panel-align-btn--active:hover{background:var(--color-primary, #00aaff);color:#000}.text-panel-actions{display:flex;gap:.5vh;padding:var(--padding-interface);border-top:1px solid var(--color-interface-border)}.text-panel-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5vh;padding:.8vh;background:#ffffff1a;border:1px solid var(--color-interface-border);color:var(--color-text);cursor:pointer;font-size:.8rem;transition:all var(--transition-fast)}.text-panel-action-btn:hover{background:#fff3}.text-panel-action-btn--danger:hover{background:#ff50504d;border-color:#ff505080}.text-panel-help{padding:var(--padding-interface);background:#0003;border-top:1px solid var(--color-interface-border)}.text-panel-help-item{display:flex;align-items:center;gap:.8vh;font-size:.7rem;color:var(--color-text-muted);margin-bottom:.4vh}.text-panel-help-item:last-child{margin-bottom:0}.text-panel-help-item kbd{padding:.2vh .5vh;background:#ffffff1a;border:1px solid var(--color-interface-border);font-family:inherit;font-size:.65rem}.pen-panel{position:fixed;left:42px;top:0;bottom:42px;width:280px;overflow-y:auto;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-right:1px solid var(--color-interface-border);z-index:99;animation:penPanelSlideIn .15s ease-out}@keyframes penPanelSlideIn{0%{transform:translate(-16px);opacity:0}to{transform:translate(0);opacity:1}}.pen-panel-section{border-bottom:1px solid var(--color-interface-border)}.pen-panel-section:last-child{border-bottom:none}.pen-panel-section-title{display:flex;align-items:center;justify-content:space-between;padding:var(--padding-interface);font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-interface-border)}.pen-panel-deselect{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.3vh .5vh;font-size:.75rem;transition:color var(--transition-fast)}.pen-panel-deselect:hover{color:var(--color-text)}.pen-panel-selected{background:#ffffff08}.pen-panel-controls{display:flex;flex-direction:column;gap:.8vh;padding:var(--padding-interface)}.pen-panel-control{display:flex;align-items:center;gap:.8vh}.pen-panel-label{width:55px;font-size:.75rem;color:var(--color-text-muted);flex-shrink:0}.pen-panel-input{flex:1;padding:.5vh .8vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.8rem;width:60px}.pen-panel-input:focus{outline:none;border-color:var(--color-primary, #00aaff)}.pen-panel-color-row{flex:1;display:flex;align-items:center;gap:.5vh}.pen-panel-color{width:28px;height:28px;padding:0;border:1px solid var(--color-interface-border);cursor:pointer;background:none}.pen-panel-color::-webkit-color-swatch-wrapper{padding:2px}.pen-panel-color::-webkit-color-swatch{border:none}.pen-panel-color-input{flex:1;padding:.5vh .8vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.75rem;font-family:monospace}.pen-panel-color-input:focus{outline:none;border-color:var(--color-primary, #00aaff)}.pen-panel-opacity-row{flex:1;display:flex;align-items:center;gap:.5vh}.pen-panel-opacity-slider{flex:1;height:4px;accent-color:var(--color-primary, #00aaff);cursor:pointer}.pen-panel-opacity-value{width:35px;font-size:.7rem;color:var(--color-text-muted);text-align:right}.pen-panel-width-input{width:55px;padding:.4vh .6vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.75rem}.pen-panel-width-input:focus{outline:none;border-color:var(--color-primary, #00aaff)}.pen-panel-button-group{display:flex;gap:0;flex:1}.pen-panel-btn{flex:1;padding:.5vh .6vh;background:#ffffff0d;border:1px solid var(--color-interface-border);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:.7rem;display:flex;align-items:center;justify-content:center;gap:.3vh}.pen-panel-btn:first-child{border-radius:3px 0 0 3px}.pen-panel-btn:last-child{border-radius:0 3px 3px 0}.pen-panel-btn:not(:first-child){border-left:none}.pen-panel-btn:hover{background:#ffffff1a;color:var(--color-text)}.pen-panel-btn--active{background:var(--color-primary, #00aaff);border-color:var(--color-primary, #00aaff);color:#000}.pen-panel-btn--active:hover{background:var(--color-primary, #00aaff);color:#000}.pen-panel-btn--icon-only{padding:.5vh .7vh}.pen-panel-btn svg{width:14px;height:14px}.pen-panel-select{flex:1;padding:.5vh .8vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.75rem;cursor:pointer}.pen-panel-select:focus{outline:none;border-color:var(--color-primary, #00aaff)}.pen-panel-actions{display:flex;gap:.5vh;padding:var(--padding-interface);border-top:1px solid var(--color-interface-border)}.pen-panel-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5vh;padding:.8vh;background:#ffffff1a;border:1px solid var(--color-interface-border);color:var(--color-text);cursor:pointer;font-size:.8rem;transition:all var(--transition-fast)}.pen-panel-action-btn:hover{background:#fff3}.pen-panel-action-btn--danger:hover{background:#ff50504d;border-color:#ff505080}.pen-panel-divider{height:1px;background:var(--color-interface-border);margin:.5vh 0}.pen-panel-help{padding:var(--padding-interface);background:#0003;border-top:1px solid var(--color-interface-border)}.pen-panel-help-item{display:flex;align-items:center;gap:.8vh;font-size:.7rem;color:var(--color-text-muted);margin-bottom:.4vh}.pen-panel-help-item:last-child{margin-bottom:0}.pen-panel-help-item kbd{padding:.2vh .5vh;background:#ffffff1a;border:1px solid var(--color-interface-border);font-family:inherit;font-size:.65rem}.pen-panel-cap-icon,.pen-panel-join-icon{width:20px;height:14px;display:inline-block;vertical-align:middle}.pen-panel-cap-icon svg,.pen-panel-join-icon svg{width:100%;height:100%}.pen-panel-arrow-preview{width:24px;height:16px;display:inline-block;vertical-align:middle}.pen-panel-arrow-preview svg{width:100%;height:100%}.shape-panel{position:fixed;left:42px;top:0;bottom:42px;width:280px;overflow-y:auto;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-right:1px solid var(--color-interface-border);z-index:99;animation:shapePanelSlideIn .15s ease-out}@keyframes shapePanelSlideIn{0%{transform:translate(-16px);opacity:0}to{transform:translate(0);opacity:1}}.shape-panel-section{border-bottom:1px solid var(--color-interface-border)}.shape-panel-section:last-child{border-bottom:none}.shape-panel-section-title{display:flex;align-items:center;justify-content:space-between;padding:var(--padding-interface);font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-interface-border)}.shape-panel-deselect{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.3vh .5vh;font-size:.75rem;transition:color var(--transition-fast)}.shape-panel-deselect:hover{color:var(--color-text)}.shape-panel-selected{background:#ffffff08}.shape-panel-controls{display:flex;flex-direction:column;gap:.8vh;padding:var(--padding-interface)}.shape-panel-control{display:flex;align-items:center;gap:.8vh}.shape-panel-label{width:70px;font-size:.75rem;color:var(--color-text-muted);flex-shrink:0}.shape-panel-input{flex:1;padding:.5vh .8vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.8rem;width:60px}.shape-panel-input:focus{outline:none;border-color:var(--color-primary, #00aaff)}.shape-panel-unit{font-size:.7rem;color:var(--color-text-muted);flex-shrink:0;width:20px}.shape-panel-type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:var(--padding-interface)}.shape-panel-type-btn{display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:#ffffff0d;border:1px solid var(--color-interface-border);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:1rem}.shape-panel-type-btn:hover{background:#ffffff1a;color:var(--color-text)}.shape-panel-type-btn--active{background:var(--color-primary, #00aaff);border-color:var(--color-primary, #00aaff);color:#000}.shape-panel-type-btn--active:hover{background:var(--color-primary, #00aaff);color:#000}.shape-panel-color-row{flex:1;display:flex;align-items:center;gap:.5vh}.shape-panel-color{width:28px;height:28px;padding:0;border:1px solid var(--color-interface-border);cursor:pointer;background:none}.shape-panel-color::-webkit-color-swatch-wrapper{padding:2px}.shape-panel-color::-webkit-color-swatch{border:none}.shape-panel-color-input{flex:1;padding:.5vh .8vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.75rem;font-family:monospace}.shape-panel-color-input:focus{outline:none;border-color:var(--color-primary, #00aaff)}.shape-panel-slider-row{flex:1;display:flex;align-items:center;gap:.5vh}.shape-panel-slider{flex:1;height:4px;accent-color:var(--color-primary, #00aaff);cursor:pointer}.shape-panel-slider-value{width:35px;font-size:.7rem;color:var(--color-text-muted);text-align:right}.shape-panel-button-group{display:flex;gap:0;flex:1}.shape-panel-btn{flex:1;padding:.5vh .6vh;background:#ffffff0d;border:1px solid var(--color-interface-border);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:.7rem;display:flex;align-items:center;justify-content:center;gap:.3vh}.shape-panel-btn:first-child{border-radius:3px 0 0 3px}.shape-panel-btn:last-child{border-radius:0 3px 3px 0}.shape-panel-btn:not(:first-child){border-left:none}.shape-panel-btn:hover{background:#ffffff1a;color:var(--color-text)}.shape-panel-btn--active{background:var(--color-primary, #00aaff);border-color:var(--color-primary, #00aaff);color:#000}.shape-panel-btn--active:hover{background:var(--color-primary, #00aaff);color:#000}.shape-panel-btn--icon-only{padding:.5vh .7vh}.shape-panel-btn svg{width:14px;height:14px}.shape-panel-select{flex:1;padding:.5vh .8vh;background:#0000004d;border:1px solid var(--color-interface-border);color:var(--color-text);font-size:.75rem;cursor:pointer}.shape-panel-select:focus{outline:none;border-color:var(--color-primary, #00aaff)}.shape-panel-actions{display:flex;gap:.5vh;padding:var(--padding-interface);border-top:1px solid var(--color-interface-border)}.shape-panel-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5vh;padding:.8vh;background:#ffffff1a;border:1px solid var(--color-interface-border);color:var(--color-text);cursor:pointer;font-size:.8rem;transition:all var(--transition-fast)}.shape-panel-action-btn:hover{background:#fff3}.shape-panel-action-btn--danger:hover{background:#ff50504d;border-color:#ff505080}.shape-panel-divider{height:1px;background:var(--color-interface-border);margin:.5vh 0}.shape-panel-help{padding:var(--padding-interface);background:#0003;border-top:1px solid var(--color-interface-border)}.shape-panel-help-item{display:flex;align-items:center;gap:.8vh;font-size:.7rem;color:var(--color-text-muted);margin-bottom:.4vh}.shape-panel-help-item:last-child{margin-bottom:0}.shape-panel-help-item kbd{padding:.2vh .5vh;background:#ffffff1a;border:1px solid var(--color-interface-border);font-family:inherit;font-size:.65rem}.shape-panel-cap-icon,.shape-panel-join-icon{width:20px;height:14px;display:inline-block;vertical-align:middle}.shape-panel-cap-icon svg,.shape-panel-join-icon svg{width:100%;height:100%}.layer-selector{position:fixed;top:0;right:0;bottom:42px;width:300px;max-width:90vw;background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-left:1px solid var(--color-interface-border);display:flex;flex-direction:column;z-index:99;animation:layerPanelSlideIn .15s ease-out}@keyframes layerPanelSlideIn{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}.layer-selector-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--color-interface-border)}.layer-selector-title{font-size:.85rem;font-weight:500;color:var(--color-text)}.layer-selector-actions{display:flex;align-items:center;gap:4px}.layer-selector-btn,.layer-selector-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.layer-selector-btn:hover,.layer-selector-close:hover{background:var(--color-interface-hover);color:var(--color-text)}.layer-selector-content{flex:1;overflow-y:auto;padding:8px 0}.layer-add-input{display:flex;align-items:center;gap:4px;padding:4px 8px;margin-bottom:4px}.layer-add-input input{flex:1;padding:6px 8px;font-size:.8rem;background:#ffffff0d;border:1px solid var(--color-interface-border);color:var(--color-text)}.layer-add-input input:focus{border-color:#ffffff4d}.layer-add-input button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast)}.layer-add-input button:hover:not(:disabled){color:var(--color-text)}.layer-add-input button:disabled{opacity:.4;cursor:not-allowed}.layer-add-parent-indicator{display:flex;align-items:center;color:var(--color-text-muted);font-size:.7rem;margin-right:4px}.layer-list{display:flex;flex-direction:column}.layer-item{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:pointer;transition:background var(--transition-fast);-webkit-user-select:none;user-select:none;position:relative}.layer-item:hover{background:var(--color-interface-hover)}.layer-item--active{background:#ffffff14}.layer-item--active:hover{background:#ffffff1a}.layer-item--hidden{opacity:.5}.layer-item--dragging{opacity:.5;background:#ffffff0d}.layer-item--dragover-above:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:#0af}.layer-item--dragover-below:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:#0af}.layer-item--dragover-inside{background:#00aaff26;outline:1px dashed #00aaff;outline-offset:-1px}.layer-item--item-drop-target{background:#00c86426;outline:1px dashed #00c864;outline-offset:-1px}.layer-expand-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;padding:0;flex-shrink:0;font-size:.65rem;transition:color var(--transition-fast)}.layer-expand-btn:hover{color:var(--color-text)}.layer-expand-placeholder{width:16px;flex-shrink:0}.layer-drag-handle{display:flex;align-items:center;justify-content:center;width:16px;color:var(--color-text-muted);cursor:grab;opacity:.5;transition:opacity var(--transition-fast)}.layer-item:hover .layer-drag-handle{opacity:1}.layer-drag-handle:active{cursor:grabbing}.layer-visibility{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast);flex-shrink:0}.layer-visibility:hover,.layer-visibility--visible{color:var(--color-text)}.layer-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.layer-name{font-size:.8rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-name-input{font-size:.8rem;padding:2px 4px;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:var(--color-text);width:100%}.layer-opacity{display:flex;align-items:center;flex-shrink:0}.layer-opacity-input{width:36px;padding:2px 4px;font-size:.7rem;font-family:inherit;text-align:right;background:transparent;border:none;color:var(--color-text-muted);cursor:text;transition:background var(--transition-fast),color var(--transition-fast)}.layer-opacity-input:hover{color:var(--color-text)}.layer-opacity-input:focus{background:#ffffff1a;color:var(--color-text);outline:none}.layer-action-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);font-size:.7rem;opacity:0;flex-shrink:0}.layer-item:hover .layer-action-btn{opacity:1}.layer-action-btn:hover:not(:disabled){background:#ffffff1a;color:var(--color-text)}.layer-action-btn:disabled{opacity:.3;cursor:not-allowed}.layer-action-btn--delete:hover:not(:disabled){color:var(--color-error)}.layer-action-btn--description{color:var(--color-text-muted)}.layer-action-btn--description.has-description{color:var(--color-accent);opacity:.8}.layer-action-btn--description:hover:not(:disabled){color:var(--color-accent)}.layer-delete-confirm p{font-size:.85rem;color:var(--color-text);margin-bottom:8px}.layer-delete-info{font-size:.8rem;color:var(--color-text-muted);margin-bottom:16px}.layer-delete-actions{display:flex;justify-content:flex-end;gap:8px}.layer-delete-cancel,.layer-delete-confirm-btn{padding:8px 16px;font-size:.8rem;border:1px solid var(--color-interface-border);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.layer-delete-cancel{background:transparent;color:var(--color-text)}.layer-delete-cancel:hover{background:var(--color-interface-hover)}.layer-delete-confirm-btn{background:var(--color-error);border-color:var(--color-error);color:#fff}.layer-delete-confirm-btn:hover{background:#f66}.layer-delete-confirm-btn--secondary{background:transparent;border-color:var(--color-interface-border);color:var(--color-text)}.layer-delete-confirm-btn--secondary:hover{background:var(--color-interface-hover)}.layer-delete-actions--vertical{flex-direction:column;gap:8px}.layer-delete-actions--vertical button{width:100%;text-align:center}.layer-item--object{font-size:.75rem;padding:4px 8px;background:#ffffff05}.layer-item--object:hover{background:#ffffff0f}.layer-item--selected{background:#00aaff26}.layer-item--selected:hover{background:#0af3}.layer-item-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:.7rem;color:var(--color-text-muted);flex-shrink:0}.layer-item--selected .layer-item-icon{color:#0af}.layer-item-name{flex:1;font-size:.75rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-item--selected .layer-item-name{color:var(--color-text)}.layer-description-panel{position:fixed;top:0;right:300px;bottom:42px;width:450px;max-width:calc(90vw - 300px);background:var(--color-interface-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-left:1px solid var(--color-interface-border);display:flex;flex-direction:column;z-index:98;animation:descriptionPanelSlideIn .15s ease-out}.layer-description-panel.standalone{right:0}@keyframes descriptionPanelSlideIn{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}.layer-description-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--color-interface-border);flex-shrink:0}.layer-description-title{display:flex;flex-direction:column;gap:2px}.layer-description-layer-name{font-size:.85rem;font-weight:500;color:var(--color-text)}.layer-description-subtitle{font-size:.7rem;color:var(--color-text-muted)}.layer-description-actions{display:flex;align-items:center;gap:4px}.layer-description-btn,.layer-description-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;border-radius:4px;transition:color var(--transition-fast),background var(--transition-fast)}.layer-description-btn:hover,.layer-description-close:hover{background:var(--color-interface-hover);color:var(--color-text)}.layer-description-btn.active{background:#ffffff1a;color:var(--color-accent)}.layer-description-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.layer-description-editor{flex:1;width:100%;padding:12px;background:transparent;border:none;color:var(--color-text);font-family:Consolas,Monaco,Courier New,monospace;font-size:.85rem;line-height:1.5;resize:none;outline:none}.layer-description-editor::placeholder{color:var(--color-text-muted)}.layer-description-preview{flex:1;padding:12px;overflow-y:auto;color:var(--color-text);font-size:.85rem;line-height:1.6}.layer-description-preview h1{font-size:1.5rem;font-weight:600;margin:0 0 .75rem;padding-bottom:.25rem;border-bottom:1px solid var(--color-interface-border)}.layer-description-preview h2{font-size:1.25rem;font-weight:600;margin:1rem 0 .5rem}.layer-description-preview h3{font-size:1.1rem;font-weight:600;margin:.75rem 0 .5rem}.layer-description-preview h4,.layer-description-preview h5,.layer-description-preview h6{font-size:1rem;font-weight:600;margin:.5rem 0}.layer-description-preview p{margin:0 0 .75rem}.layer-description-preview strong{font-weight:600}.layer-description-preview em{font-style:italic}.layer-description-preview del{text-decoration:line-through;opacity:.7}.layer-description-preview a{color:var(--color-accent);text-decoration:none}.layer-description-preview a:hover{text-decoration:underline}.layer-description-preview code{background:#ffffff1a;padding:.15rem .4rem;border-radius:3px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.85em}.layer-description-preview pre{background:#0000004d;padding:.75rem;border-radius:4px;overflow-x:auto;margin:.75rem 0}.layer-description-preview pre code{background:transparent;padding:0;font-size:.85rem}.layer-description-preview ul,.layer-description-preview ol{margin:.5rem 0;padding-left:1.5rem}.layer-description-preview li{margin:.25rem 0}.layer-description-preview blockquote{margin:.75rem 0;padding:.5rem .75rem;border-left:3px solid var(--color-accent);background:#ffffff08;font-style:italic}.layer-description-preview hr{border:none;border-top:1px solid var(--color-interface-border);margin:1rem 0}.layer-description-preview img{max-width:100%;height:auto;border-radius:4px;margin:.5rem 0}.layer-description-footer{padding:8px 12px;border-top:1px solid var(--color-interface-border);flex-shrink:0}.layer-description-hint{font-size:.7rem;color:var(--color-text-muted)}.layer-description-preview:empty:before{content:"No description available";color:var(--color-text-muted);font-style:italic}.map-editor{width:100%;height:100%;position:relative}.map-editor-loading{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1vh;color:var(--color-text-muted);font-size:1rem}.app{width:100vw;height:100vh;position:relative;overflow:hidden}.app-main{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.no-map-message{color:var(--color-text-muted);font-size:1.2rem;font-weight:300;letter-spacing:.1em;text-transform:uppercase}:root{--color-bg: #0a0a0a;--color-text: #ffffff;--color-text-muted: #888888;--color-interface-bg: rgba(0, 0, 0, .85);--color-interface-border: rgba(255, 255, 255, .1);--color-interface-hover: rgba(255, 255, 255, .05);--color-primary: #ffffff;--color-error: #ff4444;--color-success: #44ff44;--padding-interface: 1.5vh;--backdrop-blur: blur(10px);--transition-fast: .15s ease;--transition-normal: .25s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--color-bg);color:var(--color-text);min-height:100vh;overflow:hidden}#root{width:100vw;height:100vh}input,button{font-family:inherit;font-size:inherit;color:inherit;border:none;outline:none;background:none}input{background:#ffffff0d;border:1px solid var(--color-interface-border);padding:var(--padding-interface);color:var(--color-text);transition:border-color var(--transition-fast)}input:focus{border-color:#ffffff4d}input::placeholder{color:var(--color-text-muted)}button{cursor:pointer;padding:var(--padding-interface);background:transparent;border:none;color:var(--color-text);transition:background var(--transition-fast)}button:disabled{opacity:.5;cursor:not-allowed}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000080;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#000000b3}::-webkit-scrollbar-corner{background:transparent}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.5) transparent}
