.qos-label{background-color:#4caf50!important;color:#fff!important;padding:2px 6px!important;border-radius:4px!important;display:inline-block!important;font-size:.75rem!important;line-height:1.2!important;text-align:center!important;border:1px solid #388e3c!important;white-space:nowrap!important;box-shadow:0 1px 2px #0000001a!important}.nodeLabel .qos-hl,.label .qos-hl,foreignObject .qos-hl,.qos-hl{background-color:#4caf50!important;color:#fff!important;-webkit-text-fill-color:#ffffff!important;padding:1px 4px!important;border-radius:3px!important;border:1px solid #388e3c!important}.service-list{display:flex;flex-direction:column;height:100%;overflow:hidden}.service-list-content{flex:1;overflow-y:auto;min-height:0}.service-list-header{padding:16px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.service-list-header h2{margin:0;font-size:18px;font-weight:600}.service-count{font-size:14px;color:#666;background:#f5f5f5;padding:4px 12px;border-radius:12px}.service-search{padding:12px 16px;border-bottom:1px solid #e0e0e0}.search-input{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px}.search-input:focus{outline:none;border-color:#1976d2}.service-filters{padding:12px 24px 12px 16px;border-bottom:1px solid #e0e0e0;display:flex;flex-direction:column;gap:12px}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-size:13px;font-weight:500;color:#666;min-width:40px}.filter-buttons{display:flex;gap:4px;flex-wrap:nowrap}.filter-buttons button{padding:4px 8px;border:1px solid #ddd;background:#fff;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s;white-space:nowrap}.filter-buttons button:hover{background:#f5f5f5}.filter-buttons button.active{background:#1976d2;color:#fff;border-color:#1976d2}.filter-select{flex:1;padding:6px 12px;border:1px solid #ddd;border-radius:4px;font-size:13px;cursor:pointer}.service-actions{padding:12px 16px;border-bottom:1px solid #e0e0e0;display:flex;gap:8px}.action-btn{flex:1;padding:8px;border:1px solid #ddd;background:#fff;border-radius:4px;font-size:13px;cursor:pointer;transition:all .2s}.action-btn:hover{background:#f5f5f5}.service-group{margin-bottom:16px}.service-group-header{padding:12px 16px;background:#f9f9f9;display:flex;align-items:center;gap:8px;border-bottom:1px solid #e0e0e0}.service-icon{font-size:18px}.service-group-header h3{margin:0;font-size:15px;font-weight:600}.service-item{padding:12px 16px;border-bottom:1px solid #f0f0f0;display:flex;align-items:flex-start;gap:12px;cursor:pointer;transition:background .2s}.service-item:hover{background:#f9f9f9}.service-item.selected{background:#e3f2fd}.service-checkbox{margin-top:2px;cursor:pointer}.service-info{flex:1}.service-title{font-weight:600;font-size:14px;margin-bottom:4px}.service-description{font-size:13px;color:#666;margin-bottom:6px}.service-meta{display:flex;gap:12px;flex-wrap:wrap}.meta-item{font-size:12px;color:#999;padding:2px 8px;border-radius:4px}.no-results{padding:40px 16px;text-align:center;color:#999}.no-results p{margin:0;font-size:14px}.service-group-header.clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.service-group-header.clickable:hover{background-color:#f0f0f0}.group-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:#666;margin-right:4px;font-size:10px;transition:transform .2s}.dict-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.dict-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:90vw;max-width:1100px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.dict-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.dict-header h2{margin:0;font-size:1.1rem;color:#1f2937}.dict-header-actions{display:flex;gap:8px;align-items:center}.dict-generate-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:background .2s}.dict-generate-btn:hover:not(:disabled){background:#1d4ed8}.dict-generate-btn:disabled{opacity:.6;cursor:not-allowed}.dict-close-btn{display:flex;align-items:center;justify-content:center;padding:6px;background:none;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;color:#6b7280;transition:all .2s}.dict-close-btn:hover{background:#f3f4f6;color:#374151}.dict-body{flex:1;overflow-y:auto;padding:16px 20px}.dict-table{width:100%;border-collapse:collapse;font-size:.85rem}.dict-table th{text-align:left;padding:8px 10px;background:#f3f4f6;border-bottom:2px solid #e5e7eb;font-weight:600;color:#374151;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background .15s}.dict-table th:hover{background:#e5e7eb}.dict-th-active{background:#e0e7ff!important;color:#2563eb!important}.dict-th-content{display:inline-flex;align-items:center;gap:4px}.dict-table td{padding:6px 10px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.dict-table tr:hover td{background:#f9fafb}.dict-input{width:100%;padding:4px 8px;border:1px solid #e5e7eb;border-radius:4px;font-size:.85rem;color:#1f2937;box-sizing:border-box}.dict-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.dict-input.token{background:#f9fafb;font-weight:500}.dict-textarea{width:100%;padding:6px 8px;border:1px solid #e5e7eb;border-radius:4px;font-size:.85rem;color:#1f2937;box-sizing:border-box;font-family:inherit;line-height:1.5;resize:vertical;min-height:60px}.dict-textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.dict-select{padding:4px 8px;border:1px solid #e5e7eb;border-radius:4px;font-size:.85rem;background:#fff;color:#1f2937}.dict-select:focus{outline:none;border-color:#2563eb}.dict-delete-btn{display:flex;align-items:center;justify-content:center;padding:4px;background:none;border:none;color:#9ca3af;cursor:pointer;border-radius:4px;transition:all .2s}.dict-delete-btn:hover{background:#fee2e2;color:#ef4444}.dict-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid #e5e7eb;background:#f9fafb}.dict-add-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;cursor:pointer;color:#374151;transition:all .2s}.dict-add-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.dict-add-btn:disabled{opacity:.5;cursor:not-allowed}.dict-clear-btn:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.dict-footer-left{display:flex;align-items:center;gap:8px}.dict-save-btn{padding:8px 20px;background:#059669;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s}.dict-save-btn:hover{background:#047857}.dict-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:#6b7280}.dict-loading-spinner{width:20px;height:20px;border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:dict-spin .8s linear infinite}@keyframes dict-spin{to{transform:rotate(360deg)}}.dict-empty{text-align:center;padding:40px;color:#9ca3af}.dict-error{padding:12px 16px;margin-bottom:12px;background:#fef2f2;color:#b91c1c;border-radius:6px;font-size:.85rem}.dict-category-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:500}.dict-category-badge.customer{background:#dbeafe;color:#1e40af}.dict-category-badge.location{background:#dcfce7;color:#166534}.dict-category-badge.service{background:#fef3c7;color:#92400e}.dict-category-badge.device{background:#f3e8ff;color:#6b21a8}.dict-category-badge.other{background:#f3f4f6;color:#4b5563}.service-diagram{background-color:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;overflow:hidden;border:1px solid #e2e8f0;display:flex;flex-direction:column}.diagram-header{padding:16px 20px;border-bottom:1px solid #e2e8f0;background-color:#fff}.diagram-title{display:flex;align-items:center;gap:12px;margin-bottom:4px}.diagram-title h3{margin:0;font-size:1.1rem;color:#0f172a;font-weight:600}.service-type-badge{font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:4px;color:#fff;text-transform:uppercase}.service-type-badge[data-type=epipe]{background-color:#3b82f6}.service-type-badge[data-type=vpls]{background-color:#10b981}.service-type-badge[data-type=vprn]{background-color:#8b5cf6}.diagram-description{color:#64748b;font-size:.9rem;margin-left:2px}.diagram-controls{display:flex;justify-content:space-between;padding:8px 12px;background-color:#f8fafc;border-bottom:1px solid #e2e8f0}.control-group{display:flex;align-items:center;gap:8px}.control-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:.85rem;color:#475569;background:#fff;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;transition:all .2s}.control-btn:hover{background-color:#f1f5f9;border-color:#94a3b8;color:#0f172a}.control-btn.copied{background-color:#10b981;border-color:#10b981;color:#fff}.control-btn.copied:hover{background-color:#059669;border-color:#059669}.zoom-level{font-size:.85rem;color:#64748b;min-width:48px;text-align:center}.diagram-container{padding:20px;overflow:auto;min-height:200px;display:flex;justify-content:center;align-items:flex-start;background-color:#fff}.diagram-content{transition:transform .2s ease;width:100%;display:flex;justify-content:center}.diagram-content svg{width:100%!important;height:auto!important;max-width:100%}.diagram-code{border-top:1px solid #e2e8f0;background-color:#1e293b;color:#e2e8f0}.code-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;border-bottom:1px solid #334155;background-color:#0f172a;font-size:.85rem}.copy-btn{background:none;border:1px solid #475569;color:#cbd5e1;padding:2px 8px;border-radius:4px;font-size:.75rem;cursor:pointer}.copy-btn:hover{background-color:#334155;color:#fff}.code-content{margin:0;padding:16px;font-family:Fira Code,monospace;font-size:.85rem;overflow-x:auto;white-space:pre-wrap}.error-container{text-align:center;padding:20px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;width:100%}.error-title{color:#ef4444;font-weight:600;margin-bottom:8px}.error-message{color:#b91c1c;font-size:.85rem;font-family:monospace;background-color:#fee2e2;padding:8px;border-radius:4px;text-align:left;white-space:pre-wrap;word-break:break-all}.v2-page{display:flex;flex-direction:column;height:100vh;overflow:hidden;background-color:#f8fafc}.v2-header{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 24px;background-color:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0}.header-left,.header-right{display:flex;align-items:center;gap:16px}.logo{display:flex;align-items:center;gap:12px}.app-icon{width:32px;height:32px}.logo h1{font-size:1.25rem;font-weight:600;color:#0f172a;margin:0}.version-badge{padding:4px 12px;background-color:#e0f2fe;color:#0284c7;font-size:.875rem;font-weight:500;border-radius:9999px}.v2-main{display:flex;flex:1;overflow:hidden}.v2-sidebar{width:320px;border-right:1px solid #e2e8f0;background-color:#fff;display:flex;flex-direction:column;transition:width .3s ease}.v2-content{flex:1;overflow-y:auto;padding:24px;background-color:#f1f5f9}.diagrams-container{display:flex;flex-direction:column;gap:24px;max-width:1200px;margin:0 auto}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;color:#64748b;font-size:1.125rem;gap:16px;text-align:center}.service-group{display:flex;flex-direction:column;gap:16px}.service-group.redundant-group{background-color:#e2e8f066;border:2px dashed #cbd5e1;border-radius:12px;padding:20px}.group-header{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:2px dashed #cbd5e1;margin-bottom:8px}.group-header h3{margin:0;font-size:1.1rem;color:#475569;font-weight:600}.group-items{display:flex;flex-direction:column;gap:24px}.sidebar-resizer{width:8px;background-color:#e2e8f0;cursor:col-resize;flex-shrink:0;transition:background-color .2s ease;position:relative;z-index:10}.sidebar-resizer:hover{background-color:#94a3b8}.sidebar-resizer.resizing{background-color:#3b82f6}.alias-badge-container{position:relative;display:inline-block}.alias-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;border:1px solid transparent;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.alias-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.alias-badge:focus{outline:2px solid #667eea;outline-offset:2px}.alias-badge:active{transform:translateY(0)}.alias-badge__icon{font-size:1rem;line-height:1}.alias-badge__text{line-height:1}.alias-tooltip{position:absolute;top:calc(100% + 8px);left:0;min-width:280px;max-width:400px;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 16px #00000026;z-index:1000;animation:tooltip-fade-in .15s ease-out}@keyframes tooltip-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.alias-tooltip__header{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.alias-tooltip__header strong{font-size:1rem;color:#333;font-family:Courier New,Courier,monospace;background:#f5f5f5;padding:2px 6px;border-radius:4px}.alias-tooltip__arrow{font-size:1rem;color:#999;font-weight:400}.alias-tooltip__matched-alias{font-size:.9375rem;color:#667eea;font-weight:600}.alias-tooltip__section{margin-bottom:10px}.alias-tooltip__section:last-of-type{margin-bottom:0}.alias-tooltip__label{font-size:.75rem;font-weight:600;color:#666;margin-bottom:4px}.alias-tooltip__aliases{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.alias-tooltip__alias{display:inline-block;padding:3px 8px;background:#f0f0f0;border-radius:6px;font-size:.8125rem;color:#555;transition:all .15s ease}.alias-tooltip__alias--matched{background:#fff9c4;color:#f57f17;font-weight:600;border:1px solid #fbc02d}@media(max-width:640px){.alias-tooltip{left:50%;transform:translate(-50%);min-width:240px;max-width:calc(100vw - 32px)}}.ai-chat-panel{padding:12px 16px;border-bottom:1px solid #e0e0e0}.ai-input-row{display:flex;gap:8px;align-items:center}.ai-toggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s;flex-shrink:0;color:#999}.ai-toggle-btn:hover{background:#f5f5f5}.ai-toggle-btn.active{background:#1976d2;border-color:#1976d2;color:#fff}.ai-input-wrapper{flex:1;position:relative}.ai-input{width:100%;padding:8px 12px;border:1px solid #1976d2;border-radius:6px;font-size:14px;outline:none;transition:border-color .2s}.ai-input::placeholder{color:#999}.ai-input:disabled{background:#f5f5f5;border-color:#ddd;color:#999}.ai-loading{display:flex;align-items:center;gap:8px;padding:10px 0 4px;font-size:13px;color:#666}.ai-loading-spinner{width:16px;height:16px;border:2px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:ai-spin .8s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-response{margin-top:10px;padding:10px 12px;background:#f8f9ff;border:1px solid #e0e4f0;border-radius:8px;font-size:13px;line-height:1.5}.ai-response-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.ai-response-badges{display:flex;gap:6px;align-items:center}.ai-badge{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}.ai-badge.confidence-high{background:#e8f5e9;color:#2e7d32}.ai-badge.confidence-medium{background:#fff3e0;color:#e65100}.ai-badge.confidence-low{background:#fce4ec;color:#c62828}.ai-badge.count{background:#e3f2fd;color:#1565c0}.ai-response-text{color:#333}.ai-clear-btn{background:none;border:none;color:#999;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:4px;transition:all .2s}.ai-clear-btn:hover{background:#eee;color:#666}.ai-error{margin-top:10px;padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-size:13px;color:#991b1b}.ai-matched-entries{margin-top:12px;padding-top:10px;border-top:1px solid #e0e4f0}.ai-matched-entries-label{font-size:11px;font-weight:600;color:#666;margin-bottom:6px}.ai-matched-entries-list{display:flex;flex-wrap:wrap;gap:6px}:root{--primary-color: #2563eb;--primary-bg: #eff6ff;--text-main: #1f2937;--text-secondary: #6b7280;--border-color: #e5e7eb;--bg-color: #f3f4f6;--card-bg: #ffffff}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-color);color:var(--text-main);overflow:hidden}.app-container{display:flex;flex-direction:column;height:100vh}.app-header{background:#fff;padding:0 1.5rem;height:60px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 2px #0000000d;flex-shrink:0}.header-left{display:flex;align-items:center;gap:1rem}.icon-btn{background:none;border:none;padding:.5rem;border-radius:.375rem;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:background .2s}.icon-btn:hover{background:var(--bg-color);color:var(--text-main)}.app-header .logo{display:flex;align-items:center;gap:.75rem}.app-header .logo h1{font-size:1.125rem;margin:0;color:var(--text-main)}.app-header .logo .icon{color:var(--primary-color)}.app-main{flex:1;display:flex;flex-direction:row;overflow:hidden;position:relative}.sidebar{display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--border-color);transition:width .1s ease-out;overflow:hidden;flex-shrink:0;min-height:0}.sidebar.collapsed{width:0!important;border-right:none}.sidebar-content{flex:1;display:flex;flex-direction:column;min-width:250px;height:100%;min-height:0}.empty-sidebar{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.resizer{width:5px;background-color:transparent;cursor:col-resize;border-left:1px solid var(--border-color);transition:background-color .2s;z-index:10}.resizer:hover,.resizer.resizing{background-color:var(--primary-color)}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease-out}.modal-content{background-color:var(--card-bg);width:500px;max-width:90vw;border-radius:12px;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-color);animation:slideUp .3s ease-out}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:1.1rem;display:flex;align-items:center;gap:8px;color:var(--text-color)}.icon-btn-text{background:none;border:none;cursor:pointer;color:var(--secondary-text);padding:4px;border-radius:4px;transition:all .2s}.icon-btn-text:hover{background-color:#ffffff1a;color:var(--text-color)}.modal-body{padding:20px;max-height:60vh;overflow-y:auto}.description{margin-bottom:16px;color:var(--secondary-text);font-size:.9rem}.file-list{display:flex;flex-direction:column;gap:8px}.file-item{display:flex;align-items:center;padding:10px 12px;border-radius:8px;background-color:var(--bg-color);border:1px solid var(--border-color);cursor:pointer;transition:all .2s}.file-item:hover{border-color:var(--primary-color)}.file-item.selected{background-color:#0066cc1a;border-color:var(--primary-color)}.file-item.excluded{opacity:.6}.file-item .checkbox{width:20px;height:20px;border-radius:4px;border:2px solid var(--secondary-text);margin-right:12px;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .2s}.file-item.selected .checkbox{background-color:var(--primary-color);border-color:var(--primary-color)}.file-info{display:flex;flex-direction:column}.file-info .name{font-weight:500;color:var(--text-color)}.file-info .size{font-size:.8rem;color:var(--secondary-text)}.warning-msg{display:flex;align-items:center;gap:8px;color:#ff4d4f;margin-top:16px;font-size:.9rem;padding:8px;background-color:#ff4d4f1a;border-radius:6px}.modal-footer{padding:16px 20px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:12px;background-color:var(--bg-color)}.btn-secondary{padding:8px 16px;border:1px solid var(--border-color);background-color:transparent;color:var(--text-color);border-radius:6px;cursor:pointer;transition:all .2s}.btn-secondary:hover{background-color:#ffffff0d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.content{flex:1;display:flex;flex-direction:column;overflow-y:auto;background:var(--bg-color);padding:1rem}.diagram-canvas{display:flex;flex-direction:column;gap:2rem;padding:1rem;overflow-y:auto}.diagram-item{background:#fff;border-radius:.5rem;border:1px solid var(--border-color);overflow:hidden}.diagram-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background:var(--bg-hover);display:flex;justify-content:space-between;align-items:center}.diagram-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-main)}.header-actions{display:flex;align-items:center;gap:.5rem}.diagram-content{padding:1rem;display:flex;justify-content:center;align-items:center}.header-right{display:flex;align-items:center;gap:.5rem}.file-upload-header{display:flex;align-items:center}.btn-upload{display:flex;align-items:center;gap:.5rem;background:var(--primary-color);color:#fff;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-upload:hover{background:#1d4ed8}.file-upload-container{display:flex;flex-direction:column;gap:1rem}.file-upload-area{border:2px dashed var(--border-color);padding:1.25rem;text-align:center;border-radius:.5rem;cursor:pointer;transition:all .2s;background:#f9fafb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem}.list-card{border:none;border-radius:0}.interface-list-container{display:flex;flex-direction:column;height:100%;min-height:0}.search-container{position:relative;padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.search-icon{position:absolute;left:1.5rem;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.search-input{width:100%;padding:.5rem .75rem .5rem 2.25rem;border:1px solid var(--border-color);border-radius:.375rem;background-color:var(--card-bg);color:var(--text-main);font-size:.875rem;transition:border-color .2s,box-shadow .2s}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-bg)}.search-input::placeholder{color:var(--text-secondary)}.list-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background:#f9fafb;display:flex;justify-content:space-between;align-items:center}.list-header .title{font-size:.9rem;margin:0;display:flex;align-items:center;gap:.5rem;font-weight:600;color:#374151}.list-header .actions{font-size:.75rem;display:flex;gap:.5rem;align-items:center}.btn-link{background:none;border:none;padding:0;cursor:pointer;color:var(--primary-color);font-weight:500}.btn-link:hover{text-decoration:underline}.btn-link.text-secondary{color:#6b7280}.sep{color:#d1d5db}.list-content{flex:1;overflow-y:auto;padding:.5rem}.no-data{color:#9ca3af;text-align:center;padding:2rem;font-size:.875rem}.int-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;margin-bottom:.25rem;border:1px solid transparent;border-radius:.375rem;cursor:pointer;transition:background .1s}.int-item:hover{background:var(--bg-color)}.int-item.selected{background:var(--primary-bg);border-color:#bfdbfe;border:1px solid var(--primary-color)}.int-item .checkbox{color:#d1d5db;margin-top:.125rem}.int-item.selected .checkbox{color:var(--primary-color)}.int-item .info{flex:1;overflow:hidden}.int-item .name{font-weight:500;font-size:.875rem;color:#1f2937}.int-item .desc{font-size:.75rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.int-item .tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}.tag{font-size:.65rem;padding:.125rem .375rem;border-radius:.25rem;font-weight:500}.tag.ip{background:#dcfce7;color:#15803d}.tag.svc{background:#f3e8ff;color:#7e22ce}.config-selector{position:relative}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:.5rem;width:14rem;background:#fff;border-radius:.375rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border:1px solid var(--border-color);z-index:50;overflow:hidden}.dropdown-item{display:block;width:100%;text-align:left;padding:.5rem 1rem;font-size:.875rem;color:var(--text-main);background:none;border:none;cursor:pointer;transition:background .1s}.dropdown-item:hover{background:var(--bg-color)}.toolbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--border-color);gap:1rem}.toolbar-group{display:flex;align-items:center;gap:.5rem}.btn-tool{display:flex;align-items:center;justify-content:center;gap:.375rem;background:#fff;border:1px solid var(--border-color);color:var(--text-main);padding:.375rem .75rem;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:all .2s;height:36px}.btn-tool:hover{background:var(--bg-color);border-color:#d1d5db}.btn-tool.primary{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.btn-tool.primary:hover{background:#1d4ed8;border-color:#1d4ed8}.zoom-monitor{font-family:SF Mono,Menlo,monospace;font-size:.875rem;color:var(--text-secondary);min-width:48px;text-align:center;-webkit-user-select:none;user-select:none}.relative{position:relative}.device-group{margin-bottom:24px}.device-header{display:flex;align-items:center;gap:8px;padding:8px 16px;font-weight:600;color:var(--text-primary);background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);font-size:.9rem;letter-spacing:.02em}.device-header .icon-server{color:var(--primary-color)}
