@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";
:root{--color-bg:#f9fafb;--color-bg-secondary:#fafbfc;--color-bg-tertiary:#e5e7eb;--color-bg-section:#eff6ff;--color-text:#111827;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-primary:#0e73cc;--color-primary-hover:#0a5ba8;--color-primary-light:#dbeafe;--color-bg-primary:#fff;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-unifi-blue:#0e73cc;--color-unifi-teal:#0891b2;--color-unifi-purple:#8b5cf6;--color-unifi-pink:#ec4899;--color-gray-50:#f7fafc;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#a0aec0;--color-gray-500:#6b7280;--color-gray-600:#4a5568;--color-gray-700:#374151;--color-gray-800:#2d3748;--color-gray-900:#111827;--gradient-start:#667eea;--gradient-end:#764ba2;--color-green-500:#48bb78;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--font-sans:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,"Courier New",monospace;--font-size-label:11px;--font-size-small:12px;--font-size-base:13px;--font-size-body:14px;--font-size-heading:28px;--font-size-metric:32px;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--letter-spacing-tight:-.02em;--letter-spacing-normal:0;--letter-spacing-wide:.5px;--line-height-none:1;--line-height-base:1.5;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--card-height-tiny:150px;--card-height-sm:240px;--card-height-md:640px;--card-height-lg:800px;--chart-color-1:#4a90e2;--chart-color-2:#6b9e78;--chart-color-3:#e57373;--chart-color-4:#d4941e;--chart-color-5:#8b7fa8;--chart-color-6:#a96c87;--chart-grid-color:#00000005;--chart-axis-color:#00000008;--chart-label-color:#6b7280;--chart-tooltip-bg:#fffffffa;--chart-tooltip-border:#0000001a;--chart-area-opacity:.05}.dark{--color-bg:#0a0a0a;--color-bg-secondary:#171717;--color-bg-tertiary:#262626;--color-bg-primary:#0a0a0a;--color-text:#fafafa;--color-text-primary:#fafafa;--color-text-secondary:#a3a3a3;--color-text-tertiary:#737373;--color-border:#404040;--color-border-light:#262626;--color-primary-light:#3b82f626;--chart-color-1:#5ba3f5;--chart-color-2:#7fb894;--chart-color-3:#f48686;--chart-color-4:#e5ad4a;--chart-color-5:#a599c0;--chart-color-6:#c088a5;--chart-grid-color:#ffffff05;--chart-axis-color:#ffffff08;--chart-label-color:#9ca3af;--chart-tooltip-bg:#171717fa;--chart-tooltip-border:#ffffff1a;--chart-area-opacity:.03}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);color:#1a1a1a;background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:color var(--transition-base),background-color var(--transition-base);scroll-behavior:smooth}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);color:#1a1a1a;line-height:1.2}h1{font-size:var(--font-size-heading);letter-spacing:var(--letter-spacing-tight)}h2{font-size:24px}h3{font-size:20px}h4{font-size:16px}h5{font-size:var(--font-size-body)}h6{font-size:var(--font-size-base)}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}table{border-collapse:collapse;width:100%}.loading-skeleton{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton-row,.skeleton-text,.skeleton-chart,.skeleton-image,.skeleton-map{background-color:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.skeleton-row{height:40px;margin-bottom:var(--spacing-sm)}.skeleton-text{height:16px;margin-bottom:var(--spacing-sm);width:80%}.skeleton-chart,.skeleton-image,.skeleton-map{width:100%;height:200px}.error-state{color:var(--color-error);padding:var(--spacing-lg);text-align:center;font-size:.875rem}.empty-state{color:var(--color-text-tertiary);padding:var(--spacing-lg);text-align:center;font-size:.875rem}.loading-spinner{border:3px solid var(--color-border-light);border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;margin:0 auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible{outline-offset:4px}@keyframes ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(4)}}.pattern-dots{background-image:radial-gradient(circle at 1px 1px,var(--color-border-light)1px,transparent 1px);background-size:24px 24px}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border:3px solid var(--color-bg-secondary);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--color-border)var(--color-bg-secondary)}button,a,input,textarea,select{transition:all var(--transition-fast)}.welcome-container{min-height:100vh;padding:var(--spacing-xl);justify-content:center;align-items:center;display:flex}.welcome-content{text-align:center;max-width:600px}.welcome-header h1{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin-bottom:var(--spacing-md);font-weight:600}.welcome-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);line-height:1.6}@media (max-width:768px){.welcome-container{padding:var(--spacing-lg)}.welcome-header h1{font-size:var(--font-size-xl)}.welcome-subtitle{font-size:var(--font-size-base)}}.stats-table-card{background:var(--color-bg-primary);border-radius:var(--radius-md);padding:1.5rem}.stats-table{flex-direction:column;gap:.75rem;display:flex}.stat-row{border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.stat-row:last-child{border-bottom:none}.stat-label{color:var(--color-text-secondary);font-size:.875rem}.stat-value{color:var(--color-primary);font-size:.875rem;font-weight:600}.dark .stats-table-card{background:var(--color-bg-secondary)}.dark .stat-row{border-bottom-color:var(--color-border)}.dark .stat-label{color:var(--color-text-tertiary)}.dark .stat-value{color:var(--color-primary)}
.app-container{height:100vh;display:flex;overflow:hidden}.main-content{background-color:var(--color-bg-secondary);flex:1;position:relative;overflow-y:auto}.main-content:before{content:"";background-image:radial-gradient(circle at 1px 1px,var(--color-border-light).5px,transparent .5px);opacity:.4;pointer-events:none;background-size:32px 32px;position:absolute;inset:0}.sidebar{background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;width:260px;margin:12px;padding:1.5rem;font-family:Inter,system-ui,sans-serif;transition:width .2s;display:flex;overflow:hidden;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.sidebar-collapsed{width:90px}.sidebar-header{border-bottom:1px solid #e5e7eb;align-items:center;gap:1rem;min-height:48px;padding:0 0 1rem;display:flex}.sidebar-header h2{color:#1e293b;white-space:nowrap;font-family:Inter,system-ui,sans-serif;font-size:1.125rem;font-weight:700;overflow:hidden}.sidebar-toggle{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex;position:relative;overflow:hidden}.sidebar-toggle:hover{color:var(--color-unifi-teal);background-color:#f8f9fa;transform:scale(1.05)}.sidebar-toggle:active{transform:scale(.95)}.sidebar-toggle:after{content:"";pointer-events:none;background-image:radial-gradient(circle,var(--color-primary)10%,transparent 10.01%);opacity:0;background-position:50%;background-repeat:no-repeat;width:100%;height:100%;transition:transform .5s,opacity 1s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(10)}.sidebar-toggle:active:after{opacity:.3;transition:all;transform:translate(-50%,-50%)scale(0)}.sidebar-footer{padding:var(--spacing-md)0 0 0;margin-top:auto}.theme-toggle{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;width:100%;padding:.625rem .75rem;font-family:Inter,system-ui,sans-serif;font-size:.875rem;font-weight:500;transition:all .2s;display:flex;position:relative;overflow:hidden}.theme-toggle:hover{color:var(--color-unifi-teal);background-color:#f8f9fa;transform:translate(2px)}.theme-toggle:active{transform:translate(0)}.theme-toggle svg{transition:transform .3s}.theme-toggle:hover svg{transform:rotate(15deg)}.sidebar-collapsed .theme-toggle{padding:var(--spacing-sm);justify-content:center}.sidebar-collapsed .theme-toggle span{display:none}.sidebar-content{padding:var(--spacing-md)0;flex:1;overflow:hidden auto}.sidebar-collapsed .sidebar-content{padding:var(--spacing-sm)}.tree-view{font-size:.875rem}.tree-section-header{color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin:1rem 0 .5rem;padding:0 .75rem;font-family:Inter,system-ui,sans-serif;font-size:.75rem;font-weight:700}.tree-node-label{cursor:pointer;-webkit-user-select:none;user-select:none;color:#64748b;background-color:#0000;border-radius:8px;align-items:center;gap:.5rem;margin-bottom:.25rem;padding:.625rem .75rem;font-family:Inter,system-ui,sans-serif;font-size:.875rem;font-weight:500;transition:all .2s;display:flex;position:relative}.tree-node-label:hover{color:#1e293b;background-color:#f8f9fa}.tree-node-label.active{background:var(--color-unifi-teal);color:#fff;font-weight:600}.tree-node-label.active .tree-node-icon-wrapper,.tree-node-label.active .tree-node-chevron{color:#fff}.tree-node-chevron{width:12px;color:var(--color-gray-600);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tree-node-icon-wrapper{width:16px;height:16px;color:var(--color-gray-600);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tree-node-text{color:inherit;white-space:nowrap;text-overflow:ellipsis;font-weight:inherit;overflow:hidden}.tree-node-children{margin-left:var(--spacing-xs)}.sidebar-collapsed .tree-node-label{padding:var(--spacing-sm);justify-content:center}.sidebar-collapsed .tree-node-chevron,.sidebar-collapsed .tree-node-text{display:none}.sidebar-loading{color:var(--color-text-tertiary);text-align:center;padding:var(--spacing-lg);font-size:.875rem}.dashboard{padding:12px var(--spacing-xl)var(--spacing-xl);width:calc(100% - 2*var(--spacing-xl));max-width:calc(100% - 2*var(--spacing-xl));margin:0 var(--spacing-xl);z-index:1;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(240px,auto);align-items:stretch;gap:6px 12px;display:grid;position:relative}.dashboard-row{display:contents}.dashboard-row+.dashboard-row{margin-top:20px}.dashboard-row-tiny{display:contents}.dashboard-row-tiny>.card{min-height:var(--card-height-tiny);height:var(--card-height-tiny)}.dashboard-row-small{display:contents}.dashboard-row-small>.card{min-height:var(--card-height-sm);height:var(--card-height-sm)}.dashboard-row-medium{display:contents}.dashboard-row-medium>.card{min-height:var(--card-height-md);height:var(--card-height-md)}.dashboard-row-large{display:contents}.dashboard-row-large>.card{min-height:var(--card-height-lg);height:var(--card-height-lg)}.dashboard-loading,.dashboard-error{height:100vh;padding:var(--spacing-xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.dashboard-error h2{color:var(--color-error);margin-bottom:var(--spacing-md)}.dashboard-error p{color:var(--color-text-secondary)}.dashboard-container{flex-direction:column;height:100%;display:flex}.dashboard-header{background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem 1.5rem;font-family:Inter,system-ui,sans-serif;display:flex}.dashboard-controls{align-items:center;gap:var(--spacing-md);display:flex}.refresh-button{color:#1e293b;cursor:pointer;background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:.5rem;height:36px;padding:.5rem 1rem;font-family:Inter,system-ui,sans-serif;font-size:14px;font-weight:500;transition:all .2s;display:flex}.refresh-button:hover{border-color:var(--color-unifi-teal);background-color:#f8f9fa;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.refresh-button:active{box-shadow:none;transform:translateY(0)}.refresh-button svg{color:var(--color-unifi-teal);transition:transform .3s}.refresh-button:hover svg{transform:rotate(180deg)}.dashboard-parameters{gap:var(--spacing-md);color:var(--color-text-secondary);font-size:.875rem;display:flex}.dashboard-parameters span{padding:var(--spacing-xs)var(--spacing-sm);background:var(--color-bg-secondary);border-radius:4px}.time-selector{position:relative}.time-selector-button{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:.5rem;height:36px;padding:.5rem 1rem;font-family:Inter,system-ui,sans-serif;font-size:.875rem;transition:all .2s;display:flex}.time-selector-button:hover{border-color:var(--color-unifi-teal);background:#f8f9fa}.time-selector-label{color:#64748b;font-weight:500}.time-selector-value{color:#1e293b;font-weight:600}.time-selector-arrow{transition:transform .2s}.time-selector-arrow.open{transform:rotate(180deg)}.time-selector-dropdown{z-index:1000;background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-width:320px;font-family:Inter,system-ui,sans-serif;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.time-selector-section{padding:var(--spacing-md);border-bottom:1px solid #e5e7eb}.time-selector-section:last-child{border-bottom:none}.time-selector-section h4{text-transform:uppercase;color:#64748b;letter-spacing:.05em;margin-bottom:.5rem;font-size:.75rem;font-weight:600}.time-selector-option{text-align:left;cursor:pointer;color:#1e293b;background:0 0;border:none;border-radius:8px;width:100%;padding:.5rem;font-size:.875rem;font-weight:500;transition:background .2s;display:block}.time-selector-option:hover{background:#f8f9fa}.time-selector-option.active{color:var(--color-unifi-teal);background:#06b6d41a;font-weight:600}.custom-range-inputs{gap:var(--spacing-sm);flex-direction:column;display:flex}.custom-range-inputs input{padding:var(--spacing-sm);border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:4px;font-size:.875rem}.custom-range-apply{padding:var(--spacing-sm);background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;font-size:.875rem;font-weight:500;transition:background .2s}.custom-range-apply:hover{background:var(--color-primary-hover)}.card{background-color:#fff;border-radius:8px;flex-direction:column;height:100%;padding:16px;transition:all .2s;display:flex;position:relative;overflow:hidden}.card:hover{transform:translateY(-2px)}.card[data-type=kpi]{overflow:visible}.card-wrapper[data-type=kpi]{position:relative;overflow:visible}.dark .card{background-color:var(--color-bg)}.card[data-colspan="1"]{grid-column:span 1}.card[data-colspan="2"]{grid-column:span 2}.card[data-colspan="3"]{grid-column:span 3}.card[data-colspan="4"]{grid-column:span 4}.card[data-colspan="5"]{grid-column:span 5}.card[data-colspan="6"]{grid-column:span 6}.card[data-colspan="7"],.card[data-colspan="8"],.card[data-colspan="9"],.card[data-colspan="10"],.card[data-colspan="11"],.card[data-colspan="12"]{grid-column:1/-1}.card[data-type=header],div[data-type=header]{background:0 0;grid-column:1/-1;width:100%;padding:0}.card[data-type=section-header],div[data-type=section-header]{background:0 0;padding:0;height:auto!important;min-height:auto!important}.card[data-type=section-header] .card-header,.card[data-type=section-header] .card-content{padding:0;display:block}.dashboard-row:has(.card[data-type=section-header]){margin-top:8px}.dashboard-row:has(.card[data-type=section-header])+.dashboard-row{margin-top:8px}.card.large-chart{grid-column:1/-1}.status-indicator{background-color:var(--color-green-500);border-radius:50%;width:8px;height:8px;display:inline-block;position:relative}.status-indicator:after{content:"";background-color:inherit;border-radius:50%;width:100%;height:100%;animation:2s infinite pulse;position:absolute}@keyframes pulse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2)}}.card-header{justify-content:space-between;align-items:center;min-height:auto;margin-bottom:12px;display:flex}.card-title{font-size:var(--font-size-label,11px);font-weight:var(--font-weight-medium,500);color:#666;line-height:var(--line-height-base,1.5);text-align:center;text-transform:uppercase;width:100%;letter-spacing:var(--letter-spacing-wide,.5px);margin:0}.card-timestamp{font-size:var(--font-size-label,11px);color:#666;white-space:nowrap;margin-left:var(--spacing-md);font-weight:var(--font-weight-normal,400)}.card-content{flex-direction:column;flex:1;padding:0;display:flex;overflow:auto}.card[data-type=image]{padding:0;overflow:hidden}.card[data-type=image] .card-header{z-index:2;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-radius:12px 12px 0 0;margin-bottom:0;padding:16px 20px;position:absolute;top:0;left:0;right:0}.card[data-type=image] .card-content{height:100%;padding:0;overflow:visible}.card[data-type=image] .card-header .card-title,.card[data-type=image] .card-header .card-timestamp{text-shadow:0 1px 2px #fffc,0 1px 4px #fff9;color:var(--color-text)}.card[data-type=image] .card-header .card-timestamp{color:var(--color-text-secondary)}.card[data-type=chart] .card-content,.card[data-type=map] .card-content{overflow:hidden}.table-wrapper{flex:1;overflow-x:auto}.data-table{width:100%;font-size:.875rem}.data-table th{text-align:left;font-weight:var(--font-weight-medium,500);color:#666;padding:var(--spacing-sm)var(--spacing-md);border-bottom:2px solid var(--color-border-light);font-size:var(--font-size-label,11px);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide,.5px)}.data-table td{padding:var(--spacing-xs)var(--spacing-md);border-bottom:1px solid var(--color-border-light);color:#1a1a1a;font-size:var(--font-size-base,13px);transition:all var(--transition-fast)}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr{transition:all var(--transition-fast)}.data-table tbody tr:hover{background-color:var(--color-bg-secondary);transform:scale(1.01)}.image-card{background-color:#00000005;justify-content:center;align-items:center;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.image-card img{object-fit:contain;border-radius:0;width:100%;height:100%}.image-caption{color:#fff;text-shadow:0 1px 2px #000c,0 1px 4px #0009;text-align:center;background:0 0;border-radius:0 0 12px 12px;padding:12px 20px;font-size:.813rem;position:absolute;bottom:0;left:0;right:0}.json-card{height:100%;overflow:auto}.json-content{font-family:var(--font-mono);padding:var(--spacing-md);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);margin:0;font-size:.813rem;line-height:1.6;overflow-x:auto}.json-key{color:#0969da;font-weight:500}.json-string{color:#0a3069}.json-number{color:#0969da}.json-boolean{color:#cf222e}.json-null{color:#6e7781}.json-bracket{color:var(--color-text-secondary);font-weight:600}.json-comma,.json-colon{color:var(--color-text-secondary)}.json-array-item,.json-object-item{display:block}.dark .json-key{color:#79c0ff}.dark .json-string{color:#a5d6ff}.dark .json-number{color:#79c0ff}.dark .json-boolean{color:#ff7b72}.dark .json-null{color:#8b949e}.text-card{height:100%}.text-content{color:var(--color-text);font-size:.875rem;line-height:1.6}@media (max-width:1200px){.dashboard{grid-template-columns:repeat(4,1fr)}.card[data-colspan="5"],.card[data-colspan="6"]{grid-column:span 4}}@media (max-width:768px){.app-container{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--color-border);border-radius:0;width:100%;height:auto;margin:0;padding:1rem}.dashboard-header{padding:.75rem var(--spacing-sm)}.dashboard{gap:var(--spacing-sm);padding:var(--spacing-sm);grid-template-columns:1fr;width:100%;max-width:100%;margin:0}.card{padding:12px}.card[data-colspan]{grid-column:span 1!important}}@media (max-width:480px){.sidebar{padding:.75rem}.dashboard-header{padding:.5rem var(--spacing-xs)}.dashboard{gap:4px;width:100%;max-width:100%;margin:0;padding:4px}.card{padding:8px}.card-header,.card-content{padding:var(--spacing-sm)}}.dark .sidebar{background-color:var(--color-bg);box-shadow:0 4px 6px -1px #0000004d}.dark .tree-node-label{color:var(--color-text-secondary)}.dark .tree-node-label:hover{background-color:var(--color-bg-tertiary)}.dark .tree-node-chevron,.dark .tree-node-icon-wrapper{color:var(--color-text-secondary)}.dark .card-title{color:var(--color-text)}.dark .card[data-type=image] .card-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.dark .card[data-type=image] .card-header .card-title,.dark .card[data-type=image] .card-header .card-timestamp{text-shadow:0 1px 2px #0009,0 1px 4px #0006;color:#fff}.dark .card[data-type=image] .card-header .card-timestamp{color:#ffffffd9}.dark .image-card{background-color:#ffffff05}.dark .image-caption{color:#fff;text-shadow:0 1px 2px #0009,0 1px 4px #0006;background:0 0}.limit-selector{position:relative}.limit-selector-button{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:.5rem;height:36px;padding:.5rem 1rem;font-family:Inter,system-ui,sans-serif;font-size:.875rem;transition:all .2s;display:flex}.limit-selector-button:hover{border-color:var(--color-unifi-teal);background:#f8f9fa}.limit-selector-label{color:#64748b;font-weight:500}.limit-selector-value{color:#1e293b;font-weight:600}.limit-selector-arrow{transition:transform .2s}.limit-selector-arrow.open{transform:rotate(180deg)}.limit-selector-dropdown{z-index:1000;background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-width:200px;font-family:Inter,system-ui,sans-serif;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.limit-selector-section{padding:var(--spacing-md);border-bottom:1px solid #e5e7eb}.limit-selector-section:last-child{border-bottom:none}.limit-selector-section h4{text-transform:uppercase;color:#64748b;letter-spacing:.05em;margin-bottom:.5rem;font-size:.75rem;font-weight:600}.limit-selector-option{text-align:left;cursor:pointer;color:#1e293b;background:0 0;border:none;border-radius:8px;width:100%;padding:.5rem;font-size:.875rem;font-weight:500;transition:background .2s;display:block}.limit-selector-option:hover{background:#f8f9fa}.limit-selector-option.active{color:var(--color-unifi-teal);background:#06b6d41a;font-weight:600}.custom-limit-inputs{gap:var(--spacing-sm);flex-direction:column;display:flex}.custom-limit-inputs input{padding:var(--spacing-sm);border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:4px;font-size:.875rem}.custom-limit-apply{padding:var(--spacing-sm);background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;font-size:.875rem;font-weight:500;transition:background .2s}.dark .dashboard-header{background:#171717;border-bottom-color:#404040}.dark .refresh-button{color:#fafafa;background-color:#171717;border-color:#404040}.dark .refresh-button:hover{border-color:var(--color-unifi-teal);background-color:#262626}.dark .refresh-button svg{color:var(--color-unifi-teal)}.dark .dashboard-parameters{color:#a3a3a3}.dark .dashboard-parameters span{background:#262626;border-color:#404040}.dark .time-selector-button{color:#fafafa;background:#171717;border-color:#404040}.dark .time-selector-button:hover{border-color:var(--color-unifi-teal);background:#262626}.dark .time-selector-label{color:#a3a3a3}.dark .time-selector-value{color:#fafafa}.dark .time-selector-dropdown{background:#171717;border-color:#404040}.dark .time-selector-section{border-bottom-color:#404040}.dark .time-selector-section h4{color:#a3a3a3}.dark .time-selector-option{color:#fafafa}.dark .time-selector-option:hover{background:#262626}.dark .time-selector-option.active{color:var(--color-unifi-teal);background:#06b6d426}.dark .limit-selector-button{color:#fafafa;background:#171717;border-color:#404040}.dark .limit-selector-button:hover{border-color:var(--color-unifi-teal);background:#262626}.dark .limit-selector-label{color:#a3a3a3}.dark .limit-selector-value{color:#fafafa}.dark .limit-selector-dropdown{background:#171717;border-color:#404040}.dark .limit-selector-section{border-bottom-color:#404040}.dark .limit-selector-section h4{color:#a3a3a3}.dark .limit-selector-option{color:#fafafa}.dark .limit-selector-option:hover{background:#262626}.dark .limit-selector-option.active{color:var(--color-unifi-teal);background:#06b6d426}.dark .sidebar{background-color:#171717;border-color:#404040}.dark .sidebar-header{border-bottom-color:#404040}.dark .sidebar-header h2{color:#fafafa}.dark .sidebar-toggle{color:#a3a3a3}.dark .sidebar-toggle:hover{color:var(--color-unifi-teal);background-color:#262626}.dark .theme-toggle{color:#a3a3a3}.dark .theme-toggle:hover{color:var(--color-unifi-teal);background-color:#262626}.dark .tree-section-header,.dark .tree-node-label{color:#a3a3a3}.dark .tree-node-label:hover{color:#fafafa;background-color:#262626}.dark .tree-node-label.active{background:var(--color-unifi-teal);color:#fff}.dark .tree-node-label.active .tree-node-icon-wrapper,.dark .tree-node-label.active .tree-node-chevron{color:#fff}.dark .custom-limit-inputs input,.dark .custom-time-inputs input{color:#fafafa;background:#262626;border-color:#404040}.dark .custom-limit-apply,.dark .custom-time-apply{background:var(--color-unifi-teal)}.dark .custom-limit-apply:hover,.dark .custom-time-apply:hover{background:#0891b2}.custom-limit-apply:hover:not(:disabled){background:var(--color-primary-hover)}.custom-limit-apply:disabled{opacity:.5;cursor:not-allowed}
