.app-shell{display:flex;flex-direction:column;height:100vh;background:var(--surface-body);color:var(--text-primary);animation:fadeIn .5s ease}.app-shell:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,rgba(0,0,0,var(--scanline-opacity)) 0px,rgba(0,0,0,var(--scanline-opacity)) 1px,transparent 1px,transparent 3px)}.react-main{flex:1;overflow:auto;padding:8px 8px 0}.react-main-canvas{flex:1;overflow:hidden;padding:8px 8px 0}.react-placeholder{display:flex;align-items:center;justify-content:center;height:100%;font-family:Rajdhani,sans-serif;font-size:1.2rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:3px}.react-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px 6px;margin-bottom:0;border-bottom:1px solid var(--border-subtle);flex-shrink:0;flex-wrap:wrap;background:var(--surface-body)}.react-topbar-left{display:flex;align-items:center;gap:16px}.react-topbar-logo{font-family:Rajdhani,sans-serif;font-size:20px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--text-heading);white-space:nowrap}.react-topbar-nav{display:flex;gap:0}.react-topbar-nav a{font-family:Rajdhani,sans-serif;font-size:13px;font-weight:600;letter-spacing:3px;text-transform:uppercase;text-decoration:none;color:var(--text-tertiary);padding:10px 14px;border-bottom:2px solid transparent;cursor:pointer;transition:color .2s,border-color .2s}.react-topbar-nav a:hover{color:var(--text-primary)}.react-topbar-nav a.active{color:var(--accent);border-bottom-color:var(--accent);text-shadow:0 0 10px var(--accent-glow)}.react-topbar-right{display:flex;align-items:center;gap:8px}.react-topbar-user{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:1px;color:var(--text-tertiary);margin:0 8px}.react-accent-dot{width:16px;height:16px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;opacity:.6;transition:all .2s ease}.react-accent-dot:hover{opacity:1;transform:scale(1.2)}.react-accent-dot.active{opacity:1;border-color:var(--text-heading);box-shadow:0 0 8px currentColor;transform:scale(1.2)}.settings-page{max-width:800px;margin:0 auto}.settings-title{font-family:Rajdhani,sans-serif;font-size:16px;font-weight:700;letter-spacing:4px;text-transform:uppercase;margin-bottom:16px;color:var(--text-secondary)}.settings-sections{display:flex;flex-direction:column;gap:12px}.settings-form{display:flex;flex-direction:column;gap:10px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:2px;z-index:10001;font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:1px;animation:fadeIn .3s ease;cursor:pointer;border:1px solid var(--border)}.toast-success{background:var(--surface-panel);color:var(--green);border-color:var(--green-dim)}.toast-error{background:var(--surface-panel);color:#ff1a1a;border-color:#8b0000}.toast-info{background:var(--surface-panel);color:var(--accent);border-color:var(--accent-dim)}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;background:#000000b3;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.loading-content{text-align:center}.loading-spinner{width:36px;height:36px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 14px}.loading-message{font-family:Rajdhani,sans-serif;font-size:14px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.obj-tree-panel{max-height:50vh;display:flex;flex-direction:column}.obj-tree-content{overflow-y:auto;padding:4px 0}.obj-tree-content::-webkit-scrollbar{width:3px}.obj-tree-content::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:2px}.obj-tree-layer{margin-bottom:4px}.obj-tree-layer-header{display:flex;align-items:center;gap:6px;padding:7px 10px;font-family:Rajdhani,sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-secondary);cursor:pointer;border-radius:2px;transition:background .1s}.obj-tree-layer-header:hover{background:var(--surface-hover)}.obj-tree-layer-active{background:var(--accent-subtle);border-left:2px solid var(--accent)}.obj-tree-layer-chevron{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;width:14px;padding:0;flex-shrink:0;text-align:center}.obj-tree-layer-color{width:18px;height:18px;padding:0;border:1px solid var(--border);border-radius:2px;cursor:pointer;flex-shrink:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.obj-tree-layer-color::-webkit-color-swatch-wrapper{padding:1px}.obj-tree-layer-color::-webkit-color-swatch{border:none;border-radius:1px}.obj-tree-layer-color-placeholder{width:18px;height:18px;flex-shrink:0}.obj-tree-layer-name{flex:1;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obj-tree-layer-count{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-muted);background:var(--surface-hover);padding:2px 6px;border-radius:2px;flex-shrink:0}.obj-tree-layer-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;padding:0 3px;transition:color .15s;flex-shrink:0;line-height:1}.obj-tree-layer-btn:hover{color:var(--text-primary)}.obj-tree-layer-btn-off{color:var(--text-faint)}.obj-tree-layer-btn-locked{color:var(--yellow, #ffaa00)}.obj-tree-layer-btn-del{color:var(--text-faint);font-size:16px}.obj-tree-layer-btn-del:hover{color:#f44}.obj-tree-layer-items{padding-left:6px}.obj-row{padding:6px 10px;margin:2px 4px;border:1px solid transparent;border-radius:2px;cursor:pointer;transition:all .15s ease}.obj-row:hover{background:var(--surface-hover);border-color:var(--border-subtle)}.obj-row-selected{background:var(--accent-subtle);border-color:var(--accent-dim)}.obj-row-header{display:flex;align-items:center;gap:8px}.obj-row-info{flex:1;min-width:0}.obj-row-name{font-family:Inter,sans-serif;font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obj-row-meta{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-muted);margin-top:1px}.obj-row-btn{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:13px;padding:0 3px;transition:color .15s;flex-shrink:0;opacity:0}.obj-row:hover .obj-row-btn{opacity:1}.obj-row-btn:hover{color:var(--text-primary)}.obj-row-btn-del:hover{color:#f44}.obj-row-side{font-family:Rajdhani,sans-serif;font-size:10px;font-weight:700;letter-spacing:1px;padding:2px 6px;border-radius:2px;flex-shrink:0}.obj-row-side-top{color:var(--accent);border:1px solid var(--accent-dim)}.obj-row-side-bottom{color:var(--yellow, #ffaa00);border:1px solid var(--yellow-dim, #996600)}.obj-row-toolpaths{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px;padding-left:0}.obj-row-no-tp{margin-top:3px}.tp-badge{display:flex;align-items:center;gap:5px;padding:3px 8px;border-radius:2px;background:var(--surface-hover);border:1px solid var(--border-subtle);cursor:pointer;transition:all .15s ease;font-size:0}.tp-badge:hover{border-color:var(--accent-dim)}.tp-badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.tp-badge-name{font-family:Inter,sans-serif;font-size:10px;color:var(--text-primary);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-badge-type{font-family:Rajdhani,sans-serif;font-size:9px;font-weight:700;letter-spacing:1px;color:var(--text-muted)}.tp-badge-pending{border-color:var(--yellow-dim, #996600)}.tp-badge-pending .tp-badge-dot{animation:pulse 1.5s infinite}.obj-row-actions{display:flex;gap:6px;align-items:center;margin-top:5px}.tp-assign-wrap{position:relative}.tp-assign-btn{background:none;border:1px dashed var(--border);color:var(--text-muted);font-family:Rajdhani,sans-serif;font-size:10px;font-weight:600;letter-spacing:1px;padding:3px 10px;border-radius:2px;cursor:pointer;transition:all .15s ease}.tp-assign-btn:hover{border-color:var(--accent-dim);color:var(--accent)}.tp-assign-menu{position:absolute;top:100%;left:0;z-index:100;background:var(--surface-panel);border:1px solid var(--border);border-radius:2px;min-width:160px;padding:4px 0;box-shadow:0 4px 16px #0006}.tp-assign-option{display:flex;align-items:center;gap:8px;width:100%;padding:7px 12px;background:none;border:none;color:var(--text-primary);cursor:pointer;font-family:Rajdhani,sans-serif;font-size:12px;font-weight:600;letter-spacing:1px;text-align:left;transition:background .1s}.tp-assign-option:hover{background:var(--accent-subtle)}.tp-assign-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.design-sidebar .props-form{padding:0 4px}.design-sidebar .props-form .form-input-sm,.design-sidebar .props-form input,.design-sidebar .props-form select,.design-sidebar .prop-grid .form-input-sm,.design-sidebar .prop-grid input,.design-sidebar .prop-grid select{max-width:100%;box-sizing:border-box}.obj-tree-empty{padding:24px;text-align:center;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.project-dialog{background:var(--surface-panel);border:1px solid var(--border);border-radius:2px;width:700px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;animation:fadeIn .2s ease;position:relative}.project-dialog:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:linear-gradient(var(--accent-dim),var(--accent-dim)) 0 0/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 0/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 0/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 0/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 100%/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 100%/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 100%/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 100%/1px 14px no-repeat}.project-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.project-dialog-body{display:grid;grid-template-columns:1fr 260px;flex:1;overflow:hidden}.project-dialog-list{overflow-y:auto;border-right:1px solid var(--border-subtle);padding:4px}.project-dialog-list::-webkit-scrollbar{width:3px}.project-dialog-list::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:2px}.project-dialog-loading,.project-dialog-empty{padding:24px;text-align:center;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-tertiary)}.project-dialog-item{padding:10px 12px;margin:2px;border-radius:2px;cursor:pointer;transition:all .15s;border:1px solid transparent}.project-dialog-item:hover{background:var(--surface-hover);border-color:var(--border-subtle)}.project-dialog-item-selected{background:var(--accent-subtle);border-color:var(--accent-dim)}.project-dialog-item-name{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:var(--text-heading);margin-bottom:3px}.project-dialog-item-meta{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-muted)}.project-dialog-details{padding:16px;display:flex;flex-direction:column}.project-dialog-detail-name{font-family:Rajdhani,sans-serif;font-size:18px;font-weight:700;letter-spacing:2px;color:var(--text-heading);text-transform:uppercase;margin-bottom:12px}.project-dialog-detail-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:center;flex:1}.project-dialog-detail-actions{display:flex;gap:6px;margin-top:16px}.project-dialog-detail-empty{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted)}.project-dialog-tabs{display:flex;gap:0}.project-dialog-tab{background:none;border:none;border-bottom:2px solid transparent;font-family:Rajdhani,sans-serif;font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-tertiary);padding:8px 14px;cursor:pointer;transition:all .2s}.project-dialog-tab:hover{color:var(--text-primary)}.project-dialog-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.project-dialog-save{padding:24px}.project-dialog-save-form{display:flex;flex-direction:column;gap:10px;max-width:400px;margin:0 auto}.project-dialog-save-actions{display:flex;gap:6px;margin-top:8px}.project-dialog-save-divider{height:1px;background:var(--border-subtle);margin:12px 0}.project-dialog-new{padding:16px}.project-dialog-new-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.project-dialog-new-option{background:var(--surface-hover);border:1px solid var(--border);border-radius:2px;padding:16px;cursor:pointer;text-align:left;transition:all .15s}.project-dialog-new-option:hover{border-color:var(--accent-dim);background:var(--accent-subtle)}.project-dialog-new-option-name{font-family:Rajdhani,sans-serif;font-size:14px;font-weight:700;letter-spacing:2px;color:var(--text-heading);text-transform:uppercase;margin-bottom:4px}.project-dialog-new-option-desc{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-muted);line-height:1.4}.login-toggle{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-tertiary);text-align:center;margin-top:12px}.login-toggle a{color:var(--accent);cursor:pointer;text-decoration:none}.login-toggle a:hover{text-decoration:underline}.login-success{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--green, #00cc55);margin-bottom:12px;display:none;padding:8px;border:1px solid var(--green-dim, #007a33);border-radius:2px;background:#00cc550d}.react-footer{display:flex;align-items:center;gap:8px;height:24px;padding:0 12px;background:var(--surface-panel);border-top:1px solid var(--border-subtle);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:1px;color:var(--text-faint);text-transform:uppercase}.react-footer-sep{color:var(--border)}.react-footer-spacer{flex:1}.react-footer-status{color:var(--green)}.toolbar-side-toggle{display:flex;gap:0;margin-right:8px;border:1px solid var(--border);border-radius:2px;overflow:hidden}.toolbar-side-toggle .btn-tiny{padding:4px 12px;font-size:11px;letter-spacing:2px;font-weight:700;border:none;border-radius:0;background:var(--surface-hover);color:var(--text-tertiary);transition:all .15s}.toolbar-side-toggle .btn-tiny:hover{color:var(--text-primary)}.toolbar-side-toggle .btn-tiny.active{background:var(--accent);color:var(--surface-body);box-shadow:0 0 8px var(--accent-glow)}.tp-sidebar-list{padding:4px 0}.tp-sidebar-side-header{font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:6px 12px;border-bottom:1px solid var(--border-subtle)}.tp-sidebar-side-top{color:var(--accent)}.tp-sidebar-side-bottom{color:var(--yellow, #ffaa00)}.tp-sidebar-item{display:flex;align-items:center;gap:6px;padding:7px 8px;margin:2px 4px;border-radius:2px;cursor:pointer;transition:all .15s;border:1px solid transparent}.tp-sidebar-item:hover{background:var(--surface-hover);border-color:var(--border-subtle)}.tp-sidebar-item-editing{background:var(--accent-subtle);border-color:var(--accent-dim)}.tp-sidebar-item-disabled{opacity:.4}.tp-sidebar-item-dirty{border-left:2px solid var(--yellow, #ffaa00)}.tp-sidebar-toggle{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:12px;flex-shrink:0;width:16px;text-align:center}.tp-sidebar-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.tp-sidebar-info{flex:1;min-width:0}.tp-sidebar-name{font-family:Inter,sans-serif;font-size:12px;font-weight:600;color:var(--text-primary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-sidebar-meta{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-muted)}.tp-sidebar-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.tp-sidebar-item:hover .tp-sidebar-actions{opacity:1}.tp-sidebar-actions button{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:13px;padding:0 2px;transition:color .15s}.tp-sidebar-actions button:hover{color:var(--text-primary)}.tp-sidebar-del:hover{color:#f44!important}.tp-sidebar-drag{color:var(--text-faint);font-size:12px;cursor:grab;opacity:0;transition:opacity .15s;flex-shrink:0;-webkit-user-select:none;user-select:none}.tp-sidebar-item:hover .tp-sidebar-drag{opacity:.6}.tp-sidebar-item:active .tp-sidebar-drag{cursor:grabbing}.profile-dialog{background:var(--surface-panel);border:1px solid var(--border);border-radius:2px;width:420px;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;animation:fadeIn .2s ease;position:relative}.profile-dialog:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:linear-gradient(var(--accent-dim),var(--accent-dim)) 0 0/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 0/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 0/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 0/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 100%/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 100%/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 100%/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 100%/1px 14px no-repeat}.profile-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.profile-dialog-body{padding:16px;overflow-y:auto}.profile-dialog-body::-webkit-scrollbar{width:3px}.profile-dialog-body::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:2px}.profile-avatar-section{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.profile-avatar{width:48px;height:48px;border-radius:50%;background:var(--accent-subtle);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;font-family:Rajdhani,sans-serif;font-size:22px;font-weight:700;color:var(--accent);flex-shrink:0}.profile-identity{flex:1}.profile-username{font-family:Rajdhani,sans-serif;font-size:16px;font-weight:700;letter-spacing:2px;color:var(--text-heading);text-transform:uppercase}.profile-email{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted)}.profile-section{margin-bottom:16px}.profile-section-title{font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-subtle)}.profile-roles{display:flex;gap:4px;flex-wrap:wrap}.profile-role-badge{font-family:JetBrains Mono,monospace;font-size:10px;background:var(--accent-subtle);border:1px solid var(--accent-dim);color:var(--accent);padding:2px 8px;border-radius:2px}.react-topbar-user-area{display:flex;align-items:center;gap:6px;cursor:pointer;padding:4px 8px;border-radius:2px;transition:background .15s}.react-topbar-user-area:hover{background:var(--surface-hover)}.react-topbar-user-avatar{width:24px;height:24px;border-radius:50%;background:var(--accent-subtle);border:1px solid var(--accent-dim);display:flex;align-items:center;justify-content:center;font-family:Rajdhani,sans-serif;font-size:12px;font-weight:700;color:var(--accent);flex-shrink:0}.tool-library-modal{background:var(--surface-panel);border:1px solid var(--border);border-radius:2px;width:850px;max-width:95vw;height:80vh;display:flex;flex-direction:column;animation:fadeIn .2s ease;position:relative}.tool-library-modal:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:linear-gradient(var(--accent-dim),var(--accent-dim)) 0 0/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 0/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 0/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 0/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 100%/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 100%/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 100%/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 100%/1px 14px no-repeat}.tool-library-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.tool-library-body{display:grid;grid-template-columns:280px 1fr;flex:1;overflow:hidden}.tool-library-list{display:flex;flex-direction:column;border-right:1px solid var(--border-subtle)}.tool-library-search{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--border-subtle)}.tool-library-search .form-input{flex:1}.tool-library-groups{flex:1;overflow-y:auto;padding:4px 0}.tool-library-groups::-webkit-scrollbar{width:3px}.tool-library-groups::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:2px}.tool-library-group-header{display:flex;align-items:center;gap:6px;padding:6px 10px;font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);cursor:pointer}.tool-library-group-header:hover{color:var(--text-primary)}.tool-library-group-count{font-family:JetBrains Mono,monospace;font-size:9px;background:var(--surface-hover);padding:1px 5px;border-radius:2px;margin-left:auto}.tool-library-empty{padding:20px;text-align:center;color:var(--text-muted);font-size:12px}.tool-card{display:flex;align-items:center;gap:8px;padding:6px 10px;margin:1px 4px;border:1px solid transparent;border-radius:2px;cursor:pointer;transition:all .15s}.tool-card:hover{background:var(--surface-hover);border-color:var(--border-subtle)}.tool-card-selected{background:var(--accent-subtle);border-color:var(--accent-dim)}.tool-card-info{flex:1;min-width:0}.tool-card-name{font-family:Inter,sans-serif;font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-card-meta{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-muted)}.tool-card-fav{color:var(--yellow, #ffaa00);font-size:12px}.tool-library-detail{display:flex;flex-direction:column;overflow:hidden}.tool-library-detail-header{display:flex;justify-content:center;align-items:center;padding:12px;border-bottom:1px solid var(--border-subtle);background:var(--surface-inset)}.tool-library-detail-scroll{flex:1;overflow-y:auto;padding:12px 16px}.tool-library-detail-scroll::-webkit-scrollbar{width:3px}.tool-library-detail-scroll::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:2px}.tool-library-detail-empty{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted)}.tool-library-section-title{font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-subtle)}.tool-library-actions{display:flex;gap:6px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border-subtle)}.feeds-speeds-tabs{display:flex;gap:0;flex-wrap:wrap;border:1px solid var(--border);border-radius:2px;overflow:hidden}.feeds-speeds-tab{background:var(--surface-hover);border:none;color:var(--text-muted);font-family:Rajdhani,sans-serif;font-size:10px;font-weight:600;letter-spacing:1px;padding:4px 8px;cursor:pointer;transition:all .15s;flex:1;text-align:center}.feeds-speeds-tab:hover{color:var(--text-primary)}.feeds-speeds-tab.active{background:var(--accent);color:var(--surface-body)}.feeds-speeds-formula{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--accent);padding:6px 0;margin-top:6px;border-top:1px solid var(--border-subtle)}.feeds-speeds-recs{margin-top:8px;display:flex;flex-direction:column;gap:4px}.tool-rec{display:flex;align-items:flex-start;gap:6px;font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.4}.tool-rec-icon{flex-shrink:0;font-size:11px}.tier-badge{font-family:Rajdhani,sans-serif;font-size:9px;font-weight:700;letter-spacing:2px;padding:2px 6px;border-radius:2px;border:1px solid;text-transform:uppercase}.upgrade-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:2px;background:#00e5ff1a;border:1px solid rgba(0,229,255,.3);cursor:pointer;font-size:0}.upgrade-badge:hover{background:#00e5ff33}.upgrade-badge-icon{font-size:10px}.upgrade-badge-text{font-family:Rajdhani,sans-serif;font-size:9px;font-weight:700;letter-spacing:2px;color:#00e5ff}.upgrade-dialog{background:var(--surface-panel);border:1px solid var(--border);border-radius:2px;width:420px;max-width:90vw;animation:fadeIn .2s ease;position:relative}.upgrade-dialog:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:linear-gradient(var(--accent-dim),var(--accent-dim)) 0 0/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 0/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 0/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 0/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 100%/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 100% 100%/1px 14px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 100%/14px 1px no-repeat,linear-gradient(var(--accent-dim),var(--accent-dim)) 0 100%/1px 14px no-repeat}.upgrade-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.upgrade-dialog-body{padding:24px}.upgrade-hero{text-align:center;margin-bottom:20px}.upgrade-hero-icon{font-size:36px;display:block;margin-bottom:8px}.upgrade-hero h2{font-family:Rajdhani,sans-serif;font-size:20px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--text-heading);margin:0}.upgrade-tiers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.upgrade-tier{background:var(--surface-inset);border:1px solid var(--border);border-radius:2px;padding:16px;display:flex;flex-direction:column}.upgrade-tier-pro{border-color:var(--accent);background:var(--accent-subtle)}.upgrade-tier-name{font-family:Rajdhani,sans-serif;font-size:14px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--text-heading);margin-bottom:4px}.upgrade-tier-price{font-family:Rajdhani,sans-serif;font-size:28px;font-weight:700;color:var(--text-heading);margin-bottom:12px}.upgrade-tier-features{display:flex;flex-direction:column;gap:6px;flex:1;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-primary);margin-bottom:12px}.upgrade-tier-no{color:var(--text-faint)}.upgrade-tier-current{font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-align:center;padding:8px;color:var(--text-muted);border:1px solid var(--border);border-radius:2px}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@keyframes blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}
