/* Enterprise Bootstrap Theme | MIT License | (c) 2026 Priya Vijai Kalyan */
.ribbonbuilder{background:var(--theme-surface-raised-bg);border:1px solid var(--theme-border-color);display:flex;flex-direction:column;font-size:.8rem;height:100%;position:relative}.ribbonbuilder-toolbar{align-items:center;background:var(--theme-surface-sunken-bg);border-bottom:1px solid var(--theme-border-color);display:flex;flex-shrink:0;gap:4px;justify-content:space-between;padding:4px 8px}.ribbonbuilder-toolbar-left,.ribbonbuilder-toolbar-right{align-items:center;display:flex;gap:2px}.ribbonbuilder-toolbar-btn{align-items:center;background:transparent;border:1px solid transparent;color:var(--theme-text-secondary);cursor:pointer;display:inline-flex;font-size:.75rem;gap:4px;padding:4px 8px;transition:background-color .15s,border-color .15s;white-space:nowrap}.ribbonbuilder-toolbar-btn:hover{background:var(--theme-hover-bg);border-color:var(--theme-border-color);color:var(--theme-text-primary)}.ribbonbuilder-toolbar-btn:active{background:var(--theme-active-bg)}.ribbonbuilder-toolbar-btn i{font-size:.8rem}.ribbonbuilder-toolbar-chevron{font-size:.5rem;margin-left:-2px}.ribbonbuilder-preview{background:var(--theme-surface-raised-bg);border-bottom:1px solid var(--theme-border-color);flex-shrink:0}.ribbonbuilder-preview-label{color:var(--theme-text-muted);font-size:.625rem;letter-spacing:.05em;padding:2px 8px;text-transform:uppercase}.ribbonbuilder-preview-host{min-height:72px}.ribbonbuilder-preview-empty{align-items:center;color:var(--theme-text-muted);display:flex;font-size:.8rem;font-style:italic;justify-content:center;min-height:72px}.ribbonbuilder-bottom{display:flex;flex:1;min-height:300px;overflow:hidden}.ribbonbuilder-tree{background:var(--theme-surface-raised-bg);border-right:1px solid var(--theme-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.ribbonbuilder-tree-header{border-bottom:1px solid var(--theme-border-color);color:var(--theme-text-secondary);flex-shrink:0;font-size:.75rem;font-weight:500;letter-spacing:.05em;padding:6px 8px;text-transform:uppercase}.ribbonbuilder-tree-body{flex:1;overflow-y:auto;padding:4px 0}.ribbonbuilder-tree-row{align-items:center;cursor:pointer;display:flex;gap:4px;padding:3px 8px;position:relative;transition:background-color .1s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ribbonbuilder-tree-row--selected,.ribbonbuilder-tree-row:hover{background:var(--theme-selected-bg)}.ribbonbuilder-tree-row--selected{color:var(--theme-primary)}.ribbonbuilder-tree-row--dragging{opacity:.5}.ribbonbuilder-tree-chevron{color:var(--theme-text-muted);flex-shrink:0;font-size:.625rem;width:14px}.ribbonbuilder-tree-chevron-spacer{display:inline-block;flex-shrink:0;width:14px}.ribbonbuilder-tree-icon{color:var(--theme-text-secondary);flex-shrink:0;font-size:.8rem}.ribbonbuilder-tree-row--selected .ribbonbuilder-tree-icon{color:var(--theme-primary)}.ribbonbuilder-tree-label{flex:1;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ribbonbuilder-drop-before{border-top:2px solid var(--theme-focus-border)}.ribbonbuilder-drop-after{border-bottom:2px solid var(--theme-focus-border)}.ribbonbuilder-drop-inside{background:var(--theme-selected-bg)}.ribbonbuilder-divider{background:var(--theme-border-color);cursor:col-resize;flex-shrink:0;transition:background-color .15s;width:4px}.ribbonbuilder-divider:hover{background:var(--theme-focus-border)}.ribbonbuilder-right{background:var(--theme-surface-raised-bg);display:flex;flex:1;flex-direction:column;overflow:hidden}.ribbonbuilder-props{flex:1;overflow-y:auto;padding:8px}.ribbonbuilder-props-empty{align-items:center;color:var(--theme-text-muted);display:flex;font-size:.8rem;font-style:italic;height:100%;justify-content:center;padding:16px;text-align:center}.ribbonbuilder-props-header{border-bottom:1px solid var(--theme-border-color);color:var(--theme-text-secondary);font-size:.8rem;font-weight:500;margin-bottom:8px;padding-bottom:6px}.ribbonbuilder-props-field{display:flex;flex-direction:column;margin-bottom:8px}.ribbonbuilder-props-field--check{align-items:center;flex-direction:row;gap:8px}.ribbonbuilder-props-label{color:var(--theme-text-secondary);font-size:.75rem;margin-bottom:2px}.ribbonbuilder-props-field--check .ribbonbuilder-props-label{margin-bottom:0;order:2}.ribbonbuilder-props-input,.ribbonbuilder-props-textarea{background:var(--theme-input-bg);border:1px solid var(--theme-input-border);color:var(--theme-input-color);font-family:inherit;font-size:.75rem;padding:3px 6px;transition:border-color .15s;width:100%}.ribbonbuilder-props-input:focus,.ribbonbuilder-props-textarea:focus{border-color:var(--theme-focus-border);outline:none}.ribbonbuilder-props-textarea{min-height:60px;resize:vertical}.ribbonbuilder-props-readonly{color:var(--theme-text-muted);font-size:.75rem;font-style:italic;padding:3px 0}.ribbonbuilder-props-checkbox{height:14px;order:1;width:14px}.ribbonbuilder-props-field--check .ribbonbuilder-props-checkbox{order:1}.ribbonbuilder-icon-input-wrap{display:flex;gap:2px}.ribbonbuilder-icon-input-wrap .ribbonbuilder-props-input{flex:1}.ribbonbuilder-icon-pick-btn{align-items:center;background:var(--theme-surface-sunken-bg);border:1px solid var(--theme-border-color);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;transition:background-color .15s;width:26px}.ribbonbuilder-icon-pick-btn:hover{background:var(--theme-active-bg)}.ribbonbuilder-icon-pick-btn i{color:var(--theme-text-secondary);font-size:.75rem}.ribbonbuilder-iconpicker{background:var(--theme-surface-raised-bg);border-top:1px solid var(--theme-border-color);max-height:280px;overflow-y:auto}.ribbonbuilder-symbolpicker-overlay{align-items:center;background:rgba(0,0,0,.4);display:flex;inset:0;justify-content:center;position:fixed;z-index:1050}.ribbonbuilder-symbolpicker-host{background:var(--theme-surface-raised-bg);border:1px solid var(--theme-border-color);box-shadow:0 8px 32px rgba(0,0,0,.25);max-height:70vh;max-width:90vw;overflow-y:auto;width:640px}.ribbonbuilder-symbolpicker-host .symbolpicker{display:block;font-size:inherit;width:100%}.ribbonbuilder-symbolpicker-host .symbolpicker-panel{background:transparent;border:none;box-shadow:none;max-height:none;width:100%!important}.ribbonbuilder-symbolpicker-host .symbolpicker-grid{grid-template-columns:repeat(auto-fill,minmax(32px,1fr))!important}.ribbonbuilder-iconpicker-header{background:var(--theme-surface-raised-bg);border-bottom:1px solid var(--theme-border-color);display:flex;flex-direction:column;gap:4px;padding:6px 8px;position:sticky;top:0;z-index:1}.ribbonbuilder-iconpicker-search{background:var(--theme-input-bg);border:1px solid var(--theme-input-border);font-size:.75rem;padding:3px 6px;width:100%}.ribbonbuilder-iconpicker-search:focus{border-color:var(--theme-focus-border);outline:none}.ribbonbuilder-iconpicker-cats{display:flex;flex-wrap:wrap;gap:2px}.ribbonbuilder-iconpicker-cat{background:transparent;border:1px solid transparent;color:var(--theme-text-secondary);cursor:pointer;font-size:.625rem;padding:2px 6px;transition:background-color .1s;white-space:nowrap}.ribbonbuilder-iconpicker-cat:hover{background:var(--theme-hover-bg)}.ribbonbuilder-iconpicker-cat--active{background:var(--theme-selected-bg);border-color:var(--theme-focus-border);color:var(--theme-primary)}.ribbonbuilder-iconpicker-grid{display:grid;gap:1px;grid-template-columns:repeat(8,1fr);padding:4px}.ribbonbuilder-iconpicker-cell{align-items:center;background:transparent;border:1px solid transparent;cursor:pointer;display:flex;height:32px;justify-content:center;transition:background-color .1s,border-color .1s;width:32px}.ribbonbuilder-iconpicker-cell:hover{background:var(--theme-selected-bg);border-color:var(--theme-focus-border)}.ribbonbuilder-iconpicker-cell i{color:var(--theme-text-secondary);font-size:.875rem}.ribbonbuilder-iconpicker-empty{color:var(--theme-text-muted);font-size:.75rem;font-style:italic;grid-column:1/-1;padding:16px;text-align:center}.ribbonbuilder-control-menu{background:var(--theme-surface-raised-bg);border:1px solid var(--theme-border-color);box-shadow:var(--theme-shadow-md);max-height:300px;min-width:160px;overflow-y:auto;z-index:1060}.ribbonbuilder-control-menu-item{background:transparent;border:none;color:var(--theme-text-secondary);cursor:pointer;display:block;font-size:.75rem;padding:5px 12px;text-align:left;transition:background-color .1s;width:100%}.ribbonbuilder-control-menu-item:hover{background:var(--theme-selected-bg);color:var(--theme-primary)}.ribbonbuilder-control-menu-separator{border-top:1px solid var(--theme-border-color);height:0;margin:4px 8px}.ribbonbuilder-control-menu-header{color:var(--theme-text-muted);font-size:.625rem;font-weight:600;letter-spacing:.05em;padding:4px 12px 2px;pointer-events:none;text-transform:uppercase}.ribbonbuilder-export-overlay{align-items:center;background:rgba(0,0,0,.4);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1070}.ribbonbuilder-export-dialog{background:var(--theme-surface-raised-bg);border:1px solid var(--theme-border-color);box-shadow:var(--theme-shadow-lg);display:flex;flex-direction:column;max-height:80%;max-width:640px;width:90%}.ribbonbuilder-export-header{align-items:center;border-bottom:1px solid var(--theme-border-color);display:flex;justify-content:space-between;padding:8px 12px}.ribbonbuilder-export-header h3{color:var(--theme-text-secondary);font-size:.8rem;font-weight:500;margin:0}.ribbonbuilder-export-close{background:transparent;border:none;color:var(--theme-text-muted);cursor:pointer;font-size:1.25rem;line-height:1;padding:0 4px}.ribbonbuilder-export-close:hover{color:var(--theme-text-primary)}.ribbonbuilder-export-content{background:var(--theme-input-bg);border:none;border-bottom:1px solid var(--theme-border-color);color:var(--theme-input-color);flex:1;font-family:JetBrains Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:.75rem;min-height:200px;padding:8px 12px;resize:none}.ribbonbuilder-export-content:focus{outline:none}.ribbonbuilder-export-copy{align-self:flex-end;background:var(--theme-primary);border:1px solid var(--theme-primary);color:var(--theme-surface-raised-bg);cursor:pointer;font-size:.75rem;margin:8px 12px;padding:6px 12px;transition:background-color .15s}.ribbonbuilder-export-copy:hover{background:var(--theme-primary-hover);border-color:var(--theme-primary-hover)}.ribbonbuilder-warning{animation:ribbonbuilder-fade-in .15s ease-out;background:#fef3c7;border:1px solid #f59e0b;box-shadow:var(--theme-shadow-sm);color:var(--theme-text-primary);font-size:.75rem;left:8px;padding:4px 10px;position:absolute;top:100%;z-index:1060}@keyframes ribbonbuilder-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}