body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.license-warning{background:linear-gradient(135deg,#fef3c7,#fed7aa);border:2px solid #f59e0b;border-radius:12px;box-shadow:0 4px 6px -1px #f59e0b1a;margin:16px 0;padding:20px}.warning-header{align-items:center;color:#92400e;display:flex;font-size:16px;gap:8px;margin-bottom:12px}.license-details{border-top:1px solid #f59e0b;margin-top:16px;padding-top:16px}.license-details p{color:#92400e;font-size:14px;margin:8px 0}.license-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.btn-license-info{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;border-radius:8px;box-shadow:0 2px 4px #8b5cf633;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s}.btn-license-info:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 4px 8px #8b5cf64d;transform:translateY(-1px)}.btn-demo-mode{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;box-shadow:0 2px 4px #10b98133;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s}.btn-demo-mode:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 8px #10b9814d;transform:translateY(-1px)}.cidr-info{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:8px;font-size:14px;margin-top:8px;padding:12px}.cidr-info p{color:#0369a1;margin:4px 0}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--text-primary:#334155;--text-secondary:#64748b;--text-accent:#1e293b;--border-color:#e2e8f0;--border-color-light:#cbd5e1;--shadow-light:#0000001a;--shadow-medium:#00000026;--accent-color:#0d9488;--accent-color-light:#14b8a6;--accent-color-dark:#0f766e;--accent-color-hover:#0f766e;--gradient-primary:linear-gradient(135deg,var(--accent-color-light) 0%,var(--accent-color) 100%);--highlight-small:#ffc1070d;--highlight-large:#28a7450d;--input-bg:#fff;--input-text:#334155;--modal-bg:#fff;--modal-overlay:#00000080}body.dark-mode{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-accent:#e2e8f0;--border-color:#475569;--border-color-light:#64748b;--shadow-light:#0000004d;--shadow-medium:#0006;--gradient-primary:linear-gradient(135deg,var(--accent-color) 0%,var(--accent-color-dark) 100%);--highlight-small:#ffc1071a;--highlight-large:#22c55e1a;--input-bg:#334155;--input-text:#f1f5f9;--modal-bg:#1e293b;--modal-overlay:#000c}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;background-color:var(--bg-primary);color:#334155;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;transition:background-color .3s ease,color .3s ease}.app{min-height:100vh}.app-header{background:linear-gradient(135deg,#14b8a6,#0d9488);background:var(--gradient-primary);box-shadow:0 4px 6px -1px #0000001a;box-shadow:0 4px 6px -1px var(--shadow-light);color:#fff;padding:1rem 2rem}.header-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.header-bottom{display:block!important;flex-direction:column!important;width:100%!important}.app-header h1{flex-shrink:0;font-size:2rem;font-weight:600;margin:0}.header-search{margin-bottom:.5rem;width:100%}.header-right{text-align:center;width:100%}.search-tip{color:#fffc;font-size:.875rem;font-style:italic}.search-section{background:#fff;background:var(--bg-secondary);border-radius:.5rem;box-shadow:0 1px 3px #0000001a;box-shadow:0 1px 3px var(--shadow-light);padding:1.5rem}.search-section .search-bar-full{margin:0}.search-section .search-help{color:#fff;font-size:.875rem}.search-section .operator-select{font-size:.875rem;height:auto;min-width:80px;padding:.5rem .75rem}.search-section h3{border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border-color);color:#1e293b;color:var(--text-accent);font-size:1.25rem;margin:0 0 1rem;padding-bottom:.5rem}.header-search-row{border-top:1px solid #fff3;clear:both;display:block!important;margin-top:1rem;padding-top:1rem;width:100%}.header-search-row .search-bar-full{margin:0}.header-search-row .search-fields{align-items:center;display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.header-search-row .search-input-primary,.header-search-row .search-input-secondary{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:.375rem;box-sizing:border-box;color:#fff;flex:1 1;font-size:.875rem;min-width:200px;outline:none;padding:.5rem .75rem;transition:all .2s ease}.header-search-row .operator-select{min-width:80px;padding:.5rem .75rem}.header-search-row .operator-select,.header-search-row .search-clear-btn{background:#ffffff1a;border:1px solid #fff3;border-radius:.375rem;color:#fff;cursor:pointer;flex:0 0 auto;font-size:.875rem}.header-search-row .search-clear-btn{padding:.5rem 1rem;transition:all .2s ease}.header-search-row .search-help{color:#ffffffb3;font-size:.75rem;text-align:center}.header-search-row .search-input-primary::placeholder,.header-search-row .search-input-secondary::placeholder{color:#ffffffb3}@media (max-width:768px){.header-search-row .search-fields{flex-direction:row!important;gap:.5rem}.header-search-row .search-input-primary,.header-search-row .search-input-secondary{flex:1 1;min-width:120px}.header-search-row .operator-select{flex:0 0 auto;min-width:60px}}.header-search .search-bar-full{width:100%}.header-search .search-fields{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.header-search .search-input-primary{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-sizing:border-box;flex:1 1;min-width:200px;padding:.5rem .75rem}.header-search .operator-select,.header-search .search-input-primary{background:#ffffff1a;border:1px solid #fff3;border-radius:.375rem;color:#fff;font-size:.875rem}.header-search .operator-select{cursor:pointer;flex:0 0 auto;padding:.5rem}.header-search .search-input-secondary{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-sizing:border-box;flex:1 1;min-width:200px;padding:.5rem .75rem}.header-search .search-clear-btn,.header-search .search-input-secondary{background:#ffffff1a;border:1px solid #fff3;border-radius:.375rem;color:#fff;font-size:.875rem}.header-search .search-clear-btn{cursor:pointer;flex:0 0 auto;padding:.5rem 1rem;transition:all .2s ease}.header-search .search-clear-btn:hover{background:#fff3}.header-search .search-help{color:#ffffffb3;font-size:.75rem;text-align:center}.header-search .search-input-primary::placeholder,.header-search .search-input-secondary::placeholder{color:#ffffffb3}.header-search .operator-select:focus,.header-search .search-input-primary:focus,.header-search .search-input-secondary:focus{background:#fff3;border-color:#fff6;box-shadow:0 0 0 3px #ffffff1a;outline:none}.stem-leaf-container{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a;box-shadow:0 4px 6px -1px var(--shadow-light);margin:1rem 0;padding:1.5rem}.stem-leaf-title{color:#1e293b;color:var(--text-accent);font-size:1.5rem;font-weight:600;margin-bottom:.5rem;text-align:center}.stem-leaf-description{background:#f1f5f9;background:var(--bg-tertiary);border-left:4px solid #10b981;border-radius:8px;margin-bottom:1rem;padding:1rem 2rem;text-align:center}.stem-leaf-description p{color:#64748b;color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin:0}.stem-leaf-legend{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:1.5rem;text-align:center}.stem-leaf-filters{margin-bottom:1rem}.stem-leaf-filters .filter-row{align-items:center;display:flex;gap:.5rem}.stem-leaf-filters .filter-input-wrapper{flex:1 1;max-width:400px;position:relative}.stem-leaf-filters .filter-input{background:#fff;background:var(--input-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:6px;color:#334155;color:var(--input-text);font-size:.9rem;padding:.6rem 2.5rem .6rem 1rem;width:100%}.stem-leaf-filters .filter-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.stem-leaf-filters .filter-clear-btn{align-items:center;background:#64748b;background:var(--text-secondary);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:20px;justify-content:center;line-height:1;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:background .2s;width:20px}.stem-leaf-filters .filter-clear-btn:hover{background:#dc3545}.stem-leaf-filters .filter-status{color:#64748b;color:var(--text-secondary);font-size:.8rem;margin-top:.5rem}.stem-leaf-plot{background:#f1f5f9;background:var(--bg-tertiary);border:2px solid #cbd5e1;border:2px solid var(--border-color-light);border-radius:.5rem;font-family:Courier New,monospace;margin-bottom:1.5rem;padding:1rem}.stem-leaf-header{border-bottom:2px solid #64748b;border-bottom:2px solid var(--text-secondary);color:#1e293b;color:var(--text-accent);font-size:.875rem;font-weight:600;letter-spacing:.5px;line-height:1.2;margin-bottom:1rem;padding-bottom:.75rem;text-transform:uppercase}.stem-leaf-header,.stem-leaf-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:200px 40px 1fr}.stem-leaf-row{align-items:flex-start;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);min-height:60px;padding:.75rem 0}.stem-leaf-row:last-child{border-bottom:none}.stem-leaf-row.small{background:#ffc1070d;background:var(--highlight-small)}.stem-leaf-row.large{background:#28a7450d;background:var(--highlight-large)}.stem-leaf-row.demo-vlan{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:2px dashed #f59e0b;border-radius:8px;margin:.5rem 0;position:relative}body.dark-mode .stem-leaf-row.demo-vlan{background:linear-gradient(135deg,#f59e0b26,#f59e0b0d);border-color:#d97706}.stem-leaf-row.demo-vlan:before{background:#f59e0b;border-radius:4px;color:#fff;content:"DEMO";font-size:.7rem;font-weight:700;left:20px;letter-spacing:1px;padding:2px 12px;position:absolute;top:-12px;z-index:1}.stem-info{display:flex;flex-direction:column;gap:.25rem}.stem-row{gap:1rem;justify-content:space-between}.stem-row,.vlan-stem-section{align-items:flex-start;display:flex}.vlan-stem-section{flex-direction:column;gap:.25rem}.vlan-stem{background-color:#3b82f6;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-family:Courier New,monospace;font-size:.875rem;font-weight:600;padding:.5rem .75rem;transition:all .2s ease;white-space:nowrap}.vlan-stem:hover{box-shadow:0 4px 8px #00000026;filter:brightness(1.1);transform:translateY(-1px)}.vlan-name{color:#334155;color:var(--text-primary);font-weight:500}.device-count,.vlan-name{font-size:.75rem;margin-left:.25rem}.device-count{color:#64748b}.cidr-info{align-self:center;color:#334155;color:var(--text-primary);font-family:Courier New,monospace;font-size:.75rem;font-weight:500}.leaf-header,.stem-header{font-size:.875rem;letter-spacing:.5px;line-height:1.2;text-align:left;text-transform:uppercase}.leaves-container{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:wrap;gap:.25rem}.device-leaf{background-color:#3b82f6;border:none;border-radius:.25rem;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-family:Courier New,monospace;font-size:.875rem;font-weight:600;margin-bottom:.25rem;margin-right:.25rem;min-width:2.5rem;padding:.375rem .75rem;text-align:center;transition:all .2s ease}.device-leaf.small{font-size:1rem;min-width:3rem;padding:.5rem 1rem}.device-leaf.large{font-size:.75rem;min-width:2rem;padding:.25rem .5rem}.device-leaf:hover{box-shadow:0 4px 8px #00000026;filter:brightness(1.1);transform:translateY(-1px)}.device-leaf:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.stem-leaf-plot.tree-view{background:#fff;background:var(--bg-secondary);border:none;padding:1rem}.tree-header{grid-gap:1rem;background:#f1f5f9;background:var(--bg-tertiary);border-radius:8px;color:#64748b;color:var(--text-secondary);display:grid;font-size:.75rem;font-weight:600;gap:1rem;grid-template-columns:1fr 200px 1fr;letter-spacing:.5px;margin-bottom:1rem;padding:.75rem;text-transform:uppercase}.tree-header-left{text-align:right}.tree-header-center{text-align:center}.tree-header-right{text-align:left}.tree-row{grid-gap:0;align-items:flex-end;display:grid;gap:0;grid-template-columns:1fr 200px 1fr;margin-bottom:2rem;min-height:180px;position:relative}.tree-row.demo-vlan{border:1px dashed #e2e8f0;border:1px dashed var(--border-color);border-radius:8px;opacity:.7;padding:.5rem}.tree-leaves{align-content:flex-end;align-items:flex-end;display:flex;flex-wrap:wrap;gap:6px;min-height:50px;padding:8px 8px 50px}.tree-leaves-left{justify-content:flex-end}.tree-leaves-right{justify-content:flex-start}.tree-leaf{align-items:center;border:none;border-radius:20px;box-shadow:0 2px 4px #00000026;cursor:pointer;display:flex;font-family:Courier New,monospace;font-size:.8rem;font-weight:600;justify-content:center;padding:6px 10px;position:relative;transition:all .2s ease;z-index:2}.tree-leaf:hover{box-shadow:0 4px 12px #00000040;transform:scale(1.1);z-index:10}.tree-leaf .leaf-ip{font-size:.85rem}.tree-leaf.device-mismatch{animation:pulse-warning 1.5s infinite}@keyframes pulse-warning{0%,to{box-shadow:0 0 4px #dc3545}50%{box-shadow:0 0 12px #dc3545}}.tree-trunk{align-items:center;display:flex;flex-direction:column;justify-content:flex-end;min-height:180px;padding-bottom:10px;position:relative}.tree-trunk:before{background-image:url(/static/media/stem.a029e07b21ae9dcd90e0.png);background-position:bottom;bottom:0;content:"";height:90px;left:50%;opacity:.9;transform:translateX(-50%);width:200px}.tree-trunk:before,.trunk-branch{background-repeat:no-repeat;background-size:contain;position:absolute;z-index:0}.trunk-branch{background-image:url(/static/media/branch.695f2deedac3b65e19f1.png);height:60px;opacity:.85;pointer-events:none;top:20px;width:120px}.trunk-branch-left{background-position:100%;margin-right:50px;right:50%}.trunk-branch-right{background-position:0;left:50%;margin-left:50px;transform:scaleX(-1)}.trunk-tag{align-items:center;background-clip:padding-box;border:3px solid #ffffff4d;border-radius:8px;box-shadow:0 4px 12px #0000004d;cursor:pointer;display:flex;flex-direction:column;min-width:120px;padding:10px 16px;position:relative;transition:all .2s ease;z-index:5}.trunk-tag:hover{box-shadow:0 6px 16px #0006;transform:scale(1.05)}.trunk-vlan{font-size:.9rem;font-weight:700;letter-spacing:.5px}.trunk-name{font-size:.75rem;margin-top:2px;max-width:100px;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trunk-cidr{font-family:monospace;font-size:.65rem;margin-top:2px;opacity:.7}.trunk-map-btn{align-items:center;background:#6366f1;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 6px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:700;height:24px;justify-content:center;margin-top:5px;position:relative;transition:background .2s,box-shadow .2s;width:24px;z-index:6}.trunk-map-btn:hover{background:#4f46e5;box-shadow:0 4px 10px #0006}.trunk-add-btn{align-items:center;background:#10b981;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 6px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;height:24px;justify-content:center;margin-bottom:75px;margin-top:5px;position:relative;transition:background .2s,box-shadow .2s;width:24px;z-index:6}.trunk-add-btn:hover{background:#059669;box-shadow:0 4px 10px #0006}.trunk-stats{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:10px;font-size:.65rem;font-weight:600;padding:2px 6px;right:-10px;top:-10px;z-index:3}.tree-empty,.trunk-stats{color:#64748b;color:var(--text-secondary);position:absolute}.tree-empty{font-size:.85rem;font-style:italic;left:0;pointer-events:none;right:0;text-align:center}body.dark-mode .tree-trunk:before{filter:brightness(.6) sepia(.3);opacity:.7}body.dark-mode .trunk-tag{border-color:#0006;box-shadow:0 4px 12px #00000080}body.dark-mode .trunk-tag:hover{box-shadow:0 6px 16px #0009}.no-devices{color:#9ca3af;font-size:.875rem;font-style:italic;padding:.5rem}.usage-indicator{background:#0000000d;border-left:3px solid #64748b;border-radius:.25rem;margin-top:.5rem;padding:.5rem}.usage-text{color:#64748b;font-size:.75rem;font-weight:500}.stem-leaf-summary{border-top:1px solid #e2e8f0;padding-top:1rem}.stem-leaf-summary p{color:#334155;color:var(--text-primary);font-weight:600;margin-bottom:1rem;text-align:center}.vlan-color-legend{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.color-legend-item{align-items:center;display:flex;font-size:.875rem;gap:.5rem}.color-swatch{border:1px solid #d1d5db;border-radius:.25rem;flex-shrink:0;height:1rem;width:1rem}.vlan-label{font-weight:500}.stem-leaf-empty,.vlan-label{color:#64748b;color:var(--text-secondary)}.stem-leaf-empty{font-style:italic;padding:2rem;text-align:center}.smart-ip-input{position:relative}.ip-suggestions{background:#fff;background:var(--bg-secondary);border:1px solid #d1d5db;border-radius:.375rem;box-shadow:0 4px 6px -1px #0000001a;left:0;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:50}.suggestion-header{background:#f3f4f6;border-bottom:1px solid #e5e7eb;color:#334155;color:var(--text-primary);font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.5rem .75rem;text-transform:uppercase}.ip-suggestion{align-items:center;background:#fff;background:var(--bg-secondary);border:none;cursor:pointer;display:flex;justify-content:space-between;padding:.5rem .75rem;text-align:left;transition:background-color .2s ease;width:100%}.ip-suggestion:hover{background:#f3f4f6}.ip-suggestion:focus{background:#e0f2fe;outline:none}.suggestion-ip{color:#1f2937;font-family:Courier New,monospace;font-size:.875rem}.suggestion-suffix{font-weight:600}.suggestion-more,.suggestion-suffix{color:#64748b;color:var(--text-secondary);font-size:.75rem}.suggestion-more{background:#f9fafb;border-top:1px solid #e5e7eb;font-style:italic;padding:.5rem .75rem;text-align:center}.ip-used-warning{align-items:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;margin-top:.25rem;padding:.5rem .75rem}.ip-input-full{position:relative}.ip-input-wrapper{border:1px solid #d1d5db;border-radius:.375rem;gap:0}.ip-input-wrapper:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.ip-prefix{background:#f3f4f6;border-right:1px solid #e5e7eb;color:#6b7280;padding:.5rem .25rem .5rem .75rem}.ip-input-field{background:#0000;border:none;flex:1 1;font-family:Courier New,monospace;font-size:.875rem;min-width:60px;outline:none;padding:.5rem}.ip-input-field.error{background-color:#fef2f2}.ip-dropdown-toggle{background:#f3f4f6;border:none;border-left:1px solid #e5e7eb;color:#6b7280;cursor:pointer;font-size:.75rem;padding:.5rem .75rem;transition:background-color .2s}.ip-dropdown-toggle:hover{background:#e5e7eb}.ip-dropdown{background:#fff;background:var(--bg-secondary);border:1px solid #d1d5db;border-radius:.5rem;box-shadow:0 10px 25px #00000026;display:flex;flex-direction:column;left:0;margin-top:4px;max-height:400px;overflow:hidden;position:absolute;right:0;top:100%;z-index:100}.ip-dropdown-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:.75rem}.ip-stats-bar{display:flex;font-size:.75rem;font-weight:600;gap:1rem;margin-bottom:.5rem}.stat-free{color:#059669}.stat-used{color:#dc2626}.stat-total{color:#6b7280}.ip-filter-input{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;outline:none;padding:.5rem .75rem;width:100%}.ip-filter-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.ip-grid{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));max-height:300px;overflow-y:auto;padding:.75rem}.ip-grid-item{border:1px solid #e5e7eb;border-radius:.25rem;cursor:pointer;font-family:Courier New,monospace;font-size:.75rem;min-width:40px;padding:.375rem .25rem;text-align:center;transition:all .15s ease}.ip-grid-item.available{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.ip-grid-item.available:hover{background:#d1fae5;border-color:#6ee7b7;transform:scale(1.05)}.ip-grid-item.used{background:#fef2f2;border-color:#fecaca;color:#991b1b;cursor:not-allowed;opacity:.7}.ip-grid-item.selected{background:#3b82f6;border-color:#2563eb;color:#fff;font-weight:600}.ip-grid-item:disabled{cursor:not-allowed}.ip-no-results{color:#6b7280;padding:1.5rem}.ip-more-available,.ip-no-results{font-size:.875rem;text-align:center}.ip-more-available{background:#fef3c7;border-top:1px solid #fcd34d;color:#92400e;font-weight:500;padding:.75rem}.device-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.device-modal{animation:modalSlideIn .2s ease-out;background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:80vh;max-width:600px;overflow-y:auto;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.device-modal-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;justify-content:space-between;padding:1.5rem}.device-modal-title h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.device-owner{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:400;margin-left:.5rem}.demo-badge{background:#f59e0b;border-radius:4px;color:#fff;font-size:.7rem;font-weight:700;letter-spacing:1px;margin-right:.75rem;padding:4px 12px}.vlan-badge-large{border-radius:.375rem;font-size:.75rem;font-weight:600;padding:.5rem .75rem;white-space:nowrap}.close-btn{align-items:center;background:#f3f4f6;border-radius:50%;color:#64748b;color:var(--text-secondary);display:flex;flex-shrink:0;font-size:1.25rem;height:2rem;justify-content:center;transition:all .2s ease;width:2rem}.close-btn:hover{background:#e5e7eb;color:#334155;color:var(--text-primary)}.device-modal-content{padding:1.5rem}.device-info-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr;margin-bottom:2rem}@media (max-width:640px){.device-info-grid{gap:1.5rem;grid-template-columns:1fr}}.info-section h4{border-bottom:2px solid #e5e7eb;color:#334155;color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem}.info-item{align-items:center;border-bottom:1px solid #f3f4f6;justify-content:space-between;padding:.75rem 0}.info-item:last-child{border-bottom:none}.info-label{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:500;min-width:100px}.info-value{color:#1f2937;font-family:Courier New,monospace;font-weight:500;text-align:right;word-break:break-all}.info-value.ip-address,.info-value.mac-address{background:#f3f4f6;border-radius:.25rem;font-size:.875rem;padding:.25rem .5rem}.network-context{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;padding:1rem}.network-context h4{border-bottom:1px solid #cbd5e1;color:#1e293b;margin-bottom:1rem;padding-bottom:.5rem}.network-stats{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}@media (max-width:480px){.network-stats{grid-template-columns:1fr}}.stat-item{background:var(--bg-secondary);border-radius:.25rem;justify-content:space-between;padding:.5rem .75rem}.stat-label{font-size:.75rem;font-weight:500}.stat-value{font-family:Courier New,monospace;font-size:.75rem;font-weight:600}.device-modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.modal-btn{border:none;border-radius:.375rem;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.modal-btn.secondary{background:#f3f4f6;color:#334155;color:var(--text-primary)}.modal-btn.secondary:hover{background:#e5e7eb}.login-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:2rem;position:relative}.login-container{background:#fff;background:var(--bg-secondary);border-radius:1rem;box-shadow:0 25px 50px -12px #00000040;max-width:600px;padding:2rem;width:100%}.login-header{margin-bottom:2rem;text-align:center}.login-header-top{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem;width:100%}.login-logo{flex:1 1;flex-direction:column;gap:.75rem}.login-logo,.logo-icon{align-items:center;display:flex}.logo-icon{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a;color:#fff;font-size:3rem;height:4rem;justify-content:center;width:4rem}.login-header h1{color:#1f2937;font-size:1.75rem;font-weight:700;margin:0}.login-subtitle{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin:0}.login-form{margin-bottom:2rem}.login-form .form-group{margin-bottom:1.5rem}.login-form label{color:#334155;color:var(--text-primary);display:block;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.login-form input[type=email],.login-form input[type=password],.login-form input[type=text]{background:#fff;background:var(--input-bg);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);font-size:1rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.login-form input[type=email]:focus,.login-form input[type=password]:focus,.login-form input[type=text]:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.login-form input:disabled{background:#f9fafb;color:#64748b;color:var(--text-secondary);cursor:not-allowed}.login-error{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;display:flex;font-size:.875rem;gap:.5rem;margin-bottom:1rem;padding:.75rem}.error-icon{flex-shrink:0}.login-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.875rem 1rem;transition:all .2s ease;width:100%}.login-btn:hover:not(:disabled){box-shadow:0 6px 12px -1px #00000026;filter:brightness(1.05);transform:translateY(-1px)}.login-btn:active:not(:disabled){box-shadow:0 4px 6px -1px #0000001a;transform:translateY(0)}.login-btn:disabled{box-shadow:0 4px 6px -1px #0000001a;cursor:not-allowed;opacity:.7;transform:none}.login-info{border-top:1px solid #e5e7eb;margin-bottom:1rem;padding-top:1.5rem}.demo-credentials{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-bottom:1rem;padding:1rem}.demo-credentials h4{color:#334155;color:var(--text-primary);font-size:.875rem;font-weight:600;letter-spacing:.5px;margin:0 0 .75rem;text-transform:uppercase}.credential-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.credential-item:last-of-type{margin-bottom:.75rem}.credential-label{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:500}.credential-item code,.credential-note code{background:#e5e7eb;border-radius:.25rem;color:#334155;color:var(--text-primary);font-family:Courier New,monospace;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.credential-note{align-items:flex-start;color:#64748b;color:var(--text-secondary);display:flex;font-size:.75rem;gap:.25rem;line-height:1.4}.info-icon{flex-shrink:0;margin-top:1px}.security-note{align-items:center;color:#64748b;color:var(--text-secondary);display:flex;font-size:.75rem;gap:.5rem;justify-content:center;text-align:center}.shield-icon{color:#10b981}.login-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color,#f3f4f6);margin-top:1rem;padding-top:1rem;text-align:center}.login-footer p{color:#64748b;color:var(--text-secondary,#9ca3af);font-size:.75rem;margin:0}@media (max-width:480px){.login-page{padding:1rem}.login-container{padding:1.5rem}.login-header h1{font-size:1.5rem}.logo-icon{font-size:2rem;height:3rem;width:3rem}}.header-actions{flex-wrap:wrap;gap:1rem;justify-content:flex-end;margin-left:auto}.user-info{align-items:center;display:flex;gap:.75rem;margin-left:auto}.app-header .btn-outline,.header-actions .btn-outline,.user-info .btn-outline{border-color:#ffffff4d;color:#fff!important}.app-header .btn-outline:hover,.header-actions .btn-outline:hover,.user-info .btn-outline:hover{background:#ffffff26;border-color:#ffffff80;color:#fff!important}.welcome-text{font-weight:500}.logout-btn,.welcome-text{color:#fff;font-size:.875rem}.logout-btn{background-color:#fff3;border:1px solid #ffffff4d;border-radius:.375rem;cursor:pointer;padding:.5rem 1rem;transition:all .2s ease}.logout-btn:hover{background-color:#ffffff4d;transform:translateY(-1px)}.dark-mode-toggle{background:#ffffff1a;border-radius:15px;height:30px;width:60px}.dark-mode-toggle:hover{background:#fff3}.toggle-slider{height:100%;position:relative;transition:all .3s ease;width:100%}.toggle-icon{align-items:center;border-radius:50%;display:flex;font-size:16px;height:22px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease;width:22px}.sun-icon{background:#ffc107e6;left:2px;opacity:1}.moon-icon{background:#6366f1e6;opacity:.3;right:2px}.dark-mode-toggle.dark .sun-icon{opacity:.3;transform:translateY(-50%) translateX(-10px)}.dark-mode-toggle.dark .moon-icon{opacity:1;transform:translateY(-50%) translateX(10px)}.analytics-btn{align-items:center;background-color:#22c55e33;border:1px solid #22c55e66;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.5rem 1rem;transition:all .2s ease}.analytics-btn:hover{background-color:#22c55e4d;transform:translateY(-1px)}.analytics-dashboard{min-height:80vh;padding:2rem}.analytics-header{flex-wrap:wrap;gap:1rem}.analytics-header h2{color:#1e293b;color:var(--text-accent);font-size:2rem;font-weight:600}.analytics-header .header-actions{align-items:center;display:flex;gap:1rem}.pdf-btn{align-items:center;background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s ease}.pdf-btn:hover:not(:disabled){box-shadow:0 4px 8px #dc26264d;transform:translateY(-1px)}.pdf-btn:disabled{cursor:not-allowed;opacity:.6}.pdf-icon{font-size:1.1rem}.license-badge{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border-radius:.5rem;color:#fff;display:flex;font-weight:500;gap:.5rem;padding:.5rem 1rem}.license-icon{font-size:1.2rem}.analytics-sections{grid-gap:2rem;display:grid;gap:2rem}.analytics-section{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a;box-shadow:0 4px 6px -1px var(--shadow-light);padding:2rem}.analytics-section h3{color:#1e293b;color:var(--text-accent);font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.analytics-section.coming-soon{border-style:dashed;opacity:.7}.analytics-section.coming-soon p{color:#64748b;color:var(--text-secondary);font-style:italic}.analytics-premium-required{align-items:center;display:flex;justify-content:center;min-height:80vh;padding:2rem}.premium-banner{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:1rem;box-shadow:0 8px 16px -4px #0000001a;box-shadow:0 8px 16px -4px var(--shadow-light);max-width:800px;padding:3rem;text-align:center;width:100%}.premium-banner h2{color:#1e293b;color:var(--text-accent);font-size:2.5rem;font-weight:700;margin-bottom:1rem}.premium-banner>p{color:#64748b;color:var(--text-secondary);font-size:1.2rem;margin-bottom:2rem}.premium-features{margin:2rem 0}.feature-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.feature-item{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;text-align:center}.feature-icon{display:block;font-size:2rem;margin-bottom:.5rem}.feature-item h4{color:#1e293b;color:var(--text-accent);font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.feature-item p{color:#64748b;color:var(--text-secondary);font-size:.9rem;line-height:1.4}.upgrade-actions{margin-top:2rem}.upgrade-btn{background:linear-gradient(135deg,#10b981,#059669);font-size:1.1rem;margin-bottom:1rem}.upgrade-btn:hover{box-shadow:0 8px 16px #10b9814d}.upgrade-note{color:#64748b;color:var(--text-secondary);font-size:.9rem}.scan-controls{align-items:end;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.control-group{display:flex;flex-direction:column;gap:.5rem}.control-group label{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:500}.control-group select{background:#fff;background:var(--input-bg);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.375rem;color:#334155;color:var(--input-text);font-size:.875rem;min-width:200px;padding:.75rem}.scan-btn{align-items:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s ease}.scan-btn:hover:not(:disabled){box-shadow:0 4px 8px #3b82f64d;transform:translateY(-1px)}.scan-btn:disabled{cursor:not-allowed;opacity:.6}.scan-spinner{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.scan-info{background:#f1f5f9;background:var(--bg-tertiary);border-radius:.5rem;margin-bottom:1.5rem;padding:1rem}.info-item{align-items:flex-start;display:flex;gap:.75rem;margin-bottom:.75rem}.info-item:last-child{margin-bottom:0}.info-icon{font-size:1.2rem;margin-top:.1rem}.info-item div{color:#334155;color:var(--text-primary);font-size:.875rem}.scan-results{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem}.scan-results h4{color:#1e293b;color:var(--text-accent);font-size:1.2rem;font-weight:600;margin-bottom:1rem}.results-summary{display:flex;gap:2rem;justify-content:center;margin-bottom:1.5rem}.result-stat{text-align:center}.stat-value{color:#1e293b;color:var(--text-accent);display:block;font-size:2rem;line-height:1}.stat-label{color:#64748b;color:var(--text-secondary);font-size:.875rem;margin-top:.25rem}.devices-table{overflow-x:auto}.devices-table table{background:#fff;background:var(--bg-secondary);border-collapse:collapse;border-radius:.5rem;overflow:hidden;width:100%}.devices-table th{background:#f1f5f9;background:var(--bg-tertiary);color:#1e293b;color:var(--text-accent)}.devices-table td,.devices-table th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:.75rem}.devices-table td{color:#334155;color:var(--text-primary)}.devices-table tr:last-child td{border-bottom:none}.devices-table tr.new-device{background:#22c55e1a}.status-badge{border-radius:.25rem;font-size:.75rem;padding:.25rem .5rem}.status-badge.active{background:#22c55e33;color:#059669}.analytics-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:60vh}.analytics-loading p{color:#64748b;color:var(--text-secondary);font-size:1.1rem}.pie-charts-container{width:100%}.charts-header{margin-bottom:2rem;text-align:center}.charts-header h3{color:#1e293b;color:var(--text-accent);font-size:1.5rem;font-weight:600;margin-bottom:1rem}.stats-summary{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;margin-top:1rem}.stat-item{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;min-width:120px;padding:1rem;text-align:center}.stat-item .stat-value{color:#1e293b;color:var(--text-accent);display:block;font-size:1.8rem;font-weight:700;line-height:1}.stat-item .stat-label{color:#64748b;color:var(--text-secondary);font-size:.875rem;margin-top:.25rem}.charts-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:1.5rem}.chart-card{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 2px 4px #0000001a;box-shadow:0 2px 4px var(--shadow-light);padding:1.5rem}.chart-card h4{color:#1e293b;color:var(--text-accent);font-size:1.1rem;font-weight:600;margin-bottom:1rem;text-align:center}.chart-container{height:250px;position:relative}.insights-card{grid-column:span 1}.insights-content{display:flex;flex-direction:column;gap:1rem}.insight-item{align-items:flex-start;background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;display:flex;gap:.75rem;padding:.75rem}.insight-icon{font-size:1.2rem;margin-top:.1rem}.insight-item div{color:#334155;color:var(--text-primary);font-size:.875rem;line-height:1.4}.insight-item strong{color:#1e293b;color:var(--text-accent)}.pie-charts-empty{align-items:center;display:flex;justify-content:center;min-height:300px}.empty-state{color:#64748b;color:var(--text-secondary)}.empty-icon{display:block;font-size:4rem;margin-bottom:1rem}.empty-state h3{color:#1e293b;color:var(--text-accent);font-size:1.5rem;margin-bottom:.5rem}.empty-state p{color:#64748b;color:var(--text-secondary);font-size:1rem}@media (max-width:768px){.charts-grid{grid-template-columns:1fr}.stats-summary{gap:1rem}.chart-container{height:200px}}@media (min-width:1200px){.charts-grid{grid-template-columns:repeat(3,1fr)}.insights-card{grid-column:span 1;grid-row:span 2}}.auth-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:100vh}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-top-color:#667eea;height:3rem;width:3rem}.auth-loading p{color:#64748b;color:var(--text-secondary);font-size:1rem;font-weight:500}.app-footer{background:#f1f5f9;background:var(--bg-tertiary,#f8fafc);border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color,#e2e8f0);margin-top:2rem;padding:1rem 2rem;text-align:center}.app-footer p{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin:0}[data-theme=dark] .app-footer{background:#f8fafc;background:var(--bg-primary,#0f172a);border-top-color:#e2e8f0;border-top-color:var(--border-color,#334155)}[data-theme=dark] .app-footer p{color:#64748b;color:var(--text-secondary,#94a3b8)}.version-info{font-size:.75rem!important;margin-top:.25rem!important;opacity:.7}.add-vlan-btn,.export-btn{background-color:#10b981;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease;white-space:nowrap}.add-vlan-btn:hover,.export-btn:hover{background-color:#059669;transform:translateY(-1px)}.export-btn{background-color:#3b82f6}.export-btn:hover{background-color:#2563eb}.export-btn:disabled{background-color:#94a3b8;cursor:not-allowed;transform:none}.app-main{margin:0 auto;max-width:1200px;padding:2rem}.form-section{background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a;margin-bottom:2rem;padding:2rem}.form-section h2{color:#1e293b;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.search-section h2{color:#1e293b;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.vlans-section h2{color:#1e293b;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.search-bar{flex:1 1;max-width:600px;position:relative;text-align:center}.search-input-wrapper{display:inline-block;max-width:500px;position:relative;width:100%}.search-input{background-color:#ffffff26;border:2px solid #ffffff4d;border-radius:.75rem;color:#fff;font-size:.9rem;padding:.75rem 3rem .75rem 1rem;text-align:left;transition:all .3s ease;width:100%}.search-input::placeholder{color:#fffc;font-style:italic}.search-input:focus{background-color:#ffffff40;border-color:#fff9;box-shadow:0 0 0 3px #ffffff1a;outline:none}.search-icon{color:#fff9;font-size:1rem;left:.75rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-input{padding-left:2.5rem}.clear-search-btn{background:none;border:none;border-radius:.25rem;color:#fffc;cursor:pointer;font-size:1.5rem;padding:.25rem;position:absolute;right:.5rem;top:50%;transform:translateY(-50%);transition:all .2s ease}.clear-search-btn:hover,.search-help{background:#ffffff1a;color:#fff}.search-help{border-radius:.375rem;font-size:.75rem;line-height:1.4;margin-left:auto;margin-right:auto;margin-top:.75rem;max-width:500px;padding:.5rem 1rem;text-align:center}.search-help code{background:#fff3;border-radius:.25rem;color:#fbbf24;font-family:Courier New,monospace;font-size:.7rem;padding:.125rem .25rem}.device-form,.vlan-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-group{gap:.5rem}.form-group label{font-size:.875rem}.form-group input,.form-group textarea{border:2px solid #e2e8f0;border:2px solid var(--border-color);transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus{border-color:#667eea}.form-group input.error{border-color:#ef4444}.color-input{cursor:pointer;height:40px!important;padding:.25rem!important;width:60px!important}.error-text{color:#ef4444;font-size:.75rem;margin-top:.25rem}.submit-error{background-color:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;font-size:.875rem;padding:.75rem;text-align:center}.help-text{color:#64748b;color:var(--text-secondary);font-size:.75rem;margin-top:.25rem}.submit-btn{align-self:flex-start;background-color:#0d9488;background-color:var(--accent-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.875rem 2rem;transition:all .2s ease}.submit-btn:hover:not(:disabled){background-color:#0f766e;background-color:var(--accent-color-hover);transform:translateY(-1px)}.submit-btn:disabled{cursor:not-allowed;opacity:.6}.cancel-btn{background-color:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);color:#334155;color:var(--text-primary);padding:.875rem 2rem;transition:all .2s ease}.cancel-btn:hover{background-color:var(--border-color)}.button-group-inline{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:6px;display:flex;gap:.25rem;padding:.2rem}.toggle-btn-inline{background:#0000;border:none;border-radius:4px;color:#64748b;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:.8rem;font-weight:500;padding:.5rem .75rem;transition:all .2s}.toggle-btn-inline:hover{background:#0000000d}.toggle-btn-inline.active{background:#fff;background:var(--card-bg,#fff);box-shadow:0 1px 3px #0000001a;color:#334155;color:var(--text-primary)}.toggle-btn-inline.online.active{background:#10b981;color:#fff}.toggle-btn-inline.offline.active{background:#6b7280;color:#fff}body.dark-mode .button-group-inline{background:#0000004d;border-color:#e2e8f0;border-color:var(--border-color)}body.dark-mode .toggle-btn-inline.active{background:#fff;background:var(--bg-secondary)}.advanced-toggle{border-top:1px dashed #e2e8f0;border-top:1px dashed var(--border-color);margin-top:.5rem;padding-top:.75rem}.toggle-advanced-btn{background:#0000;border:none;color:#64748b;color:var(--text-secondary);cursor:pointer;font-size:.8rem;padding:.5rem 0;transition:color .2s}.toggle-advanced-btn:hover{color:#10b981}.advanced-fields{animation:slideDown .2s ease-out;display:flex;flex-direction:column;gap:1rem;padding-top:.75rem}.form-group.full-width{grid-column:1/-1}.form-group select{background:#fff;background:var(--input-bg);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);font-size:.875rem;padding:.75rem;transition:border-color .2s ease}.form-group select:focus{border-color:#667eea;outline:none}.cidr-info{background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:.5rem;margin-top:.5rem;padding:1rem}.cidr-info p{font-size:.875rem;margin-bottom:.5rem}.cidr-info p:last-child{margin-bottom:0}.vlan-list{display:flex;flex-direction:column;gap:1rem}.vlan-list.empty{color:#64748b;font-style:italic;padding:3rem;text-align:center}.vlan-card{background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a}.vlan-card:hover{box-shadow:0 8px 25px -5px #00000026}.vlan-header{align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-bottom:1px solid #e2e8f0;cursor:pointer;display:flex;justify-content:space-between;padding:1.5rem}.vlan-info{flex:1 1}.vlan-title{align-items:center;display:flex;gap:.75rem;margin-bottom:.5rem}.vlan-color-indicator{border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0000001a;height:1rem;width:1rem}.vlan-title h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0}.vlan-details{align-items:center;display:flex;flex-wrap:wrap;gap:1.5rem}.vlan-details span{color:#64748b;font-size:.875rem}.cidr{background-color:#e5e7eb;border-radius:.25rem;font-weight:500;padding:.25rem .5rem}.cidr,.cidr-display{font-family:Courier New,monospace}.cidr-display{background-color:#f3f4f6;border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.375rem;color:#111827;font-size:1.125rem;font-weight:600;margin-bottom:.5rem;padding:.5rem .75rem}.vlan-information{color:#334155;color:var(--text-primary);font-size:.9rem;font-style:italic;margin-bottom:.5rem;padding:.25rem 0}.device-count,.ip-count{font-weight:500}.vlan-actions{align-items:center;display:flex;gap:.5rem}.delete-btn,.edit-btn,.expand-btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:flex;font-weight:600;height:2rem;justify-content:center;transition:all .2s ease;width:2rem}.expand-btn{background-color:#e5e7eb;color:#334155;color:var(--text-primary)}.expand-btn:hover{background-color:#d1d5db}.edit-btn{background-color:#dbeafe;color:#1d4ed8;font-size:.875rem}.edit-btn:hover{background-color:#bfdbfe}.delete-btn{background-color:#fee2e2;color:#dc2626;font-size:1.25rem}.delete-btn:hover{background-color:#fecaca}.vlan-content{border-top:1px solid #f1f5f9;padding:1.5rem}.vlan-network-info{grid-gap:1rem;background-color:#f8fafc;border-radius:.5rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem;padding:1rem}.vlan-dhcp-info{background-color:#fefce8;border:1px solid #fde047;border-radius:.5rem;display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem;padding:1rem}.vlan-dhcp-info h5{color:#713f12;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin:0;text-transform:uppercase}.dhcp-detail,.network-detail{align-items:center;display:flex;justify-content:space-between}.dhcp-detail .label,.network-detail .label{color:#64748b;font-size:.875rem;font-weight:500}.dhcp-detail .value,.network-detail .value{color:#1e293b;font-family:Courier New,monospace;font-size:.875rem;font-weight:500}.dhcp-detail .label{color:#713f12}.dhcp-detail .value{color:#92400e}.ip-stats{color:#059669;font-weight:500}.devices-section{margin-top:1rem}.devices-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.devices-header h4{color:#1e293b;font-size:1.125rem;font-weight:600;margin:0}.add-device-btn{background-color:#10b981;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.add-device-btn:hover{background-color:#059669}.add-device-form{background-color:#f1f5f9;background-color:var(--bg-tertiary,#f8fafc);border:2px dashed #e2e8f0;border:2px dashed var(--border-color,#cbd5e1);border-radius:.5rem;margin-bottom:1rem;padding:1.5rem}[data-theme=dark] .add-device-form,body.dark-mode .add-device-form{background-color:#fff;background-color:var(--bg-secondary,#1e293b);border-color:#e2e8f0;border-color:var(--border-color,#475569)}.device-list.empty{background-color:#f1f5f9;background-color:var(--bg-tertiary,#f8fafc);border-radius:.5rem;color:#64748b;color:var(--text-secondary,#64748b);font-style:italic;padding:2rem;text-align:center}.device-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.device-card{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border-radius:.5rem;padding:1rem;position:relative;transition:all .2s ease}.device-card:hover{border-color:#cbd5e1;box-shadow:0 4px 6px -1px #0000001a}.device-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.75rem}.device-name{flex:1 1}.device-name strong{color:#1e293b;font-size:.875rem}.device-name .owner{color:#64748b;font-size:.75rem;font-weight:400}.device-management{color:#1e293b!important;padding:1rem}.device-management h4{color:#1e293b!important;font-size:1rem;font-weight:600;margin:0 0 1rem}.device-management label,.device-management p,.device-management span{color:#334155!important}body.dark-mode .device-management{background:#fff!important;background:var(--bg-secondary)!important;border-color:#e2e8f0!important;border-color:var(--border-color)!important}body.dark-mode .device-management,body.dark-mode .device-management h4{color:#334155!important;color:var(--text-primary)!important}body.dark-mode .device-management label,body.dark-mode .device-management p,body.dark-mode .device-management span{color:#64748b!important;color:var(--text-secondary)!important}.delete-device-btn{background:none;border:none;border-radius:.25rem;color:#94a3b8;cursor:pointer;font-size:1.25rem;line-height:1;padding:.25rem;transition:color .2s ease}.delete-device-btn:hover{background-color:#fee2e2;color:#ef4444}.device-details{display:flex;flex-direction:column;gap:.5rem}.detail-row{align-items:center;font-size:.75rem}.detail-row.primary{font-size:.875rem;font-weight:500}.detail-row .label{color:#64748b;font-weight:500}.detail-row .value{color:#1e293b}.detail-row .ip-address,.detail-row .mac-address{font-family:Courier New,monospace;font-weight:500}.search-results{background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a;overflow:hidden}.results-count{background-color:#f8fafc;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:.875rem;font-weight:500;padding:1rem 1.5rem}.search-results .no-results{color:#64748b;font-style:italic;padding:3rem;text-align:center}.search-results-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));padding:1.5rem}.search-result-card{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border-radius:.5rem;padding:1rem;transition:all .2s ease}.search-result-card:hover{border-color:#cbd5e1;box-shadow:0 4px 6px -1px #0000001a}.search-result-card .device-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.search-result-card .device-name{flex:1 1}.search-result-card .device-name strong{color:#1e293b;font-size:.875rem}.search-result-card .device-name .owner{color:#64748b;font-size:.75rem;font-weight:400}.vlan-badge{background-color:#3b82f6;border-radius:.25rem;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .5rem;white-space:nowrap}.delete-confirm-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.delete-confirm-dialog{background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a;max-width:400px;padding:2rem;width:90%}.delete-confirm-dialog.small{max-width:300px;padding:1.5rem}.delete-confirm-dialog h3,.delete-confirm-dialog h4{color:#1e293b;font-weight:600;margin-bottom:1rem}.delete-confirm-dialog p{color:#64748b;line-height:1.5;margin-bottom:1.5rem}.delete-confirm-actions{display:flex;gap:.75rem;justify-content:flex-end}.cancel-btn{background-color:#f1f5f9;border:none;border-radius:.5rem;color:#64748b;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s ease}.cancel-btn:hover{background-color:#e2e8f0}.confirm-delete-btn{background-color:#ef4444;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s ease}.confirm-delete-btn:hover{background-color:#dc2626}.vlan-edit-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.vlan-edit-dialog{background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a;max-height:90vh;max-width:600px;overflow-y:auto;padding:2rem;width:90%}.vlan-edit-dialog h3{color:#1e293b;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.vlan-edit-form{display:flex;flex-direction:column;gap:1.5rem}.form-actions{gap:1rem;margin-top:1rem}.export-container{position:relative}.export-overlay{background:#0000;bottom:0;left:0;position:fixed;right:0;top:0;z-index:999}.export-menu{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 10px 15px -3px #0000001a;margin-top:.5rem;min-width:300px;padding:1.5rem;position:absolute;right:0;top:100%;z-index:1000}.export-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem}.export-header h4{color:#1e293b;font-size:1rem;font-weight:600;margin:0}.close-menu-btn{background:none;border:none;border-radius:.25rem;color:#64748b;cursor:pointer;font-size:1.25rem;padding:.25rem;transition:all .2s ease}.close-menu-btn:hover{background-color:#f1f5f9;color:#1e293b}.export-options{gap:.5rem;margin-bottom:1rem}.export-option,.export-options{display:flex;flex-direction:column}.export-option{align-items:flex-start;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;cursor:pointer;padding:1rem;text-align:left;transition:all .2s ease}.export-option:hover{background:#e2e8f0;border-color:#cbd5e1}.option-label{color:#1e293b;font-size:.875rem;font-weight:600;margin-bottom:.25rem}.option-description{color:#64748b;font-size:.75rem;line-height:1.4}.export-info{background:#fef3c7;border:1px solid #fbbf24;border-radius:.5rem;padding:.75rem}.export-info p{color:#92400e;font-size:.75rem;line-height:1.4;margin:0}.export-info p:not(:last-child){margin-bottom:.5rem}.prefixed-ip-input{width:100%}.ip-input-wrapper{align-items:center;background:#fff;background:var(--bg-secondary);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.5rem;display:flex;overflow:hidden;transition:border-color .2s ease}.ip-input-wrapper:focus-within{border-color:#667eea}.ip-input-wrapper.error,.prefixed-ip-input .error{border-color:#ef4444}.ip-prefix{background-color:#f1f5f9;border-right:1px solid #e2e8f0;color:#64748b;font-weight:600;-webkit-user-select:none;user-select:none;white-space:nowrap}.ip-prefix,.ip-suffix-input{font-family:Courier New,monospace;font-size:.875rem;padding:.75rem .5rem}.ip-suffix-input{background:#0000;border:none;flex:1 1;font-weight:500;outline:none}.ip-suffix-input::placeholder{color:#94a3b8;font-style:italic}.ip-help-text{color:#059669;font-size:.75rem;font-weight:500;margin-top:.25rem}.ip-input-with-prefix{align-items:center;background:#fff;background:var(--bg-secondary);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.5rem;display:flex;overflow:hidden;transition:border-color .2s ease}.ip-input-with-prefix:focus-within{border-color:#667eea}.ip-input-with-prefix.error{border-color:#ef4444}.ip-prefix-display{background-color:#f8fafc;border-right:2px solid #e2e8f0;color:#1e293b;font-weight:600;-webkit-user-select:none;user-select:none;white-space:nowrap}.ip-prefix-display,.ip-suffix-field{font-family:Courier New,monospace;font-size:1rem;padding:.75rem}.ip-suffix-field{background:#0000;border:none;flex:1 1;font-weight:500;min-width:60px;outline:none;text-align:center}.ip-suffix-field::placeholder{color:#94a3b8;font-style:italic}.ip-help{color:#059669;font-size:.75rem;font-weight:500;margin-top:.25rem}@media (max-width:768px){.app-main{padding:1rem}.app-header{padding:.75rem 1rem}.header-top{flex-direction:column;gap:1rem;margin-bottom:1rem;text-align:center}.app-header h1{font-size:1.5rem}.header-actions{flex-direction:column;gap:.75rem;margin-left:0;width:100%}.header-search .search-fields{flex-direction:column;gap:.5rem}.header-search .search-input-primary,.header-search .search-input-secondary{min-width:auto;width:100%}.search-bar{max-width:none;order:-1}.form-row{grid-template-columns:1fr}.vlan-details{align-items:flex-start;flex-direction:column;gap:.5rem}.device-grid,.search-results-grid,.vlan-network-info{grid-template-columns:1fr}.devices-header{align-items:stretch;flex-direction:column;gap:1rem}}.license-btn{background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1rem;transition:all .2s ease;white-space:nowrap}.license-btn:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.license-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.license-modal{background:#fff;background:var(--bg-secondary);border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.license-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e5e7eb;border-radius:1rem 1rem 0 0;color:#fff;display:flex;justify-content:space-between;padding:1.5rem}.license-header h2{font-size:1.5rem;font-weight:600;margin:0}.close-btn{color:#fff;font-size:2rem;line-height:1;opacity:.8;padding:0;transition:opacity .2s}.close-btn:hover{opacity:1}.license-content{padding:1.5rem}.license-status{margin-bottom:2rem}.license-status h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.status-badge{border-radius:2rem;font-size:.875rem;margin-bottom:1rem;padding:.5rem 1rem}.status-badge.licensed{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.status-badge.trial{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.license-details{background:#f8fafc;border-radius:.5rem;margin-bottom:1rem;padding:1rem}.license-details p{color:#64748b;color:var(--text-secondary);margin:.5rem 0}.license-benefits{background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-weight:500;text-align:center}.license-benefits,.trial-status{border-radius:.5rem;padding:1rem}.trial-status{background:#eff6ff;margin-bottom:1rem}.trial-remaining{display:flex;gap:2rem;margin-top:1rem}.trial-stat{text-align:center}.trial-number{color:#3b82f6;display:block;font-size:2rem;font-weight:700;line-height:1}.trial-label{color:#64748b;color:var(--text-secondary);display:block;font-size:.875rem;margin-top:.25rem}.trial-expired{background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;margin-bottom:1rem;padding:1rem}.trial-available{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#166534;margin-bottom:1rem;padding:1rem}.pricing-info{margin-top:1.5rem}.price-box{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-radius:1rem;color:#fff;padding:1.5rem;text-align:center}.price{font-size:3rem;font-weight:700;line-height:1;margin-bottom:.5rem}.price-description{font-size:1.125rem;margin-bottom:1rem;opacity:.9}.features{background:#ffffff1a;border-radius:.5rem;padding:1rem;text-align:left}.features p{font-size:.875rem;margin:.5rem 0}.pricing-info h4{color:#334155;color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:1rem}.plan-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.plan-option{align-items:center;background:var(--card-bg);border:2px solid #e5e7eb;border-radius:.75rem;cursor:pointer;display:flex;padding:1rem;transition:all .2s}.plan-option:hover{background:#f5f3ff;border-color:#8b5cf6}.plan-option.selected{background:linear-gradient(135deg,#f5f3ff,#ede9fe);border-color:#8b5cf6}.plan-option input[type=radio]{accent-color:#8b5cf6;height:1.25rem;margin-right:1rem;width:1.25rem}.plan-details{align-items:center;display:flex;flex:1 1;gap:1rem}.plan-duration{color:#334155;color:var(--text-primary);font-weight:600;min-width:5rem}.plan-price{color:#8b5cf6;font-size:1.5rem;font-weight:700}.plan-save{background:#10b981;border-radius:1rem;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.purchase-section{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1.5rem}.purchase-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;border-radius:.75rem;color:#fff;cursor:pointer;font-size:1.125rem;font-weight:600;margin-top:1rem;padding:1rem;transition:all .2s;width:100%}.purchase-btn:hover:not(:disabled){box-shadow:0 4px 12px #8b5cf666;transform:translateY(-2px)}.purchase-btn:disabled{cursor:not-allowed;opacity:.7}[data-theme=dark] .plan-option{background:#1f2937;border-color:#374151}[data-theme=dark] .plan-option:hover{background:#2d2640;border-color:#8b5cf6}[data-theme=dark] .plan-option.selected{background:linear-gradient(135deg,#2d2640,#1f1b2e);border-color:#8b5cf6}[data-theme=dark] .plan-option .plan-details,[data-theme=dark] .plan-option .plan-duration,[data-theme=dark] .plan-option .plan-price,[data-theme=dark] .plan-option .plan-save{color:#e2e8f0}[data-theme=dark] .plan-option.selected .plan-duration,[data-theme=dark] .plan-option.selected .plan-price{color:#f1f5f9}[data-theme=dark] .plan-option.selected .plan-save{color:#a78bfa}[data-theme=dark] .purchase-section{border-top-color:#374151}.payment-success-banner{align-items:center;animation:slideDown .3s ease-out;background:linear-gradient(135deg,#10b981,#059669);color:#fff;display:flex;gap:1rem;justify-content:center;left:0;padding:1rem 2rem;position:fixed;right:0;top:0;z-index:10000}.payment-success-banner span{font-weight:500}.payment-success-banner button{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.25rem;height:2rem;justify-content:center;transition:background .2s;width:2rem}.payment-success-banner button:hover{background:#ffffff4d}.license-activation{margin-bottom:2rem}.license-activation h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-group label{color:#334155;color:var(--text-primary);margin-bottom:.5rem}.form-group input,.form-group textarea{border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;padding:.75rem;transition:border-color .2s;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.activate-btn,.demo-btn,.reset-trial-btn{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;margin-bottom:.5rem;margin-right:1rem;padding:.75rem 1.5rem;transition:all .2s ease}.activate-btn:hover,.demo-btn:hover,.reset-trial-btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e3a8a);box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.activate-btn:disabled,.demo-btn:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none}.demo-section{background:#fffbeb;border:1px solid #fed7aa;border-radius:.75rem;margin-bottom:2rem;padding:1.5rem}.demo-section h3{font-size:1.25rem;font-weight:600}.demo-note,.demo-section h3{color:#92400e;margin-bottom:1rem}.demo-note{font-size:.875rem}.success-message{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#166534;margin-top:1rem;padding:1rem}.error-message{border-radius:.5rem;font-weight:500;margin-top:1rem;padding:1rem;text-align:center}.loading{color:#64748b;color:var(--text-secondary);font-style:italic;padding:2rem}.device-navigation{align-items:center;display:flex;flex-direction:column;gap:.5rem;margin:0 1rem}.device-counter{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:500}.nav-buttons{gap:.5rem}.nav-btn{align-items:center;background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;color:#334155;color:var(--text-primary);display:flex;font-size:1rem;font-weight:600;height:2.5rem;justify-content:center;min-width:2.5rem;padding:.5rem .75rem;transition:all .2s ease}.nav-btn:hover{background:#e5e7eb;border-color:#9ca3af;transform:translateY(-1px)}.nav-btn:active{background:#d1d5db;transform:translateY(0)}.nav-btn:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.device-modal-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}@media (max-width:768px){.device-navigation{margin:0 .5rem}.device-counter{font-size:.75rem}.nav-btn{font-size:.875rem;height:2rem;min-width:2rem;padding:.375rem .5rem}.device-modal-actions{gap:.5rem}}.auth-mode-toggle{background:#f1f5f9;background:var(--bg-tertiary);border-radius:.75rem;display:flex;margin-bottom:1rem;padding:.25rem;position:relative}.mode-btn{align-items:center;background:#0000;border:none;border-radius:.5rem;color:#64748b;color:var(--text-secondary);cursor:pointer;display:flex;flex:1 1;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1rem;transition:all .2s ease}.mode-btn.active{background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-secondary) 100%);box-shadow:0 2px 8px #3b82f64d;color:#fff}.mode-btn:hover:not(.active){background:#fff;background:var(--bg-secondary);color:#334155;color:var(--text-primary)}.auth-tabs{background:#f1f5f9;background:var(--bg-tertiary);border-radius:.75rem;display:flex;margin-bottom:2rem;padding:.25rem;position:relative}.auth-tab{background:#0000;border:none;border-radius:.5rem;color:#64748b;color:var(--text-secondary);cursor:pointer;flex:1 1;font-weight:500;padding:.75rem 1.5rem;position:relative;transition:all .2s ease;z-index:1}.auth-tab.active{background:#fff;background:var(--bg-secondary);box-shadow:0 1px 3px #0000001a;box-shadow:0 1px 3px var(--shadow-light);color:#1e293b;color:var(--text-accent)}.auth-tab:hover:not(.active){color:#334155;color:var(--text-primary)}.login-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-weight:500;padding:1rem}.success-icon{font-size:1.125rem}.signup-info{background:#f0f9ff;border:1px solid #e0f2fe;border-radius:.75rem;margin-top:1.5rem;padding:1.5rem}.signup-note{align-items:flex-start;color:#0369a1;display:flex;font-size:.875rem;gap:.75rem;line-height:1.5}.signup-note .info-icon{flex-shrink:0;font-size:1rem;margin-top:.125rem}.user-management-btn{align-items:center;background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.75rem 1rem;transition:all .2s ease;white-space:nowrap}.user-management-btn:hover{background:linear-gradient(135deg,#4f46e5,#3730a3);box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.btn{border-radius:.5rem;font-size:.875rem;gap:.5rem;justify-content:center;outline:none;padding:.75rem 1.5rem;transition:all .2s ease;white-space:nowrap}.btn:focus{box-shadow:0 0 0 3px #6366f11a}.btn-small{font-size:.8rem;padding:.5rem 1rem}.btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5)}.btn-primary:hover{background:linear-gradient(135deg,#4f46e5,#3730a3);box-shadow:0 4px 12px #6366f14d}.btn-secondary{background:linear-gradient(135deg,#64748b,#475569)}.btn-secondary:hover{background:linear-gradient(135deg,#475569,#334155);box-shadow:0 4px 12px #64748b4d;transform:translateY(-1px)}.btn-accent{background:linear-gradient(135deg,#14b8a6,#0d9488);background:var(--gradient-primary);color:#fff}.btn-accent:hover{background:linear-gradient(135deg,#0d9488,#0f766e);background:linear-gradient(135deg,var(--accent-color) 0,var(--accent-color-dark) 100%);box-shadow:0 4px 12px #0d94884d;transform:translateY(-1px)}.btn-outline{border:2px solid #fff3;color:#fff}.btn-outline:hover{background:#ffffff1a;border-color:#ffffff4d;transform:translateY(-1px)}.dark-mode-toggle{background:#0000004d;border:2px solid #ffffff4d;border-radius:14px;cursor:pointer;height:28px;outline:none;overflow:hidden;padding:0;position:relative;transition:all .3s ease;width:56px}.dark-mode-toggle:hover{border-color:#fff6;transform:translateY(-1px)}.toggle-background{border-radius:12px;height:100%;overflow:hidden;position:relative;width:100%}.toggle-slider{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:50%;box-shadow:0 2px 4px #0003;display:flex;height:20px;justify-content:center;top:2px;transition:all .3s cubic-bezier(.4,0,.2,1);width:20px}.toggle-slider.light{background:linear-gradient(135deg,#fbbf24,#f59e0b);left:2px}.toggle-slider.dark{background:linear-gradient(135deg,#6366f1,#4f46e5);left:30px}.toggle-icon{font-size:12px;line-height:1}.search-section-container{margin:2rem auto;max-width:800px;padding:0 1rem}.advanced-search-bar{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a;box-shadow:0 4px 6px -1px var(--shadow-light);padding:2rem}.search-title{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.search-title h3{color:#1e293b;color:var(--text-accent);font-size:1.25rem;font-weight:600;margin:0}.clear-all-btn{margin-left:auto}.search-fields{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:1fr auto 1fr;margin-bottom:1.5rem}.search-field{display:flex;flex-direction:column}.operator-selector label,.search-field label{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.search-input{background:#fff;background:var(--input-bg);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);font-size:.875rem;outline:none;padding:.75rem;transition:all .2s ease}.search-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.operator-selector{align-items:center;display:flex;flex-direction:column;min-width:100px}.operator-select{background:#fff;background:var(--input-bg);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);cursor:pointer;font-size:.875rem;font-weight:600;outline:none;padding:.75rem .5rem;transition:all .2s ease}.operator-select:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.search-help{display:flex;flex-direction:column;gap:.5rem}.help-item{align-items:flex-start;color:#64748b;color:var(--text-secondary);display:flex;font-size:.8rem;gap:.5rem}.help-icon{flex-shrink:0;margin-top:.1rem}.compact-search-bar{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 2px 4px -1px #0000001a;box-shadow:0 2px 4px -1px var(--shadow-light);margin:1rem auto;max-width:1000px;padding:1rem}.search-help-compact{align-items:center;color:#64748b;color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:.75rem;gap:.5rem;margin-bottom:.75rem}.search-help-compact .help-icon{flex-shrink:0;margin:0}.separator{color:#e2e8f0;color:var(--border-color);font-weight:700}.search-row{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.search-label{color:#1e293b;color:var(--text-accent);flex-shrink:0;font-size:.9rem;font-weight:600}.search-input-compact{background:#fff;background:var(--input-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);flex:1 1;font-size:.875rem;min-width:200px;outline:none;padding:.5rem .75rem;transition:all .2s ease}.search-input-compact:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f11a}.operator-select-compact{background:#fff;background:var(--input-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);cursor:pointer;font-size:.875rem;font-weight:600;min-width:70px;outline:none;padding:.5rem;transition:all .2s ease}.operator-select-compact:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f11a}.clear-btn-compact{flex-shrink:0;font-size:.75rem;padding:.4rem .75rem}@media (max-width:768px){.search-row{align-items:stretch;flex-direction:column;gap:.5rem}.search-label{text-align:center}.search-input-compact{min-width:auto}.operator-select-compact{align-self:center;min-width:100px}}.compact-vlan-section{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 2px 4px -1px #0000001a;box-shadow:0 2px 4px -1px var(--shadow-light);margin:1rem auto;max-width:1200px;padding:1.5rem}.vlan-selector-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.vlan-selector-header-left{justify-content:flex-start}.vlan-selector-header-left .vlan-dropdown-container{margin-right:1rem;order:1}.vlan-selector-header-left h3{order:2}.vlan-selector-header h3{color:#1e293b;color:var(--text-accent);font-size:1.25rem;font-weight:600;margin:0}.vlan-dropdown-container{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.vlan-dropdown-container label{color:#64748b;color:var(--text-secondary);font-size:.875rem;font-weight:500}.vlan-dropdown{background:#fff;background:var(--input-bg);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);cursor:pointer;font-size:.875rem;min-width:300px;outline:none;padding:.75rem 1rem;transition:all .2s ease}.vlan-dropdown:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.selected-vlan-details{margin-top:1rem}.no-vlan-selected{padding:3rem 1rem;text-align:center}.no-vlan-selected .empty-state{align-items:center;display:flex;flex-direction:column;gap:1rem}.no-vlan-selected .empty-icon{font-size:3rem;opacity:.5}.no-vlan-selected h4{color:#334155;color:var(--text-primary);font-size:1.25rem;margin:0}.no-vlan-selected p{color:#64748b;color:var(--text-secondary);margin:0;max-width:400px}@media (max-width:768px){.vlan-selector-header{align-items:stretch;flex-direction:column;text-align:center}.vlan-dropdown-container{align-items:stretch;flex-direction:column;gap:.5rem}.vlan-dropdown{min-width:auto;width:100%}}.user-management-page{margin:0 auto;max-width:1400px;padding:0 1rem}.user-management-header{align-items:center;border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.user-management-header .header-left{align-items:center;display:flex;gap:1rem}.user-management-header h2{color:#334155;color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0}.user-stats-header{color:#64748b;color:var(--text-secondary);display:flex;font-size:.875rem;gap:1rem}.user-management-sections{display:flex;flex-direction:column;gap:2rem}.user-management-section{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a;box-shadow:0 4px 6px -1px var(--shadow-light);padding:2rem}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.section-header h3{color:#1e293b;color:var(--text-accent);font-size:1.25rem;font-weight:600;margin:0}.loading-container{align-items:center;display:flex;justify-content:center;min-height:200px}@media (max-width:768px){.user-management-header{align-items:stretch;flex-direction:column;gap:1rem;text-align:center}.user-management-header .header-left{align-items:center;flex-direction:column;gap:.5rem}.user-stats-header{justify-content:center}.section-header{align-items:stretch;flex-direction:column;gap:1rem;text-align:center}}.analytics-header{align-items:center;border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.header-left{gap:1rem}.back-to-home-btn{background:#f1f5f9;background:var(--bg-tertiary);border:2px solid #e2e8f0;border:2px solid var(--border-color);color:#334155;color:var(--text-primary)}.back-to-home-btn:hover{background:#e2e8f0;background:var(--border-color);transform:translateY(-1px)}.search-results-section{margin:0 auto 2rem;max-width:1200px;padding:0 1rem}.search-results-section h2{color:#1e293b;color:var(--text-accent);margin-bottom:1rem;text-align:center}@media (max-width:768px){.search-fields{gap:1.5rem;grid-template-columns:1fr}.operator-selector,.search-title{align-items:stretch}.search-title{flex-direction:column;gap:1rem}.header-left{align-items:flex-start;flex-direction:column;gap:.5rem}.analytics-header{gap:1rem}.analytics-header,.export-dropdown{align-items:stretch;flex-direction:column}}.devices-dropdown,.export-dropdown,.pro-features-dropdown{display:inline-block;position:relative}.devices-menu,.export-menu,.pro-features-menu{animation:slideDown .2s ease-out;background:#fff;background:var(--modal-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.375rem;box-shadow:0 10px 25px #00000026;box-shadow:0 10px 25px var(--shadow-medium);left:0;min-width:400px;overflow:hidden;position:absolute;top:100%;z-index:1000}.devices-menu button,.export-menu button,.pro-features-menu button{background:none;border:none;color:#334155;color:var(--text-primary);cursor:pointer;display:block;font-size:.875rem;font-weight:500;padding:.75rem 1rem;text-align:left;transition:background-color .2s ease;width:100%}.devices-menu button:hover,.export-menu button:hover,.pro-features-menu button:hover{background:#f1f5f9;background:var(--bg-tertiary);color:#1e293b;color:var(--text-accent)}.devices-menu button:active,.export-menu button:active,.pro-features-menu button:active{background:#e2e8f0;background:var(--border-color)}.devices-menu .menu-divider{border:none;border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);height:1px;margin:.5rem 0}.devices-menu button.submenu-item{border-left:2px solid #e2e8f0;border-left:2px solid var(--border-color);color:#64748b;color:var(--text-secondary);font-size:.8rem;margin-left:.75rem;padding-left:2rem;width:calc(100% - .75rem)}.devices-menu button.submenu-item:hover{border-left-color:#1e293b;border-left-color:var(--text-accent);color:#1e293b;color:var(--text-accent)}.demo-toggle-btn{align-items:center;display:flex;font-size:.875rem;gap:.5rem}.demo-toggle-btn.active{background:#ecfdf5!important;border-left:3px solid #10b981;color:#059669!important}body.dark-mode .demo-toggle-btn.active{background:#10b98133!important;color:#34d399!important}.vlan-card.demo-vlan{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:2px dashed #f59e0b;position:relative}body.dark-mode .vlan-card.demo-vlan{background:linear-gradient(135deg,#f59e0b1a,#f59e0b0d);border-color:#d97706}.vlan-card.demo-vlan:before{background:#f59e0b;border-radius:4px;color:#fff;content:"DEMO";font-size:.7rem;font-weight:700;letter-spacing:1px;padding:2px 12px;position:absolute;right:20px;top:-10px}.demo-device-row{background:#f59e0b0d}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.mismatch-notification{display:inline-block;position:relative}.notification-btn{animation:pulse 2s infinite;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:20px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem .75rem;transition:all .2s ease}.notification-btn:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}@keyframes pulse{0%{box-shadow:0 2px 4px #0000001a}50%{box-shadow:0 2px 4px #0000001a,0 0 0 4px #f59e0b4d}to{box-shadow:0 2px 4px #0000001a}}.notification-dropdown{animation:slideDown .2s ease-out;background:#fff;background:var(--modal-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 10px 25px #00000026;box-shadow:0 10px 25px var(--shadow-medium);max-height:400px;max-width:500px;min-width:400px;overflow:hidden;position:absolute;right:0;top:100%;z-index:1000}.notification-header{background:linear-gradient(135deg,#f59e0b,#d97706);font-weight:600;justify-content:space-between;padding:1rem}.close-notification,.notification-header{align-items:center;color:#fff;display:flex}.close-notification{background:none;border:none;border-radius:50%;cursor:pointer;font-size:1.5rem;height:24px;justify-content:center;padding:0;transition:background-color .2s;width:24px}.close-notification:hover{background:#fff3}.notification-content{max-height:300px;overflow-y:auto}.mismatch-item{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:1rem;transition:background-color .2s}.mismatch-item:hover{background:#f1f5f9;background:var(--bg-tertiary)}.mismatch-item:last-child{border-bottom:none}.mismatch-device{color:#334155;color:var(--text-primary);font-weight:600;margin-bottom:.5rem}.mismatch-details{color:#64748b;color:var(--text-secondary);font-size:.875rem;line-height:1.4;margin-bottom:.75rem}.mismatch-actions{display:flex;gap:.5rem}.btn-sm{padding:.375rem .75rem}@media (max-width:768px){.notification-dropdown{max-width:350px;min-width:320px;right:-50px}.mismatch-item,.notification-header{padding:.75rem}}.help-dashboard{display:flex;flex-direction:column;height:100vh}.help-header{align-items:center;background:#fff;background:var(--bg-secondary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);box-shadow:0 1px 3px #0000001a;box-shadow:0 1px 3px var(--shadow-light);display:flex;gap:1rem;padding:1rem 2rem}.help-header h2{color:#1e293b;color:var(--text-accent);font-size:1.5rem;font-weight:600}.help-content{display:flex;flex:1 1;overflow:hidden}.help-sidebar{background:#f1f5f9;background:var(--bg-tertiary);border-right:1px solid #e2e8f0;border-right:1px solid var(--border-color);overflow-y:auto;padding:1.5rem;width:280px}.help-sidebar h3{border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border-color);color:#1e293b;color:var(--text-accent);font-size:1.125rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem}.help-nav{list-style:none}.help-nav li{margin-bottom:.5rem}.help-nav-btn{align-items:center;background:#0000;border:none;border-radius:.5rem;color:#334155;color:var(--text-primary);cursor:pointer;display:flex;font-weight:500;gap:.75rem;padding:.75rem;text-align:left;transition:all .2s ease;width:100%}.help-nav-btn:hover{background:#fff;background:var(--bg-secondary);color:#1e293b;color:var(--text-accent)}.help-nav-btn.active{background:linear-gradient(135deg,#14b8a6,#0d9488);background:var(--gradient-primary);color:#fff}.nav-icon{font-size:1.125rem;min-width:20px}.help-main{background:#f8fafc;background:var(--bg-primary);flex:1 1;overflow-y:auto;padding:2rem}.help-section h3{border-bottom:3px solid linear-gradient(135deg,#14b8a6,#0d9488);border-bottom:3px solid var(--gradient-primary);color:#1e293b;color:var(--text-accent);font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;padding-bottom:.75rem}.help-content-block{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 2px 4px #0000001a;box-shadow:0 2px 4px var(--shadow-light);padding:2rem}.help-content-block h4{font-size:1.25rem;margin-bottom:1rem}.help-content-block h4,.help-content-block h5{color:#1e293b;color:var(--text-accent);font-weight:600}.help-content-block h5{font-size:1.125rem;margin-bottom:.75rem}.help-content-block p{line-height:1.6}.help-content-block p,.help-content-block ul{color:#334155;color:var(--text-primary);margin-bottom:1rem}.help-content-block ul{margin-left:1.5rem}.help-content-block li{line-height:1.5;margin-bottom:.5rem}.step-guide{margin-top:1.5rem}.step{margin-bottom:1.5rem}.step-number{background:linear-gradient(135deg,#14b8a6,#0d9488);background:var(--gradient-primary);height:32px;margin-top:.25rem;width:32px}.step-content{flex:1 1}.feature-card{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;padding:1.25rem;text-align:center}.feature-card .feature-icon{display:block;font-size:2rem;margin-bottom:.75rem}.search-examples{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:1.5rem}.example-card{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border-left:4px solid linear-gradient(135deg,#14b8a6,#0d9488);border:1px solid var(--border-color);border-left:4px solid var(--gradient-primary);border-radius:.5rem;padding:1.25rem}.example-card h5{margin-bottom:.75rem}.example-card code,.example-card h5{color:#1e293b;color:var(--text-accent)}.example-card code{background:#f8fafc;background:var(--bg-primary);border-radius:.25rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;padding:.25rem .5rem}.help-note{background:#ffc1070d;background:var(--highlight-small);border:1px solid #cbd5e1;border:1px solid var(--border-color-light);border-left:4px solid #fbbf24;border-radius:.5rem;margin:1rem 0;padding:1rem}.help-subsection{border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);margin-top:2rem;padding-top:1.5rem}.help-subsection h4{color:#1e293b;color:var(--text-accent);margin-bottom:.75rem}.faq-list{margin-top:1rem}.faq-item{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border-left:4px solid linear-gradient(135deg,#14b8a6,#0d9488);border:1px solid var(--border-color);border-left:4px solid var(--gradient-primary);border-radius:.5rem;margin-bottom:1rem;padding:1.25rem}.faq-item h5{color:#1e293b;color:var(--text-accent);font-size:1rem;margin-bottom:.75rem}.faq-item p{margin-bottom:0}@media (max-width:768px){.help-content{flex-direction:column}.help-sidebar{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);border-right:none;max-height:200px;width:100%}.help-nav{display:flex;flex-wrap:wrap;gap:.5rem}.help-nav li{margin-bottom:0}.help-nav-btn{font-size:.875rem;padding:.5rem}.step{flex-direction:column;gap:.75rem}.search-examples{grid-template-columns:1fr}}.trial-countdown{align-items:center;animation:pulse-trial 2s ease-in-out infinite;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:6px;box-shadow:0 2px 4px #f59e0b4d;color:#fff;display:flex;font-size:.85rem;font-weight:600;gap:.5rem;padding:.4rem .8rem}.trial-countdown .trial-icon{font-size:1rem}.trial-countdown .trial-time{font-family:Courier New,monospace;font-size:.95rem;letter-spacing:.5px}.trial-countdown .trial-label{font-size:.75rem;opacity:.9;text-transform:uppercase}@keyframes pulse-trial{0%,to{box-shadow:0 2px 4px #f59e0b4d}50%{box-shadow:0 2px 12px #f59e0b80}}body.dark-mode .trial-countdown{background:linear-gradient(135deg,#b45309,#92400e)}.grid-view-container{padding:1rem}.grid-view-title{color:#334155;color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.grid-view-description{color:#64748b;color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem}.grid-view-controls{align-items:center;background:#fff;background:var(--bg-secondary);border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem}.grid-view-controls .filter-input-wrapper{flex:1 1;min-width:250px;position:relative}.grid-view-controls .filter-input{border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:6px;font-size:.9rem;padding:.5rem 2rem .5rem .75rem;width:100%}.grid-view-controls .filter-clear-btn{background:none;border:none;color:#64748b;color:var(--text-secondary);cursor:pointer;font-size:1.2rem;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.grid-view-actions{display:flex;gap:.5rem}.grid-view-controls .filter-status{color:#64748b;color:var(--text-secondary);font-size:.85rem;width:100%}.vlan-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.vlan-card{background:#f8fafc;background:var(--bg-primary);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:10px;box-shadow:0 2px 4px #0000000d;overflow:hidden;transition:all .2s ease}.vlan-card:hover{box-shadow:0 4px 12px #0000001a}.vlan-card.demo-vlan{border-style:dashed;opacity:.8}.vlan-card-header{align-items:center;cursor:pointer;display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem;transition:opacity .2s}.vlan-card-header:hover{opacity:.9}.vlan-card-title{flex:1 1;min-width:150px}.vlan-card-title .vlan-number{font-size:1rem;font-weight:700;margin-right:.5rem}.vlan-card-title .vlan-name{font-size:.9rem;opacity:.9}.vlan-card-meta{display:flex;font-size:.8rem;gap:1rem;opacity:.85}.expand-icon{font-size:.8rem;opacity:.7}.vlan-usage-bar{background:#fff;background:var(--bg-secondary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);height:20px;position:relative}.vlan-usage-fill{height:100%;transition:width .3s ease}.vlan-usage-text{color:#334155;color:var(--text-primary);font-size:.7rem;font-weight:600;left:50%;position:absolute;text-shadow:0 0 3px #f8fafc;text-shadow:0 0 3px var(--bg-primary);top:50%;transform:translate(-50%,-50%)}.vlan-card-actions{background:#fff;background:var(--bg-secondary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;gap:.5rem;padding:.5rem 1rem}.vlan-card-devices{max-height:300px;overflow-y:auto}.vlan-card-devices .no-devices{color:#64748b;color:var(--text-secondary);font-style:italic;padding:1rem;text-align:center}.vlan-card-devices .device-table{border-collapse:collapse;font-size:.85rem;width:100%}.vlan-card-devices .device-table th{background:#fff;background:var(--bg-secondary);font-weight:600;padding:.5rem;position:-webkit-sticky;position:sticky;text-align:left;top:0}.vlan-card-devices .device-table td,.vlan-card-devices .device-table th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color)}.vlan-card-devices .device-table td{padding:.4rem .5rem}.vlan-card-devices .device-row{cursor:pointer;transition:background .15s}.vlan-card-devices .device-row:hover{background:#fff;background:var(--bg-secondary)}.vlan-card-devices .device-row.mismatch{background:#ef44441a}.vlan-card-devices .device-ip{font-family:Courier New,monospace;font-size:.8rem}.vlan-card-devices .device-name{font-weight:500}.grid-view-summary,.vlan-card-devices .device-owner{color:#64748b;color:var(--text-secondary)}.grid-view-summary{background:#fff;background:var(--bg-secondary);border-radius:8px;margin-top:1.5rem;padding:1rem;text-align:center}.view-toggle{display:flex;gap:1rem;margin-bottom:1.5rem}.view-toggle-btn{background:#fff;background:var(--bg-secondary);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:10px;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2rem;transition:all .2s}.view-toggle-btn:hover{background:#f8fafc;background:var(--bg-primary)}.view-toggle-btn.active{background:#14b8a6;background:var(--accent-color-light);border-color:#14b8a6;border-color:var(--accent-color-light);box-shadow:0 2px 4px #14b8a64d;color:#fff}@media (max-width:768px){.vlan-grid{grid-template-columns:1fr}.grid-view-controls{align-items:stretch;flex-direction:column}.grid-view-actions{justify-content:center}}.admin-console-page{margin:0 auto;max-width:1400px;padding:1.5rem}.admin-console-page .page-header{align-items:center;border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border-color);display:flex;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem}.admin-console-page .page-header h2{flex:1 1;font-size:1.5rem;margin:0}.admin-stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:2rem}.stat-card{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;padding:1.25rem;text-align:center}.stat-card h3{color:var(--primary-color);font-size:2rem;font-weight:700;margin:0 0 .25rem}.stat-card p{color:#64748b;color:var(--text-secondary);font-size:.85rem;margin:0}.admin-section{background:#f8fafc;background:var(--bg-primary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;margin-bottom:1.5rem;padding:1.25rem}.admin-section h3{color:#334155;color:var(--text-primary);font-size:1.1rem;margin:0 0 1rem}.table-responsive{overflow-x:auto}.admin-table{background:#f8fafc;background:var(--bg-primary);border-collapse:collapse;font-size:.875rem;width:100%}.admin-table td,.admin-table th{border:1px solid #e2e8f0;border:1px solid var(--border-color);padding:.75rem .5rem;text-align:left}.admin-table th{color:#334155;color:var(--text-primary);font-weight:600;white-space:nowrap}.admin-table tbody tr:hover,.admin-table th{background:#fff;background:var(--bg-secondary)}.admin-table tbody tr:nth-child(2n){background:#00000005}.dark-mode .admin-table tbody tr:nth-child(2n){background:#ffffff05}.badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .5rem;text-transform:capitalize}.badge-admin{background:#7c3aed;color:#fff}.badge-manager{background:#2563eb;color:#fff}.badge-editor{background:#059669;color:#fff}.badge-viewer{background:#6b7280;color:#fff}.badge-active{background:#22c55e;color:#fff}.badge-suspended{background:#ef4444;color:#fff}.badge-inactive{background:#9ca3af;color:#fff}.badge-premium{background:#f59e0b;color:#fff}.badge-enterprise{background:#8b5cf6;color:#fff}.badge-free{background:#6b7280;color:#fff}.badge-licensed{background:#22c55e;color:#fff}.badge-unlicensed{background:#ef4444;color:#fff}.btn-sm{font-size:.75rem;padding:.25rem .5rem}.btn-success{background:#22c55e;border:none;color:#fff}.btn-warning{background:#f59e0b;border:none;color:#fff}.btn-danger{background:#ef4444;border:none}.btn-danger:disabled{background:#fca5a5;cursor:not-allowed}.no-data{font-style:italic;padding:2rem}.admin-console-page .loading,.no-data{color:#64748b;color:var(--text-secondary);text-align:center}.admin-console-page .loading{padding:3rem}.admin-section input[type=email],.admin-section input[type=number],.admin-section input[type=password],.admin-section input[type=text],.admin-section select{background:#f8fafc;background:var(--bg-primary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:4px;color:#334155;color:var(--text-primary);font-size:.875rem;padding:.5rem}.admin-section input:focus,.admin-section select:focus{border-color:var(--primary-color);outline:none}.license-key{max-width:200px;overflow:hidden;text-overflow:ellipsis}.csv-import-container{background:#f8fafc;background:var(--bg-primary);border-radius:8px;margin:0 auto;max-width:700px}.csv-import-content,.csv-import-header{padding:1rem}.import-step{background:#fff;background:var(--bg-secondary);border-radius:8px;margin-bottom:1.5rem;padding:1rem}.import-step h4{color:#334155;color:var(--text-primary);margin:0 0 .5rem}.import-step p{color:#64748b;color:var(--text-secondary);font-size:.9rem;margin:0 0 .75rem}.file-input{background:#f8fafc;background:var(--bg-primary);border-radius:6px;display:block}.file-input:hover{border-color:var(--primary-color)}.import-error{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;padding:.75rem 1rem}.dark-mode .import-error{background:#dc26261a;border-color:#dc26264d}.preview-table-container{margin-bottom:1rem;max-height:250px;overflow-y:auto}.preview-table{font-size:.85rem}.preview-table td,.preview-table th{border:1px solid #e2e8f0;border:1px solid var(--border-color);padding:.5rem}.preview-table th{background:#fff;background:var(--bg-secondary);position:-webkit-sticky;position:sticky;top:0}.preview-note{color:#64748b;color:var(--text-secondary);font-size:.85rem;font-style:italic}.import-actions{gap:.5rem;margin-top:1rem}.import-results{border-radius:6px;padding:1rem}.import-results.success{background:#f0fdf4;border:1px solid #bbf7d0}.import-results.has-errors{background:#fffbeb;border:1px solid #fde68a}.dark-mode .import-results.success{background:#22c55e1a;border-color:#22c55e4d}.dark-mode .import-results.has-errors{background:#f59e0b1a;border-color:#f59e0b4d}.error-list{font-size:.85rem}.error-item{color:#dc2626}.column-reference{background:#f8fafc;background:var(--bg-primary);border:1px solid #e2e8f0;border:1px solid var(--border-color)}.reference-table{border-collapse:collapse;font-size:.85rem;width:100%}.reference-table td,.reference-table th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:.4rem .5rem;text-align:left}.reference-table th{background:#fff;background:var(--bg-secondary);font-weight:600}.csv-import-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.csv-import-overlay .csv-import-container{box-shadow:0 25px 50px -12px #00000040;max-height:90vh;overflow-y:auto}.devices-header-actions{display:flex;gap:.5rem}.import-csv-btn{background:#8b5cf6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;padding:.4rem .75rem;transition:background-color .2s}.import-csv-btn:hover{background:#7c3aed}body.dark-mode .ip-used-warning{background-color:#dc262626;border-color:#dc262666;color:#fca5a5}body.dark-mode .ip-input-wrapper{background:#fff;background:var(--input-bg);border-color:#e2e8f0;border-color:var(--border-color)}body.dark-mode .ip-prefix{border-right-color:#e2e8f0;border-right-color:var(--border-color)}body.dark-mode .ip-dropdown-toggle,body.dark-mode .ip-prefix{background:#f1f5f9;background:var(--bg-tertiary);color:#64748b;color:var(--text-secondary)}body.dark-mode .ip-dropdown-toggle{border-left-color:#e2e8f0;border-left-color:var(--border-color)}body.dark-mode .ip-dropdown-toggle:hover{background:#e2e8f0;background:var(--border-color)}body.dark-mode .ip-dropdown{border-color:#e2e8f0;border-color:var(--border-color);box-shadow:0 10px 25px #0006}body.dark-mode .ip-dropdown-header{background:#f1f5f9;background:var(--bg-tertiary);border-bottom-color:#e2e8f0;border-bottom-color:var(--border-color)}body.dark-mode .ip-filter-input{background:#fff;background:var(--input-bg);border-color:#e2e8f0;border-color:var(--border-color);color:#334155;color:var(--input-text)}body.dark-mode .ip-filter-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}body.dark-mode .ip-grid-item{background:#fff;background:var(--bg-secondary);border-color:#e2e8f0;border-color:var(--border-color);color:#334155;color:var(--text-primary)}body.dark-mode .ip-grid-item.available{background:#10b98126;border-color:#10b98166;color:#6ee7b7}body.dark-mode .ip-grid-item.available:hover{background:#10b98140;border-color:#10b98199}body.dark-mode .ip-grid-item.used{background:#dc262626;border-color:#dc26264d;color:#fca5a5}body.dark-mode .ip-grid-item.selected{background:#3b82f6;border-color:#2563eb;color:#fff}body.dark-mode .ip-no-results{color:#64748b;color:var(--text-secondary)}body.dark-mode .ip-more-available{background:#f59e0b26;border-top-color:#f59e0b4d;color:#fcd34d}body.dark-mode .ip-input-field.error{background-color:#dc26261a}body.dark-mode .stat-free{color:#6ee7b7}body.dark-mode .stat-used{color:#fca5a5}body.dark-mode .stat-total{color:#64748b;color:var(--text-secondary)}body.dark-mode .device-table th{background:#f1f5f9;background:var(--bg-tertiary)}body.dark-mode .device-table td{border-bottom-color:#e2e8f0;border-bottom-color:var(--border-color)}body.dark-mode .device-table tr:hover{background:#f1f5f9;background:var(--bg-tertiary)}body.dark-mode .vlan-card{background:#fff;background:var(--bg-secondary);border-color:#e2e8f0;border-color:var(--border-color)}body.dark-mode .vlan-header{background:linear-gradient(135deg,#1e293b,#334155);border-bottom-color:#e2e8f0;border-bottom-color:var(--border-color)}body.dark-mode .vlan-header:hover{background:linear-gradient(135deg,#334155,#475569)}body.dark-mode .vlan-dhcp-info,body.dark-mode .vlan-network-info{background:#f1f5f9;background:var(--bg-tertiary);border-color:#e2e8f0;border-color:var(--border-color)}body.dark-mode .vlan-dhcp-info h5{color:#fcd34d}body.dark-mode .dhcp-detail .label{color:#fbbf24}body.dark-mode .dhcp-detail .value{color:#fde68a}body.dark-mode input:not([type=checkbox]):not([type=radio]),body.dark-mode select,body.dark-mode textarea{background:#fff;background:var(--input-bg);border-color:#e2e8f0;border-color:var(--border-color);color:#334155;color:var(--input-text)}body.dark-mode input:focus,body.dark-mode select:focus,body.dark-mode textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}body.dark-mode input::placeholder,body.dark-mode textarea::placeholder{color:#64748b;color:var(--text-secondary)}body.dark-mode select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%239ca3af' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}body.dark-mode .btn-secondary{background:#f1f5f9;background:var(--bg-tertiary);border-color:#e2e8f0;border-color:var(--border-color);color:#334155;color:var(--text-primary)}body.dark-mode .btn-secondary:hover{background:#e2e8f0;background:var(--border-color)}body.dark-mode .btn-outline{border-color:#e2e8f0;border-color:var(--border-color);color:#334155;color:var(--text-primary)}body.dark-mode .btn-outline:hover{background:#f1f5f9;background:var(--bg-tertiary)}body.dark-mode .alert-error,body.dark-mode .error-message{background:#dc262626;border-color:#dc262666;color:#fca5a5}body.dark-mode .alert-success,body.dark-mode .success-message{background:#10b98126;border-color:#10b98166;color:#6ee7b7}body.dark-mode .alert-warning,body.dark-mode .warning-message{background:#f59e0b26;border-color:#f59e0b66;color:#fcd34d}.asset-detail-modal{background:#fff;background:var(--bg-secondary);border-radius:12px;display:flex;flex-direction:column;max-height:90vh;max-width:780px;overflow:hidden;width:95%}.asset-detail-header{align-items:center;background:#f1f5f9;background:var(--bg-tertiary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem 1.5rem}.asset-detail-title{align-items:center;display:flex;gap:.75rem}.asset-icon{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border-radius:10px;color:#fff;display:flex;height:40px;justify-content:center;width:40px}.asset-title{color:#10b981;font-size:1.1rem;font-weight:600;margin:0}.asset-subtitle{color:#64748b;color:var(--text-secondary);display:block;font-size:.75rem}.asset-detail-right{align-items:center;display:flex;gap:1rem}.asset-owner-display{align-items:center;display:flex;gap:.5rem}.owner-label{color:#64748b;color:var(--text-secondary);font-size:.7rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.owner-value{color:#334155;color:var(--text-primary);font-size:.85rem;font-weight:600}.online-status{align-items:center;border-radius:20px;display:flex;font-size:.75rem;font-weight:600;gap:.4rem;padding:.35rem .75rem}.online-status.online{background:#10b98126;border:1px solid #10b9814d;color:#10b981}.online-status.offline{background:#6b728026;border:1px solid #6b72804d;color:#6b7280}.online-status.reserved{background:#f59e0b26;border:1px solid #f59e0b4d;color:#f59e0b}.online-status.disabled{background:#ef444426;border:1px solid #ef44444d;color:#ef4444}.status-dot{background:currentColor;border-radius:50%;height:8px;width:8px}.ping-section-header{align-items:center;display:flex;gap:.5rem}.ping-btn-modal{align-items:center;background:#fff;border:1px solid #667eea;border-radius:6px;color:#667eea;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.4rem;padding:.4rem .75rem;transition:all .2s ease}.ping-btn-modal:hover:not(:disabled){background:#667eea;color:#fff}.ping-btn-modal:disabled{cursor:not-allowed;opacity:.6}.ping-btn-modal svg{height:14px;width:14px}.ping-status-modal{border-radius:4px;font-size:.75rem;font-weight:600;padding:.3rem .6rem}.ping-status-modal.pinging{background:#fff3cd;color:#856404}.ping-status-modal.online{background:#d4edda;color:#155724}.ping-status-modal.error,.ping-status-modal.offline{background:#f8d7da;color:#721c24}body.dark-mode .ping-btn-modal{background:#0000;border-color:#818cf8;color:#818cf8}body.dark-mode .ping-btn-modal:hover:not(:disabled){background:#818cf8;color:#1e1e2e}body.dark-mode .ping-status-modal.pinging{background:#fff3cd33;color:#ffc107}body.dark-mode .ping-status-modal.online{background:#10b98133;color:#10b981}body.dark-mode .ping-status-modal.error,body.dark-mode .ping-status-modal.offline{background:#ef444433;color:#f87171}.asset-detail-content{flex:1 1;max-height:calc(90vh - 140px);overflow-y:auto;padding:.75rem 1rem}.asset-view-grid{grid-gap:.4rem 1.5rem;display:grid;gap:.4rem 1.5rem;grid-template-columns:1fr 1fr}.asset-field{align-items:center;border-bottom:1px solid #0000000d;display:flex;gap:.5rem;padding:.3rem 0}.asset-field.full-width{grid-column:1/-1}.asset-field-group{display:flex;gap:1.5rem}.asset-field.half{border-bottom:none;flex:1 1}.field-icon{align-items:center;display:flex;font-size:.8rem;height:20px;justify-content:center;width:20px}.field-icon,.field-label{color:#64748b;color:var(--text-secondary);flex-shrink:0}.field-label{font-size:.7rem;min-width:70px}.field-value{color:#334155;color:var(--text-primary);font-size:.8rem;font-weight:500;text-align:left}.field-value.monospace{font-family:SF Mono,Monaco,Inconsolata,Fira Mono,monospace;font-size:.8rem}.field-value.notes-value{background:#00000008;border-radius:6px;flex:1 1;font-size:.8rem;margin-left:0;padding:.5rem .75rem;text-align:left}.field-badge{border-radius:4px;font-size:.7rem;font-weight:600;letter-spacing:.3px;padding:.25rem .6rem;text-transform:uppercase}.badge-static{background:#dbeafe;color:#1d4ed8}.badge-dhcp{background:#fef3c7;color:#b45309}.badge-trunk{background:#d1fae5;color:#047857}.badge-access{background:#e0e7ff;color:#4338ca}.badge-yes{background:#d1fae5;color:#047857}.badge-no{background:#f3f4f6;color:#6b7280}.vlan-id-badge{border-radius:4px;color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .6rem}.asset-form-grid{grid-gap:.5rem 1rem;display:grid;gap:.5rem 1rem;grid-template-columns:1fr 1fr}.form-field{display:flex;flex-direction:column;gap:.2rem}.form-field.full-width{grid-column:1/-1}.form-field label{color:#64748b;color:var(--text-secondary);font-size:.7rem;font-weight:500}.form-field input,.form-field select,.form-field textarea{background:#fff;background:var(--input-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:4px;color:#334155;color:var(--input-text);font-size:.8rem;padding:.35rem .5rem;transition:border-color .2s,box-shadow .2s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b98126;outline:none}.form-field input.error{border-color:#ef4444}.form-field-group{display:flex;gap:1rem}.form-field.half{flex:1 1}.readonly-value{color:#64748b;color:var(--text-secondary);font-family:SF Mono,Monaco,monospace;font-size:.85rem;padding:.5rem 0}.vlan-badge-display{padding:.25rem 0}.vlan-number-badge{background:#3b82f6;border-radius:4px;color:#fff;font-size:.85rem;font-weight:700;padding:.3rem .75rem}.button-group{background:#f1f5f9;background:var(--bg-tertiary);border-radius:6px;display:flex;gap:.25rem;padding:.2rem}.toggle-btn{background:#0000;border:none;border-radius:4px;color:#64748b;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:.75rem;font-weight:500;padding:.4rem .75rem;transition:all .2s}.toggle-btn:hover{background:#0000000d}.toggle-btn.active{background:#fff;background:var(--card-bg,#fff);box-shadow:0 1px 3px #0000001a;color:#334155;color:var(--text-primary)}.toggle-btn.online-toggle.active.online{background:#10b981;color:#fff}.toggle-btn.offline-toggle.active.offline{background:#6b7280;color:#fff}.asset-detail-footer{background:#f1f5f9;background:var(--bg-tertiary);border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);justify-content:space-between;padding:.75rem 1.5rem}.asset-detail-footer,.footer-left{align-items:center;display:flex}.last-updated{color:#64748b;color:var(--text-secondary);font-size:.7rem}.footer-right{align-items:center;display:flex;gap:.5rem}.nav-buttons{display:flex;gap:.25rem;margin-right:.75rem}.nav-btn{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:4px;color:#64748b;color:var(--text-secondary);cursor:pointer;font-size:.75rem;padding:.4rem .75rem;transition:all .2s}.nav-btn:hover{background:#f1f5f9;background:var(--bg-tertiary);border-color:#10b981;color:#10b981}.btn-edit{align-items:center;background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:6px;color:#334155;color:var(--text-primary);cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.35rem;padding:.5rem 1rem;transition:all .2s}.btn-edit:hover{border-color:#10b981;color:#10b981}.btn-delete{align-items:center;background:#ef44441a;border:1px solid #ef44444d;border-radius:6px;color:#ef4444;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.35rem;padding:.5rem 1rem;transition:all .2s}.btn-delete:hover{background:#ef4444;color:#fff}.btn-delete:disabled{cursor:not-allowed;opacity:.5}.asset-detail-header .close-btn{align-items:center;background:#0000000d;border:none;border-radius:6px;color:#64748b;color:var(--text-secondary);cursor:pointer;display:flex;height:32px;justify-content:center;margin-left:.5rem;transition:all .2s;width:32px}.asset-detail-header .close-btn:hover{background:#ef44441a;color:#ef4444}body.dark-mode .asset-detail-header .close-btn{background:#ffffff0d}body.dark-mode .asset-detail-header .close-btn:hover{background:#ef444433}.status-toggle-wrapper{align-items:center;display:flex;gap:.75rem}.status-label{color:#64748b;color:var(--text-secondary);font-size:.8rem;transition:color .2s}.status-label.active{color:#334155;color:var(--text-primary);font-weight:600}.toggle-switch{display:inline-block;height:26px;position:relative;width:50px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#6b7280;border-radius:26px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:#fff;background-color:var(--card-bg,#fff);border-radius:50%;bottom:3px;box-shadow:0 2px 4px #0003;content:"";height:20px;left:3px;position:absolute;transition:.3s;width:20px}.toggle-switch input:checked+.toggle-slider{background-color:#10b981}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(24px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #10b98133}.edit-actions,.view-actions{align-items:center;display:flex;gap:.5rem}.action-btn{align-items:center;border:1px solid;border-radius:6px;display:flex;font-size:.8rem;font-weight:500;gap:.35rem;padding:.5rem 1rem}.action-btn svg{flex-shrink:0}.action-btn-primary{background:#10b981;border-color:#10b981;color:#fff}.action-btn-primary:hover{background:#059669;border-color:#059669}.action-btn-primary:disabled{cursor:not-allowed;opacity:.6}.action-btn-secondary{background:#fff;background:var(--bg-secondary);border-color:#e2e8f0;border-color:var(--border-color);color:#334155;color:var(--text-primary)}.action-btn-secondary:hover{background:#f1f5f9;background:var(--bg-tertiary)}.action-btn-secondary:disabled{cursor:not-allowed;opacity:.6}.action-btn-edit{background:#fff;background:var(--bg-secondary);border-color:#e2e8f0;border-color:var(--border-color);color:#334155;color:var(--text-primary)}.action-btn-edit:hover{border-color:#10b981;color:#10b981}.action-btn-danger{background:#ef44441a;border-color:#ef44444d;color:#ef4444}.action-btn-danger:hover{background:#ef4444;border-color:#ef4444;color:#fff}.action-btn-danger:disabled{cursor:not-allowed;opacity:.5}body.dark-mode .action-btn-edit,body.dark-mode .action-btn-secondary{background:#ffffff0d}body.dark-mode .action-btn-edit:hover{border-color:#34d399;color:#34d399}body.dark-mode .action-btn-danger{background:#ef444426}.vlan-move-section{background:#f59e0b14;border:1px solid #f59e0b4d;border-radius:6px;margin-top:.75rem;padding:.75rem}.move-section-header{align-items:center;display:flex;gap:.4rem;margin-bottom:.3rem}.move-icon{color:#f59e0b}.move-section-header h4{color:#b45309;font-size:.8rem;font-weight:600;margin:0}.move-description{color:#64748b;color:var(--text-secondary);font-size:.75rem;margin-bottom:.5rem}.move-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.vlan-select-large{background:#fff;background:var(--input-bg);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:6px;color:#334155;color:var(--input-text);flex:1 1;font-size:.85rem;min-width:250px;padding:.6rem .75rem}.vlan-select-large:focus{border-color:#f59e0b;outline:none}.move-btn{align-items:center;background:#f59e0b;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:.5rem;padding:.6rem 1.25rem;transition:all .2s}.move-btn:hover:not(:disabled){background:#d97706}.move-btn:disabled{cursor:not-allowed;opacity:.5}body.dark-mode .vlan-move-section{background:#f59e0b1a;border-color:#f59e0b66}body.dark-mode .move-section-header h4{color:#fbbf24}.vlan-select{border-radius:6px;flex:1 1;font-size:.85rem;min-width:200px;padding:.5rem .75rem}@media (max-width:640px){.asset-detail-modal{border-radius:0;max-width:100%;width:100%}.asset-detail-header{align-items:flex-start;flex-direction:column;gap:.75rem}.asset-detail-right{justify-content:space-between;width:100%}.asset-form-grid,.asset-view-grid{grid-template-columns:1fr}.asset-field-group,.form-field-group{flex-direction:column;gap:.75rem}.footer-right{flex-wrap:wrap}.nav-buttons{justify-content:center;margin-bottom:.5rem;margin-right:0;width:100%}}body.dark-mode .asset-detail-modal{background:#fff;background:var(--modal-bg)}body.dark-mode .asset-detail-footer,body.dark-mode .asset-detail-header{background:#0003;border-color:#e2e8f0;border-color:var(--border-color)}body.dark-mode .asset-icon{background:linear-gradient(135deg,#059669,#047857)}body.dark-mode .asset-title{color:#34d399}body.dark-mode .online-status.online{background:#10b98133;border-color:#10b98166;color:#34d399}body.dark-mode .online-status.offline{background:#6b728033;border-color:#6b728066;color:#9ca3af}body.dark-mode .online-status.reserved{background:#f59e0b33;border-color:#f59e0b66;color:#fbbf24}body.dark-mode .online-status.disabled{background:#ef444433;border-color:#ef444466;color:#f87171}body.dark-mode .asset-field{border-bottom-color:#ffffff0d}body.dark-mode .field-value.notes-value{background:#ffffff0d}body.dark-mode .badge-static{background:#3b82f633;color:#60a5fa}body.dark-mode .badge-dhcp{background:#f59e0b33;color:#fcd34d}body.dark-mode .badge-trunk{background:#10b98133;color:#34d399}body.dark-mode .badge-access{background:#6366f133;color:#a5b4fc}body.dark-mode .badge-yes{background:#10b98133;color:#34d399}body.dark-mode .badge-no{background:#6b728033;color:#9ca3af}body.dark-mode .button-group{background:#0000004d}body.dark-mode .toggle-btn.active{background:#fff;background:var(--bg-secondary);color:#334155;color:var(--text-primary)}body.dark-mode .btn-edit{background:#ffffff0d;border-color:#e2e8f0;border-color:var(--border-color)}body.dark-mode .btn-edit:hover{border-color:#34d399;color:#34d399}body.dark-mode .btn-delete{background:#ef444426;border-color:#ef44444d}body.dark-mode .nav-btn{background:#fff;background:var(--bg-secondary)}body.dark-mode .nav-btn:hover{border-color:#34d399;color:#34d399}body.dark-mode .device-modal-overlay,body.dark-mode .modal-overlay{background:#000000bf}body.dark-mode .device-modal,body.dark-mode .modal{background:#fff;background:var(--modal-bg);box-shadow:0 25px 50px -12px #00000080}body.dark-mode .modal-header{border-bottom-color:#e2e8f0;border-bottom-color:var(--border-color)}body.dark-mode .modal-footer{background:#f1f5f9;background:var(--bg-tertiary);border-top-color:#e2e8f0;border-top-color:var(--border-color)}body.dark-mode .delete-confirm-dialog{background:#fff;background:var(--modal-bg);box-shadow:0 25px 50px -12px #00000080}body.dark-mode .delete-confirm-dialog h3{color:#334155;color:var(--text-primary)}body.dark-mode .delete-confirm-dialog p{color:#64748b;color:var(--text-secondary)}body.dark-mode .status-badge.active{background:#10b98133;color:#6ee7b7}body.dark-mode .status-badge.inactive{background:#6b728033;color:#9ca3af}body.dark-mode .status-badge.pending{background:#f59e0b33;color:#fcd34d}body.dark-mode .tab-btn{border-bottom-color:#0000;color:#64748b;color:var(--text-secondary)}body.dark-mode .tab-btn:hover{background:#f1f5f9;background:var(--bg-tertiary);color:#334155;color:var(--text-primary)}body.dark-mode .tab-btn.active{border-bottom-color:#3b82f6;color:#60a5fa}body.dark-mode .search-input{background:#fff;background:var(--input-bg);border-color:#e2e8f0;border-color:var(--border-color);color:#334155;color:var(--input-text)}body.dark-mode .search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}body.dark-mode .tooltip,body.dark-mode [data-tooltip]:hover:after{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);box-shadow:0 10px 25px #0006;color:#334155;color:var(--text-primary)}body.dark-mode ::-webkit-scrollbar{height:8px;width:8px}body.dark-mode ::-webkit-scrollbar-track{background:#f8fafc;background:var(--bg-primary)}body.dark-mode ::-webkit-scrollbar-thumb{background:#e2e8f0;background:var(--border-color);border-radius:4px}body.dark-mode ::-webkit-scrollbar-thumb:hover{background:#cbd5e1;background:var(--border-color-light)}body.dark-mode code,body.dark-mode pre{background:#f1f5f9;background:var(--bg-tertiary);color:#e879f9}body.dark-mode a{color:#60a5fa}body.dark-mode a:hover{color:#93c5fd}body.dark-mode .loading-spinner{border-color:#e2e8f0;border-color:var(--border-color);border-top-color:#3b82f6}body.dark-mode .empty-state{color:#64748b;color:var(--text-secondary)}body.dark-mode .empty-state h3{color:#334155;color:var(--text-primary)}body.dark-mode .chart-card{background:#fff;background:var(--bg-secondary);border-color:#e2e8f0;border-color:var(--border-color)}body.dark-mode .chart-card h4{color:#334155;color:var(--text-primary)}body.dark-mode .chart-description,body.dark-mode .network-detail .label{color:#64748b;color:var(--text-secondary)}body.dark-mode .cidr-display,body.dark-mode .network-detail .value{color:#334155;color:var(--text-primary)}body.dark-mode .cidr-display{background:#f1f5f9;background:var(--bg-tertiary)}body.dark-mode .vlan-title h3{color:#334155;color:var(--text-primary)}.pro-badge{background:linear-gradient(135deg,#8b5cf6,#a855f7);display:inline-block;font-weight:700;letter-spacing:.5px}.ip-map-view-container{display:flex;flex-direction:column;min-height:500px}.ip-map-vlan-selector{align-items:center;background:#fff;background:var(--bg-secondary);border-radius:.5rem;display:flex;gap:.75rem;margin-bottom:.5rem;padding:.75rem 1rem}.ip-map-vlan-selector label{color:#64748b;color:var(--text-secondary);font-size:.85rem;font-weight:500}.ip-map-vlan-selector select{background:#fff;background:var(--input-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);flex:1 1;font-size:.9rem;max-width:300px;padding:.5rem .75rem}.ip-map-container{background:#f8fafc;background:var(--bg-primary);display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:.5rem}.ip-map-container.embedded{height:auto;padding:0}.ip-map-header{align-items:center;background:#fff;background:var(--bg-secondary);border-radius:.5rem;box-shadow:0 2px 4px #0000001a;box-shadow:0 2px 4px var(--shadow-light);display:flex;flex-shrink:0;gap:.75rem;margin-bottom:.35rem;padding:.4rem .75rem}.ip-map-back-btn{align-items:center;background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--text-primary);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.ip-map-back-btn:hover{background:#e2e8f0;background:var(--border-color)}.ip-map-vlan-icon{align-items:center;border-radius:.5rem;color:#fff;display:flex;height:40px;justify-content:center;width:40px}.ip-map-title-section{flex:1 1}.ip-map-title{color:#334155;color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.ip-map-subtitle{color:#64748b;color:var(--text-secondary);font-size:.85rem}.ip-map-legend{background:#fff;background:var(--bg-secondary);border-radius:.5rem;display:flex;flex-shrink:0;gap:1.5rem;margin-bottom:.35rem;padding:.35rem .75rem}.legend-item{align-items:center;color:#64748b;color:var(--text-secondary);display:flex;font-size:.85rem;gap:.5rem}.legend-dot{border-radius:3px;height:12px;width:12px}.ip-map-content{display:flex;flex:1 1;gap:.5rem;min-height:0}.ip-grid-wrapper{background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 2px 4px #0000001a;box-shadow:0 2px 4px var(--shadow-light);display:flex;flex:1 1;flex-direction:column;padding:.5rem;position:relative}.ip-grid-loading{align-items:center;color:#64748b;color:var(--text-secondary);display:flex;height:200px;justify-content:center}.ip-grid-wrapper .ip-grid{grid-gap:3px;display:grid;gap:3px;grid-template-columns:repeat(20,38px);padding:0}.ip-cell{align-items:center;border:1px solid #00000014;border-radius:4px;color:#374151;cursor:pointer;display:flex;font-size:.75rem;font-weight:500;height:38px;justify-content:center;transition:all .1s ease;-webkit-user-select:none;user-select:none;width:38px}.ip-cell.hovered,.ip-cell:hover{box-shadow:0 2px 8px #00000040;font-weight:700;transform:scale(1.1);z-index:10}.ip-cell.has-device{color:#fff;font-weight:600;text-shadow:0 1px 2px #0003}.ip-cell.selected{outline:2px solid #3b82f6;outline-offset:1px;transform:scale(1.08);z-index:5}.ip-cell.ip-error{animation:pulse-error 1.5s infinite;border:3px solid #ef4444!important}@keyframes pulse-error{0%,to{box-shadow:0 0 0 0 #ef444466}50%{box-shadow:0 0 0 4px #ef444433}}.ip-hover-tooltip{background:#f1f5f9;background:var(--bg-tertiary);border-radius:.5rem;bottom:20px;box-shadow:0 4px 12px #00000026;box-shadow:0 4px 12px var(--shadow-medium);color:#334155;color:var(--text-primary);font-size:.85rem;left:50%;padding:.5rem 1rem;pointer-events:none;position:fixed;transform:translateX(-50%);z-index:100}.ip-details-panel{background:#fff;background:var(--bg-secondary);border-radius:.5rem;box-shadow:0 2px 4px #0000001a;box-shadow:0 2px 4px var(--shadow-light);display:flex;flex-direction:column;flex-shrink:0;min-width:220px;padding:.75rem;width:220px}.ip-details-empty{align-items:center;color:#64748b;color:var(--text-secondary);display:flex;flex-direction:column;height:100%;justify-content:center;text-align:center}.ip-details-empty p{font-size:.85rem;margin-top:1rem}.ip-details-status{align-items:center;border-radius:.5rem;display:flex;font-size:.85rem;font-weight:500;gap:.5rem;margin-bottom:1rem;padding:.5rem .75rem}.ip-details-status.active{background:#22c55e26;color:#22c55e}.ip-details-status.disabled{background:#ef444426;color:#ef4444}.ip-details-status.reserved{background:#f59e0b26;color:#f59e0b}.ip-details-status .status-dot{background:currentColor;border-radius:50%;height:8px;width:8px}.ip-details-grid{display:flex;flex:1 1;flex-direction:column;gap:.75rem}.ip-detail-row{gap:.5rem}.ip-detail-icon,.ip-detail-row{align-items:center;display:flex}.ip-detail-icon{justify-content:center;width:24px}.ip-detail-icon,.ip-detail-label{color:#64748b;color:var(--text-secondary)}.ip-detail-label{font-size:.75rem;width:50px}.ip-detail-value{color:#334155;color:var(--text-primary);flex:1 1;font-size:.85rem;font-weight:500;text-align:left}.ip-details-link-btn{background:linear-gradient(135deg,#14b8a6,#0d9488);background:var(--gradient-primary);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;margin-top:auto;padding:.75rem;transition:opacity .2s ease}.ip-details-link-btn:hover{opacity:.9}body.dark-mode .ip-cell{border-color:#4b5563}body.dark-mode .ip-cell.has-device{color:#fff}body.dark-mode .ip-cell:not(.has-device){background-color:#374151!important;color:#9ca3af!important}body.dark-mode .view-toggle-btn{background:#374151;border-color:#4b5563;color:#e5e7eb}body.dark-mode .view-toggle-btn:hover{background:#4b5563;border-color:#6b7280}body.dark-mode .view-toggle-btn.active{background:#0d9488;background:var(--accent-color);border-color:#0d9488;border-color:var(--accent-color);color:#fff}.ip-map-overlay{background:#f8fafc;background:var(--bg-primary);bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:1000}@media (max-width:768px){.ip-map-header{flex-wrap:wrap}.ip-map-legend{flex-wrap:wrap;gap:.75rem;margin-left:0;margin-top:.5rem;width:100%}.ip-map-content{flex-direction:column}.ip-details-panel{width:100%}}.analytics-vlan-select{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.analytics-vlan-select label{color:#64748b;color:var(--text-secondary);font-size:.85rem}.analytics-vlan-select select{background:#fff;background:var(--input-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);font-size:.9rem;min-width:200px;padding:.5rem .75rem}.capacity-charts-row{display:flex;flex-wrap:wrap;gap:1rem}.occupancy-chart-container{background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 2px 4px #0000001a;box-shadow:0 2px 4px var(--shadow-light);flex:1 1;max-width:320px;min-width:280px;padding:1rem}.occupancy-header h4{color:#334155;color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0 0 .25rem}.occupancy-subtitle{color:#64748b;color:var(--text-secondary);font-size:.75rem}.donut-chart-wrapper{display:flex;justify-content:center;padding:1rem 0}.donut-chart{height:140px;width:140px}.donut-chart,.donut-hole{align-items:center;border-radius:50%;display:flex;justify-content:center}.donut-hole{background:#fff;background:var(--bg-secondary);flex-direction:column;height:90px;width:90px}.donut-percent{color:#334155;color:var(--text-primary);font-size:1.5rem;font-weight:700;line-height:1}.donut-label{color:#64748b;color:var(--text-secondary);font-size:.7rem;margin-top:.25rem}.occupancy-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;justify-content:center}.legend-row{align-items:center;display:flex;gap:.35rem}.legend-color{border-radius:2px;height:10px;width:10px}.legend-text{color:#64748b;color:var(--text-secondary);font-size:.7rem}.growth-chart-container{background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 2px 4px #0000001a;box-shadow:0 2px 4px var(--shadow-light);flex:1 1;min-width:300px;padding:1rem}.growth-header h4{color:#334155;color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0 0 .25rem}.growth-subtitle{color:#64748b;color:var(--text-secondary);font-size:.75rem}.growth-chart-svg{height:auto;margin-top:.5rem;width:100%}.chart-loading,.chart-placeholder{align-items:center;color:#64748b;color:var(--text-secondary);display:flex;font-size:.85rem;height:150px;justify-content:center}@media (max-width:768px){.capacity-charts-row{flex-direction:column}.growth-chart-container,.occupancy-chart-container{max-width:100%}}.csv-import-modal{background:#fff;background:var(--bg-secondary);border-radius:.75rem;box-shadow:0 20px 40px #00000026;box-shadow:0 20px 40px var(--shadow-medium);display:flex;flex-direction:column;max-height:85vh;max-width:600px;overflow:hidden;width:90%}.csv-import-header{align-items:center;background:#f1f5f9;background:var(--bg-tertiary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem 1.25rem}.csv-import-header h3{color:#334155;color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0}.csv-import-body{flex:1 1;overflow-y:auto;padding:1rem 1.25rem}.import-section{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);margin-bottom:1.25rem;padding-bottom:1rem}.import-section:last-child{border-bottom:none;margin-bottom:0}.import-section h4{color:#334155;color:var(--text-primary);font-size:.9rem;font-weight:600;margin:0 0 .5rem}.section-description{color:#64748b;color:var(--text-secondary);font-size:.8rem;margin:0 0 .75rem}.vlan-select{background:#fff;background:var(--input-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--input-text);font-size:.9rem;padding:.6rem .75rem;width:100%}.file-input{background:#f1f5f9;background:var(--bg-tertiary);border:2px dashed #e2e8f0;border:2px dashed var(--border-color);border-radius:.5rem;cursor:pointer;padding:.5rem;width:100%}.file-input:hover{border-color:#64748b;border-color:var(--text-secondary)}.column-table-wrapper{overflow-x:auto}.column-table{border-collapse:collapse;font-size:.8rem;width:100%}.column-table td,.column-table th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:.4rem .6rem;text-align:left}.column-table th{background:#f1f5f9;background:var(--bg-tertiary);color:#64748b;color:var(--text-secondary);font-weight:600}.column-table .col-name{color:#334155;color:var(--text-primary);font-family:monospace;font-weight:600}.column-table .required{color:#ef4444;font-weight:600}.column-table .optional{color:#64748b;color:var(--text-secondary)}.preview-table-wrapper{margin-bottom:.75rem;overflow-x:auto}.preview-table{border-collapse:collapse;font-size:.8rem;width:100%}.preview-table td,.preview-table th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:.4rem .6rem;text-align:left}.preview-table th{background:#f1f5f9;background:var(--bg-tertiary);font-weight:600}.preview-more{color:#64748b;color:var(--text-secondary);font-size:.8rem;font-style:italic;margin:.5rem 0 0}.import-actions{display:flex;gap:.75rem;margin-top:.75rem}.import-error{background:#ef44441a;border:1px solid #ef4444;color:#ef4444;margin-bottom:1rem}.import-error,.import-result{border-radius:.5rem;font-size:.85rem;padding:.75rem}.import-result{margin-bottom:.75rem}.import-result.success{background:#22c55e1a;border:1px solid #22c55e;color:#22c55e}.import-result.has-errors{background:#f59e0b1a;border:1px solid #f59e0b;color:#334155;color:var(--text-primary)}.error-list{font-size:.8rem;margin-top:.5rem}.error-item{color:#ef4444;padding:.25rem 0}.app-header-new{background:#fff;background:var(--bg-secondary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:.75rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.header-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1800px}.header-left{gap:2rem}.header-logo{align-items:center;color:#0d9488;color:var(--accent-color);display:flex;font-size:1.1rem;font-weight:600;gap:.5rem}.logo-icon{stroke:#0d9488;stroke:var(--accent-color);height:24px;width:24px}.logo-text{color:#334155;color:var(--text-primary);font-weight:600}.header-nav,.nav-pill{align-items:center;display:flex;gap:.5rem}.nav-pill{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:9999px;color:#64748b;color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.nav-pill:hover{background:#f1f5f9;background:var(--bg-tertiary);color:#334155;color:var(--text-primary)}.nav-pill.active{background:#14b8a6;background:var(--accent-color-light);border-color:#14b8a6;border-color:var(--accent-color-light);color:#fff}.nav-pill .nav-icon{height:16px;width:16px}.nav-pill-pro{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b;color:#92400e}.nav-pill-pro:hover{background:linear-gradient(135deg,#fde68a,#fcd34d);color:#78350f}.crown-icon{fill:#f59e0b;height:16px;width:16px}.header-right{gap:.75rem;text-align:left;width:auto}.btn-new-vlan,.header-right{align-items:center;display:flex}.btn-new-vlan{background:#0d9488;background:var(--accent-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s ease}.btn-new-vlan:hover{background:#0f766e;background:var(--accent-color-dark);transform:translateY(-1px)}.btn-new-vlan .btn-icon{height:16px;width:16px}.header-icon-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:#64748b;color:var(--text-secondary);cursor:pointer;display:flex;height:40px;justify-content:center;position:relative;transition:all .2s ease;width:40px}.header-icon-btn:hover{background:#f1f5f9;background:var(--bg-tertiary);color:#334155;color:var(--text-primary)}.header-icon-btn svg{height:20px;width:20px}.header-icon-btn.has-notifications{color:#ef4444}.notification-badge{align-items:center;background:#ef4444;border-radius:9999px;color:#fff;display:flex;font-size:.7rem;font-weight:600;height:18px;justify-content:center;min-width:18px;padding:0 5px;position:absolute;right:2px;top:2px}.user-avatar-dropdown{position:relative}.user-avatar-btn{background:#0d9488;background:var(--accent-color);border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;height:40px;transition:all .2s ease;width:40px}.user-avatar-btn:hover{background:#0f766e;background:var(--accent-color-dark);transform:scale(1.05)}.user-menu{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 10px 40px #00000026;min-width:220px;overflow:hidden;position:absolute;right:0;top:calc(100% + .5rem);z-index:1001}.user-menu-header{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;padding:1rem}.user-menu-header strong{color:#334155;color:var(--text-primary);font-size:.95rem}.user-email{color:#64748b;color:var(--text-secondary);font-size:.8rem;margin-top:.25rem}.user-menu button{align-items:center;background:#0000;border:none;color:#334155;color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;gap:.75rem;padding:.75rem 1rem;text-align:left;transition:background .2s ease;width:100%}.user-menu button:hover{background:#f1f5f9;background:var(--bg-tertiary)}.user-menu .menu-icon{stroke:#64748b;stroke:var(--text-secondary);height:18px;width:18px}.user-menu .logout-btn-menu{color:#ef4444}.user-menu .logout-btn-menu .menu-icon{stroke:#ef4444}.user-menu .logout-btn-menu:hover{background:#ef44441a}.user-menu .delete-account-btn-menu{color:#334155;color:var(--text-primary)}.user-menu .delete-account-btn-menu .menu-icon{stroke:currentColor}.user-menu .delete-account-btn-menu:hover{background:#ffffff1a;background:var(--hover-bg,#ffffff1a)}.user-menu-divider{background:#e2e8f0;background:var(--border-color);height:1px;margin:.5rem 0}.delete-account-modal{max-width:500px}.delete-account-modal .modal-header{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);margin-bottom:1rem;padding-bottom:1rem}.delete-account-modal .modal-header h2{color:#ef4444;margin:0}.deletion-warning-box{background:#ef44441a;border:1px solid #ef44444d;border-radius:.5rem;display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem}.deletion-warning-box .warning-icon{stroke:#ef4444;flex-shrink:0;height:48px;width:48px}.deletion-warning-box h3{color:#ef4444;font-size:1rem;margin:0 0 .5rem}.deletion-warning-box ul{margin:.5rem 0;padding-left:1.25rem}.deletion-warning-box li{color:#64748b;color:var(--text-secondary);margin-bottom:.25rem}.grace-period-note{color:#0d9488;color:var(--accent-color);font-size:.875rem;font-weight:500;margin-top:.75rem}.delete-account-modal .form-group{margin-bottom:1rem}.delete-account-modal .form-group label{color:#334155;color:var(--text-primary);display:block;font-weight:500;margin-bottom:.5rem}.delete-account-modal .form-input{background:#f8fafc;background:var(--bg-primary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--text-primary);font-size:1rem;padding:.75rem;width:100%}.delete-account-modal .confirm-input{font-family:monospace;letter-spacing:.1em}.delete-account-modal .error-message{background:#ef44441a;border:1px solid #ef44444d;border-radius:.5rem;color:#ef4444;margin-bottom:1rem;padding:.75rem}.delete-account-modal .modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-delete-account{background:#ef4444;border:none;border-radius:.5rem;color:#fff;cursor:pointer;flex:1 1;font-weight:600;padding:.75rem 1.5rem;transition:background .2s}.btn-delete-account:hover:not(:disabled){background:#dc2626}.btn-delete-account:disabled{cursor:not-allowed;opacity:.5}.btn-cancel-deletion{background:#0d9488;background:var(--accent-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;flex:1 1;font-weight:600;padding:.75rem 1.5rem;transition:background .2s}.btn-cancel-deletion:hover:not(:disabled){background:#0f766e;background:var(--accent-color-dark)}.btn-secondary{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--text-primary);cursor:pointer;flex:1 1;font-weight:500;padding:.75rem 1.5rem;transition:background .2s}.btn-secondary:hover{background:#fff;background:var(--bg-secondary)}.deletion-pending-notice{background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:.5rem;display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem}.deletion-pending-notice .warning-icon{stroke:#f59e0b;flex-shrink:0;height:48px;width:48px}.deletion-pending-notice h3{color:#f59e0b;margin:0 0 .5rem}.deletion-pending-notice p{color:#64748b;color:var(--text-secondary);margin:.25rem 0}.deletion-pending-notice .deletion-warning{color:#ef4444;font-size:.875rem;margin-top:.75rem}.settings-dropdown{position:relative}.settings-menu{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 10px 40px #00000026;min-width:200px;overflow:hidden;padding:.5rem 0;position:absolute;right:0;top:calc(100% + .5rem);z-index:1001}.settings-menu button{align-items:center;background:#0000;border:none;color:#334155;color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.625rem 1rem;text-align:left;transition:background .2s ease;width:100%}.settings-menu button.active,.settings-menu button:hover{background:#f1f5f9;background:var(--bg-tertiary)}.settings-menu .menu-divider{border:none;border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);margin:.5rem 0}.settings-menu .pro-badge{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:9999px;color:#92400e;font-size:.65rem;font-weight:600;margin-left:auto;padding:.125rem .375rem}.accent-color-picker{padding:.75rem 1rem}.accent-color-picker label{color:#64748b;color:var(--text-secondary);display:block;font-size:.8rem;font-weight:500;margin-bottom:.5rem}.color-options{align-items:center;display:flex;flex-wrap:wrap;gap:.375rem}.color-option{border:2px solid #0000;border-radius:50%;cursor:pointer;height:24px;transition:all .2s ease;width:24px}.color-option:hover{transform:scale(1.15)}.color-option.active{border-color:#334155;border-color:var(--text-primary);box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor;box-shadow:0 0 0 2px var(--bg-secondary),0 0 0 4px currentColor}.custom-color-input{background:#0000;border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:50%;cursor:pointer;height:24px;overflow:hidden;padding:0;width:24px}.custom-color-input::-webkit-color-swatch-wrapper{padding:0}.custom-color-input::-webkit-color-swatch{border:none;border-radius:50%}.pro-features-dropdown{position:relative}.app-header-new .pro-features-menu{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 10px 40px #00000026;left:0;min-width:200px;overflow:hidden;padding:.5rem 0;position:absolute;top:calc(100% + .5rem);z-index:1001}.app-header-new .pro-features-menu button{align-items:center;background:#0000;border:none;color:#334155;color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;padding:.625rem 1rem;text-align:left;transition:background .2s ease;width:100%}.app-header-new .pro-features-menu button:hover{background:#f1f5f9;background:var(--bg-tertiary)}.app-header-new .mismatch-notification{position:relative}.app-header-new .notification-dropdown{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;box-shadow:0 10px 40px #00000026;min-width:320px;overflow:hidden;position:absolute;right:0;top:calc(100% + .5rem);z-index:1001}.app-header-new .notification-header{align-items:center;background:#f1f5f9;background:var(--bg-tertiary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem}.app-header-new .notification-header strong{color:#334155;color:var(--text-primary);font-size:.9rem}.app-header-new .close-notification{background:#0000;border:none;color:#64748b;color:var(--text-secondary);cursor:pointer;font-size:1.25rem;line-height:1;padding:0}.app-header-new .notification-content{max-height:400px;overflow-y:auto}.app-header-new .mismatch-item{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:1rem}.app-header-new .mismatch-item:last-child{border-bottom:none}.app-header-new .mismatch-device strong{color:#334155;color:var(--text-primary);font-size:.875rem}.app-header-new .mismatch-details{color:#64748b;color:var(--text-secondary);font-size:.8rem;margin:.5rem 0}.app-header-new .mismatch-actions{margin-top:.5rem}.app-header-new .trial-countdown{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:9999px;color:#92400e;display:flex;font-size:.8rem;gap:.375rem;padding:.375rem .75rem}.app-header-new .trial-icon{font-size:.875rem}.app-header-new .trial-time{font-family:monospace;font-weight:600}.app-header-new .trial-label{font-weight:500}.app-header-new .dark-mode-toggle{align-items:center;border-radius:50%;display:flex;height:40px;justify-content:center;width:40px}@media (max-width:1024px){.header-container{flex-wrap:wrap;gap:1rem}.header-left{justify-content:space-between;width:100%}.header-nav{flex-wrap:wrap}.header-right{justify-content:flex-end;width:100%}}@media (max-width:768px){.app-header-new{padding:.75rem 1rem}.header-left{align-items:flex-start;flex-direction:column;gap:1rem}.header-nav{overflow-x:auto;padding-bottom:.5rem;width:100%}.nav-pill{white-space:nowrap}.btn-new-vlan,.nav-pill{font-size:.8rem;padding:.375rem .75rem}.header-icon-btn,.user-avatar-btn{height:36px;width:36px}.user-avatar-btn{font-size:.75rem}}.help-btn{border:2px solid #e2e8f0!important;border:2px solid var(--border-color)!important}.help-btn:hover{border-color:#64748b!important;border-color:var(--text-secondary)!important}.help-icon{color:#64748b;color:var(--text-secondary);font-size:1.25rem;font-weight:700;line-height:1}.help-btn:hover .help-icon{color:#334155;color:var(--text-primary)}.dark-mode-btn svg{height:20px;width:20px}.language-toggle{align-items:center;background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:20px;cursor:pointer;display:flex;gap:6px;height:36px;padding:4px 8px;transition:all .2s ease}.language-toggle:hover{background:#fff;background:var(--bg-secondary);border-color:#0d9488;border-color:var(--accent-color)}.language-toggle .flag-icon{align-items:center;border-radius:2px;display:flex;justify-content:center;opacity:.5;overflow:hidden;transition:all .2s ease}.language-toggle .flag-icon.active{opacity:1;transform:scale(1.1)}.language-toggle .flag-icon svg{border-radius:2px;box-shadow:0 1px 2px #0000001a}.language-toggle .toggle-track{background:#e2e8f0;background:var(--border-color);border-radius:7px;height:14px;position:relative;transition:all .2s ease;width:28px}.language-toggle .toggle-thumb{background:#0d9488;background:var(--accent-color);border-radius:50%;height:10px;position:absolute;top:2px;transition:all .2s ease;width:10px}.language-toggle .toggle-thumb.left{left:2px}.language-toggle .toggle-thumb.right{left:16px}.language-toggle:hover .toggle-track{background:#cbd5e1;background:var(--border-color-light)}.search-section{background:linear-gradient(135deg,#0d9488,#0f766e)!important;background:linear-gradient(135deg,var(--accent-color) 0,var(--accent-color-dark) 100%)!important;border-radius:.75rem;box-shadow:0 4px 12px #0d948840;margin-bottom:2rem;padding:1.25rem 1.5rem}.search-section h3{color:#fff;font-size:1rem;font-weight:600;margin:0 0 .75rem}.search-section .search-bar{background:#fff;background:var(--card-bg,#fff);border-radius:.5rem;overflow:hidden}.search-section .search-bar input{background:#0000;border:none}.search-section .search-bar input:focus{box-shadow:none;outline:none}.trunk-pin-btn{align-items:center;background:#fff;background:var(--bg-secondary);border:none;border-radius:50%;box-shadow:0 2px 4px #0000001a;color:#64748b;color:var(--text-secondary);cursor:pointer;display:flex;font-size:1rem;height:24px;justify-content:center;left:50%;position:absolute;top:-8px;transform:translateX(-50%);transition:all .2s ease;width:24px;z-index:10}.trunk-pin-btn:hover{transform:translateX(-50%) scale(1.1)}.trunk-pin-btn.pinned,.trunk-pin-btn:hover{background:#fef3c7;color:#f59e0b}.tree-row.pinned{background:linear-gradient(90deg,#f59e0b0d,#0000 20%,#0000 80%,#f59e0b0d);border-top:2px solid #f59e0b;margin-top:.25rem;padding-top:.5rem}.tree-row.pinned:first-child{margin-top:0}.tree-row.pinned+.tree-row:not(.pinned){border-top:1px dashed #e2e8f0;border-top:1px dashed var(--border-color);margin-top:.5rem;padding-top:1rem}.tree-row.pinned .tree-trunk:before{content:"📌";font-size:.75rem;left:50%;opacity:.7;position:absolute;top:-24px;transform:translateX(-50%)}.vlan-selector-divider{border:none;border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);margin:1rem 0;opacity:.5}.vlan-color-selector{align-items:center;display:flex;gap:.75rem;margin-bottom:0}.vlan-color-selector label{color:#334155;color:var(--text-primary);font-size:14px;font-weight:600}.vlan-color-dropdown{min-width:280px;position:relative}.vlan-color-trigger{align-items:center;background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;cursor:pointer;display:flex;gap:.5rem;padding:.625rem 1rem;transition:all .2s ease;width:100%}.vlan-color-trigger:hover{border-color:#cbd5e1;border-color:var(--border-color-light)}.vlan-color-dot{border:2px solid #0000001a;border-radius:50%;flex-shrink:0;height:16px;width:16px}.vlan-color-text{color:#334155;color:var(--text-primary);flex:1 1;font-size:.9rem;text-align:left}.vlan-color-arrow{color:#64748b;color:var(--text-secondary);flex-shrink:0;height:16px;width:16px}.vlan-color-menu{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 10px 40px #00000026;left:0;max-height:300px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 4px);z-index:100}.vlan-color-option{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;gap:.5rem;padding:.625rem 1rem;text-align:left;transition:background .15s ease;width:100%}.vlan-color-option:hover{background:#f1f5f9;background:var(--bg-tertiary)}.vlan-color-option.selected{background:#0d94881a}.vlan-option-text{color:#334155;color:var(--text-primary);flex:1 1;font-size:.875rem}.vlan-option-cidr{color:#64748b;color:var(--text-secondary);font-family:monospace;font-size:.75rem}.ip-grid-pagination{align-items:center;background:#f1f5f9;background:var(--bg-tertiary);border-radius:.5rem;display:flex;gap:.5rem;justify-content:center;margin-bottom:.75rem;padding:.75rem}.ip-page-btn{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.375rem;color:#334155;color:var(--text-primary);cursor:pointer;font-size:.875rem;font-weight:600;padding:.375rem .75rem;transition:all .15s ease}.ip-page-btn:hover:not(:disabled){background:#0d9488;background:var(--accent-color);border-color:#0d9488;border-color:var(--accent-color);color:#fff}.ip-page-btn:disabled{cursor:not-allowed;opacity:.4}.ip-page-info{color:#334155;color:var(--text-primary);font-size:.875rem;font-weight:500;padding:0 1rem}.ip-page-number{color:#64748b;color:var(--text-secondary);font-size:.8rem;margin-left:.5rem}.ip-block-header{background:linear-gradient(135deg,#0d9488,#0f766e);background:linear-gradient(135deg,var(--accent-color) 0,var(--accent-color-dark) 100%);border-radius:.375rem;color:#fff;font-size:.85rem;font-weight:500;margin-bottom:.5rem;padding:.5rem .75rem;text-align:center}.ip-grid-pagination .ip-page-info strong{color:#0d9488;color:var(--accent-color);font-family:monospace}.privacy-policy-container{align-items:center;background:#00000080;background:var(--modal-overlay);bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.privacy-policy-content{background:#fff;background:var(--bg-secondary);border-radius:1rem;box-shadow:0 20px 60px #00000026;box-shadow:0 20px 60px var(--shadow-medium);max-height:90vh;max-width:800px;overflow-y:auto;padding:2rem;position:relative}.privacy-policy-content .close-btn{align-items:center;background:#f1f5f9;background:var(--bg-tertiary);border:none;border-radius:50%;color:#334155;color:var(--text-primary);cursor:pointer;display:flex;font-size:1.5rem;height:2.5rem;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .2s ease;width:2.5rem}.privacy-policy-content .close-btn:hover{background:#0d9488;background:var(--accent-color);color:#fff}.privacy-policy-content h1{color:#1e293b;color:var(--text-accent);font-size:2rem;margin-bottom:.5rem;padding-right:3rem}.privacy-policy-content .last-updated{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);color:#64748b;color:var(--text-secondary);font-size:.875rem;margin-bottom:2rem;padding-bottom:1rem}.privacy-policy-content section{margin-bottom:2rem}.privacy-policy-content h2{color:#0d9488;color:var(--accent-color);font-size:1.25rem;margin-bottom:1rem}.privacy-policy-content h3{color:#1e293b;color:var(--text-accent);font-size:1rem;margin:1rem 0 .5rem}.privacy-policy-content p{color:#334155;color:var(--text-primary);line-height:1.7;margin-bottom:.75rem}.privacy-policy-content ul{margin-bottom:1rem;margin-left:1.5rem}.privacy-policy-content li{color:#334155;color:var(--text-primary);line-height:1.7;margin-bottom:.5rem}.privacy-policy-content strong{color:#1e293b;color:var(--text-accent)}.consent-group{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;margin:1.5rem 0;padding:1rem}.consent-checkbox{align-items:flex-start;cursor:pointer;display:flex;gap:.75rem;margin-bottom:1rem}.consent-checkbox:last-child{margin-bottom:0}.consent-checkbox input[type=checkbox]{accent-color:#0d9488;accent-color:var(--accent-color);cursor:pointer;height:1.25rem;margin-top:.125rem;width:1.25rem}.consent-checkbox label{color:#334155;color:var(--text-primary);cursor:pointer;line-height:1.5}.consent-checkbox a{color:#0d9488;color:var(--accent-color);text-decoration:none}.consent-checkbox a:hover{text-decoration:underline}.consent-required{color:#ef4444;font-size:.75rem;margin-left:.25rem}.login-page .consent-group{background:#ffffff1a;border:1px solid #fff3;border-radius:.5rem;display:flex!important;flex-direction:column!important;gap:1rem!important;margin:1rem 0;padding:1rem}.login-page .consent-checkbox{align-items:flex-start!important;display:flex!important;flex-direction:row!important;gap:.75rem;margin-bottom:0!important}.login-page .consent-checkbox input[type=checkbox]{accent-color:#3b82f6!important;border:2px solid #60a5fa!important;border-radius:4px!important;cursor:pointer!important;display:block!important;flex-shrink:0!important;height:22px!important;margin:2px 0 0!important;max-height:22px!important;max-width:22px!important;min-height:22px!important;min-width:22px!important;padding:0!important;width:22px!important}.login-page .consent-checkbox label{color:#ffffffe6;cursor:pointer;flex:1 1;font-size:.9rem;line-height:1.5}.login-page .consent-checkbox .link-btn{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:inherit;padding:0;text-decoration:underline}.login-page .consent-checkbox .link-btn:hover{color:#93c5fd}.deletion-warning{background:#ef44441a;border:1px solid #ef4444;border-radius:.5rem;margin:1rem 0;padding:1.5rem}.deletion-warning h3{color:#ef4444;margin-bottom:1rem}.deletion-warning p{color:#334155;color:var(--text-primary);margin-bottom:.75rem}.deletion-warning .grace-period{background:#ef444433;border-radius:.375rem;font-weight:500;padding:.75rem}.cancel-deletion-btn{background:#f1f5f9;background:var(--bg-tertiary);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:.5rem;color:#334155;color:var(--text-primary);cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.cancel-deletion-btn:hover{background:#0d9488;background:var(--accent-color);border-color:#0d9488;border-color:var(--accent-color);color:#fff}@media (max-width:640px){.privacy-policy-content{margin:.5rem;max-height:95vh;padding:1.5rem}.privacy-policy-content h1{font-size:1.5rem}.privacy-policy-content h2{font-size:1.125rem}}.link-btn{background:none;border:none;color:#0d9488;color:var(--accent-color);cursor:pointer;font-family:inherit;font-size:inherit;padding:0;text-decoration:underline}.link-btn:hover{color:#0f766e;color:var(--accent-color-dark)}.footer-links{align-items:center;display:flex;gap:.5rem;justify-content:center;margin-top:.75rem}.link-separator{color:#64748b;color:var(--text-secondary)}.login-success{align-items:center;background:#10b9811a;border:1px solid #10b981;border-radius:.5rem;color:#059669;display:flex;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.upgrade-prompt-overlay{align-items:center;background:#00000080;background:var(--modal-overlay);bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1100}.upgrade-prompt{background:#fff;background:var(--bg-secondary);border-radius:1rem;box-shadow:0 20px 60px #00000026;box-shadow:0 20px 60px var(--shadow-medium);max-width:450px;padding:2rem;position:relative;text-align:center;width:100%}.upgrade-prompt .close-btn{align-items:center;background:#f1f5f9;background:var(--bg-tertiary);border:none;border-radius:50%;color:#334155;color:var(--text-primary);cursor:pointer;display:flex;font-size:1.25rem;height:2rem;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .2s ease;width:2rem}.upgrade-prompt .close-btn:hover{background:#0d9488;background:var(--accent-color);color:#fff}.upgrade-icon{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:1rem;color:#fff;display:flex;font-size:1rem;font-weight:700;height:4rem;justify-content:center;margin:0 auto 1rem;width:4rem}.upgrade-prompt h2{color:#1e293b;color:var(--text-accent);font-size:1.5rem;margin-bottom:.75rem}.upgrade-prompt .feature-description{color:#64748b;color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem}.upgrade-benefits{background:#f1f5f9;background:var(--bg-tertiary);border-radius:.75rem;margin-bottom:1.5rem;padding:1.25rem;text-align:left}.upgrade-benefits h3{color:#1e293b;color:var(--text-accent);font-size:1rem;margin-bottom:.75rem}.upgrade-benefits ul{list-style:none;margin:0;padding:0}.upgrade-benefits li{align-items:center;color:#334155;color:var(--text-primary);display:flex;font-size:.9rem;gap:.5rem;padding:.375rem 0}.upgrade-benefits li:before{color:#10b981;content:""}.pricing-options{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.pricing-option{align-items:center;background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;display:flex;justify-content:space-between;padding:.75rem 1rem}.pricing-option .price{color:#334155;color:var(--text-primary);font-weight:500}.pricing-option .best-value{background:linear-gradient(135deg,#10b981,#059669);border-radius:.25rem;color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.upgrade-actions{display:flex;flex-direction:column;gap:.75rem}.upgrade-btn{background:linear-gradient(135deg,#14b8a6,#0d9488);background:linear-gradient(135deg,var(--accent-color-light) 0,var(--accent-color) 100%);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .2s ease}.upgrade-btn:hover{box-shadow:0 4px 12px #0d94884d;transform:translateY(-2px)}.later-btn{background:#0000;border:none;color:#64748b;color:var(--text-secondary);cursor:pointer;font-size:.9rem;padding:.75rem}.later-btn:hover{color:#334155;color:var(--text-primary)}.trial-note{color:#64748b;color:var(--text-secondary);font-size:.8rem;margin-top:1rem}.pro-badge{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:.25rem;color:#fff;display:inline-flex;font-size:.65rem;font-weight:600;gap:.25rem;margin-left:.5rem;padding:.125rem .375rem;text-transform:uppercase}.feature-locked{cursor:not-allowed;opacity:.6;position:relative}.feature-locked:after{background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:.25rem;color:#fff;content:"PRO";font-size:.7rem;font-weight:600;left:50%;padding:.25rem .5rem;position:absolute;top:50%;transform:translate(-50%,-50%)}.nis2-report-container{margin:0 auto;max-width:1400px;padding:2rem}.nis2-header{align-items:center;display:flex;gap:1rem;margin-bottom:2rem}.nis2-header h1{flex:1 1;font-size:1.75rem;margin:0}.nis2-header .back-btn,.nis2-header h1{color:#334155;color:var(--text-primary)}.nis2-header .back-btn{align-items:center;background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;cursor:pointer;display:flex;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.nis2-header .back-btn:hover{background:#f1f5f9;background:var(--bg-tertiary)}.nis2-header .back-btn svg{height:18px;width:18px}.nis2-header .export-pdf-btn{align-items:center;background:#0d9488;background:var(--accent-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.nis2-header .export-pdf-btn:hover:not(:disabled){background:#0f766e;background:var(--accent-color-dark)}.nis2-header .export-pdf-btn:disabled{cursor:not-allowed;opacity:.6}.nis2-header .export-pdf-btn svg{height:18px;width:18px}.nis2-content{display:flex;flex-direction:column;gap:2rem}.compliance-score-section{align-items:center;background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:1rem;display:flex;gap:2rem;padding:2rem}.score-circle{align-items:center;border:8px solid;border-radius:50%;display:flex;flex-direction:column;flex-shrink:0;height:140px;justify-content:center;width:140px}.score-value{font-size:2.5rem;font-weight:700;line-height:1}.score-label{color:#64748b;color:var(--text-secondary);font-size:.875rem;margin-top:.25rem}.score-details h2{color:#334155;color:var(--text-primary);font-size:1.25rem;margin:0 0 .5rem}.score-details>p{color:#64748b;color:var(--text-secondary);margin:0 0 1rem}.score-breakdown{display:flex;gap:2rem}.breakdown-item{align-items:center;display:flex;gap:.5rem}.breakdown-count{font-size:1.25rem;font-weight:600}.breakdown-count.compliant{color:#10b981}.breakdown-count.partial{color:#f59e0b}.breakdown-count.non-compliant{color:#ef4444}.breakdown-label{color:#64748b;color:var(--text-secondary);font-size:.875rem}.nis2-summary-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr)}@media (max-width:1024px){.nis2-summary-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.nis2-summary-grid{grid-template-columns:1fr}}.summary-card{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);gap:1rem;padding:1.25rem}.summary-card,.summary-icon{align-items:center;border-radius:.75rem;display:flex}.summary-icon{height:48px;justify-content:center;width:48px}.summary-icon svg{height:24px;width:24px}.summary-icon.vlans{background:#3b82f61a;color:#3b82f6}.summary-icon.devices{background:#10b9811a;color:#10b981}.summary-icon.audit{background:#8b5cf61a;color:#8b5cf6}.summary-icon.checks{background:#f59e0b1a;color:#f59e0b}.summary-data{display:flex;flex-direction:column}.summary-card .summary-value{color:#334155;color:var(--text-primary);font-size:1.5rem;font-weight:600}.summary-card .summary-label{color:#64748b;color:var(--text-secondary);font-size:.875rem}.compliance-checklist{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:1rem;padding:1.5rem}.compliance-checklist h2{color:#334155;color:var(--text-primary);font-size:1.25rem;margin:0 0 .25rem}.checklist-subtitle{color:#64748b;color:var(--text-secondary);font-size:.875rem;margin:0 0 1.5rem}.checklist-table{display:flex;flex-direction:column;gap:.5rem}.checklist-header{background:#f1f5f9;background:var(--bg-tertiary);border-radius:.5rem;color:#64748b;color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.75rem 1rem;text-transform:uppercase}.checklist-header,.checklist-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:120px 1fr 120px 140px 1fr}.checklist-row{align-items:center;border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;padding:1rem;transition:all .2s}.checklist-row:hover{background:#f1f5f9;background:var(--bg-tertiary)}.checklist-row.status-compliant{border-left:4px solid #10b981}.checklist-row.status-partial{border-left:4px solid #f59e0b}.checklist-row.status-non_compliant{border-left:4px solid #ef4444}.check-status{font-size:.875rem;font-weight:500;gap:.5rem}.check-status,.status-icon{align-items:center;display:flex}.status-icon{border-radius:50%;font-size:12px;font-weight:700;height:20px;justify-content:center;width:20px}.status-icon.compliant{background:#10b9811a;color:#10b981}.status-icon.partial{background:#f59e0b1a;color:#f59e0b}.status-icon.non-compliant{background:#ef44441a;color:#ef4444}.check-requirement{color:#334155;color:var(--text-primary);font-size:.875rem}.check-article{color:#0d9488;color:var(--accent-color);font-size:.75rem;font-weight:500}.check-category{background:#f1f5f9;background:var(--bg-tertiary);border-radius:.25rem;font-size:.75rem;padding:.25rem .5rem;text-align:center}.check-category,.check-details{color:#64748b;color:var(--text-secondary)}.check-details{font-size:.8125rem}.recommendations-section{background:#fff;background:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:1rem;padding:1.5rem}.recommendations-section h2{color:#334155;color:var(--text-primary);font-size:1.25rem;margin:0 0 1rem}.recommendations-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.recommendation-card{background:#f8fafc;background:var(--bg-primary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;padding:1rem}.recommendation-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.priority-badge{border-radius:.25rem;font-size:.7rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.priority-badge.non_compliant{background:#ef44441a;color:#ef4444}.priority-badge.partial{background:#f59e0b1a;color:#f59e0b}.recommendation-category{color:#64748b;color:var(--text-secondary);font-size:.75rem}.recommendation-card h3{color:#334155;color:var(--text-primary);font-size:.9375rem;margin:0 0 .5rem}.recommendation-card p{color:#64748b;color:var(--text-secondary);font-size:.8125rem;margin:0 0 .75rem}.recommendation-article{color:#0d9488;color:var(--accent-color);font-size:.75rem;font-weight:500}.nis2-disclaimer{background:#f1f5f9;background:var(--bg-tertiary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.75rem;padding:1.25rem}.nis2-disclaimer h3{color:#334155;color:var(--text-primary);font-size:.9375rem;margin:0 0 .75rem}.nis2-disclaimer p{color:#64748b;color:var(--text-secondary);font-size:.8125rem;line-height:1.6;margin:0 0 .5rem}.nis2-disclaimer .report-meta{border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);color:var(--text-muted);font-size:.75rem;margin-top:1rem;padding-top:.75rem}@media (max-width:1024px){.checklist-header,.checklist-row{grid-template-columns:100px 1fr 100px}.checklist-header span:nth-child(4),.checklist-header span:nth-child(5),.checklist-row .check-category,.checklist-row .check-details{display:none}}@media (max-width:768px){.compliance-score-section{flex-direction:column;text-align:center}.score-breakdown{justify-content:center}.nis2-header{flex-wrap:wrap}.nis2-header h1{margin-bottom:1rem;order:-1;width:100%}}.ip-range-checker{background:#fff;background:var(--card-bg,#fff);border-radius:12px;color:#334155;color:var(--text-primary,#1f2937);min-height:400px;padding:1.5rem}.ip-range-checker .checker-header{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color,#e5e7eb);margin-bottom:1.5rem;padding-bottom:1rem}.ip-range-checker .checker-header h2{color:#334155;color:var(--text-primary,#1f2937);font-size:1.5rem;margin:0 0 .5rem}.ip-range-checker .checker-header p{color:#64748b;color:var(--text-secondary,#6b7280);font-size:.9rem;margin:0}.ip-range-checker .analysis-controls{background:#fff;background:var(--bg-secondary,#f9fafb);border-radius:8px;margin-bottom:1.5rem;padding:1rem}.ip-range-checker .controls-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem}.ip-range-checker .control-group{display:flex;flex-direction:column;gap:.5rem}.ip-range-checker .control-group label{color:#64748b;color:var(--text-secondary,#6b7280);font-size:.85rem;font-weight:500}.ip-range-checker input,.ip-range-checker select{background:#fff;background:var(--input-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#d1d5db);border-radius:6px;color:#334155;color:var(--text-primary,#1f2937);font-size:.9rem;padding:.5rem .75rem}.ip-range-checker input:focus,.ip-range-checker select:focus{border-color:#3b82f6;border-color:var(--primary-color,#3b82f6);box-shadow:0 0 0 3px #3b82f61a;outline:none}.ip-range-checker .ip-input-group{display:flex;gap:.5rem}.ip-range-checker .custom-ip-input{width:80px}.ip-range-checker .analyze-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);background:linear-gradient(135deg,var(--primary-color,#3b82f6),#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.6rem 1.25rem;transition:all .2s}.ip-range-checker .analyze-btn:hover:not(:disabled){box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.ip-range-checker .analyze-btn:disabled{cursor:not-allowed;opacity:.6}.ip-range-checker .analysis-results{margin-top:1rem}.ip-range-checker .results-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.ip-range-checker .vlan-result-card{background:#fff;background:var(--bg-secondary,#f9fafb);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e5e7eb);border-radius:10px;padding:1rem}.ip-range-checker .vlan-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.75rem}.ip-range-checker .vlan-color-dot{border-radius:50%;flex-shrink:0;height:12px;width:12px}.ip-range-checker .vlan-header h4{color:#334155;color:var(--text-primary,#1f2937);font-size:1rem;margin:0}.ip-range-checker .vlan-cidr{color:#64748b;color:var(--text-secondary,#6b7280);font-family:monospace;font-size:.85rem}.ip-range-checker .utilization-info{margin-bottom:1rem}.ip-range-checker .utilization-bar{background:#e2e8f0;background:var(--border-color,#e5e7eb);border-radius:4px;height:8px;margin-bottom:.25rem;overflow:hidden}.ip-range-checker .utilization-fill{background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:4px;height:100%;transition:width .3s ease}.ip-range-checker .utilization-text{color:#64748b;color:var(--text-secondary,#6b7280);font-size:.8rem}.ip-range-checker .free-ranges{display:flex;flex-direction:column;gap:.5rem}.ip-range-checker .free-ranges h5{color:#64748b;color:var(--text-secondary,#6b7280);font-size:.85rem;margin:0 0 .5rem}.ip-range-checker .range-item{background:#fff;background:var(--card-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;padding:.75rem}.ip-range-checker .range-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.ip-range-checker .range-ips{color:#334155;color:var(--text-primary,#1f2937);font-family:monospace;font-size:.9rem;font-weight:500}.ip-range-checker .range-count{background:#22c55e;border-radius:4px;color:#fff;font-size:.75rem;font-weight:600;padding:.2rem .5rem}.ip-range-checker .dhcp-suggestion{background:#fff;background:var(--bg-secondary,#f0fdf4);border:1px dashed #22c55e;border-radius:4px;color:#64748b;color:var(--text-secondary,#166534);font-size:.8rem;margin-bottom:.5rem;padding:.5rem}.ip-range-checker .range-actions{display:flex;gap:.5rem}.ip-range-checker .copy-dhcp-btn,.ip-range-checker .copy-range-btn{background:#fff;background:var(--bg-secondary,#f3f4f6);border:1px solid #e2e8f0;border:1px solid var(--border-color,#d1d5db);border-radius:4px;color:#334155;color:var(--text-primary,#374151);cursor:pointer;font-size:.8rem;padding:.35rem .75rem;transition:all .2s}.ip-range-checker .copy-dhcp-btn:hover,.ip-range-checker .copy-range-btn:hover{background:#3b82f6;background:var(--primary-color,#3b82f6);border-color:#3b82f6;border-color:var(--primary-color,#3b82f6);color:#fff}.ip-range-checker .no-results{color:#64748b;color:var(--text-secondary,#6b7280);padding:2rem;text-align:center}.ip-range-checker .no-results p{margin:.5rem 0}.ip-range-checker .create-new-vlan-suggestion{margin-top:1.5rem}.ip-range-checker .vlan-suggestions-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:1rem}.ip-range-checker .suggested-vlan{background:#fff;background:var(--bg-secondary,#f9fafb);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e5e7eb);border-radius:8px;padding:1rem;text-align:center}.ip-range-checker .suggested-vlan h4{color:#334155;color:var(--text-primary,#1f2937);margin:0 0 .5rem}.ip-range-checker .suggested-vlan code{background:#fff;background:var(--card-bg,#fff);border-radius:4px;color:#3b82f6;color:var(--primary-color,#3b82f6);font-size:.85rem;padding:.25rem .5rem}.ip-range-checker .analysis-results h3{color:#334155;color:var(--text-primary,#1f2937);font-size:1.1rem;margin:0 0 1rem}.ip-range-checker .no-results h3,.ip-range-checker .no-results h4{color:#334155;color:var(--text-primary,#1f2937);margin:.5rem 0}.ip-range-checker .suggested-vlan h5{color:#334155;color:var(--text-primary,#1f2937);font-size:.95rem;margin:0 0 .5rem}.ip-range-checker .suggested-vlan p{color:#64748b;color:var(--text-secondary,#6b7280);font-size:.85rem;margin:.5rem 0 0}.ip-range-checker .alternative-suggestions{margin-top:1.5rem;text-align:left}.ip-range-checker .alternative-suggestions h4{color:#334155;color:var(--text-primary,#1f2937);margin-bottom:.75rem}.ip-range-checker .alternative-suggestions ul{list-style:none;margin:0;padding:0}.ip-range-checker .alternative-suggestions li{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color,#e5e7eb);color:#64748b;color:var(--text-secondary,#6b7280);padding:.5rem 0}.ip-range-checker .alternative-suggestions li:last-child{border-bottom:none}.ip-range-checker .alternative-suggestions li strong{color:#334155;color:var(--text-primary,#1f2937)}[data-theme=dark] .ip-range-checker{background:var(--card-bg)}[data-theme=dark] .ip-range-checker .analysis-controls,[data-theme=dark] .ip-range-checker .vlan-result-card{background:#f1f5f9;background:var(--bg-tertiary,#1f2937)}[data-theme=dark] .ip-range-checker .range-item{background:var(--card-bg)}[data-theme=dark] .ip-range-checker .dhcp-suggestion{background:#22c55e1a;color:#86efac}[data-theme=dark] .ip-range-checker .suggested-vlan{background:#f1f5f9;background:var(--bg-tertiary,#1f2937)}[data-theme=dark] .ip-range-checker .suggested-vlan code{background:#f1f5f9;background:var(--bg-tertiary,#374151);color:#60a5fa}[data-theme=dark] .ip-range-checker input,[data-theme=dark] .ip-range-checker select{-webkit-appearance:none;appearance:none;background:#374151;background-image:none;border-color:#4b5563;color:#f3f4f6}[data-theme=dark] .ip-range-checker select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%239ca3af' d='M6 8 1 3h10z'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2rem}[data-theme=dark] .ip-range-checker select option{background:#374151;color:#f3f4f6}[data-theme=dark] .ip-range-checker .copy-dhcp-btn,[data-theme=dark] .ip-range-checker .copy-range-btn{background:#f1f5f9;background:var(--bg-tertiary,#374151);border-color:#e2e8f0;border-color:var(--border-color,#4b5563);color:#334155;color:var(--text-primary,#f3f4f6)}[data-theme=dark] .ip-range-checker .alternative-suggestions,[data-theme=dark] .ip-range-checker .create-new-vlan-suggestion,[data-theme=dark] .ip-range-checker .no-results{color:#334155;color:var(--text-primary,#f3f4f6)}.user-management-modal{display:flex;flex-direction:column;max-height:90vh;max-width:1200px;overflow:hidden;width:95%}.user-management-content{flex:1 1;overflow-y:auto;padding:20px}.user-management-actions{align-items:center;border-bottom:2px solid #e9ecef;border-bottom:2px solid var(--border-color,#e9ecef);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.user-stats{color:#6c757d;display:flex;font-size:14px;gap:15px}.user-stats span{background:#f8f9fa;background:var(--bg-tertiary,#f8f9fa);border:1px solid #dee2e6;border:1px solid var(--border-color,#dee2e6);border-radius:15px;padding:5px 10px}.create-user-form{background:#f8f9fa;background:var(--card-bg,#f8f9fa);border:2px solid #e9ecef;border:2px solid var(--border-color,#e9ecef);border-radius:10px;margin-bottom:25px;padding:20px}.create-user-form h3{color:#495057;color:var(--text-primary,#495057);font-size:18px;margin-bottom:15px;margin-top:0}.form-row{grid-gap:15px;gap:15px;margin-bottom:15px}.form-group{display:flex;flex-direction:column}.form-group label{color:#495057;color:var(--text-primary,#495057);font-weight:600;margin-bottom:5px}.form-group input,.form-group select{background:#fff;background:var(--input-bg,#fff);border:2px solid #dee2e6;border:2px solid var(--border-color,#dee2e6);color:#212529;color:var(--text-primary,#212529);padding:8px 12px}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.form-actions{gap:10px;margin-top:20px}.users-table-container{background:#fff;background:var(--card-bg,#fff);border:2px solid #e9ecef;border:2px solid var(--border-color,#e9ecef);border-radius:10px;overflow-x:auto}.users-table{border-collapse:collapse;min-width:800px;width:100%}.users-table th{background:#f8f9fa;background:var(--table-header-bg,#f8f9fa);border-bottom:2px solid #dee2e6;border-bottom:2px solid var(--border-color,#dee2e6);color:#495057;color:var(--text-primary,#495057);font-weight:600;text-align:left}.users-table td,.users-table th{font-size:14px;padding:12px 15px}.users-table td{border-bottom:1px solid #dee2e6;border-bottom:1px solid var(--border-color,#dee2e6);color:#212529;color:var(--text-primary,#212529);vertical-align:middle}.users-table tr:hover{background:#f8f9fa;background:var(--hover-bg,#f8f9fa)}.user-inactive{background:#f8f9fa!important;background:var(--inactive-bg,#f8f9fa)!important;opacity:.6}.current-user-badge{background:#007bff;border-radius:10px;color:#fff;font-size:11px;font-weight:600;margin-left:8px;padding:2px 6px}.role-badge{border-radius:12px;color:#fff;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.role-badge,.status-badge{font-size:12px;padding:4px 8px}.status-badge.active{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.status-badge.inactive{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.user-actions{min-width:150px}.action-buttons{display:flex;flex-wrap:wrap;gap:5px}.edit-controls{display:flex;flex-direction:column;gap:8px;min-width:200px}.edit-controls select{border:1px solid #dee2e6;border-radius:4px;font-size:12px;padding:4px 6px}.edit-controls label{align-items:center;cursor:pointer;display:flex;font-size:12px;gap:5px}.edit-controls input[type=checkbox]{margin:0}.edit-controls .btn{font-size:11px;padding:4px 8px}.btn{align-items:center;display:inline-flex;font-weight:600;gap:5px;padding:8px 16px;text-decoration:none}.btn-primary{background:#007bff}.btn-primary:hover{background:#0056b3;transform:translateY(-1px)}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62}.btn-outline{border:2px solid #007bff;color:#007bff}.btn-outline:hover{background:#007bff;color:#fff}.btn-sm{padding:4px 8px}.error-message{margin-bottom:15px;padding:12px}.user-management-footer{background:#f8f9fa;background:var(--bg-tertiary,#f8f9fa);border-top:1px solid #dee2e6;border-top:1px solid var(--border-color,#dee2e6);color:#6c757d;color:var(--text-secondary,#6c757d);font-size:12px;margin:0;padding:15px;text-align:center}.loading{color:#6c757d;font-size:16px;padding:40px;text-align:center}@media (max-width:768px){.user-management-modal{border-radius:0;height:100vh;max-height:100vh;width:100%}.form-row{grid-template-columns:1fr}.user-management-actions{align-items:stretch;flex-direction:column;gap:10px}.users-table-container{font-size:12px}.users-table td,.users-table th{padding:8px 6px}.action-buttons{flex-direction:column}.btn-sm{font-size:11px;padding:6px 8px}}[data-theme=dark] .user-management-actions{border-bottom-color:#475569;border-bottom-color:var(--border-color,#475569)}[data-theme=dark] .user-stats{color:#94a3b8;color:var(--text-secondary,#94a3b8)}[data-theme=dark] .user-stats span{color:#f1f5f9;color:var(--text-primary,#f1f5f9)}[data-theme=dark] .create-user-form,[data-theme=dark] .user-stats span{background:#1e293b;background:var(--card-bg,#1e293b);border-color:#475569;border-color:var(--border-color,#475569)}[data-theme=dark] .create-user-form h3,[data-theme=dark] .form-group label{color:#f1f5f9;color:var(--text-primary,#f1f5f9)}[data-theme=dark] .form-group input,[data-theme=dark] .form-group select{background:#0f172a;background:var(--input-bg,#0f172a);border-color:#475569;border-color:var(--border-color,#475569);color:#f1f5f9;color:var(--text-primary,#f1f5f9)}[data-theme=dark] .users-table-container{background:#1e293b;background:var(--card-bg,#1e293b);border-color:#475569;border-color:var(--border-color,#475569)}[data-theme=dark] .users-table th{background:#334155}[data-theme=dark] .users-table td,[data-theme=dark] .users-table th{border-bottom-color:#475569;border-bottom-color:var(--border-color,#475569);color:#f1f5f9;color:var(--text-primary,#f1f5f9)}[data-theme=dark] .users-table tr:hover{background:#334155}[data-theme=dark] .user-inactive{background:#1e293b!important}[data-theme=dark] .edit-controls select{background:#0f172a;background:var(--input-bg,#0f172a);border-color:#475569;border-color:var(--border-color,#475569)}[data-theme=dark] .edit-controls label,[data-theme=dark] .edit-controls select{color:#f1f5f9;color:var(--text-primary,#f1f5f9)}[data-theme=dark] .user-management-footer{background:#1e293b;background:var(--card-bg,#1e293b);border-top-color:#475569;border-top-color:var(--border-color,#475569)}[data-theme=dark] .loading,[data-theme=dark] .user-management-footer{color:#94a3b8;color:var(--text-secondary,#94a3b8)}[data-theme=dark] .error-message{background:#7f1d1d;border-color:#991b1b;color:#fecaca}.agent-management-page{background:#f5f7fa;background:var(--bg-primary,#f5f7fa);min-height:100vh;padding:20px}.agent-management-header{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.header-left{align-items:center;display:flex;gap:16px}.header-left h2{color:#1a1a2e;color:var(--text-primary,#1a1a2e);margin:0}.back-to-home-btn{padding:8px 16px}.tabs-container{background:#fff;background:var(--bg-secondary,#fff);border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.tabs{background:#f0f2f5;background:var(--bg-tertiary,#f0f2f5);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);display:flex}.tab{background:none;border:none;border-bottom:2px solid #0000;color:#666;color:var(--text-secondary,#666);cursor:pointer;font-size:14px;font-weight:500;padding:14px 24px;transition:all .2s}.tab:hover{background:#00000008;color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.tab.active{background:#fff;background:var(--bg-secondary,#fff);border-bottom-color:#3b82f6;border-bottom-color:var(--primary-color,#3b82f6);color:#3b82f6;color:var(--primary-color,#3b82f6)}.tab.tab-highlight{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:none;border-radius:6px;color:#fff;margin-left:8px}.tab.tab-highlight:hover{background:linear-gradient(135deg,#5a6fd6,#6a4190);box-shadow:0 4px 12px #667eea4d;color:#fff;transform:translateY(-1px)}.tab-content{padding:24px}.tab-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.tab-header h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:18px;margin:0}.header-with-select{align-items:center;display:flex;gap:16px}.agent-select{border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:6px;font-size:14px;min-width:200px;padding:8px 12px}.empty-state{color:#666;color:var(--text-secondary,#666);padding:60px 20px;text-align:center}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state h4{color:#1a1a2e;color:var(--text-primary,#1a1a2e);margin:0 0 8px}.empty-state p{margin:0 auto 20px;max-width:400px}.agents-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.agent-card{background:#fff;background:var(--bg-secondary,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:10px;padding:20px;transition:box-shadow .2s}.agent-card:hover{box-shadow:0 4px 12px #0000001a}.agent-header{display:flex;gap:12px;margin-bottom:16px}.agent-icon{font-size:32px;line-height:1}.agent-info h4{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:16px;margin:0 0 6px}.status-badge{align-items:center;color:#fff;display:inline-flex;font-size:11px;font-weight:600;gap:6px;padding:3px 10px;text-transform:uppercase}.status-indicator{background:currentColor;border-radius:50%;height:8px;opacity:.8;width:8px}.status-indicator.pulse{animation:pulse-indicator 2s infinite}.status-badge.online{background:#28a745!important}.status-badge.offline{background:#dc3545!important}@keyframes pulse-indicator{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.agent-details{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);margin-bottom:16px;padding-bottom:16px}.detail-row{display:flex;font-size:13px;justify-content:space-between;padding:4px 0}.detail-row .label{color:#666;color:var(--text-secondary,#666)}.detail-row .value{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:500}.agent-actions{display:flex;flex-wrap:wrap;gap:8px}.devices-table td,.devices-table th{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);padding:12px 16px;text-align:left}.devices-table th{background:#f0f2f5;background:var(--bg-tertiary,#f0f2f5);color:#666;color:var(--text-secondary,#666);font-size:13px;letter-spacing:.5px;text-transform:uppercase}.devices-table tr:hover{background:#00000005}.snmp-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.snmp-badge.snmpv3{background:#dcfce7;color:#166534}.snmp-badge.snmpv2{background:#fef3c7;color:#92400e}.results-list{display:flex;flex-direction:column;gap:12px}.result-card{background:#fff;background:var(--bg-secondary,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:8px;padding:16px}.result-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.scan-type{border-radius:4px;font-size:11px;font-weight:600;padding:4px 10px}.scan-type.arp{background:#dbeafe;color:#1e40af}.scan-type.mac{background:#f3e8ff;color:#6b21a8}.scan-type.system{background:#ecfdf5;color:#065f46}.agent-name{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:500}.entry-count{color:#666;color:var(--text-secondary,#666);font-size:13px}.timestamp{color:#999;color:var(--text-tertiary,#999);font-size:12px;margin-left:auto}.result-preview{background:#f0f2f5;background:var(--bg-tertiary,#f0f2f5);border-radius:6px;padding:12px}.entry-row{display:flex;font-family:monospace;font-size:13px;gap:16px;padding:4px 0}.entry-row .ip{color:#2563eb;min-width:120px}.entry-row .mac{color:#7c3aed;min-width:150px}.entry-row .sysname{color:#059669}.more-entries{color:#666;color:var(--text-secondary,#666);font-size:12px;font-style:italic;padding-top:8px}.setup-guide-tab{max-width:800px}.setup-guide-tab h3{margin:0 0 24px}.guide-section{margin-bottom:32px}.guide-section h4{color:#3b82f6;color:var(--primary-color,#3b82f6);margin:0 0 12px}.guide-section p{line-height:1.6;margin:0 0 12px}.install-option{background:#f0f2f5;background:var(--bg-tertiary,#f0f2f5);border-radius:8px;margin-bottom:24px;padding:16px}.install-option h5{color:#1a1a2e;color:var(--text-primary,#1a1a2e);margin:0 0 12px}.switch-config{margin-bottom:16px}.switch-config h5{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:14px;margin:0 0 8px}.code-block{background:#1e293b;border-radius:6px;color:#e2e8f0;font-family:Fira Code,Monaco,monospace;font-size:13px;line-height:1.5;margin:0;overflow-x:auto;padding:16px}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;background:var(--bg-secondary,#fff);border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;padding:24px;width:100%}.modal-content h3{margin:0 0 20px}.device-form-modal{max-width:600px}.api-key-modal{max-width:550px;text-align:center}.api-key-warning{background:#fef3c7;border-radius:8px;gap:12px;margin-bottom:20px;padding:12px 16px}.api-key-warning,.warning-icon{align-items:center;display:flex}.warning-icon{background:#f59e0b;border-radius:50%;color:#fff;font-size:16px;font-weight:700;height:28px;justify-content:center;width:28px}.api-key-warning p{color:#92400e;font-weight:500;margin:0;text-align:left}.api-key-display{display:flex;gap:12px;margin-bottom:20px}.api-key-display code{background:#1e293b;border-radius:6px;color:#22c55e;flex:1 1;font-size:14px;padding:12px 16px;text-align:left;word-break:break-all}.api-key-instructions{margin-bottom:20px;text-align:left}.api-key-instructions p{color:#666;color:var(--text-secondary,#666);font-size:14px;margin:0 0 8px}.api-key-instructions pre{background:#f0f2f5;background:var(--bg-tertiary,#f0f2f5);border-radius:6px;font-size:13px;margin:0;padding:12px}.form-group label{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:14px}.form-group input,.form-group select{border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:6px;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;border-color:var(--primary-color,#3b82f6);box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-row{grid-gap:16px;display:grid;grid-template-columns:1fr 1fr}.form-actions{border-top:1px solid #e0e0e0;border-top:1px solid var(--border-color,#e0e0e0);margin-top:24px;padding-top:16px}.btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.btn-primary{background:#3b82f6;background:var(--primary-color,#3b82f6);color:#fff}.btn-primary:hover{background:#2563eb}.btn-outline{background:#0000;border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.btn-outline:hover{background:#f0f2f5;background:var(--bg-tertiary,#f0f2f5)}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.btn-sm{font-size:12px;padding:6px 12px}.error-banner{align-items:center;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;display:flex;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.error-banner button{background:none;border:none;color:#991b1b;cursor:pointer;font-size:20px;padding:0 4px}.loading-container{padding:60px 20px;text-align:center}.loading-spinner{animation:spin .8s linear infinite;border:3px solid #e0e0e0;border-top-color:#3b82f6;border:3px solid var(--border-color,#e0e0e0);border-radius:50%;border-top-color:var(--primary-color,#3b82f6);height:40px;margin:0 auto 16px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}body.dark-mode .agent-management-page{background:#0f172a}body.dark-mode .tabs-container{background:#1e293b}body.dark-mode .tabs{background:#0f172a;border-bottom-color:#334155}body.dark-mode .tab{color:#94a3b8}body.dark-mode .tab:hover{background:#ffffff0d;color:#e2e8f0}body.dark-mode .tab.active{background:#1e293b;border-bottom-color:#60a5fa;color:#60a5fa}body.dark-mode .agent-card{background:#1e293b;border-color:#334155}body.dark-mode .agent-info h4,body.dark-mode .detail-row .value{color:#e2e8f0}body.dark-mode .modal-content{background:#1e293b}body.dark-mode .form-group label{color:#e2e8f0}body.dark-mode .form-group input,body.dark-mode .form-group select{background:#0f172a;border-color:#334155;color:#e2e8f0}body.dark-mode .devices-table th{background:#0f172a;color:#94a3b8}body.dark-mode .devices-table td{border-bottom-color:#334155}body.dark-mode .result-card{background:#1e293b;border-color:#334155}body.dark-mode .api-key-instructions pre,body.dark-mode .install-option,body.dark-mode .result-preview{background:#0f172a}@media (max-width:768px){.agents-grid,.form-row{grid-template-columns:1fr}.tabs{flex-wrap:wrap}.tab{flex:1 1;min-width:100px;text-align:center}.agent-actions{justify-content:flex-start}.result-header{align-items:flex-start;flex-direction:column}.timestamp{margin-left:0}}.download-tab{padding:1rem 0}.download-header{margin-bottom:2rem}.download-header h3{color:var(--text-primary);font-size:1.25rem;margin:0 0 .5rem}.download-header p{color:var(--text-secondary);margin:0}.download-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.download-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:1rem;padding:1.5rem;text-align:center;transition:all .2s}.download-card:hover{border-color:var(--accent-color);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.download-icon{align-items:center;border-radius:1rem;display:flex;height:64px;justify-content:center;margin:0 auto 1rem;width:64px}.download-icon svg{height:36px;width:36px}.download-icon.windows{background:#0078d71a;color:#0078d7}.download-icon.linux{background:#ffa5001a;color:orange}.download-icon.macos{background:#6666661a;color:#666}.download-card h4{color:var(--text-primary);font-size:1.125rem;margin:0 0 .25rem}.download-card p{color:var(--text-secondary);font-size:.875rem;margin:0 0 1rem}.download-buttons{display:flex;gap:.5rem;justify-content:center}.download-buttons .btn{flex:1 1}.setup-instructions{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:1rem;margin-bottom:1.5rem;padding:1.5rem}.setup-instructions h4{color:var(--text-primary);font-size:1rem;margin:0 0 1rem}.instruction-steps{display:flex;flex-direction:column;gap:1rem}.step{align-items:flex-start;display:flex;gap:1rem}.step-number{align-items:center;background:var(--accent-color);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.875rem;font-weight:600;height:28px;justify-content:center;width:28px}.step-content h5{color:var(--text-primary);font-size:.9375rem;margin:0 0 .25rem}.step-content p{color:var(--text-secondary);font-size:.875rem;margin:0}.step-content .code-block{background:var(--bg-tertiary);border-radius:.375rem;color:var(--accent-color);font-family:monospace;font-size:.8125rem;margin-top:.5rem;padding:.5rem .75rem}.agent-features{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:1rem;padding:1.5rem}.agent-features h4{color:var(--text-primary);font-size:1rem;margin:0 0 1rem}.agent-features ul{margin:0;padding-left:1.25rem}.agent-features li{color:var(--text-secondary);font-size:.875rem;margin-bottom:.5rem}.agent-features li strong{color:var(--text-primary)}.password-reset-overlay{align-items:center;animation:fadeIn .2s ease-out;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.password-reset-modal{animation:slideUp .3s ease-out;background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:420px;overflow-y:auto;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.password-reset-header{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);display:flex;justify-content:space-between;padding:20px 24px}.password-reset-header h2{color:#333;color:var(--text-primary,#333);font-size:1.3rem;margin:0}.password-reset-header .close-btn{background:none;border:none;color:#666;color:var(--text-secondary,#666);cursor:pointer;font-size:1.8rem;line-height:1;padding:0;transition:color .2s}.password-reset-header .close-btn:hover{color:#333;color:var(--text-primary,#333)}.password-reset-content{padding:24px}.password-reset-content .form-group{margin-bottom:20px}.password-reset-content .form-group label{color:#333;color:var(--text-primary,#333);display:block;font-weight:500;margin-bottom:8px}.password-reset-content .form-group input{background:#fff;background:var(--input-bg,#fff);border:1px solid #ddd;border:1px solid var(--border-color,#ddd);border-radius:8px;color:#333;color:var(--text-primary,#333);font-size:1rem;padding:12px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.password-reset-content .form-group input:focus{border-color:#3b82f6;border-color:var(--primary-color,#3b82f6);box-shadow:0 0 0 3px #3b82f61a;outline:none}.password-reset-content .form-group input::placeholder{color:#999;color:var(--text-secondary,#999)}.password-requirements{background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border-radius:8px;margin-bottom:20px;padding:14px}.password-requirements p{color:#666;color:var(--text-secondary,#666);font-size:.9rem;font-weight:500;margin:0 0 10px}.password-requirements ul{margin:0;padding-left:20px}.password-requirements li{color:#888;color:var(--text-secondary,#888);font-size:.85rem;margin-bottom:4px;transition:color .2s}.password-requirements li.valid{color:#10b981}.password-requirements li.valid::marker{color:#10b981}.form-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:10px}.form-actions .btn{border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;padding:10px 20px;transition:all .2s}.form-actions .btn-secondary{background:#f0f0f0;background:var(--bg-secondary,#f0f0f0);border:1px solid #ddd;border:1px solid var(--border-color,#ddd);color:#333;color:var(--text-primary,#333)}.form-actions .btn-secondary:hover:not(:disabled){background:#e0e0e0;background:var(--bg-hover,#e0e0e0)}.form-actions .btn-primary{background:#3b82f6;background:var(--primary-color,#3b82f6);border:none;color:#fff}.form-actions .btn-primary:hover:not(:disabled){background:#2563eb;background:var(--primary-hover,#2563eb)}.form-actions .btn:disabled{cursor:not-allowed;opacity:.6}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.9rem;margin-bottom:20px;padding:12px 14px}.success-message{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;color:#059669;font-size:1rem;font-weight:500;padding:20px;text-align:center}.dark-mode .password-reset-modal{background:#1e1e1e;background:var(--card-bg,#1e1e1e)}.dark-mode .password-reset-header{border-bottom-color:#333;border-bottom-color:var(--border-color,#333)}.dark-mode .password-reset-content .form-group label,.dark-mode .password-reset-header h2{color:#fff;color:var(--text-primary,#fff)}.dark-mode .password-reset-content .form-group input{background:#2d2d2d;background:var(--input-bg,#2d2d2d);border-color:#444;border-color:var(--border-color,#444);color:#fff;color:var(--text-primary,#fff)}.dark-mode .password-requirements{background:#2d2d2d;background:var(--bg-secondary,#2d2d2d)}.dark-mode .error-message{background:#3b1414;border-color:#5c2020;color:#f87171}.dark-mode .success-message{background:#064e3b;border-color:#065f46;color:#34d399}.discovered-devices-modal{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.discovered-devices-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1400px;width:100%}.discovered-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px}.discovered-header h2{color:#1a1a2e;font-size:1.5rem;margin:0}.header-actions{align-items:center;display:flex;gap:12px}.refresh-btn-header{background:#0d9488;border:1px solid #0d9488;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s}.refresh-btn-header:hover:not(:disabled){background:#0f766e;border-color:#0f766e}.refresh-btn-header:disabled{cursor:not-allowed;opacity:.6}.close-btn{background:none;border:none;color:#666;cursor:pointer;font-size:24px;padding:4px 8px}.close-btn:hover{color:#333}.stats-bar{background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;gap:24px;padding:16px 24px}.stat-item{align-items:center;background:#fff;border-radius:8px;display:flex;flex-direction:column;min-width:80px;padding:8px 16px}.stat-value{color:#1a1a2e;font-size:1.5rem;font-weight:700}.stat-label{color:#666;font-size:.85rem}.stat-item.pending .stat-value{color:#ffc107}.stat-item.imported .stat-value{color:#28a745}.stat-item.ignored .stat-value{color:#6c757d}.filter-bar{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:12px 24px}.filter-tabs{display:flex;gap:8px}.filter-tab{background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s}.filter-tab:hover{background:#f0f0f0}.filter-tab.active{background:#667eea;border-color:#667eea;color:#fff}.bulk-actions{display:flex;gap:8px}.bulk-actions button{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .2s}.btn-import{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-import:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.btn-import:disabled{cursor:not-allowed;opacity:.6}.btn-ignore{background:#6c757d;color:#fff}.btn-ignore:hover{background:#5a6268}.btn-delete{background:#dc3545;color:#fff}.btn-delete:hover{background:#c82333}.error-message{align-items:center;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;display:flex;justify-content:space-between;margin:16px 24px;padding:12px 16px}.error-message button{background:none;border:none;color:#721c24;cursor:pointer;font-size:18px}.empty-state,.loading{color:#666;padding:48px;text-align:center}.devices-table-container{flex:1 1;overflow:auto;padding:0 24px 24px}.devices-table{border-collapse:collapse;font-size:.9rem;width:100%}.devices-table th{background:#f8f9fa;border-bottom:2px solid #e0e0e0;color:#333;font-weight:600;padding:12px 8px;position:-webkit-sticky;position:sticky;text-align:left;top:0;z-index:10}.devices-table td{border-bottom:1px solid #e9ecef;padding:12px 8px;vertical-align:middle}.devices-table tr:hover{background:#f8f9fa}.devices-table tr.selected{background:#e7f1ff}.checkbox-col{text-align:center;width:40px}.mac-address{font-family:Courier New,monospace;font-weight:500}.vlan-tag{background:#e9ecef;border-radius:4px;display:inline-block;font-size:.85rem;padding:3px 8px}.vlan-tag.target{background:#d4edda;color:#155724}.status-badge{border-radius:12px;display:inline-block;font-size:.8rem;font-weight:500;padding:4px 10px}.badge-pending{background:#fff3cd;color:#856404}.badge-imported{background:#d4edda;color:#155724}.badge-ignored{background:#e2e3e5;color:#383d41}.badge-duplicate{background:#f8d7da;color:#721c24}.crit-badge{border-radius:4px;display:inline-block;font-size:.8rem;font-weight:500;padding:3px 8px}.crit-low{background:#d4edda;color:#155724}.crit-medium{background:#fff3cd;color:#856404}.crit-high{background:#f8d7da;color:#721c24}.crit-critical{background:#dc3545;color:#fff}.actions-col{white-space:nowrap}.action-btn{border:none;border-radius:4px;cursor:pointer;margin-right:4px;padding:6px 10px;transition:all .2s}.action-btn.edit{background:#e9ecef;color:#333}.action-btn.edit:hover{background:#dee2e6}.action-btn.import{background:#28a745;color:#fff}.action-btn.import:hover:not(:disabled){background:#218838}.action-btn:disabled{cursor:not-allowed;opacity:.5}.edit-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.edit-modal{background:#fff;border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;padding:24px;width:100%}.edit-modal h3{color:#1a1a2e;margin:0 0 16px}.edit-info{background:#f8f9fa;border-radius:6px;margin-bottom:16px;padding:12px}.edit-info p{font-size:.9rem;margin:4px 0}.form-group{margin-bottom:16px}.form-group label{color:#333;display:block;font-size:.9rem;font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{border:1px solid #ced4da;border-radius:6px;font-size:.95rem;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1 1}.edit-modal-actions{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:16px}.btn-cancel{background:#fff;border:1px solid #ced4da;border-radius:6px;cursor:pointer;font-size:.95rem;padding:10px 20px}.btn-cancel:hover{background:#f8f9fa}.btn-save{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:10px 20px}.btn-save:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}@media (max-width:1200px){.devices-table{font-size:.85rem}.devices-table td,.devices-table th{padding:8px 6px}}@media (max-width:768px){.discovered-devices-content{border-radius:0;max-height:100vh}.stats-bar{flex-wrap:wrap;gap:12px}.filter-bar{align-items:stretch;flex-direction:column;gap:12px}.filter-tabs{flex-wrap:wrap}.form-row{flex-direction:column;gap:0}}.dark-mode .discovered-devices-content{background:#1a1a2e;color:#e0e0e0}.dark-mode .discovered-header{border-bottom-color:#333}.dark-mode .discovered-header h2{color:#fff}.dark-mode .close-btn{color:#999}.dark-mode .close-btn:hover{color:#fff}.dark-mode .stats-bar{background:#16213e;border-bottom-color:#333}.dark-mode .stat-item{background:#1a1a2e}.dark-mode .stat-value{color:#fff}.dark-mode .stat-label{color:#999}.dark-mode .filter-bar{border-bottom-color:#333}.dark-mode .filter-tab{background:#16213e;border-color:#333;color:#e0e0e0}.dark-mode .filter-tab:hover{background:#252540}.dark-mode .filter-tab.active{background:#667eea;border-color:#667eea;color:#fff}.dark-mode .devices-table th{background:#16213e}.dark-mode .devices-table td,.dark-mode .devices-table th{border-bottom-color:#333;color:#e0e0e0}.dark-mode .devices-table tr:hover{background:#252540}.dark-mode .devices-table tr.selected{background:#667eea33}.dark-mode .vlan-tag{background:#333;color:#e0e0e0}.dark-mode .vlan-tag.target{background:#28a74533;color:#28a745}.dark-mode .action-btn.edit{background:#333;color:#e0e0e0}.dark-mode .action-btn.edit:hover{background:#444}.dark-mode .edit-modal{background:#1a1a2e;color:#e0e0e0}.dark-mode .edit-modal h3{color:#fff}.dark-mode .edit-info{background:#16213e}.dark-mode .form-group label{color:#e0e0e0}.dark-mode .form-group input,.dark-mode .form-group select,.dark-mode .form-group textarea{background:#16213e;border-color:#333;color:#e0e0e0}.dark-mode .form-group input:focus,.dark-mode .form-group select:focus,.dark-mode .form-group textarea:focus{border-color:#667eea}.dark-mode .edit-modal-actions{border-top-color:#333}.dark-mode .btn-cancel{background:#16213e;border-color:#333;color:#e0e0e0}.dark-mode .btn-cancel:hover{background:#252540}.dark-mode .error-message{background:#dc354533;border-color:#dc3545;color:#f5c6cb}.dark-mode .empty-state,.dark-mode .loading{color:#999}
/*# sourceMappingURL=main.10855a69.css.map*/