@charset "UTF-8";*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#232523;--bg-secondary:#2d302d;--bg-card:#2d302d;--bg-tertiary:#363936;--text-primary:#f6f7f8;--text-secondary:#c7dfb9;--text-muted:#747975;--accent-primary:#5b7f5c;--accent-secondary:#6dced1;--accent-tea:#c7dfb9;--border-color:#3d403d;--shadow:#0000004d}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background-color .3s ease,color .3s ease}.dark-mode body,body{background-color:#232523;background-color:var(--bg-primary);color:#f6f7f8;color:var(--text-primary)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app{min-height:100vh}.app.dark-mode{background-color:#232523;background-color:var(--bg-primary);color:#f6f7f8;color:var(--text-primary)}.container{margin:0 auto;max-width:1400px;padding:20px}.header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;box-shadow:0 4px 6px #0000001a;color:#fff;margin-bottom:30px;padding:20px}.header h1{font-size:28px;margin-bottom:5px}.header p{font-size:14px;opacity:.9}.card{background:#2d302d;background:var(--bg-card);border:1px solid #3d403d;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 2px 4px #0000004d;box-shadow:0 2px 4px var(--shadow);margin-bottom:20px;padding:20px;transition:background-color .3s ease,border-color .3s ease}.card h2{color:#f6f7f8;color:var(--text-primary);font-size:20px;margin-bottom:15px}.card h3{color:#c7dfb9;color:var(--text-secondary);font-size:16px;margin-bottom:10px}.grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:20px}.stat-card{background:#2d302d;background:var(--bg-card);border:1px solid #3d403d;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 2px 4px #0000004d;box-shadow:0 2px 4px var(--shadow);padding:20px;transition:background-color .3s ease,border-color .3s ease}.stat-value{color:#5b7f5c;color:var(--accent-primary);font-size:32px;margin:10px 0}.stat-label{color:#c7dfb9;font-size:14px}.form-group{margin-bottom:15px}.form-group label{color:#f6f7f8;color:var(--text-primary);font-weight:500;margin-bottom:5px}.form-group input,.form-group select{background:#2d302d;background:var(--bg-card);border:1px solid #3d403d;border:1px solid var(--border-color);border-radius:4px;color:#f6f7f8;color:var(--text-primary);padding:10px;transition:border-color .3s ease,background-color .3s ease}.form-group input:focus,.form-group select:focus{border-color:#c7dfb9;border-color:var(--accent-tea)}.btn{border-radius:4px;font-size:14px;padding:10px 20px;transition:all .3s}.btn-primary{background:#5b7f5c;background:var(--accent-primary)}.btn-primary:hover{background:#4a6b4b}.btn-secondary{background:#747975;background:var(--text-muted);margin-left:10px}.btn-secondary:hover{background:#5a5f5a}.btn-success{background:#5b7f5c;background:var(--accent-primary);color:#fff}.btn-success:hover{background:#4a6b4b}.table-container{overflow-x:auto}table{border-collapse:collapse;width:100%}thead{background:#2d302d;background:var(--bg-secondary)}td,th{border-bottom:1px solid #3d403d;border-bottom:1px solid var(--border-color);padding:12px;text-align:left}th{color:#c7dfb9;color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}td{color:#f6f7f8;color:var(--text-primary)}tbody tr:hover{background-color:#2d302d;background-color:var(--bg-secondary)}.status{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 12px}.status-online{background:#c7dfb9;background:var(--accent-tea);color:#5b7f5c;color:var(--accent-primary)}.status-offline{background:#2d302d;background:var(--bg-secondary);color:#747975;color:var(--text-muted)}.loading{color:#c7dfb9;color:var(--text-secondary);padding:40px;text-align:center}.filter-bar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px}.filter-bar .form-group{flex:1 1;margin-bottom:0;min-width:200px}.chart-container{height:400px;padding:20px 0}.recharts-wrapper{margin:0 auto}.app-header{align-items:center;border-bottom:2px solid var(--border-color);display:flex;gap:24px;justify-content:space-between;margin-bottom:20px;padding:20px 0}.app-header-left{flex:1 1}.app-logo-link{color:inherit;cursor:pointer;text-decoration:none}.app-logo-link:hover .app-title{color:var(--accent-primary)}.app-title{color:var(--text-primary);font-size:28px;font-weight:700;margin:0;transition:color .2s ease}.app-subtitle{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.app-header-right{align-items:center;display:flex;gap:12px}.app-nav{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;display:flex;gap:8px;margin-bottom:24px;padding:8px}.app-nav-link{align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;color:var(--text-secondary);display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 20px;text-decoration:none;transition:all .2s ease}.app-nav-link:hover{background:var(--bg-secondary);border-color:var(--border-color);color:var(--accent-primary)}.app-nav-link.active{background:var(--accent-primary);box-shadow:0 2px 8px #5b7f5c4d;color:#fff}.app-nav-icon{font-size:18px}.app-nav-label{font-size:14px}.dark-mode .app-title{color:var(--text-primary)}.dark-mode .app-subtitle{color:var(--text-secondary)}.dark-mode .app-header{border-bottom-color:var(--border-color)}.dark-mode .app-nav{background:var(--bg-card);border-color:var(--border-color)}.dark-mode .app-nav-link{color:var(--text-secondary)}.dark-mode .app-nav-link:hover{background:var(--bg-secondary);border-color:var(--border-color);color:var(--accent-primary)}.dark-mode .app-nav-link.active{background:var(--accent-primary);color:#fff}@media (max-width:768px){.app-header{align-items:flex-start;flex-direction:column}.app-header-right{flex-wrap:wrap;width:100%}.app-nav{flex-direction:column;gap:4px}.app-nav-link{width:100%}}.clickup-auth-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.clickup-auth-btn:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 8px #00000014;transform:translateY(-1px)}.clickup-auth-btn.connected{background:#f0fdf4;border-color:#86efac;color:#166534}.clickup-auth-btn.connected:hover{background:#dcfce7;border-color:#4ade80}.clickup-auth-btn.loading{cursor:not-allowed;opacity:.6}.clickup-auth-btn .status-dot{background:#94a3b8;border-radius:50%;height:8px;width:8px}.clickup-auth-btn.connected .status-dot{background:#22c55e;box-shadow:0 0 0 3px #22c55e33}.clickup-auth-btn .workspace-info{align-items:flex-start;display:flex;flex-direction:column;gap:2px}.clickup-auth-btn .workspace-name{color:#64748b;font-size:12px;font-weight:400}.clickup-disconnect{background:#fee2e2;border:1px solid #fca5a5;border-radius:6px;color:#991b1b;cursor:pointer;font-size:12px;margin-left:8px;padding:4px 10px;transition:all .2s ease}.clickup-disconnect:hover{background:#fecaca;border-color:#f87171}body.dark-mode .clickup-auth-btn{background:#1e293b;border-color:#334155;color:#e2e8f0}body.dark-mode .clickup-auth-btn:hover{background:#334155;border-color:#475569}body.dark-mode .clickup-auth-btn.connected{background:#064e3b;border-color:#10b981;color:#6ee7b7}body.dark-mode .clickup-auth-btn.connected:hover{background:#065f46;border-color:#34d399}body.dark-mode .clickup-auth-btn .workspace-name{color:#94a3b8}body.dark-mode .clickup-disconnect{background:#7f1d1d;border-color:#991b1b;color:#fca5a5}body.dark-mode .clickup-disconnect:hover{background:#991b1b;border-color:#b91c1c}.oos-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000d;padding:20px}.oos-title{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:8px;color:#fff;display:flex;font-size:16px;font-weight:700;gap:12px;margin:0 0 16px;padding:12px 16px;text-shadow:0 1px 2px #0003}.oos-count{background:#ffffff40;border-radius:12px;font-size:13px;font-weight:600;margin-left:auto;padding:4px 10px}.oos-empty,.oos-error,.oos-loading{color:#64748b;font-size:14px;padding:40px 20px;text-align:center}.oos-error{color:#dc2626}.oos-table-wrap{border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto}.oos-table{border-collapse:collapse;font-size:13px;width:100%}.oos-table thead{background:#f8fafc;border-bottom:2px solid #e5e7eb}.oos-table th{color:#475569;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.oos-table td{border-bottom:1px solid #f1f5f9;color:#0f172a;padding:12px}.oos-table tbody tr:hover{background:#fafbfc}.oos-table tbody tr:last-child td{border-bottom:none}.oos-router-name{color:#0f172a;font-weight:600;margin-bottom:2px}.oos-router-meta{color:#64748b;font-size:11px;font-style:italic}.oos-imei{color:#64748b;font-family:Monaco,Courier New,monospace;font-size:12px}.oos-person-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;text-transform:capitalize}.oos-person-jordan{background:#dbeafe;color:#1e40af}.oos-person-ali{background:#fef3c7;color:#92400e}.oos-person-karl{background:#dcfce7;color:#166534}.oos-days-badge{background:#f1f5f9;border-radius:8px;color:#475569;display:inline-block;font-size:12px;font-weight:600;padding:4px 8px}.oos-days-badge.oos-days-warning{background:#fee2e2;color:#991b1b}.oos-reason{max-width:250px}.oos-notes{color:#64748b;font-size:11px;font-style:italic;margin-top:4px}.oos-return-btn{background:#fff;border:1px solid #10b981;border-radius:6px;color:#10b981;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;transition:all .15s ease;white-space:nowrap}.oos-return-btn:hover{background:#10b981;color:#fff}.oos-return-btn:active{transform:scale(.98)}.stored-with-groups{display:flex;flex-direction:column;gap:20px}.assignee-group{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.assignee-name{align-items:center;color:#1f2937;display:flex;font-size:14px;font-weight:600;gap:8px;margin:0 0 12px}.assignee-router-count{background:#6366f1;border-radius:12px;color:#fff;font-size:12px;font-weight:600;padding:2px 8px}.assignee-routers{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.router-item{background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;flex-direction:column;gap:8px;padding:12px;transition:all .15s ease}.router-item.router-item-online{background:#f0fdf4;border:2px solid #22c55e;box-shadow:0 0 0 1px #22c55e1a}.router-item.router-item-online:hover{box-shadow:0 2px 8px #22c55e4d}.router-item.router-item-offline{background:#fef2f2;border:2px solid #ef4444;box-shadow:0 0 0 1px #ef44441a}.router-item.router-item-offline:hover{box-shadow:0 2px 8px #ef44444d}.router-item-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.router-item-id{color:#6366f1;font-size:13px;font-weight:700}.router-item-name{color:#64748b;font-size:13px}.router-item-location{border-top:1px solid #f1f5f9;color:#64748b;font-size:12px;padding:4px 0}.router-item-view-btn{background:#6366f1;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;margin-top:4px;padding:6px 12px;transition:all .15s ease}.router-item-view-btn:hover{background:#4f46e5}.router-item-view-btn:active{transform:scale(.98)}.installed-routers-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-bottom:20px;padding:20px}.installed-routers-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:16px}.installed-routers-title{align-items:center;color:#1f2937;display:flex;font-size:18px;font-weight:600;gap:12px;margin:0}.installed-routers-count{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:12px;color:#fff;font-size:14px;font-weight:600;padding:4px 12px}.ir-filter-controls{align-items:center;display:flex;gap:8px}.ir-filter-btn{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:6px;color:#4b5563;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s}.ir-filter-btn:hover{background:#f5f3ff;border-color:#6366f1;color:#6366f1}.ir-filter-btn.active{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#ef4444;color:#fff}.ir-filter-btn.active:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);border-color:#dc2626}.installed-routers-empty,.installed-routers-error,.installed-routers-loading{color:#64748b;font-size:14px;padding:40px 20px;text-align:center}.installed-routers-error{color:#dc2626}.installed-routers-table-wrap{border:1px solid #e5e7eb;border-radius:6px;overflow-x:auto}.installed-routers-table{border-collapse:collapse;font-size:13px;width:100%}.installed-routers-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.installed-routers-table th{color:#374151;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 16px;position:relative;text-align:left;text-transform:uppercase;-webkit-user-select:none;user-select:none}.installed-routers-table th:hover{background:#f3f4f6}.sort-icon{color:#9ca3af;display:inline-block;font-size:12px;margin-left:6px;transition:color .2s}.sort-icon.active{color:#6366f1;font-weight:700}.installed-routers-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .15s}.installed-routers-table tbody tr:hover{background:#f9fafb}.installed-routers-table tbody tr:last-child{border-bottom:none}.installed-routers-table td{color:#4b5563;padding:12px 16px}.ir-router-info{display:flex;flex-direction:column;gap:2px}.ir-router-id{color:#1f2937;font-size:14px;font-weight:600}.ir-router-name{color:#6b7280;font-size:12px}.ir-property-name{color:#374151;font-weight:500}.ir-review-info{display:flex;flex-direction:column;gap:4px}.ir-review-countdown{border-radius:10px;display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;width:-webkit-fit-content;width:fit-content}.ir-review-countdown.soon{background:#fef3c7;color:#92400e}.ir-review-countdown.overdue{background:#fee2e2;color:#991b1b}.ir-view-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;padding:6px 14px;transition:all .15s;white-space:nowrap}.ir-view-btn:hover{box-shadow:0 4px 8px #6366f14d;transform:translateY(-1px)}.ir-view-btn:active{transform:translateY(0)}.ir-status-indicator{align-items:center;display:flex;justify-content:center}.ir-status-dot{border-radius:50%;box-shadow:0 0 4px #0003;display:inline-block;height:10px;width:10px}.ir-status-dot.ir-status-online{background:#22c55e;box-shadow:0 0 8px #22c55e80}.ir-status-dot.ir-status-offline{background:#ef4444;box-shadow:0 0 8px #ef444480}.ir-date-overdue{color:#dc2626;font-weight:600}.dark-mode .installed-routers-card{background:#1f2937;border-color:#374151}.dark-mode .installed-routers-title{color:#f3f4f6}.dark-mode .installed-routers-table thead{background:#374151;border-bottom-color:#4b5563}.dark-mode .installed-routers-table th{color:#d1d5db}.dark-mode .installed-routers-table th:hover{background:#4b5563}.dark-mode .installed-routers-table tbody tr{border-bottom-color:#374151}.dark-mode .installed-routers-table tbody tr:hover{background:#374151}.dark-mode .installed-routers-table td{color:#d1d5db}.dark-mode .ir-router-id{color:#f3f4f6}.dark-mode .ir-router-name{color:#9ca3af}.dark-mode .ir-property-name{color:#e5e7eb}.dark-mode .installed-routers-table-wrap{border-color:#4b5563}.dark-mode .sort-icon{color:#6b7280}.dark-mode .sort-icon.active{color:#8b5cf6}.system-status-v2{background-color:#f8f9fa;color:#1f2937;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;min-height:100vh;padding:24px}.status-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.status-header h1{color:#111827;font-size:24px;font-weight:600;margin:0}.last-updated{color:#6b7280;font-size:14px;margin-top:4px}.refresh-button{align-items:center;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:8px 16px;transition:all .2s}.refresh-button:hover:not(:disabled){background-color:#f3f4f6;border-color:#9ca3af}.refresh-button:disabled{cursor:not-allowed;opacity:.6}.status-section{margin-bottom:32px}.section-title{border-bottom:2px solid #e5e7eb;color:#374151;font-size:16px;font-weight:600;letter-spacing:.5px;margin:0 0 16px;padding-bottom:8px;text-transform:uppercase}.kpi-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.kpi-card{background:#fff;border-left:4px solid #0000;border-radius:12px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;padding:20px}.kpi-card.primary{border-left-color:#3b82f6}.kpi-card.success{border-left-color:#10b981}.kpi-card.warning{border-left-color:#f59e0b}.kpi-card.danger{border-left-color:#ef4444}.kpi-card.info{border-left-color:#6366f1}.kpi-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.kpi-title{color:#6b7280;font-size:13px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.kpi-icon{font-size:20px}.kpi-value{color:#111827;font-size:28px;font-weight:700;margin-bottom:4px}.kpi-value-sub{color:#6b7280;font-size:16px}.kpi-sub{color:#6b7280;font-size:13px}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.chart-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;min-height:320px;padding:24px}.chart-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.chart-title{color:#111827;font-size:16px;font-weight:600;margin:0}.chart-container{flex:1 1;min-height:220px;position:relative;width:100%}.stats-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.stats-grid.three-col{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.health-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000d;padding:20px}.health-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.health-item{align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;padding:12px}.health-item.healthy{background-color:#ecfdf5;border-color:#d1fae5}.health-item.warning{background-color:#fffbeb;border-color:#fde68a}.health-item.error{background-color:#fef2f2;border-color:#fecaca}.health-indicator{border-radius:50%;flex-shrink:0;height:10px;margin-right:10px;width:10px}.healthy .health-indicator{background-color:#10b981}.warning .health-indicator{background-color:#f59e0b}.error .health-indicator{background-color:#ef4444}.health-label{color:#374151;font-size:14px;font-weight:500}.radius-status-grid{display:flex;flex-direction:column;gap:12px}.router-session-list{display:flex;flex-direction:column;gap:8px}.router-session-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;justify-content:space-between;padding:10px 12px}.router-session-item .router-name{color:#374151;font-size:14px;font-weight:500}.router-session-item .session-count{align-items:center;color:#6b7280;display:flex;font-size:13px;gap:8px}.active-badge{background:#ecfdf5;border-radius:10px;color:#10b981;font-size:11px;font-weight:500;padding:2px 8px}.empty-state-small{color:#9ca3af;font-size:14px;padding:20px;text-align:center}.error-message-small{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:12px;padding:8px 12px}.storage-metrics{display:flex;flex-direction:column;gap:16px}.metric-sub,.quota-section{margin-top:8px}.metric-sub{color:#6b7280;font-size:12px}.loading-container{min-height:400px}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;margin-bottom:16px;width:40px}.error-container{align-items:center;color:#ef4444;display:flex;flex-direction:column;justify-content:center;min-height:400px;text-align:center}.retry-btn{background-color:#ef4444;border-radius:6px;font-weight:500;margin-top:16px;padding:8px 20px}.text-success{color:#10b981}.text-warning{color:#f59e0b}.text-danger{color:#ef4444}.text-muted{color:#6b7280}.progress-bar-container{background-color:#e5e7eb;border-radius:4px;height:8px;margin-top:8px;overflow:hidden;width:100%}.progress-bar{background-color:#3b82f6;border-radius:4px;height:100%;transition:width .5s ease}.progress-bar.high{background-color:#f59e0b}.progress-bar.critical{background-color:#ef4444}.metric-row{align-items:center;display:flex;font-size:14px;justify-content:space-between}.metric-row.highlight{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:8px 12px}.metric-label{color:#6b7280}.metric-val{color:#111827;font-weight:600}@media (max-width:768px){.system-status-v2{padding:16px}.status-header{align-items:flex-start;flex-direction:column;gap:12px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.charts-grid,.stats-grid,.stats-grid.three-col{grid-template-columns:1fr}.health-grid{grid-template-columns:repeat(2,1fr)}}.dashboard-v3{margin:0 auto;max-width:1600px;min-height:100vh;padding:20px}.dashboard-v3,.dashboard-v3.dark{background:var(--bg-primary);color:var(--text-primary)}.v3-controls-bar{align-items:center;border-radius:12px;display:flex;gap:12px;justify-content:flex-end;margin-bottom:20px;padding:12px}.toggle,.v3-controls-bar{background:var(--bg-card);border:1px solid var(--border-color)}.toggle{border-radius:8px;color:var(--text-primary);cursor:pointer;padding:8px 10px}.dashboard-v3.dark .v3-page-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.v3-full-width-content{display:flex;flex-direction:column;gap:16px}.v3-time-controls{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.v3-time-controls .seg{background:var(--bg-secondary);border-radius:8px;display:flex;gap:6px;padding:4px}.v3-time-controls .seg button{background:#0000;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:12px;padding:6px 10px}.v3-time-controls .seg button.active{background:var(--accent-primary);color:#fff}.v3-metrics{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:16px}.v3-metric{background:var(--bg-card);border-left:4px solid var(--accent-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 8px var(--shadow);padding:16px}.v3-metric .label{color:var(--text-secondary);font-size:12px;letter-spacing:.5px;text-transform:uppercase}.v3-metric .value{color:var(--text-primary);font-size:28px;font-weight:700;line-height:1;margin-top:6px}.v3-metric .sub{color:var(--text-muted);font-size:12px;margin-top:6px}.v3-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1.2fr 1fr}@media (max-width:1200px){.v3-grid{grid-template-columns:1fr}}.v3-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 8px var(--shadow);padding:16px}.v3-card-title{color:var(--text-primary);font-size:14px;font-weight:600;margin-bottom:8px}.col{display:flex;flex-direction:column;gap:12px}.heatmap{border:1px solid var(--border-color);border-radius:8px;overflow:auto}.heatmap-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:grid;grid-template-columns:60px repeat(24,1fr);padding:8px}.hcol{color:var(--text-secondary);font-size:10px;text-align:center}.heatmap-row{display:grid;grid-template-columns:60px repeat(24,1fr)}.dlabel{background:var(--bg-secondary);border-right:1px solid var(--border-color);color:var(--text-secondary);font-size:12px;padding:6px}.cell{border-right:1px solid #00000005;height:22px}.heatstrip{grid-gap:4px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;display:grid;gap:4px;grid-template-columns:repeat(auto-fit,minmax(10px,1fr));padding:6px}.delta{border-radius:10px;display:inline-block;font-size:11px;font-weight:600;margin-left:6px;padding:2px 6px}.delta.up{background:#dcfce7;color:#166534}.delta.down{background:#fee2e2;color:#991b1b}.delta.neutral{background:var(--bg-secondary);color:var(--text-muted)}.v3-delta{color:var(--text-secondary);margin-top:8px}.v3-footer-note{color:var(--text-muted);font-size:12px;margin-top:12px}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{margin-left:-4px;position:absolute;width:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{border:8px solid #0000;box-sizing:initial;content:"";height:0;left:-8px;position:absolute;width:1px;z-index:-1}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{margin-top:-8px;top:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{border-bottom-color:#f0f0f0;border-top:none}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{top:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{border-bottom-color:#aeaeae;top:-1px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{bottom:0;margin-bottom:-8px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{border-bottom:none;border-top-color:#fff}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after{bottom:0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{border-top-color:#aeaeae;bottom:-1px}.react-datepicker-wrapper{border:0;display:inline-block;padding:0}.react-datepicker{background-color:#fff;border:1px solid #aeaeae;border-radius:.3rem;color:#000;display:inline-block;font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;position:relative}.react-datepicker--time-only .react-datepicker__triangle{left:35px}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__triangle{left:50px;position:absolute}.react-datepicker-popper{z-index:1}.react-datepicker-popper[data-placement^=bottom]{padding-top:10px}.react-datepicker-popper[data-placement=bottom-end] .react-datepicker__triangle,.react-datepicker-popper[data-placement=top-end] .react-datepicker__triangle{left:auto;right:50px}.react-datepicker-popper[data-placement^=top]{padding-bottom:10px}.react-datepicker-popper[data-placement^=right]{padding-left:8px}.react-datepicker-popper[data-placement^=right] .react-datepicker__triangle{left:auto;right:42px}.react-datepicker-popper[data-placement^=left]{padding-right:8px}.react-datepicker-popper[data-placement^=left] .react-datepicker__triangle{left:42px;right:auto}.react-datepicker__header{background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative;text-align:center}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__year-dropdown-container--select{display:inline-block;margin:0 15px}.react-datepicker-time__header,.react-datepicker-year-header,.react-datepicker__current-month{color:#000;font-size:.944rem;font-weight:700;margin-top:0}.react-datepicker-time__header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.react-datepicker__navigation{align-items:center;background:none;border:none;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;padding:0;position:absolute;text-align:center;text-indent:-999em;top:2px;width:32px;z-index:1}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{display:block;margin-left:auto;margin-right:auto;position:relative;top:0}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover :before{border-color:#a6a6a6}.react-datepicker__navigation-icon{font-size:20px;position:relative;top:-1px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{left:-7px;transform:rotate(45deg)}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{right:-7px;transform:rotate(225deg)}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;margin:2px;width:4rem}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;margin:2px;width:4rem}.react-datepicker__input-time-container{clear:both;float:left;margin:5px 0 10px 15px;text-align:left;width:100%}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{display:inline-block;margin-left:5px}.react-datepicker__time-container{border-left:1px solid #aeaeae;float:right;width:85px}.react-datepicker__time-container--with-today-button{border:1px solid #aeaeae;border-radius:.3rem;display:inline;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{background:#fff;border-bottom-right-radius:.3rem;position:relative}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{border-bottom-right-radius:.3rem;margin:0 auto;overflow-x:hidden;text-align:center;width:85px}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{box-sizing:initial;height:calc(195px + .85rem);list-style:none;margin:0;overflow-y:scroll;padding-left:0;padding-right:0;width:100%}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{background-color:#f0f0f0;cursor:pointer}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{background-color:initial;cursor:default}.react-datepicker__week-number{color:#ccc;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected,.react-datepicker__week-number--keyboard-selected):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__week-number--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__week-number--keyboard-selected{background-color:#2a87d0;border-radius:.3rem;color:#fff}.react-datepicker__week-number--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day-names{margin-bottom:-8px;white-space:nowrap}.react-datepicker__week{white-space:nowrap}.react-datepicker__day,.react-datepicker__day-name,.react-datepicker__time-name{color:#000;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:hover,.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover,.react-datepicker__year-text:hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{background-color:#3dcc4a;border-radius:.3rem;color:#fff}.react-datepicker__day--highlighted:hover,.react-datepicker__month-text--highlighted:hover,.react-datepicker__quarter-text--highlighted:hover,.react-datepicker__year-text--highlighted:hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{background-color:#ff6803;border-radius:.3rem;color:#fff;position:relative}.react-datepicker__day--holidays .holiday-overlay,.react-datepicker__month-text--holidays .holiday-overlay,.react-datepicker__quarter-text--holidays .holiday-overlay,.react-datepicker__year-text--holidays .holiday-overlay{background-color:#333;border-radius:4px;bottom:100%;color:#fff;left:50%;opacity:0;padding:4px;position:absolute;transform:translateX(-50%);transition:visibility 0s,opacity .3s ease-in-out;visibility:hidden;white-space:nowrap}.react-datepicker__day--holidays:hover,.react-datepicker__month-text--holidays:hover,.react-datepicker__quarter-text--holidays:hover,.react-datepicker__year-text--holidays:hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .holiday-overlay,.react-datepicker__month-text--holidays:hover .holiday-overlay,.react-datepicker__quarter-text--holidays:hover .holiday-overlay,.react-datepicker__year-text--holidays:hover .holiday-overlay{opacity:1;visibility:visible}.react-datepicker__day--in-range,.react-datepicker__day--in-selecting-range,.react-datepicker__day--selected,.react-datepicker__month-text--in-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--selected,.react-datepicker__quarter-text--in-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--selected,.react-datepicker__year-text--in-range,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__day--in-range:hover,.react-datepicker__day--in-selecting-range:hover,.react-datepicker__day--selected:hover,.react-datepicker__month-text--in-range:hover,.react-datepicker__month-text--in-selecting-range:hover,.react-datepicker__month-text--selected:hover,.react-datepicker__quarter-text--in-range:hover,.react-datepicker__quarter-text--in-selecting-range:hover,.react-datepicker__quarter-text--selected:hover,.react-datepicker__year-text--in-range:hover,.react-datepicker__year-text--in-selecting-range:hover,.react-datepicker__year-text--selected:hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{background-color:#bad9f1;border-radius:.3rem;color:#000}.react-datepicker__day--keyboard-selected:hover,.react-datepicker__month-text--keyboard-selected:hover,.react-datepicker__quarter-text--keyboard-selected:hover,.react-datepicker__year-text--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{color:#ccc;cursor:default}.react-datepicker__day--disabled:hover,.react-datepicker__month-text--disabled:hover,.react-datepicker__quarter-text--disabled:hover,.react-datepicker__year-text--disabled:hover{background-color:initial}.react-datepicker__input-container{display:inline-block;position:relative;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{box-sizing:initial;padding:.5rem;position:absolute}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__month-read-view,.react-datepicker__month-year-read-view,.react-datepicker__year-read-view{border:1px solid #0000;border-radius:.3rem;position:relative}.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover,.react-datepicker__year-read-view:hover{cursor:pointer}.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow{right:-16px;top:0;transform:rotate(135deg)}.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown,.react-datepicker__year-dropdown{background-color:#f0f0f0;border:1px solid #aeaeae;border-radius:.3rem;left:25%;position:absolute;text-align:center;top:30px;width:50%;z-index:1}.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover,.react-datepicker__year-dropdown:hover{cursor:pointer}.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable,.react-datepicker__year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__month-option,.react-datepicker__month-year-option,.react-datepicker__year-option{display:block;line-height:20px;margin-left:auto;margin-right:auto;width:100%}.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type,.react-datepicker__year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type,.react-datepicker__year-option:last-of-type{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem;-webkit-user-select:none;user-select:none}.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover,.react-datepicker__year-option:hover{background-color:#ccc}.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected,.react-datepicker__year-option--selected{left:15px;position:absolute}.react-datepicker__close-icon{background-color:initial;border:0;cursor:pointer;display:table-cell;height:100%;outline:0;padding:0 6px 0 0;position:absolute;right:0;top:0;vertical-align:middle}.react-datepicker__close-icon:after{background-color:#216ba5;border-radius:50%;color:#fff;content:"×";cursor:pointer;display:table-cell;font-size:12px;height:16px;line-height:1;padding:2px;text-align:center;vertical-align:middle;width:16px}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{background-color:#ccc;cursor:default}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;clear:left;cursor:pointer;font-weight:700;padding:5px 0;text-align:center}.react-datepicker__portal{align-items:center;background-color:#000c;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:2147483647}.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:3rem;width:3rem}@media (max-height:550px),(max-width:400px){.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:2rem;width:2rem}}.react-datepicker__portal .react-datepicker-time__header,.react-datepicker__portal .react-datepicker__current-month{font-size:1.44rem}.react-datepicker__children-container{height:auto;margin:.4rem;padding-left:.2rem;padding-right:.2rem;width:13.8rem}.react-datepicker__aria-live{border:0;-webkit-clip-path:circle(0);clip-path:circle(0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker__calendar-icon{height:1em;vertical-align:-.125em;width:1em}.clickup-task-widget{background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #7c3aed;border-radius:8px;margin-top:16px;padding:16px;position:relative;transition:border-color .3s ease,background-color .3s ease}.clickup-task-widget.status-ready{background:#dbeafe;border-left-color:#3b82f6}.clickup-task-widget.status-attention{background:#fee2e2;border-left-color:#ef4444}.clickup-task-widget.status-returning{background:#ffedd5;border-left-color:#f97316}.clickup-task-widget.status-decommissioned{background:#fee2e2;border-left-color:#ef4444}.clickup-task-widget h4{align-items:center;color:#0f172a;display:flex;font-size:14px;font-weight:600;gap:8px;margin:0 0 12px}.clickup-task-widget h4 .icon{color:#7c3aed}.task-linked{display:flex;flex-direction:column;gap:12px}.task-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:12px;justify-content:space-between;padding-bottom:12px}.task-header-left{align-items:center;display:flex;flex:1 1;gap:10px;min-width:0}.clickup-icon-link{align-items:center;display:flex;flex-shrink:0;transition:transform .2s ease}.clickup-icon-link:hover{transform:scale(1.1)}.clickup-icon{height:24px;object-fit:contain;width:24px}.task-name{color:#1e293b;font-size:15px;overflow:hidden;text-overflow:ellipsis}.task-name,.task-status-pill{font-weight:600;white-space:nowrap}.task-status-pill{align-items:center;border-radius:16px;display:inline-flex;flex-shrink:0;font-size:12px;padding:6px 14px}.task-status-pill.installed,.task-status-pill.ready{background:#d1fae5;border:1.5px solid #10b981;color:#065f46}.task-status-pill.needs-attention{background:#fef3c7;border:1.5px solid #f59e0b;color:#92400e}.task-status-pill.being-returned{background:#dbeafe;border:1.5px solid #3b82f6;color:#1e40af}.task-status-pill.decommissioned{background:#fee2e2;border:1.5px solid #ef4444;color:#991b1b}.task-assigned-to{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;display:flex;gap:12px;padding:12px}.assigned-icon{font-size:32px;line-height:1}.assigned-info{flex:1 1}.assigned-label{font-size:11px;letter-spacing:.5px;margin-bottom:2px;opacity:.9;text-transform:uppercase}.assigned-name{font-size:16px;font-weight:600}.router-details{grid-gap:8px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;display:grid;gap:8px;grid-template-columns:repeat(2,1fr);padding:10px 12px}.router-detail-item{align-items:baseline;display:flex;font-size:12px;gap:6px}.router-details .detail-label{color:#475569;font-weight:500;white-space:nowrap}.router-details .detail-value{color:#1e293b;font-weight:600;overflow:hidden;text-overflow:ellipsis}body.dark-mode .router-details{background:#f8fafc;border-color:#e2e8f0}body.dark-mode .router-details .detail-label{color:#475569}body.dark-mode .router-details .detail-value{color:#1e293b}.task-meta{color:#64748b;display:flex;flex-wrap:wrap;font-size:12px;gap:12px}.task-assignees{align-items:center;color:#64748b;display:flex;gap:6px}.task-due{color:#64748b}.task-due.overdue{color:#dc2626;font-weight:600}.task-actions{display:flex;gap:8px;margin-top:4px}.task-btn{align-items:center;border:1.5px solid;border-radius:6px;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;justify-content:center;padding:8px 16px;text-decoration:none;transition:all .2s ease;white-space:nowrap}.task-btn:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.task-btn-primary{background:#7c3aed;border-color:#7c3aed;color:#fff}.task-btn-primary:hover{background:#6d28d9;border-color:#6d28d9;box-shadow:0 2px 8px #7c3aed4d}.task-btn-secondary{background:#fff;border-color:#cbd5e1;color:#475569}.task-btn-secondary:hover{background:#f1f5f9;border-color:#94a3b8}.task-btn-warning{background:#fff;border-color:#fbbf24;color:#b45309}.task-btn-warning:hover{background:#fef3c7;border-color:#f59e0b;box-shadow:0 2px 8px #f59e0b33}.task-btn-danger{background:#fff;border-color:#f87171;color:#dc2626}.task-btn-danger:hover{background:#fee2e2;border-color:#ef4444;box-shadow:0 2px 8px #ef444433}.task-actions-row{display:flex;flex-wrap:wrap;gap:8px}.task-status-actions{border-top:1px solid #e5e7eb;margin-top:4px;padding-top:12px}.task-not-linked{display:flex;flex-direction:column;gap:10px}.task-not-linked p{color:#64748b;font-size:13px;margin:0}.task-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.task-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;display:flex;flex-direction:column;max-height:80vh;max-width:600px;width:90%}.task-modal-header{border-bottom:1px solid #e2e8f0;padding:20px 24px}.task-modal-header h3{font-size:18px}.task-modal-body{flex:1 1;overflow-y:auto;padding:20px 24px}.task-search{border:1px solid #e2e8f0;border-radius:8px;font-size:14px;margin-bottom:16px;padding:10px 12px;width:100%}.task-search:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a;outline:none}.task-list{display:flex;flex-direction:column;gap:8px}.task-item{border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;padding:12px;transition:all .2s ease}.task-item:hover{background:#f8fafc;border-color:#7c3aed}.task-item-name{color:#0f172a;font-weight:600;margin-bottom:4px}.task-item-status{color:#64748b;font-size:12px}.task-modal-footer{border-top:1px solid #e2e8f0;display:flex;gap:8px;justify-content:flex-end;padding:16px 24px}.loading-container{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:40px}.loading-spinner-icon{animation:spin .8s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#7c3aed;height:32px;width:32px}.loading-text{color:#64748b;font-size:14px;text-align:center}.loading-spinner{align-items:center;color:#64748b;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:40px}.error-message{background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;color:#991b1b;font-size:13px;padding:12px}body.dark-mode .clickup-task-widget{background:#1e293b;border-color:#334155}body.dark-mode .clickup-task-widget h4,body.dark-mode .task-name{color:#f1f5f9}body.dark-mode .task-btn-secondary{background:#0f172a;border-color:#334155;color:#cbd5e1}body.dark-mode .task-btn-secondary:hover{background:#1e293b;border-color:#475569}body.dark-mode .task-modal{background:#1e293b}body.dark-mode .task-modal-footer,body.dark-mode .task-modal-header{border-color:#334155}body.dark-mode .task-modal-header h3{color:#f1f5f9}body.dark-mode .task-search{color:#e2e8f0}body.dark-mode .task-item,body.dark-mode .task-search{background:#0f172a;border-color:#334155}body.dark-mode .task-item:hover{background:#334155}body.dark-mode .task-item-name{color:#f1f5f9}body.dark-mode .error-message{background:#7f1d1d;border-color:#991b1b;color:#fca5a5}.dark-mode .router-details{background:#e5e7eb;border-color:#cbd5e1}.dark-mode .detail-label{color:#4b5563}.dark-mode .detail-value{color:#111827}.return-modal{animation:modalSlideIn .3s ease-out}.modal-header-content{align-items:center;display:flex;gap:16px}.modal-icon{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:12px;box-shadow:0 4px 12px #f59e0b4d;display:flex;font-size:36px;height:56px;justify-content:center;line-height:1;width:56px}.modal-subtitle{color:#64748b;font-size:13px;font-weight:400;margin:4px 0 0}.task-modal-header h3{color:#0f172a;font-size:20px;font-weight:700;line-height:1.2;margin:0}.task-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;display:flex;font-size:32px;height:32px;justify-content:center;line-height:1;margin-left:auto;padding:0;transition:all .2s ease;width:32px}.task-modal-close:hover{background:#f1f5f9;color:#0f172a}.return-notice{align-items:flex-start;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;border-radius:10px;display:flex;gap:12px;margin-bottom:24px;padding:14px 16px}.return-notice svg{flex-shrink:0;margin-top:2px}.return-notice p{color:#1e40af;font-size:14px;line-height:1.5;margin:0}.form-group{margin-bottom:0}.form-group label{color:#334155}.return-notes-input{border:2px solid #e2e8f0;border-radius:10px;color:#0f172a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:14px;line-height:1.5;padding:12px 14px;resize:vertical;transition:all .2s ease;width:100%}.return-notes-input::placeholder{color:#94a3b8}.return-notes-input:focus{border-color:#f59e0b;box-shadow:0 0 0 4px #f59e0b1a;outline:none}.character-count{color:#94a3b8;font-size:12px;margin-top:6px;text-align:right}.task-btn-return{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:8px;box-shadow:0 2px 8px #f59e0b4d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.task-btn-return:hover:not(:disabled){box-shadow:0 4px 12px #f59e0b66;transform:translateY(-1px)}.task-btn-return:disabled{cursor:not-allowed;opacity:.6}.task-btn-danger{align-items:center;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:8px;box-shadow:0 2px 8px #ef44444d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.task-btn-danger:hover:not(:disabled){box-shadow:0 4px 12px #ef444466;transform:translateY(-1px)}.task-btn-danger:disabled{cursor:not-allowed;opacity:.6}.decommission-notice{background:#ef44440d;border:1px solid #ef444433;border-radius:8px;display:flex;gap:12px;margin-bottom:20px;padding:16px}.decommission-notice p{color:#e2e8f0;font-size:14px;margin:0 0 8px}.decommission-notice ul{color:#cbd5e1;font-size:13px;margin:8px 0 0;padding-left:20px}.decommission-notice li{margin:4px 0}.modal-icon.warning{font-size:32px}.btn-spinner{animation:spin .6s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:14px;width:14px}@keyframes spin{to{transform:rotate(1turn)}}body.dark-mode .modal-subtitle{color:#94a3b8}body.dark-mode .return-notice{background:linear-gradient(135deg,#1e3a5f,#1e293b);border-color:#334155}body.dark-mode .return-notice p{color:#93c5fd}body.dark-mode .form-group label{color:#e2e8f0}body.dark-mode .return-notes-input{background:#0f172a;border-color:#334155;color:#e2e8f0}body.dark-mode .return-notes-input::placeholder{color:#64748b}body.dark-mode .return-notes-input:focus{background:#1e293b;border-color:#f59e0b}body.dark-mode .character-count{color:#64748b}body.dark-mode .task-modal-close:hover{background:#334155;color:#f1f5f9}.property-search-widget{background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #8b5cf6;border-radius:8px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;gap:16px;padding:16px}.psw-section-label{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:6px;color:#fff;display:flex;font-size:14px;font-weight:600;justify-content:space-between;padding:8px 12px;text-shadow:0 1px 2px #0003}.psw-history-count{background:#ffffff40;border-radius:10px;font-size:12px;padding:2px 8px}.psw-current-content{display:flex;flex-direction:column;gap:12px}.psw-property-name{color:#1f2937;font-size:16px;font-weight:600;line-height:1.4}.psw-property-meta{color:#64748b;font-size:13px}.psw-date-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.psw-date-pill{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:16px;color:#475569;display:inline-flex;font-size:12px;font-weight:500;padding:6px 12px;white-space:nowrap}.psw-date-pill.overdue{background:#fee2e2;border-color:#fecaca;color:#dc2626}.psw-date-pill.text-muted{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8;font-style:italic}.psw-clickup-link{color:#6366f1;font-size:13px;font-weight:500;text-decoration:none;transition:color .15s}.psw-clickup-link:hover{color:#4f46e5;text-decoration:underline}.psw-button-group{display:flex;flex-direction:column;gap:8px;margin-top:4px}.psw-btn{background:#fff;border:1px solid #cbd5e1;border-radius:6px;color:#475569;cursor:pointer;font-size:13px;font-weight:500;padding:10px 16px;text-align:center;transition:all .15s}.psw-btn:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.psw-btn.primary{background:#6366f1;border-color:#6366f1;color:#fff}.psw-btn.primary:hover:not(:disabled){background:#5558e3}.psw-btn.danger{border-color:#fca5a5;color:#dc2626}.psw-btn.danger:hover:not(:disabled){background:#fef2f2;border-color:#dc2626}.psw-btn.warning{border-color:#fcd34d;color:#f59e0b}.psw-btn.warning:hover:not(:disabled){background:#fffbeb;border-color:#f59e0b}.psw-btn:disabled{cursor:not-allowed;opacity:.5}.psw-empty-state{display:flex;flex-direction:column;gap:12px;padding:20px 0}.psw-empty-text{color:#94a3b8;font-size:14px;text-align:center}.psw-empty-history{color:#94a3b8;font-size:13px;padding:40px 20px;text-align:center}.psw-history-list-scroll{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.psw-history-list-scroll::-webkit-scrollbar{width:6px}.psw-history-list-scroll::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.psw-history-list-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.psw-history-list-scroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}.psw-history-item{border:1px solid #e5e7eb}.psw-history-property{gap:8px}.psw-history-property strong{color:#1f2937;flex:1 1}.psw-history-link{color:inherit;flex:1 1;text-decoration:none;transition:color .15s}.psw-history-link:hover{color:#6366f1}.psw-history-link strong{color:inherit;flex:1 1;font-size:14px}.psw-history-delete{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:50%;color:#94a3b8;cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:24px;justify-content:center;line-height:1;padding:0;transition:all .15s;width:24px}.psw-history-delete:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5;color:#dc2626;transform:scale(1.1)}.psw-history-delete:disabled{cursor:not-allowed;opacity:.5}.psw-history-status{flex-shrink:0}.psw-history-status.current{background:#d1fae5;color:#065f46}.psw-history-status.removed{background:#fee2e2;color:#991b1b}.psw-history-dates{color:#64748b}.psw-history-users{color:#94a3b8;flex-direction:column;gap:2px}.psw-history-notes{color:#64748b}.psw-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:9999}.psw-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:600px;width:100%}.psw-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.psw-modal-header h3{color:#1f2937;font-size:18px;font-weight:600;margin:0}.psw-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .15s;width:32px}.psw-modal-close:hover{background:#f3f4f6;color:#374151}.psw-modal-body{overflow-y:auto;padding:24px}.psw-modal-results{border:1px solid #e5e7eb;border-radius:8px;margin-top:12px;max-height:400px;overflow-y:auto}.psw-result-item{border-bottom:1px solid #f3f4f6;cursor:pointer;padding:14px 16px;transition:background-color .15s}.psw-result-item:last-child{border-bottom:none}.psw-result-item:hover{background-color:#f9fafb}.psw-search-input-wrapper{position:relative}.psw-search-input{border:1px solid #ddd;border-radius:6px;box-sizing:border-box;font-size:14px;padding:10px 36px 10px 12px;transition:border-color .2s;width:100%}.psw-search-input:focus{border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a;outline:none}.psw-search-input:disabled{background:#f5f5f5;cursor:not-allowed}.psw-spinner{font-size:16px;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.psw-dropdown{background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 12px #00000026;left:0;margin-top:4px;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.psw-dropdown-item{border-bottom:1px solid #f0f0f0;cursor:pointer;padding:12px;transition:background-color .15s}.psw-dropdown-item:last-child{border-bottom:none}.psw-dropdown-item:hover{background-color:#f8f9fa}.psw-result-name{color:#333;font-size:14px;font-weight:500;margin-bottom:6px}.psw-result-meta{display:flex;flex-wrap:wrap;gap:8px}.psw-badge{background:#e3f2fd;border-radius:4px;color:#1565c0;font-size:12px;padding:2px 8px}.psw-badge-count,.psw-badge-status{background:#f3e5f5;border-radius:4px;color:#6a1b9a;font-size:12px;padding:2px 8px}.psw-badge-status{text-transform:capitalize}.psw-history{background:#fafbfc;padding:12px 16px}.psw-history-header{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;transition:background-color .15s;-webkit-user-select:none;user-select:none}.psw-history-header:hover{background:#f9fafb}.psw-history-header span:first-child{background:linear-gradient(135deg,#8b5cf6,#6366f1);border-radius:4px;color:#fff;font-size:13px;font-weight:600;padding:4px 10px;text-shadow:0 1px 2px #0003}.psw-history-toggle{color:#666;font-size:12px}.psw-history-list{margin-top:8px;max-height:300px;overflow-y:auto}.psw-history-item{background:#fafbfc;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:8px;padding:12px}.psw-history-item:last-child{margin-bottom:0}.psw-history-property{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.psw-history-property strong{color:#333;font-size:14px}.psw-history-status{border-radius:12px;font-size:11px;font-weight:600;padding:3px 10px;text-transform:uppercase}.psw-history-status.current{background:#e8f5e9;color:#2e7d32}.psw-history-status.removed{background:#ffebee;color:#c62828}.psw-history-dates{color:#666;display:flex;flex-direction:column;font-size:12px;gap:4px;margin-bottom:6px}.psw-history-users{color:#888;display:flex;font-size:11px;gap:12px;margin-bottom:6px}.psw-history-notes{border-top:1px solid #e9ecef;color:#555;font-size:12px;font-style:italic;margin-top:8px;padding-top:8px}.psw-history-list::-webkit-scrollbar{width:6px}.psw-history-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.psw-history-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.psw-history-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.psw-hint{color:#999;font-size:13px;margin-bottom:0;margin-top:8px}.psw-no-results{background:#f8f9fa;border-radius:6px;color:#666;font-size:14px;margin-top:8px;padding:16px;text-align:center}.psw-dropdown::-webkit-scrollbar{width:8px}.psw-dropdown::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.psw-dropdown::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.psw-dropdown::-webkit-scrollbar-thumb:hover{background:#555}.psw-form-group{margin-bottom:16px}.psw-form-group label{color:#333;display:block;font-size:13px;font-weight:600;margin-bottom:6px}.psw-form-input,.psw-form-select,.psw-form-textarea{border:1px solid #cbd5e1;border-radius:6px;font-family:inherit;font-size:14px;padding:8px 12px;transition:border-color .15s ease;width:100%}.psw-form-input:focus,.psw-form-select:focus,.psw-form-textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.psw-form-textarea{min-height:60px;resize:vertical}.psw-modal-actions{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:16px}.psw-modal-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .15s ease}.psw-modal-btn.secondary{background:#f1f5f9;color:#475569}.psw-modal-btn.secondary:hover:not(:disabled){background:#e2e8f0}.psw-modal-btn.warning{background:#f59e0b;color:#fff}.psw-modal-btn.warning:hover:not(:disabled){background:#d97706}.psw-modal-btn:disabled{cursor:not-allowed;opacity:.5}.psw-user-list{border:1px solid #e5e7eb;border-radius:8px;max-height:300px;overflow-y:auto;padding:8px}.psw-user-checkbox{align-items:center;border-radius:6px;cursor:pointer;display:flex;margin-bottom:4px;padding:10px;transition:background .15s}.psw-user-checkbox:hover{background:#f8fafc}.psw-user-checkbox input[type=checkbox]{cursor:pointer;height:18px;margin-right:10px;width:18px}.psw-user-name{color:#1e293b;font-size:14px;font-weight:500}.router-dash{display:flex;flex-direction:column;gap:20px;padding:0}.rd-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.rd-header h2{color:#f1f5f9;font-size:24px;font-weight:700;margin:0}.rd-header h2.router-title{color:#f1f5f9;text-shadow:0 1px 2px #00000080}.rd-sub{align-items:center;color:#cbd5e1;display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.rd-range{align-items:flex-end;display:flex;flex-direction:column;gap:8px}.rd-range .seg{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.rd-range .seg button{background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;padding:8px 14px;transition:all .15s ease}.rd-range .seg button:hover{background:#f8fafc;border-color:#cbd5e1}.rd-range .seg button.active{background:#6366f1;border-color:#6366f1;box-shadow:0 2px 4px #6366f133;color:#fff}.rd-range .seg button.btn-primary{background:#667eea;border-color:#667eea;color:#fff}.rd-range .seg button.btn-primary:hover{background:#5568d3;border-color:#5568d3}.widgets-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.widgets-row-single{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:1fr}.rd-metrics{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.metric{background:#fff;border:1px solid #e5e7eb;border-left:4px solid #6366f1;box-shadow:0 1px 3px #0000000d;padding:16px;transition:all .2s ease}.metric:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.metric .label{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.metric .value{color:#111827;font-size:26px;font-weight:700;margin:4px 0}.metric .sub{color:#94a3b8;font-size:11px;line-height:1.5;margin-top:4px}.rd-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1.2fr .8fr}.rd-grid .col{display:flex;flex-direction:column;gap:16px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000d;padding:16px}.card-title{align-items:center;display:flex;font-size:15px;font-weight:700;gap:8px;margin-bottom:12px}.card-title,.card-title.latest-title,.card-title.uptime-title{color:#111827;text-shadow:none}.kv{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr}.kv div{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;display:flex;gap:12px;justify-content:space-between;padding:8px}.kv span{color:#64748b;font-size:12px;font-weight:500}.kv strong{color:#0f172a;font-size:13px}.table-wrap{background:#fff;border-radius:8px;overflow:auto}.table-wrap table{border-collapse:collapse;width:100%}.table-wrap td,.table-wrap th{border-bottom:1px solid #e5e7eb;font-size:12px;padding:10px 12px;text-align:left}.table-wrap th{background:#f8fafc;color:#475569;font-weight:600;position:-webkit-sticky;position:sticky;top:0}.table-wrap td{color:#0f172a}.table-wrap tbody tr,.table-wrap td{background:#fff}.table-wrap tbody tr:hover{background:#fafbfc}.rd-pill{border-radius:9999px;font-size:11px;font-weight:600;padding:4px 10px}.rd-pill.ok{background:#d1fae5;color:#065f46}.rd-pill.bad{background:#fee2e2;color:#991b1b}.muted{color:#94a3b8;font-size:12px}.inspections-list{margin-top:4px;max-height:220px;overflow-y:auto}.inspections-list::-webkit-scrollbar{width:6px}.inspections-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.inspections-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.inspections-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.inspection-item{background:#f8fafc;border-left:3px solid #e2e8f0;border-radius:6px;font-size:13px;margin-bottom:8px;padding:10px 12px;transition:all .15s ease}.inspection-item:last-child{margin-bottom:0}.inspection-item:hover{background:#f1f5f9}.inspection-item.latest{background:#f0fdf4;border-left-color:#10b981}.inspection-item.latest:hover{background:#dcfce7}.inspection-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.inspection-date{color:#0f172a;font-size:13px;font-weight:600}.inspection-by,.inspection-time{color:#64748b;font-size:11px}.inspection-by{margin-bottom:4px}.inspection-notes{border-top:1px solid #e2e8f0;color:#475569;font-size:11px;margin-top:6px;padding-top:6px}.inspections-empty{color:#94a3b8;font-size:13px;padding:20px;text-align:center}body.dark-mode .rd-header h2{color:#f1f5f9}body.dark-mode .rd-header h2.router-title{color:#f1f5f9;text-shadow:0 1px 2px #00000080}body.dark-mode .rd-sub{color:#94a3b8}body.dark-mode .rd-range .seg button{background:#1e293b;border-color:#334155;color:#e2e8f0}body.dark-mode .rd-range .seg button:hover{background:#334155;border-color:#475569}body.dark-mode .rd-range .seg button.active{background:#6366f1;border-color:#6366f1;color:#fff}body.dark-mode .rd-range .seg button.btn-primary{background:#667eea;border-color:#667eea;color:#fff}body.dark-mode .rd-range .seg button.btn-primary:hover{background:#5568d3;border-color:#5568d3}body.dark-mode .metric{background:#1e293b;border-bottom-color:#334155;border-right-color:#334155;border-top-color:#334155}body.dark-mode .metric .label{color:#94a3b8}body.dark-mode .metric .value{color:#f1f5f9}body.dark-mode .metric .sub{color:#64748b}body.dark-mode .card{background:#1e293b;border-color:#334155}body.dark-mode .card-title{color:#f1f5f9}body.dark-mode .card-title.latest-title,body.dark-mode .card-title.uptime-title{color:#f1f5f9;text-shadow:0 1px 1px #0009}body.dark-mode .kv div{background:#334155;border-color:#475569}body.dark-mode .kv span{color:#94a3b8}body.dark-mode .kv strong{color:#e2e8f0}body.dark-mode .table-wrap{background:#0f172a}body.dark-mode .table-wrap th{background:#1e293b;color:#cbd5e1}body.dark-mode .table-wrap td{background:#0f172a;border-bottom-color:#334155;color:#e2e8f0}body.dark-mode .table-wrap tbody tr{background:#0f172a}body.dark-mode .table-wrap tbody tr:hover{background:#334155}body.dark-mode .inspections-list::-webkit-scrollbar-track{background:#0f172a}body.dark-mode .inspections-list::-webkit-scrollbar-thumb{background:#475569}body.dark-mode .inspections-list::-webkit-scrollbar-thumb:hover{background:#64748b}body.dark-mode .inspection-item{background:#0f172a;border-left-color:#334155;color:#e2e8f0}body.dark-mode .inspection-item:hover{background:#1e293b}body.dark-mode .inspection-item.latest{background:#064e3b;border-left-color:#10b981}body.dark-mode .inspection-item.latest:hover{background:#065f46}body.dark-mode .inspection-date{color:#f1f5f9}body.dark-mode .inspection-by,body.dark-mode .inspection-time{color:#94a3b8}body.dark-mode .inspection-notes{border-top-color:#334155;color:#cbd5e1}body.dark-mode .inspections-empty{color:#64748b}.rd-accordion{display:flex;flex-direction:column;gap:12px;margin-top:16px}.accordion-item{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000d;overflow:hidden;transition:all .3s ease}.accordion-item.expanded{box-shadow:0 4px 12px #00000014}.accordion-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;cursor:pointer;display:flex;justify-content:space-between;padding:14px 18px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.accordion-header:hover{background:#f1f5f9}.accordion-title{color:#0f172a;font-size:14px;font-weight:600}.accordion-icon{color:#64748b;font-size:12px;transition:transform .3s ease}.accordion-content{animation:slideDown .3s ease;padding:18px}body.dark-mode .accordion-item{background:#1e293b;border-color:#334155}body.dark-mode .accordion-header{background:#0f172a;border-bottom-color:#334155}body.dark-mode .accordion-header:hover{background:#1e293b}body.dark-mode .accordion-title{color:#f1f5f9}body.dark-mode .accordion-icon{color:#94a3b8}body.dark-mode .muted{color:#64748b}.wifi-users-empty{color:#64748b;padding:24px;text-align:center}.wifi-users-empty p{margin:0}.wifi-users-summary{display:flex;flex-wrap:wrap;gap:16px}.wifi-stat{align-items:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;min-width:100px;padding:12px 20px}.wifi-stat-value{color:#1e293b;font-size:24px;font-weight:700}.wifi-stat-label{color:#64748b;font-size:11px;letter-spacing:.5px;margin-top:4px;text-transform:uppercase}.wifi-users-table{border-collapse:collapse;width:100%}.wifi-users-table th{background:#f8fafc;border-bottom:2px solid #e2e8f0;color:#475569;font-size:12px;font-weight:600;padding:10px 12px;position:-webkit-sticky;position:sticky;text-align:left;top:0}.wifi-users-table td{border-bottom:1px solid #e5e7eb;color:#1e293b;font-size:13px;padding:12px}.wifi-user-row.clickable:hover,.wifi-user-row.clickable:hover td{background:#f8fafc}.user-color-dot{display:inline-block}.accordion-title .badge{align-items:center;background:#6366f1;border-radius:10px;color:#fff;display:inline-flex;font-size:11px;font-weight:600;height:20px;justify-content:center;margin-left:8px;min-width:20px;padding:0 6px}.uptime-strip{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;margin-top:16px;padding:12px 16px}.uptime-strip-header{align-items:center;display:flex;gap:10px;margin-bottom:8px}.uptime-strip-title{color:#64748b;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.uptime-strip-samples{background:#f1f5f9;border-radius:10px;color:#94a3b8;font-size:11px;padding:2px 8px}.uptime-percent{border-radius:12px;font-size:11px;font-weight:700;margin-left:auto;padding:3px 10px}.uptime-percent.excellent{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.uptime-percent.good{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.uptime-percent.poor{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.uptime-strip-bar{background:#f1f5f9;border-radius:6px;display:flex;gap:2px;height:24px;overflow:hidden;padding:4px}.uptime-tick{border-radius:2px;flex:1 1;min-width:3px;transition:transform .15s ease}.uptime-tick:hover{transform:scaleY(1.3);z-index:1}.uptime-tick.online{background:linear-gradient(0deg,#10b981,#34d399)}.uptime-tick.offline{background:linear-gradient(0deg,#ef4444,#f87171)}.uptime-tick.unknown{background:linear-gradient(0deg,#cbd5e1,#e2e8f0)}.uptime-strip-empty{color:#94a3b8;font-size:12px;padding:4px;text-align:center}.uptime-strip-footer{align-items:center;display:flex;gap:16px;margin-top:6px}.uptime-strip-label{align-items:center;color:#64748b;display:flex;font-size:10px;gap:5px}.uptime-strip-label .dot{border-radius:2px;height:8px;width:8px}.uptime-strip-label .dot.online{background:#10b981}.uptime-strip-label .dot.offline{background:#ef4444}.uptime-strip-label .dot.unknown{background:#cbd5e1}.uptime-strip-range{color:#94a3b8;font-size:10px;margin-left:auto}.dashboard-content-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-top:16px}.content-left,.content-right{display:flex;flex-direction:column}.content-right{gap:12px}.map-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;height:100%;min-height:320px;overflow:hidden}.map-card-header{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border-bottom:1px solid #fcd34d;display:flex;gap:8px;padding:12px 16px}.map-icon{font-size:16px}.map-title{color:#92400e;font-size:13px;font-weight:700}.map-container{height:calc(100% - 44px);min-height:280px}.compact-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;overflow:hidden;transition:box-shadow .2s ease}.compact-card:hover{box-shadow:0 4px 12px #00000014}.compact-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;gap:8px;padding:10px 14px}.compact-icon{font-size:14px}.compact-title{color:#374151;font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.compact-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:11px;font-weight:600;margin-left:auto;padding:4px 10px;transition:transform .15s ease}.compact-btn:hover{transform:scale(1.05)}.compact-badge{background:linear-gradient(135deg,#ec4899,#f472b6);border-radius:10px;color:#fff;font-size:11px;font-weight:700;margin-left:auto;padding:2px 8px}.device-compact .compact-header{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-bottom-color:#bfdbfe}.device-compact .compact-title{color:#1e40af}.device-row{grid-gap:1px;background:#e2e8f0;display:grid;gap:1px;grid-template-columns:repeat(3,1fr)}.device-item{background:#fff;display:flex;flex-direction:column;gap:2px;padding:10px 12px}.device-label{color:#64748b;font-size:9px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.device-value{color:#0f172a;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspection-compact .compact-header{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border-bottom-color:#e9d5ff}.inspection-compact .compact-title{color:#7c3aed}.inspection-inline{align-items:center;display:flex;gap:16px;padding:12px 14px}.inspection-ring-small{flex-shrink:0;height:56px;position:relative;width:56px}.inspection-ring-small svg{height:100%;transform:rotate(-90deg);width:100%}.inspection-ring-small.ok{color:#10b981}.inspection-ring-small.warning{color:#f59e0b}.inspection-ring-small.overdue{color:#ef4444}.ring-number{color:inherit;font-size:16px;font-weight:800;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.inspection-info{display:flex;flex:1 1;flex-direction:column;gap:2px}.inspection-status-text{color:#0f172a;font-size:14px;font-weight:700}.inspection-date-text{color:#64748b;font-size:11px}.inspection-last{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.inspection-last-label{color:#94a3b8;font-size:9px;letter-spacing:.5px;text-transform:uppercase}.inspection-last-date{color:#475569;font-size:12px;font-weight:600}.inspection-none{color:#94a3b8;font-size:12px;padding:16px;text-align:center}.wifi-compact .compact-header{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-bottom-color:#fbcfe8}.wifi-compact .compact-title{color:#be185d}.wifi-none{color:#94a3b8;font-size:12px;padding:16px;text-align:center}.wifi-compact-content{display:flex;flex-direction:column;gap:12px;padding:12px 14px}.wifi-mini-stats{display:flex;gap:12px}.wifi-mini-stat{align-items:center;background:linear-gradient(135deg,#fdf4ff,#fae8ff);border-radius:8px;display:flex;flex:1 1;flex-direction:column;padding:8px}.mini-num{color:#a21caf;font-size:16px;font-weight:800}.mini-label{color:#c026d3;font-size:9px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.wifi-avatars{display:flex;flex-wrap:wrap;gap:6px}.wifi-avatar{align-items:center;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:700;height:32px;justify-content:center;transition:transform .15s ease;width:32px}.wifi-avatar:hover{transform:scale(1.1)}.wifi-avatar.more{background:#e2e8f0;color:#64748b;font-size:10px}.user-login-legend{border:1px solid #e2e8f0}body.dark-mode .uptime-strip{background:linear-gradient(135deg,#1e293b,#0f172a);border-color:#334155}body.dark-mode .uptime-strip-title{color:#94a3b8}body.dark-mode .uptime-strip-samples{background:#334155;color:#94a3b8}body.dark-mode .uptime-strip-bar{background:#0f172a}body.dark-mode .uptime-strip-label{color:#94a3b8}body.dark-mode .map-card{background:#1e293b;border-color:#334155}body.dark-mode .map-card-header{background:linear-gradient(135deg,#422006,#78350f);border-bottom-color:#92400e}body.dark-mode .map-title{color:#fcd34d}body.dark-mode .compact-card{background:#1e293b;border-color:#334155}body.dark-mode .compact-header{background:#0f172a;border-bottom-color:#334155}body.dark-mode .compact-title{color:#e2e8f0}body.dark-mode .device-compact .compact-header{background:linear-gradient(135deg,#1e3a5f,#1e40af)}body.dark-mode .device-row{background:#334155}body.dark-mode .device-item{background:#1e293b}body.dark-mode .device-label{color:#94a3b8}body.dark-mode .device-value{color:#f1f5f9}body.dark-mode .inspection-compact .compact-header{background:linear-gradient(135deg,#3b0764,#6b21a8)}body.dark-mode .inspection-status-text{color:#f1f5f9}body.dark-mode .inspection-last-date{color:#cbd5e1}body.dark-mode .wifi-compact .compact-header{background:linear-gradient(135deg,#831843,#be185d)}body.dark-mode .wifi-mini-stat{background:linear-gradient(135deg,#581c87,#6b21a8)}body.dark-mode .mini-num{color:#f5d0fe}body.dark-mode .mini-label{color:#e9d5ff}body.dark-mode .wifi-avatar.more{background:#334155;color:#94a3b8}body.dark-mode .user-login-legend{background:#1e293b!important;border-color:#334155}@media (max-width:900px){.dashboard-content-grid{grid-template-columns:1fr}.map-card{min-height:250px}.device-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.device-row{grid-template-columns:1fr}.inspection-inline,.wifi-mini-stats{flex-wrap:wrap}.wifi-mini-stat{min-width:calc(50% - 6px)}}.returns-page{background:#0f172a;background:var(--bg-primary,#0f172a);color:#e2e8f0;color:var(--text-primary,#e2e8f0);margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.returns-header{align-items:center;border-bottom:2px solid #334155;border-bottom:2px solid var(--border-color,#334155);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.returns-header h1{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:28px;font-weight:700;margin:0}.returns-count{font-size:16px;font-weight:500}.returns-count,.returns-empty,.returns-loading{color:#94a3b8;color:var(--text-secondary,#94a3b8)}.returns-empty,.returns-loading{font-size:18px;padding:60px 20px;text-align:center}.returns-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(500px,1fr))}.return-card{background:#1e293b;background:var(--card-bg,#1e293b);border:1px solid #334155;border:1px solid var(--border-color,#334155);border-radius:12px;box-shadow:0 1px 3px #0000004d;padding:20px;transition:box-shadow .2s}.return-card:hover{box-shadow:0 4px 6px #0000001a}.return-header{align-items:flex-start;border-bottom:1px solid #334155;border-bottom:1px solid var(--border-color,#334155);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.return-title{display:flex;flex-direction:column;gap:8px}.return-title h3{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:18px;font-weight:600;margin:0}.status-badge{align-items:center;display:inline-flex;font-size:13px;font-weight:500;gap:4px;padding:4px 10px;width:-webkit-fit-content;width:fit-content}.status-online{background:#d1fae5;color:#065f46}.status-offline{background:#fee2e2;color:#991b1b}.status-unknown{background:#e5e7eb;color:#4b5563}.btn-mark-installed{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-mark-installed:hover{background:#059669}.return-details{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.detail-row{padding:6px 0}.return-card .detail-label{color:#cbd5e1!important;color:var(--text-secondary,#cbd5e1)!important;font-size:14px;font-weight:500}.return-card .detail-value{color:#f1f5f9!important;font-family:SF Mono,Monaco,Courier New,monospace;font-size:14px;font-weight:600}.return-notes{display:flex;flex-direction:column;gap:8px}.return-notes label{font-weight:500}.return-notes label,.return-notes textarea{color:#e2e8f0;color:var(--text-primary,#e2e8f0);font-size:14px}.return-notes textarea{background:#0f172a;background:var(--input-bg,#0f172a);border:1px solid #334155;border:1px solid var(--border-color,#334155);border-radius:8px;font-family:inherit;padding:10px;resize:vertical;transition:border-color .2s;width:100%}.return-notes textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f133;outline:none}.return-notes textarea:disabled{background:#1e293b;background:var(--bg-disabled,#1e293b);cursor:not-allowed;opacity:.6}.btn-save-notes{align-self:flex-end;background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-save-notes:hover:not(:disabled){background:#4f46e5}.btn-save-notes:disabled{background:#9ca3af;cursor:not-allowed}@media (max-width:768px){.returns-list{grid-template-columns:1fr}.returns-header{align-items:flex-start}.return-header,.returns-header{flex-direction:column;gap:12px}.btn-mark-installed{width:100%}}.btn-reactivate{background:#10b981}.btn-reactivate:hover{background:#059669}.status-badge.status-offline{background:#fee2e2;color:#991b1b}.notes-row{border-top:1px solid #334155;border-top:1px solid var(--border-color,#334155);margin-top:12px;padding-top:12px}.notes-value{color:#cbd5e1;color:var(--text-secondary,#cbd5e1);font-style:italic;line-height:1.5;white-space:pre-wrap;word-break:break-word}.login-container{align-items:center;background:linear-gradient(135deg,var(--accent-tea) 0,var(--accent-secondary) 100%);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{animation:fadeIn .3s ease-in;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 10px 40px var(--shadow);max-width:420px;padding:40px;width:100%}.login-header{margin-bottom:30px;text-align:center}.login-logo{display:block;height:auto;margin-bottom:16px;margin-left:auto;margin-right:auto;width:120px}.login-header h1{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 8px}.login-header p{color:var(--text-secondary);font-size:14px;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{align-items:center;background:#fed7d7;border:1px solid #fc8181;border-radius:8px;color:#c53030;display:flex;font-size:14px;gap:8px;padding:12px 16px}.error-icon{font-size:18px}.form-group{display:flex;flex-direction:column;gap:8px}.login-card .form-group label{color:var(--text-secondary);font-size:14px;font-weight:600}.form-group input{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:15px;padding:12px 16px;transition:all .2s}.form-group input:focus{border-color:var(--accent-tea);box-shadow:0 0 0 3px #c7dfb91a;outline:none}.form-group input:disabled{background:var(--bg-primary);cursor:not-allowed}.login-button{background:var(--accent-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px 24px;transition:all .2s}.login-button:hover:not(:disabled){background:#4a6b4b;box-shadow:0 10px 20px #5b7f5c4d;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.6}.login-footer{border-top:1px solid var(--border-color);margin-top:24px;padding-top:24px;text-align:center}.login-hint{color:var(--text-muted);font-size:12px;line-height:1.5;margin:0}@media (max-width:480px){.login-card{padding:30px 20px}.login-header h1{font-size:24px}}.users-management{margin:0 auto;max-width:1400px;padding:24px}.users-loading{color:#a0aec0;font-size:18px;padding:40px;text-align:center}.users-header{margin-bottom:24px}.users-header h2{color:var(--text-primary);font-size:28px;margin:0}.btn-create{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .2s}.btn-create:hover{box-shadow:0 8px 16px #667eea4d;transform:translateY(-2px)}.users-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.search-input{border:2px solid #e2e8f0;border-radius:8px;flex:1 1;font-size:14px;min-width:250px;padding:10px 16px;transition:all .2s}.search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.filter-select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 16px;transition:all .2s}.filter-select:focus{border-color:#667eea;outline:none}.users-table-container{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;overflow:hidden}.users-table{border-collapse:collapse;width:100%}.users-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.users-table th{font-size:14px;font-weight:600;letter-spacing:.5px;padding:16px;text-align:left;text-transform:uppercase}.users-table tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .2s}.users-table tbody tr:hover{background-color:#f7fafc}.users-table tbody tr.inactive-row{opacity:.6}.users-table td{color:#2d3748;font-size:14px;padding:16px}.username-cell{color:#1a202c;font-weight:600}.role-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.role-badge.admin{background:#fed7d7;color:#c53030}.role-badge.guest{background:#c6f6d5;color:#22543d}.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px}.status-badge.active{background:#c6f6d5;color:#22543d}.status-badge.inactive{background:#e2e8f0;color:#4a5568}.status-badge.success{background:#c6f6d5;color:#22543d}.status-badge.failed{background:#fed7d7;color:#c53030}.action-buttons{display:flex;flex-wrap:wrap;gap:8px}.btn-action{background:#f7fafc;border:none;border-radius:6px;cursor:pointer;font-size:16px;padding:6px 10px;transition:all .2s}.btn-action:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.btn-edit:hover{background:#bee3f8}.btn-password:hover{background:#feebc8}.btn-routers:hover{background:#d6bcfa}.btn-history:hover{background:#c6f6d5}.btn-deactivate:hover{background:#fed7d7}.btn-activate:hover{background:#c6f6d5}.no-users{color:#a0aec0;font-size:16px;padding:40px;text-align:center}.dark-mode .users-header h2{color:var(--text-primary)}.dark-mode .filter-select,.dark-mode .search-input{background:var(--bg-card);border-color:var(--border-color);color:var(--text-primary)}.dark-mode .users-table-container{background:var(--bg-card);box-shadow:none}.dark-mode .users-table tbody tr{border-bottom:1px solid var(--border-color)}.dark-mode .users-table tbody tr:hover{background-color:var(--bg-secondary)}.dark-mode .btn-action,.dark-mode .username-cell,.dark-mode .users-table td{color:var(--text-primary)}.dark-mode .btn-action{background:var(--bg-secondary)}.dark-mode .no-users{color:var(--text-muted)}.dark-mode .modal-content{background:var(--bg-card)}.dark-mode .form-group label,.dark-mode .modal-content h3,.dark-mode .modal-content h4{color:var(--text-primary)}.dark-mode .form-group input,.dark-mode .form-group select{background:var(--bg-card);border-color:var(--border-color);color:var(--text-primary)}.dark-mode .modal-actions{border-top-color:var(--border-color)}.dark-mode .btn-cancel{color:var(--text-primary)}.dark-mode .assigned-routers,.dark-mode .available-routers,.dark-mode .btn-cancel{background:var(--bg-secondary)}.dark-mode .router-card,.dark-mode .router-card-available{background:var(--bg-card);border-color:var(--border-color)}.dark-mode .router-name{color:var(--text-primary)}.dark-mode .router-serial{color:var(--text-secondary)}.modal-overlay{background:#0009;padding:20px}.modal-content{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:32px;width:100%}.modal-content.modal-wide{max-width:800px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-content h3{color:#1a202c;font-size:24px;margin:0 0 24px}.modal-content h4{color:#2d3748;font-size:18px;margin:24px 0 12px}.form-group{margin-bottom:20px}.form-group label{color:#2d3748;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input,.form-group select{border:2px solid #e2e8f0;border-radius:8px;font-size:14px;padding:10px 14px;transition:all .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.modal-actions{border-top:1px solid #e2e8f0;margin-top:24px;padding-top:24px}.btn-cancel{background:#e2e8f0;border:none;border-radius:8px;color:#4a5568;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.btn-cancel:hover{background:#cbd5e0}.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.btn-submit:hover{box-shadow:0 8px 16px #667eea4d;transform:translateY(-2px)}.routers-section{margin-bottom:24px}.router-search{margin-bottom:16px}.router-search .search-input{min-width:100%;width:100%}.assigned-routers{display:flex;flex-direction:column;gap:8px;max-height:300px;padding:8px}.assigned-routers,.available-routers{background:#f7fafc;border-radius:8px;overflow-y:auto}.available-routers{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr);max-height:400px;padding:12px}.router-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;padding:12px 16px;transition:all .2s}.router-card:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.router-card-available{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:10px;display:flex;justify-content:space-between;min-height:80px;padding:16px;transition:all .2s}.router-card-available:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateY(-2px)}.router-info{flex:1 1;font-size:14px}.router-info strong{color:#1a202c}.router-info span{color:#4a5568}.router-info-available{display:flex;flex:1 1;flex-direction:column;gap:6px}.router-name{color:#1a202c;font-size:16px;font-weight:700}.router-serial{color:#718096;font-family:SF Mono,Monaco,Courier New,monospace;font-size:13px}.btn-assign,.btn-unassign{border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;padding:6px 16px;transition:all .2s}.btn-assign{background:#c6f6d5;color:#22543d}.btn-assign:hover{background:#9ae6b4}.btn-unassign{background:#fed7d7;color:#c53030}.btn-unassign:hover{background:#fc8181}.history-table-container{border:1px solid #e2e8f0;border-radius:8px;max-height:400px;overflow-y:auto}.history-table{border-collapse:collapse;width:100%}.history-table thead{background:#f7fafc;position:-webkit-sticky;position:sticky;top:0}.history-table th{border-bottom:2px solid #e2e8f0;color:#2d3748;font-size:13px;font-weight:600;padding:12px;text-align:left}.history-table tbody tr{transition:background-color .2s}.history-table tbody tr:hover{background-color:#f7fafc}.history-table td{border-bottom:1px solid #e2e8f0;color:#4a5568;font-size:13px;padding:12px}.dark-mode .history-table-container{border-color:var(--border-color)}.dark-mode .history-table thead{background:var(--bg-secondary)}.dark-mode .history-table th{border-bottom-color:var(--border-color);color:var(--text-primary)}.dark-mode .history-table tbody tr:hover{background-color:var(--bg-secondary)}.dark-mode .history-table td{border-bottom-color:var(--border-color);color:var(--text-secondary)}.user-agent-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-data{color:#a0aec0;padding:32px;text-align:center}@media (max-width:768px){.users-management{padding:16px}.users-header{align-items:flex-start;gap:16px}.users-filters,.users-header{flex-direction:column}.search-input{min-width:100%}.users-table-container{overflow-x:auto}.users-table{min-width:800px}.modal-content{padding:24px}.action-buttons{flex-direction:column}.btn-action{width:100%}.available-routers{grid-template-columns:1fr}}.admin-debug-tools{color:#e0e0e0;margin:0 auto;max-width:1200px;padding:2rem}.admin-debug-tools h2{font-size:2rem;margin-bottom:2rem}.debug-section{background:#1e1e1e;border:1px solid #333;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.debug-section h3{color:#4a9eff;margin-bottom:.5rem;margin-top:0}.debug-description{color:#999;font-size:.95rem;margin-bottom:1rem}.debug-buttons{display:flex;flex-wrap:wrap;gap:1rem}.btn{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#4a9eff;color:#fff}.btn-primary:hover:not(:disabled){background:#3a8eef;transform:translateY(-1px)}.btn-warning{background:#ff9800;color:#fff}.btn-warning:hover:not(:disabled){background:#f57c00;transform:translateY(-1px)}.btn-secondary{background:#666;color:#fff}.btn-secondary:hover:not(:disabled){background:#555;transform:translateY(-1px)}.debug-message{border-radius:6px;font-weight:500;margin:1.5rem 0;padding:1rem}.debug-message.success{background:#4caf5033;border:1px solid #4caf50;color:#81c784}.debug-message.warning{background:#ff980033;border:1px solid #ff9800;color:#ffb74d}.debug-message.error{background:#f4433633;border:1px solid #f44336;color:#e57373}.debug-report{background:#1a1a1a;border:1px solid #333;border-radius:8px;margin-top:1.5rem;padding:1.5rem}.debug-report h3{color:#4a9eff;margin-top:0}.report-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.report-summary .stat{background:#252525;border-radius:6px;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.report-summary .label{color:#999;font-size:.9rem}.report-summary .value{color:#4a9eff;font-size:1.5rem;font-weight:700}.duplicates-list{display:flex;flex-direction:column;gap:1.5rem}.duplicate-group{background:#252525;border:1px solid #444;border-radius:6px;padding:1.5rem}.duplicate-group h4{color:#ffb74d;margin-bottom:1rem;margin-top:0}.hidden-routers,.kept-router{margin-bottom:1rem}.kept-router strong{color:#81c784;display:block;margin-bottom:.5rem}.hidden-routers strong{color:#e57373;display:block;margin-bottom:.5rem}.router-details{align-items:center;background:#1e1e1e;border-radius:4px;display:flex;flex-wrap:wrap;font-size:.9rem;gap:1rem;padding:.75rem}.router-details.hidden{margin-top:.5rem;opacity:.8}.router-details span{color:#ccc}.badge{background:#4a9eff;border-radius:4px;color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .5rem}.duplicate-explanation{background:#4a9eff1a;border-left:3px solid #4a9eff;border-radius:0 4px 4px 0;color:#999;font-size:.9rem;margin-top:1rem;padding:.75rem}.no-duplicates{color:#81c784;font-size:1.1rem;padding:2rem;text-align:center}.sync-stats{background:#1a1a1a;border:1px solid #333;border-radius:8px;margin-top:1.5rem;padding:1.5rem}.sync-stats h4{color:#4a9eff;margin-bottom:1rem;margin-top:0}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-item{background:#252525;border-radius:6px;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.stat-label{color:#999;font-size:.9rem}.stat-value{color:#4a9eff;font-size:1.25rem;font-weight:600}.guest-dashboard{background:#0f172a;background:var(--bg-primary,#0f172a);color:#e2e8f0;color:var(--text-primary,#e2e8f0);margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.guest-header{border-bottom:2px solid #334155;border-bottom:2px solid var(--border-color,#334155);margin-bottom:32px;padding-bottom:16px}.guest-header h1{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:32px;font-weight:700;margin:0 0 8px}.guest-subtitle{color:#94a3b8;color:var(--text-secondary,#94a3b8);font-size:16px;margin:0}.guest-error,.guest-loading{font-size:18px;padding:60px 20px;text-align:center}.guest-loading{color:#94a3b8;color:var(--text-secondary,#94a3b8)}.guest-error{background:#ef44441a;border:1px solid #ef44444d;border-radius:12px;color:#ef4444}.guest-empty{margin:0 auto;max-width:600px;padding:80px 20px;text-align:center}.guest-empty-icon{font-size:80px;margin-bottom:24px}.guest-empty h2{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:28px;margin:0 0 16px}.guest-empty p{color:#cbd5e1;color:var(--text-secondary,#cbd5e1);font-size:16px;line-height:1.6;margin:8px 0}.guest-contact{background:#6366f11a;border:1px solid #6366f14d;border-radius:12px;color:#e2e8f0!important;color:var(--text-primary,#e2e8f0)!important;font-size:18px!important;margin-top:24px!important;padding:20px}.guest-contact strong{color:#6366f1;font-weight:700}.guest-routers-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.guest-router-card{background:#1e293b;background:var(--card-bg,#1e293b);border:1px solid #334155;border:1px solid var(--border-color,#334155);border-radius:12px;box-shadow:0 1px 3px #0000004d;cursor:pointer;padding:24px;transition:all .2s}.guest-router-card:hover{border-color:#6366f1;box-shadow:0 8px 16px #6366f133;transform:translateY(-2px)}.guest-router-header{align-items:center;border-bottom:1px solid #334155;border-bottom:1px solid var(--border-color,#334155);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.guest-router-header h3{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:20px;font-weight:600;margin:0}.guest-status-dot{align-items:center;border-radius:16px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:6px 12px}.guest-status-dot.online{background:#d1fae5;color:#065f46}.guest-status-dot.offline{background:#fee2e2;color:#991b1b}.guest-router-details{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.guest-detail-row{align-items:center;display:flex;justify-content:space-between;padding:8px 0}.guest-label{color:#cbd5e1;color:var(--text-secondary,#cbd5e1);font-size:14px;font-weight:500}.guest-value{color:#f1f5f9;font-family:SF Mono,Monaco,Courier New,monospace;font-size:14px;font-weight:600;text-align:right}.guest-view-button{background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px;transition:all .2s;width:100%}.guest-view-button:hover{background:linear-gradient(135deg,#4f46e5,#4338ca);box-shadow:0 4px 12px #6366f166;transform:translateY(-1px)}@media (max-width:768px){.guest-dashboard{padding:16px}.guest-header h1{font-size:24px}.guest-routers-grid{grid-template-columns:1fr}.guest-router-header{align-items:flex-start;flex-direction:column;gap:12px}}.users-container{background:var(--bg-primary);color:var(--text-primary);margin:0 auto;max-width:1600px;min-height:100vh;padding:24px}.users-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:28px;padding-bottom:20px}.users-title-section h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--text-primary) 0,#8b5cf6 100%);-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:700;margin:0}.users-subtitle{color:var(--text-secondary);font-size:14px;margin:6px 0 0}.users-controls{align-items:center;display:flex;gap:12px}.users-time-selector{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;display:flex;gap:4px;padding:4px}.users-time-selector .time-btn{background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:600;padding:10px 18px;transition:all .2s ease}.users-time-selector .time-btn:hover{background:var(--bg-card);color:var(--text-primary)}.users-time-selector .time-btn.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 4px 12px #6366f14d;color:#fff}.refresh-btn{background:var(--bg-secondary);color:var(--text-secondary);height:42px;justify-content:center;transition:all .2s;width:42px}.refresh-btn:hover{background:var(--bg-card);border-color:var(--accent-primary);color:var(--text-primary)}.refresh-btn:active{transform:scale(.95)}.users-stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}@media (max-width:900px){.users-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:500px){.users-stats-grid{grid-template-columns:1fr}}.users-stat-card{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;display:flex;gap:16px;padding:20px;transition:all .3s ease}.users-stat-card:hover{box-shadow:0 8px 24px #0003;transform:translateY(-2px)}.users-stat-card.highlight{background:linear-gradient(135deg,#22c55e26,#22c55e0d);border-color:#22c55e4d}.stat-icon{align-items:center;border-radius:14px;display:flex;height:52px;justify-content:center;position:relative;width:52px}.stat-icon.live{background:linear-gradient(135deg,#22c55e33,#22c55e1a)}.stat-icon.sessions{background:linear-gradient(135deg,#6366f133,#6366f11a)}.stat-icon.devices{background:linear-gradient(135deg,#ec489933,#ec48991a)}.stat-icon.duration{background:linear-gradient(135deg,#f9731633,#f973161a)}.pulse-ring{animation:pulse-ring 2s ease-out infinite;border:2px solid #22c55e;border-radius:14px;inset:0;position:absolute}@keyframes pulse-ring{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.stat-value{color:var(--text-primary);font-size:28px;line-height:1;margin-bottom:4px}.stat-label{color:var(--text-secondary);font-size:13px}.router-pills-section{margin-bottom:24px}.router-pills-section h3{color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.router-pills{display:flex;flex-wrap:wrap;gap:8px}.router-pill{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;gap:8px;padding:8px 14px;transition:all .2s}.router-pill:hover{background:#8b5cf61a;border-color:#8b5cf6}.router-pill.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:#0000;color:#fff}.router-pill-name{font-weight:500}.router-pill-count{background:#fff3;border-radius:10px;font-size:11px;font-weight:600;padding:2px 8px}.router-pill:not(.active) .router-pill-count{background:var(--bg-tertiary)}.router-detail-panel{animation:slideDown .2s ease;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;margin-top:16px;padding:16px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.router-detail-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.router-detail-header h4{color:var(--text-primary);font-size:16px;margin:0}.close-btn{align-items:center;background:var(--bg-tertiary);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:18px;height:28px;justify-content:center;transition:all .2s;width:28px}.close-btn:hover{background:#ef444433;color:#ef4444}.router-sessions-list{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.router-session-item{background:var(--bg-tertiary);gap:10px;padding:10px}.mini-avatar,.router-session-item{align-items:center;border-radius:8px;display:flex}.mini-avatar{color:#fff;flex-shrink:0;font-size:11px;font-weight:700;height:32px;justify-content:center;width:32px}.session-info{flex:1 1;min-width:0}.session-name{color:var(--text-primary);display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-time{color:var(--text-secondary);font-size:11px}.live-dot{animation:livePulse 2s ease-in-out infinite;background:#22c55e;border-radius:50%;box-shadow:0 0 8px #22c55e;height:8px;width:8px}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.5}}.users-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.search-box{flex:1 1;max-width:400px;min-width:200px;position:relative}.search-icon{color:var(--text-secondary);left:14px;position:absolute;top:50%;transform:translateY(-50%)}.search-box input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-size:14px;padding:12px 40px;transition:all .2s;width:100%}.search-box input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf633;outline:none}.clear-search,.search-box input::placeholder{color:var(--text-secondary)}.clear-search{align-items:center;background:var(--bg-tertiary);border:none;border-radius:6px;cursor:pointer;display:flex;font-size:14px;height:24px;justify-content:center;position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px}.clear-search:hover{background:#ef444433;color:#ef4444}.view-toggle{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;padding:4px}.view-toggle button{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:8px 12px;transition:all .2s}.view-toggle button:hover{color:var(--text-primary)}.view-toggle button.active{background:var(--bg-tertiary);color:var(--text-primary)}.results-count{color:var(--text-secondary);font-size:13px;margin-left:auto}.devices-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}@media (max-width:500px){.devices-grid{grid-template-columns:1fr}}.device-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;overflow:hidden;transition:all .3s ease}.device-card:hover{border-color:#8b5cf666;box-shadow:0 8px 32px #0003}.device-card.has-active{border-color:#22c55e66}.device-card.expanded{box-shadow:0 12px 40px #0000004d}.device-card-header{align-items:center;cursor:pointer;display:flex;gap:14px;padding:18px;transition:background .2s}.device-card-header:hover{background:#ffffff05}.device-avatar{align-items:center;border-radius:12px;color:#fff;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:48px;justify-content:center;position:relative;width:48px}.active-indicator{background:#22c55e;border:3px solid var(--bg-secondary);border-radius:50%;bottom:-2px;box-shadow:0 0 8px #22c55e;height:14px;position:absolute;right:-2px;width:14px}.device-main-info{flex:1 1;min-width:0}.device-name{color:var(--text-primary);font-size:15px;font-weight:600;margin-bottom:2px}.device-email,.device-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-email{color:var(--text-secondary);font-size:12px}.device-quick-stats{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.live-badge{align-items:center;background:#22c55e26;border:1px solid #22c55e4d;border-radius:12px;color:#22c55e;display:flex;font-size:11px;font-weight:600;gap:6px;padding:4px 10px;text-transform:uppercase}.live-dot-animated{animation:livePulse 1.5s ease-in-out infinite;background:#22c55e;border-radius:50%;height:6px;width:6px}.session-count{color:var(--text-secondary);font-size:12px}.expand-arrow{color:var(--text-secondary);transition:transform .2s ease}.expand-arrow.expanded{transform:rotate(180deg)}.device-card-body{padding:0 18px 18px}.device-metrics{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:16px}.metric{background:#363936;background:var(--bg-tertiary,#363936);border:1px solid #3d403d;border:1px solid var(--border-color,#3d403d);border-radius:10px;display:flex;flex-direction:column;gap:6px;padding:12px}.metric-label{color:#c7dfb9;color:var(--text-secondary,#c7dfb9);font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.metric-value{color:#f6f7f8;color:var(--text-primary,#f6f7f8);font-size:18px;font-weight:700}.data-bar{background:var(--bg-tertiary);border-radius:2px;height:4px;margin-top:4px;overflow:hidden}.data-bar-fill{background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:2px;height:100%;transition:width .3s ease}.device-activity{margin-bottom:12px}.activity-label{color:var(--text-secondary);display:block;font-size:11px;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.activity-spark{align-items:flex-end;background:var(--bg-tertiary);border-radius:4px;display:flex;gap:1px;height:24px;padding:3px}.spark-bar{background:linear-gradient(180deg,#8b5cf6,#6366f1);border-radius:1px;flex:1 1;min-height:2px;transition:height .2s ease}.device-routers{display:flex;flex-wrap:wrap;gap:6px}.router-tag{background:var(--bg-tertiary);border-radius:6px;color:var(--text-secondary);font-size:11px;padding:4px 10px}.router-tag.more{background:#8b5cf633;color:#8b5cf6}.device-sessions-panel{animation:expandDown .2s ease;background:#00000026;border-top:1px solid var(--border-color)}@keyframes expandDown{0%{max-height:0;opacity:0}to{max-height:1000px;opacity:1}}.sessions-header{padding:14px 18px 10px}.sessions-header h4{color:var(--text-secondary);font-size:13px;font-weight:600;letter-spacing:.5px;margin:0;text-transform:uppercase}.sessions-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto;padding:0 18px 14px}.session-row{align-items:center;background:var(--bg-secondary);border-radius:8px;display:flex;gap:12px;padding:10px 12px;transition:all .2s}.session-row:hover{background:var(--bg-tertiary)}.session-row.active{background:#22c55e1a;border:1px solid #22c55e33}.session-status{min-width:80px}.status-live{align-items:center;color:#22c55e;display:flex;font-size:13px;font-weight:600;gap:6px}.live-dot-small{animation:livePulse 1.5s ease-in-out infinite;background:#22c55e;border-radius:50%;height:6px;width:6px}.live-timer-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.status-ended{color:var(--text-secondary);font-size:13px}.session-details{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.session-date{color:var(--text-secondary);font-size:12px}.session-router{color:#6b7280;color:var(--text-tertiary,#6b7280);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-data{color:var(--text-primary);font-size:13px;font-weight:500;min-width:70px;text-align:right}.session-delete{background:#0000;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;opacity:0;padding:6px;transition:all .2s}.session-row:hover .session-delete{opacity:1}.session-delete:hover{background:#ef444433;color:#ef4444}.devices-table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.devices-table{border-collapse:collapse;width:100%}.devices-table th{background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.5px;text-align:left;text-transform:uppercase}.devices-table td,.devices-table th{border-bottom:1px solid var(--border-color);padding:14px 16px}.devices-table td{color:var(--text-primary);font-size:14px}.devices-table tbody tr{cursor:pointer;transition:background .2s}.devices-table tbody tr:hover{background:#ffffff05}.devices-table tbody tr.active-row{background:#22c55e0d}.devices-table tbody tr:last-child td{border-bottom:none}.table-device{align-items:center;display:flex;gap:10px}.email-cell{color:var(--text-secondary);font-size:13px}.table-live-badge{align-items:center;background:#22c55e26;border-radius:12px;color:#22c55e;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:4px 10px}.table-offline-badge{color:var(--text-secondary);font-size:12px}.activity-timeline-section{margin-top:32px}.activity-timeline-section h3{color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 16px;text-transform:uppercase}.timeline-chart{align-items:flex-end;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;display:flex;gap:6px;height:160px;padding:20px}.timeline-bar-wrapper{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%;min-width:0}.timeline-bar-container{align-items:flex-end;display:flex;flex:1 1;justify-content:center;width:100%}.timeline-bar{background:linear-gradient(180deg,#8b5cf6,#6366f1);border-radius:4px 4px 0 0;cursor:pointer;max-width:40px;min-height:4px;position:relative;transition:all .3s ease;width:100%}.timeline-bar:hover{background:linear-gradient(180deg,#a78bfa,#818cf8);transform:scaleX(1.1)}.bar-tooltip{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;bottom:calc(100% + 8px);color:var(--text-primary);font-size:11px;left:50%;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .2s;white-space:nowrap}.timeline-bar:hover .bar-tooltip{opacity:1}.bar-label{color:var(--text-secondary);font-size:10px;margin-top:8px;white-space:nowrap}.empty-state{background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:16px;padding:60px 20px;text-align:center}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state h3{color:var(--text-primary);font-size:18px;margin:0 0 8px}.empty-state p{color:var(--text-secondary);font-size:14px;margin:0}.users-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;padding:100px 20px}.loading-pulse{animation:loadingPulse 1.5s ease-in-out infinite;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:50%;height:60px;width:60px}@keyframes loadingPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.users-loading p{color:var(--text-secondary);font-size:14px}.users-error{padding:60px 20px;text-align:center}.error-icon{font-size:48px;margin-bottom:16px}.users-error p{color:#ef4444;margin-bottom:20px}.retry-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .2s}.retry-btn:hover{box-shadow:0 8px 20px #6366f14d;transform:translateY(-2px)}.modal-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalSlide .2s ease;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;max-width:420px;padding:24px;width:90%}@keyframes modalSlide{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.modal-header h3{color:var(--text-primary);font-size:18px;margin:0}.modal-close{align-items:center;background:var(--bg-tertiary);border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;transition:all .2s;width:32px}.modal-close:hover{background:#ef444433;color:#ef4444}.modal-content>p{color:var(--text-secondary);margin:0 0 16px}.modal-guest-info{background:var(--bg-tertiary);gap:14px;margin-bottom:20px;padding:14px}.modal-avatar,.modal-guest-info{align-items:center;border-radius:10px;display:flex}.modal-avatar{color:#fff;font-size:14px;font-weight:700;height:44px;justify-content:center;width:44px}.modal-guest-info strong{color:var(--text-primary);display:block;margin-bottom:2px}.modal-guest-info span{color:var(--text-secondary);font-size:13px}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.modal-btn{border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 20px;transition:all .2s}.modal-btn.cancel{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}.modal-btn.cancel:hover{background:var(--bg-card)}.modal-btn.delete{background:#ef4444;border:none;color:#fff}.modal-btn.delete:hover{background:#dc2626;transform:translateY(-1px)}.modal-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.analytics-beta{background:var(--bg-primary);color:var(--text-primary);margin:0 auto;max-width:1600px;min-height:100vh;padding:24px}.beta-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:28px;padding-bottom:20px}.beta-title-section h1{-webkit-text-fill-color:#0000;align-items:center;background:linear-gradient(135deg,var(--text-primary) 0,var(--accent-primary) 100%);-webkit-background-clip:text;background-clip:text;display:flex;font-size:28px;font-weight:700;gap:12px;margin:0}.beta-badge{-webkit-text-fill-color:unset;background:linear-gradient(135deg,#6366f1,#8b5cf6);-webkit-background-clip:unset;background-clip:initial;border-radius:12px;color:#fff;font-size:10px;font-weight:700;letter-spacing:.5px;padding:4px 10px;text-transform:uppercase}.beta-subtitle{color:var(--text-secondary);font-size:14px;margin:6px 0 0}.beta-controls{align-items:center;display:flex;gap:12px}.beta-time-selector{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;display:flex;gap:4px;padding:4px}.beta-time-selector .time-btn{background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:600;padding:10px 18px;transition:all .2s ease}.beta-time-selector .time-btn:hover{background:var(--bg-card);color:var(--text-primary)}.beta-time-selector .time-btn.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 2px 8px #6366f166;color:#fff}.refresh-btn{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;padding:10px 16px;transition:all .2s ease}.refresh-btn:hover:not(:disabled){background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.refresh-btn:disabled{opacity:.6}.beta-section{margin-bottom:32px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.section-header h2{color:var(--text-primary);font-size:18px;font-weight:600;margin:0}.last-updated,.period-badge{background:var(--bg-secondary);border-radius:6px;color:var(--text-secondary);font-size:12px;padding:4px 10px}.fleet-overview-content-new{grid-gap:20px;display:grid;gap:20px;grid-template-columns:280px 1fr 280px;min-height:400px}.fleet-health-card,.fleet-left-column,.fleet-right-column{display:flex;flex-direction:column;gap:16px}.fleet-health-card{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:20px}.fleet-counts-inline{display:flex;gap:24px}.count-item{align-items:center;display:flex;flex-direction:column;gap:4px}.count-dot{border-radius:50%;height:12px;width:12px}.count-item.online .count-dot{background:#10b981;box-shadow:0 0 10px #10b98199}.count-item.offline .count-dot{background:#ef4444}.count-num{color:var(--text-primary);font-size:24px;font-weight:700}.count-label{color:var(--text-secondary);font-size:11px;letter-spacing:.5px;text-transform:uppercase}.fleet-counts-row{display:flex;gap:32px;justify-content:center;padding-top:8px;width:100%}.fleet-count{align-items:center;display:flex;gap:10px}.fleet-count-dot{border-radius:50%;flex-shrink:0;height:12px;width:12px}.fleet-count.online .fleet-count-dot{background:#10b981;box-shadow:0 0 8px #10b98199}.fleet-count.offline .fleet-count-dot{background:#ef4444}.fleet-count-value{color:var(--text-primary);font-size:26px;font-weight:700;line-height:1}.fleet-count-label{color:var(--text-secondary);font-size:12px;letter-spacing:.5px;text-transform:uppercase}.data-usage-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;overflow:hidden;padding:20px;position:relative}.data-usage-card:before{background:#6366f1;background:var(--accent,#6366f1);bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.data-usage-header{align-items:center;display:flex;gap:10px;margin-bottom:16px}.data-usage-icon{font-size:20px;line-height:1}.data-usage-label{color:var(--text-secondary);flex:1 1;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.data-usage-trend{border-radius:6px;font-size:12px;font-weight:600;padding:4px 10px;white-space:nowrap}.data-usage-trend.up{background:#10b98126;color:#10b981}.data-usage-trend.down{background:#ef444426;color:#ef4444}.data-usage-value{align-items:baseline;display:flex;gap:6px;margin-bottom:16px}.data-value-number{color:var(--text-primary);font-size:36px;font-weight:700;line-height:1}.data-value-unit{color:var(--text-secondary);font-size:16px;font-weight:600}.data-usage-details{border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:8px;padding-top:12px}.detail-row{align-items:center;display:flex;justify-content:space-between}.detail-label{color:var(--text-secondary);font-size:13px}.detail-value{font-feature-settings:"tnum";color:var(--text-primary);font-size:13px;font-variant-numeric:tabular-nums;font-weight:600}.detail-row.highlight{border-top:1px dashed var(--border-color);margin-top:4px;padding-top:8px}.detail-row.highlight .detail-label{color:var(--text-primary);font-weight:600}.detail-row.highlight .detail-value{color:#6366f1;color:var(--accent-primary,#6366f1);font-size:15px}.fleet-map-column{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;min-height:380px;overflow:hidden;position:relative}.fleet-map-container{position:relative}.fleet-map,.fleet-map-container{height:100%;min-height:380px;width:100%}.fleet-map{background:#1a1a2e}.map-legend{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e293bf2;border:1px solid #ffffff1a;border-radius:10px;display:flex;gap:16px;left:12px;padding:10px 14px;position:absolute;top:12px;z-index:1000}.map-legend .legend-item{align-items:center;color:#e2e8f0;display:flex;font-size:12px;gap:6px}.map-legend .legend-marker{border-radius:50%;height:10px;width:10px}.map-legend .legend-marker.online{background:#10b981;box-shadow:0 0 6px #10b98199}.map-legend .legend-marker.offline{background:#ef4444}.map-no-data{color:var(--text-muted);font-size:14px;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.fleet-overview-content{grid-gap:24px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 4px 20px var(--shadow);display:grid;gap:24px;grid-template-columns:200px 1fr 400px;padding:24px}.fleet-health-column{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center}.fleet-health-ring{position:relative}.ring-center{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.ring-value{color:var(--text-primary);font-size:28px;font-weight:700}.ring-label{color:var(--text-secondary);font-size:11px;letter-spacing:.5px;text-transform:uppercase}.fleet-counts{display:flex;flex-direction:column;gap:8px}.fleet-counts .count{align-items:center;display:flex;font-size:14px;font-weight:500;gap:8px}.fleet-counts .dot{border-radius:50%;height:10px;width:10px}.fleet-counts .online .dot{background:#10b981;box-shadow:0 0 8px #10b98180}.fleet-counts .offline .dot{background:#ef4444}.fleet-grid-column{display:flex;flex-direction:column;justify-content:center}.router-status-grid{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-wrap:wrap;gap:6px;padding:16px}.router-dot{border-radius:4px;cursor:pointer;height:14px;transition:transform .2s ease;width:14px}.router-dot:hover{transform:scale(1.3)}.router-dot.online{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 0 6px #10b98166}.router-dot.offline{background:linear-gradient(135deg,#ef4444,#dc2626);opacity:.7}.grid-caption{color:var(--text-secondary);font-size:12px;margin-top:12px;text-align:center}.fleet-stats-column{display:flex;flex-direction:column;gap:16px}.beta-stat-card{align-items:flex-start;background:#fff;border:1.5px solid #6366f1;border:1.5px solid var(--accent,#6366f1);border-radius:12px;box-shadow:0 2px 8px #6366f11f;display:flex;gap:14px;overflow:hidden;padding:18px;position:relative;transition:all .2s ease}.beta-stat-card:before{background:#6366f1;background:var(--accent,#6366f1);bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.beta-stat-card.clickable{cursor:pointer}.beta-stat-card.clickable:hover{box-shadow:0 4px 12px var(--shadow);transform:translateY(-2px)}.stat-icon{font-size:24px;line-height:1}.stat-content{flex:1 1;min-width:0}.stat-label{color:#475569;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.stat-value{color:#0f172a;font-size:22px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-sub{color:#64748b;font-size:12px;font-weight:500;margin-top:6px}.stat-trend{border-radius:6px;font-size:12px;font-weight:600;padding:4px 8px;white-space:nowrap}.stat-trend.up{background:#10b98126;color:#10b981}.stat-trend.down{background:#ef444426;color:#ef4444}.cost-breakdown{display:flex;flex-direction:column;gap:4px;margin-top:4px}.cost-row{color:var(--text-secondary);display:flex;font-size:11px;justify-content:space-between}.cost-row.total{border-top:1px dashed var(--border-color);color:var(--text-primary);font-weight:600;margin-top:4px;padding-top:6px}.cost-value{font-weight:500}.charts-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1.5fr 1fr}.charts-grid.three-col{grid-template-columns:repeat(3,1fr)}.beta-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 2px 12px var(--shadow);padding:20px}.beta-card.wide{grid-column:span 1}.beta-card h3{color:var(--text-primary);font-size:14px;font-weight:600;margin:0 0 16px}.beta-chart-container{margin:-8px -8px 0}.clickable-router-name{transition:fill .15s ease}.clickable-router-name:hover{fill:#8b5cf6!important;text-decoration:underline}.no-data{align-items:center;color:var(--text-muted);display:flex;font-size:14px;height:180px;justify-content:center}.operator-donut-container,.operator-legend{display:flex;flex-direction:column}.operator-legend{gap:8px;margin-top:12px}.legend-item{align-items:center;display:flex;font-size:12px;gap:8px}.legend-dot{border-radius:3px;flex-shrink:0;height:10px;width:10px}.legend-name{color:var(--text-secondary);flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-value{color:var(--text-primary);font-weight:600}.activity-heatmap{padding:16px}.heatmap-hours{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(12,1fr)}.heatmap-cell{align-items:center;aspect-ratio:1;border-radius:6px;cursor:pointer;display:flex;font-size:10px;font-weight:600;justify-content:center;transition:transform .2s ease}.heatmap-cell:hover{transform:scale(1.1)}.heatmap-label{color:var(--text-muted);font-size:11px;margin-top:12px;text-align:center}.quick-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr);padding:8px}.quick-stat{display:flex;flex-direction:column;gap:4px}.qs-label{color:var(--text-secondary);font-size:11px;letter-spacing:.3px;text-transform:uppercase}.qs-value{color:var(--text-primary);font-size:18px;font-weight:700}.wifi-section{background:linear-gradient(135deg,#8b5cf60d,#06b6d40d);border:1px solid #8b5cf633;border-radius:20px;padding:24px}.wifi-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(6,1fr)}.wifi-grid .beta-stat-card{background:var(--bg-card)}.guest-router-table{display:flex;flex-direction:column}.table-header,.table-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1.5fr 1fr 1fr 1fr;padding:12px 16px}.table-header{color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.table-header,.table-row{border-bottom:1px solid var(--border-color)}.table-row{font-size:13px;transition:background .2s ease}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--bg-secondary)}.router-name{color:var(--text-primary);font-weight:600}.beta-footer{align-items:center;border-top:1px solid var(--border-color);color:var(--text-muted);display:flex;font-size:12px;justify-content:space-between;margin-top:32px;padding-top:20px}@media (max-width:1400px){.fleet-overview-content-new{grid-template-columns:250px 1fr 250px}.fleet-overview-content{grid-template-columns:180px 1fr 350px}.charts-grid.three-col{grid-template-columns:repeat(2,1fr)}.charts-grid.three-col .beta-card:last-child{grid-column:span 2}}@media (max-width:1200px){.fleet-overview-content-new{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.fleet-map-column{grid-column:span 2;grid-row:1;min-height:350px}.fleet-left-column,.fleet-right-column{grid-row:2}.fleet-overview-content{grid-template-columns:1fr}.fleet-health-column{flex-direction:row;gap:32px;justify-content:center}.fleet-stats-column{flex-direction:row}.fleet-stats-column .beta-stat-card{flex:1 1}.charts-grid{grid-template-columns:1fr}.wifi-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:900px){.analytics-beta{padding:16px}.beta-header{align-items:flex-start;flex-direction:column}.beta-controls{flex-wrap:wrap;width:100%}.beta-time-selector{flex:1 1;justify-content:center}.fleet-overview-content-new{grid-template-columns:1fr}.fleet-map-column{grid-column:span 1;min-height:300px}.fleet-left-column,.fleet-right-column{flex-direction:row;flex-wrap:wrap}.fleet-left-column .beta-stat-card,.fleet-right-column .beta-stat-card{flex:1 1;min-width:200px}.fleet-health-column,.fleet-stats-column{flex-direction:column}.wifi-grid{grid-template-columns:repeat(2,1fr)}.charts-grid.three-col{grid-template-columns:1fr}.charts-grid.three-col .beta-card:last-child{grid-column:span 1}}@media (max-width:600px){.beta-title-section h1{font-size:22px}.beta-time-selector .time-btn{font-size:12px;padding:8px 12px}.wifi-grid{grid-template-columns:1fr}.table-header,.table-row{gap:8px;grid-template-columns:1fr 1fr}.table-header span:nth-child(3),.table-header span:nth-child(4),.table-row span:nth-child(3),.table-row span:nth-child(4){display:none}.heatmap-hours{grid-template-columns:repeat(8,1fr)}.quick-stats{grid-template-columns:1fr}}.analytics-beta .recharts-cartesian-axis-tick-value{fill:var(--text-secondary)}.analytics-beta .recharts-legend-item-text{color:var(--text-secondary)!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.beta-section{animation:fadeIn .4s ease-out}.beta-section:nth-child(2){animation-delay:.1s}.beta-section:nth-child(3){animation-delay:.2s}.beta-section:nth-child(4){animation-delay:.3s}.beta-section:nth-child(5){animation-delay:.4s}.refresh-btn:disabled{cursor:not-allowed;opacity:.7}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error)}.Toastify__toast-container{box-sizing:border-box;color:#fff;padding:4px;position:fixed;-webkit-transform:translateZ(9999);-webkit-transform:translateZ(var(--toastify-z-index));width:320px;width:var(--toastify-toast-width);z-index:9999;z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:1em;top:1em}.Toastify__toast-container--top-center{left:50%;top:1em;transform:translateX(-50%)}.Toastify__toast-container--top-right{right:1em;top:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width:480px){.Toastify__toast-container{left:0;margin:0;padding:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:0}}.Toastify__toast{border-radius:4px;box-shadow:0 1px 10px 0 #0000001a,0 2px 15px 0 #0000000d;box-sizing:border-box;cursor:default;direction:ltr;display:flex;font-family:sans-serif;font-family:var(--toastify-font-family);justify-content:space-between;margin-bottom:1rem;max-height:800px;max-height:var(--toastify-toast-max-height);min-height:64px;min-height:var(--toastify-toast-min-height);overflow:hidden;padding:8px;position:relative;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{align-items:center;display:flex;flex:1 1 auto;margin:auto 0;padding:6px}.Toastify__toast-body>div:last-child{flex:1 1;word-break:break-word}.Toastify__toast-icon{-webkit-margin-end:10px;display:flex;flex-shrink:0;margin-inline-end:10px;width:20px}.Toastify--animate{animation-duration:.7s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}@media only screen and (max-width:480px){.Toastify__toast{border-radius:0;margin-bottom:0}}.Toastify__toast-theme--dark{background:#121212;background:var(--toastify-color-dark);color:#fff;color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:#fff;background:var(--toastify-color-light);color:#757575;color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:#3498db;background:var(--toastify-color-info);color:#fff;color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:#07bc0c;background:var(--toastify-color-success);color:#fff;color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:#f1c40f;background:var(--toastify-color-warning);color:#fff;color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:#e74c3c;background:var(--toastify-color-error);color:#fff;color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:#bb86fc;background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:#3498db;background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:#07bc0c;background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:#f1c40f;background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:#e74c3c;background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:#ffffffb3;background:var(--toastify-color-transparent)}.Toastify__close-button{align-self:flex-start;background:#0000;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;transition:.3s ease}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:5px;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:9999;z-index:var(--toastify-z-index)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{left:auto;right:0;transform-origin:right}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid #e0e0e0;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:#616161;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px) rotateX(-20deg)}to{opacity:0;transform:perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{transform:translate3d(110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{transform:translate3d(-110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.d028ef46.css.map*/