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;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.dark-mode-toggle{border-bottom:1px solid #ffffff1a;display:flex;justify-content:center;margin-bottom:12px;padding:16px 0}.dark-mode-toggle-container{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;display:flex;gap:8px;padding:8px 12px}.dark-mode-icon{align-items:center;display:flex;font-size:16px;height:20px;justify-content:center;opacity:.6;transition:all .3s ease;-webkit-user-select:none;user-select:none;width:20px}.dark-mode-icon.active{opacity:1;transform:scale(1.1)}.dark-mode-switch{display:inline-block;height:20px;margin:0 4px;position:relative;width:40px}.dark-mode-switch input{height:0;opacity:0;width:0}.dark-mode-slider{background-color:#ffffff4d;border:1px solid #fff6;border-radius:20px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:all .3s ease}.dark-mode-slider:before{background-color:#fff;border-radius:50%;bottom:2px;box-shadow:0 2px 4px #0003;content:"";height:14px;left:2px;position:absolute;transition:all .3s ease;width:14px}.dark-mode-switch input:checked+.dark-mode-slider{background-color:#215ea1cc;border-color:#215ea1}.dark-mode-switch input:checked+.dark-mode-slider:before{background-color:#f0f8ff;transform:translateX(20px)}.dark-mode-switch input:focus+.dark-mode-slider{box-shadow:0 0 0 2px #215ea180}.dark-mode-slider:hover{background-color:#fff6}.dark-mode-switch input:checked+.dark-mode-slider:hover{background-color:#215ea1e6}.dark-mode-icon.active{animation:pulse .6s ease-in-out}@media (max-width:768px){.dark-mode-toggle-container{gap:6px;padding:6px 10px}.dark-mode-icon{font-size:14px;height:18px;width:18px}.dark-mode-switch{height:18px;width:36px}.dark-mode-slider:before{bottom:2px;height:12px;left:2px;width:12px}.dark-mode-switch input:checked+.dark-mode-slider:before{transform:translateX(18px)}}.sidebar{background:linear-gradient(180deg,#215ea1,#1a4d85);background:linear-gradient(180deg,var(--primary-color,#215ea1) 0,#1a4d85 100%);border-right:1px solid #ffffff1a;box-shadow:2px 0 8px #00000026;height:calc(100vh - 80px);left:0;position:fixed;top:80px;width:180px;z-index:100}.sidebar,.sidebar-nav{display:flex;flex-direction:column}.sidebar-nav{height:100%;padding:20px 0}.sidebar-button{align-items:center;background:none;border:none;border-left:4px solid #0000;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:500;padding:15px 20px;text-align:left;transition:all .3s ease}.sidebar-button:hover{background-color:#ffffff1a;border-left-color:#ffffff4d}.sidebar-button.active{background-color:#ffffff26;border-left-color:#fff}.sidebar-button.active .sidebar-text{font-weight:600}.sidebar-icon{display:inline-block;font-size:18px;margin-right:12px;text-align:center;width:24px}.sidebar-spacer,.sidebar-text{flex:1 1}.sidebar-user-info{align-items:center;border-bottom:1px solid #fff3;border-top:1px solid #fff3;display:flex;gap:12px;margin-bottom:10px;margin-top:auto;padding:20px}.sidebar-user-avatar{align-items:center;background-color:#fff3;border-radius:50%;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.sidebar-user-avatar .sidebar-icon{font-size:16px;margin:0}.sidebar-user-details{flex:1 1;min-width:0}.sidebar-user-name{color:#fff;font-size:14px;font-weight:600;margin-bottom:2px}.sidebar-user-email,.sidebar-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-email{color:#ffffffb3;font-size:12px}.logout-button{border-top:1px solid #fff3}.logout-button:hover{background-color:#dc354533;border-left-color:#dc354599}.login-button{background-color:#ffffff1a}.login-button:hover{background-color:#28a74533;border-left-color:#28a74599}.user-profile-button{background-color:#ffffff0d;border-top:1px solid #fff3;position:relative}.user-profile-button:hover{background-color:#dc354526;border-left-color:#dc354599}.user-profile-button:hover .sidebar-text{transform:scale(.95);transition:transform .2s ease}.user-profile-button:hover:after{animation:fadeIn .3s ease forwards;color:#fffc;content:"Sign Out";font-size:12px;opacity:0;position:absolute;right:15px}.sidebar-welcome{border-bottom:1px solid #fff3;color:#fff;padding:30px 20px;text-align:center}.sidebar-welcome-icon{font-size:48px;margin-bottom:15px;opacity:.8}.sidebar-welcome-text h3{color:#fff;font-size:18px;font-weight:600;margin:0 0 8px}.sidebar-welcome-text p{color:#fffc;font-size:14px;line-height:1.4;margin:0}@media (max-width:768px){.sidebar{width:60px}.sidebar-text{display:none}.sidebar-button{justify-content:center;padding:15px 10px}.sidebar-icon{margin-right:0}.sidebar-user-info{flex-direction:column;gap:5px;padding:10px}.sidebar-user-details{display:none}.sidebar-user-avatar{height:32px;width:32px}.sidebar-user-avatar .sidebar-icon{font-size:14px}.sidebar-welcome{padding:20px 10px}.sidebar-welcome-icon{font-size:32px;margin-bottom:10px}.sidebar-welcome-text{display:none}}[data-theme=dark] .sidebar{background:var(--gradient-primary);border-right:1px solid var(--border-primary);box-shadow:var(--shadow-lg)}[data-theme=dark] .sidebar-button{color:#ffffffe6;transition:all .3s cubic-bezier(.4,0,.2,1)}[data-theme=dark] .sidebar-button:hover{background-color:#ffffff1a;border-left-color:#ffffff4d;color:#fff;transform:translateX(2px)}[data-theme=dark] .sidebar-button.active{background-color:#ffffff26;border-left-color:#fff;box-shadow:var(--shadow-sm);color:#fff}[data-theme=dark] .sidebar-welcome{background:#ffffff0d;border-bottom:1px solid #fff3;border-radius:8px;margin:10px}[data-theme=dark] .sidebar-welcome-text h3{color:#fff}[data-theme=dark] .sidebar-welcome-text p{color:#fffc}[data-theme=dark] .user-profile-button{background:#ffffff0d;border-top:1px solid #fff3;color:#fff}[data-theme=dark] .user-profile-button:hover{background-color:#dc354526;border-left-color:#dc354599;transform:translateX(2px)}[data-theme=dark] .login-button{background:#ffffff1a;color:#fff}[data-theme=dark] .login-button:hover{background-color:#28a74533;border-left-color:#28a74599;transform:translateX(2px)}.main-content{background-color:#f8f9fa;padding:20px;transition:background-color .3s cubic-bezier(.4,0,.2,1)}[data-theme=dark] .main-content{background:var(--bg-secondary)}.dashboard-page{background-color:#f8f9fa;background-color:var(--theme-bg-secondary,#f8f9fa);max-width:100%;overflow-x:hidden}.dashboard-content{display:flex;flex-direction:column;gap:24px;max-width:100%;overflow-x:hidden}.dashboard-error,.dashboard-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.loading-spinner{border:4px solid #e9ecef;border:4px solid var(--theme-border-primary,#e9ecef);height:48px;margin-bottom:16px;width:48px}.dashboard-error{color:#6c757d;color:var(--theme-text-secondary,#6c757d)}.error-icon{font-size:48px;margin-bottom:16px}.retry-button{margin-top:16px}.retry-button:hover{background:#1e5399;transform:translateY(-1px)}.last-updated{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-radius:6px;color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:13px;padding:8px 16px}.refresh-button{align-items:center;background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:6px;color:#2c3e50;color:var(--theme-text-primary,#2c3e50);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.refresh-button:hover:not(:disabled){background:#f8f9fa;background:var(--theme-bg-hover,#f8f9fa);border-color:#215ea1;border-color:var(--theme-primary,#215ea1);transform:translateY(-1px)}.refresh-button:disabled{cursor:not-allowed;opacity:.6}.stats-grid{grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));max-width:100%}.stat-card{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px;box-shadow:0 1px 3px #0000000d;box-shadow:var(--theme-shadow-sm,0 1px 3px #0000000d);overflow:hidden;padding:24px;position:relative;transition:all .3s ease}.stat-card:hover{box-shadow:0 4px 8px #0000001a;box-shadow:var(--theme-shadow-md,0 4px 8px #0000001a);transform:translateY(-2px)}.stat-card:before{background:#215ea1;background:var(--stat-color,#215ea1);content:"";height:100%;left:0;position:absolute;top:0;width:4px}.stat-card.primary{--stat-color:#215ea1}.stat-card.secondary{--stat-color:#8b5cf6}.stat-card.success{--stat-color:#10b981}.stat-card.warning{--stat-color:#f59e0b}.stat-icon{font-size:32px;margin-bottom:12px;opacity:.9}.stat-content{margin-bottom:8px}.stat-value{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:36px;font-weight:700;line-height:1.2;margin-bottom:4px}.stat-label{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;letter-spacing:.5px;text-transform:uppercase}.stat-meta{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);font-size:13px;margin-top:4px}.stat-badge{background:#f3f4f6;background:var(--theme-bg-secondary,#f3f4f6);border-radius:12px;color:#6c757d;color:var(--theme-text-secondary,#6c757d);display:inline-block;font-size:12px;font-weight:500;margin-top:8px;padding:4px 10px}.stat-badge.positive{background:#d1fae520;color:#10b981}.dashboard-section{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px;box-shadow:0 1px 3px #0000000d;box-shadow:var(--theme-shadow-sm,0 1px 3px #0000000d);box-sizing:border-box;max-width:100%;overflow-x:auto;padding:20px}.section-header{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--theme-border-primary,#e9ecef);margin-bottom:24px;padding-bottom:16px}.section-header h2{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:20px;font-weight:600;margin:0 0 4px}.section-header p{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;margin:0}.device-types-grid{display:flex;flex-direction:column;gap:16px}.device-type-card{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-radius:8px;padding:16px;position:relative}.device-type-card:hover{background:#f1f3f5;background:var(--theme-bg-hover,#f1f3f5);transform:translateX(4px)}.device-type-bar{border-radius:8px 0 0 8px;height:100%;left:0;opacity:.1;position:absolute;top:0;transition:all .3s ease}.device-type-card:hover .device-type-bar{opacity:.15}.device-type-info{align-items:center;display:flex;justify-content:space-between;position:relative}.device-type-label{align-items:center;color:#2c3e50;color:var(--theme-text-primary,#2c3e50);display:flex;font-size:15px;font-weight:600;gap:10px}.device-type-dot{border-radius:50%;flex-shrink:0;height:12px;width:12px}.device-type-count{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:14px;font-weight:600}.device-type-percentage{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:13px;font-weight:400;margin-left:8px}.clients-stats-table{max-width:100%;overflow-x:auto}.clients-stats-table table{border-collapse:collapse;width:100%}.clients-stats-table th{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-bottom:2px solid #e9ecef;border-bottom:2px solid var(--theme-border-primary,#e9ecef);color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:13px;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase}.clients-stats-table tbody tr{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--theme-border-primary,#e9ecef);transition:background-color .2s ease}.clients-stats-table tbody tr:hover{background:#f8f9fa;background:var(--theme-bg-hover,#f8f9fa)}.clients-stats-table td{font-size:14px;padding:16px}.client-name-cell,.number-cell{color:#2c3e50;color:var(--theme-text-primary,#2c3e50)}.number-cell{font-weight:600;text-align:center}.success-text{color:#10b981}.warning-text{color:#f59e0b}.device-types-cell{max-width:300px}.device-types-chips{display:flex;flex-wrap:wrap;gap:6px}.device-type-chip{border:1px solid;border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 10px;white-space:nowrap}.empty-value{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);font-style:italic}.empty-state{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;padding:40px 20px}.dashboard-footer{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px;padding:24px}@media (max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}.activity-summary{flex-direction:column;gap:16px}}@media (max-width:640px){.stats-grid{grid-template-columns:1fr}.page-header{flex-direction:column;gap:16px}.page-actions{flex-direction:column;width:100%}.last-updated,.refresh-button{justify-content:center;width:100%}.clients-stats-table{font-size:13px}.clients-stats-table td,.clients-stats-table th{padding:10px 12px}.device-types-chips{flex-direction:column}}@media (prefers-color-scheme:dark){.dashboard-page{background-color:#1a1d23;background-color:var(--theme-bg-secondary,#1a1d23)}.loading-spinner{border-color:#3b82f6 #374151 #374151;border-top-color:var(--theme-primary,#3b82f6)}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:var(--theme-bg-overlay,#00000080);padding:20px}.device-detail-modal{background:#fff;background:var(--theme-bg-primary,#fff);border-radius:16px;box-shadow:0 25px 50px #00000040;box-shadow:var(--theme-shadow-2xl,0 25px 50px #00000040);display:flex;flex-direction:column;max-height:90vh;max-width:900px;min-width:320px;overflow:hidden;width:100%}.modal-header{background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid var(--theme-border-primary,#e5e7eb);padding:24px 32px}.header-title-section{align-items:center;display:flex;gap:1rem}.header-title-section h2{color:#111827;color:var(--theme-text-primary,#111827);font-size:24px;font-weight:600;margin:0}.close-button{align-items:center;border-radius:50%;color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);display:flex;font-size:28px;height:40px;justify-content:center;width:40px}.close-button:hover{background:var(--theme-interactive-hover,#f3f4f6)}.edit-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.edit-header h3{color:#333;font-size:1.2rem;margin:0}.modal-tabs{background:var(--theme-bg-secondary,#f9fafb);padding:0 32px}.modal-content{padding:32px}.detail-section{margin-bottom:32px}.detail-section:last-child{margin-bottom:0}.detail-section h4{border-bottom:1px solid #f1f3f4;border-bottom:1px solid var(--theme-border-secondary,#f1f3f4);color:#111827;color:var(--theme-text-primary,#111827);font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:8px}.info-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.info-item{gap:6px}.info-item label{font-size:13px;letter-spacing:.5px}.info-value{color:#111827;color:var(--theme-text-primary,#111827);font-size:15px;font-weight:500}.info-value.monospace{font-size:14px}.info-value.password{letter-spacing:2px}.status-badge{border-radius:6px;letter-spacing:.5px}.status-badge.up-to-date{background:#d1fae5;color:#065f46}.voice-dsts{gap:8px}.voice-dst-tag{background:#f3f4f6;background:var(--theme-bg-secondary,#f3f4f6);border-radius:6px;color:#374151;color:var(--theme-text-primary,#374151);display:inline-block;font-size:13px;padding:6px 12px}.config-list{display:flex;flex-direction:column;gap:8px}.config-item{border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:6px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;padding:10px 14px}.config-item,.registry-data{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);color:#374151;color:var(--theme-text-primary,#374151)}.registry-data{border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;font-size:13px;line-height:1.6;padding:20px}.loading-container{gap:16px;justify-content:center;padding:40px}.loading-spinner{border:4px solid #e5e7eb;border-top:4px solid #215ea1;border:4px solid var(--theme-border-primary,#e5e7eb);border-top-color:var(--theme-primary,#215ea1)}.no-data{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);padding:40px}.error-banner{background:#dc35451a;border:1px solid #dc354533;border-radius:8px;color:#dc3545;font-size:14px;margin:16px 32px;padding:12px 20px}.error-banner button{align-items:center;color:#dc3545;display:flex;font-size:20px;height:24px;justify-content:center;width:24px}.modal-actions{background:var(--theme-bg-secondary,#f9fafb);border-top:1px solid var(--theme-border-primary,#e5e7eb);padding:24px 32px}.action-group-left,.action-group-right{display:flex;gap:12px}.btn{border-radius:8px;min-width:120px;padding:12px 24px}.btn-primary:hover:not(:disabled){background:#1e5399;box-shadow:0 4px 6px #00000012;box-shadow:var(--theme-shadow-md,0 4px 6px #00000012);transform:translateY(-1px)}.btn-secondary{border:1.5px solid #e5e7eb;border:1.5px solid var(--theme-border-primary,#e5e7eb);color:#6b7280;color:var(--theme-text-secondary,#6b7280)}.btn-secondary:hover:not(:disabled){background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);border-color:#d1d5db;border-color:var(--theme-border-secondary,#d1d5db)}.btn-danger:hover:not(:disabled),.btn-success:hover:not(:disabled){box-shadow:0 4px 6px #00000012;transform:translateY(-1px)}.form-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(2,1fr);padding:20px}.form-group.full-width{grid-column:1/-1}.form-group label{color:#333;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;padding:.5rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{box-shadow:0 0 0 2px #215ea11a}.form-group textarea{min-height:100px}@media (max-width:768px){.modal-overlay{padding:10px}.device-detail-modal{max-height:95vh;max-width:100%}.modal-header{padding:20px}.header-title-section h2{font-size:20px}.modal-tabs{overflow-x:auto;padding:0 20px}.tab-button{font-size:13px;padding:12px 16px;white-space:nowrap}.form-grid{grid-template-columns:1fr;padding:15px}.modal-content{padding:24px 20px}.detail-section{margin-bottom:24px}.detail-section h4{font-size:16px}.info-grid{gap:16px;grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse;gap:12px;padding:20px}.action-group-left,.action-group-right,.btn{width:100%}.header-controls{gap:1rem}.toggle-label{font-size:.85rem}.toggle-switch{height:22px;width:42px}.toggle-slider:before{height:16px;width:16px}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(20px)}.field-help{font-size:.8rem;padding:.6rem}}[data-theme=dark] .device-detail-modal{background:var(--theme-bg-primary);border:1px solid var(--theme-border-primary)}[data-theme=dark] .config-item,[data-theme=dark] .registry-data{background:var(--theme-bg-secondary);border-color:var(--theme-border-secondary)}[data-theme=dark] .voice-dst-tag{background:var(--theme-bg-secondary);border:1px solid var(--theme-border-secondary)}.create-device-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;background:var(--theme-bg-overlay,#00000080);bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.create-device-modal-content{background:#fff;background:var(--theme-bg-primary,#fff);border-radius:16px;box-shadow:0 25px 50px #00000040;box-shadow:var(--theme-shadow-2xl,0 25px 50px #00000040);display:flex;flex-direction:column;max-height:90vh;max-width:800px;min-width:320px;overflow:hidden;width:100%}.create-device-modal-header{align-items:center;background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;justify-content:space-between;padding:24px 32px}.create-device-modal-header h2{align-items:center;color:#111827;color:var(--theme-text-primary,#111827);display:flex;font-size:24px;font-weight:600;gap:12px;margin:0}.header-controls{gap:1.5rem}.header-controls,.help-toggle{align-items:center;display:flex}.help-toggle{gap:.75rem}.toggle-label{color:#333;font-size:.9rem;font-weight:500;-webkit-user-select:none;user-select:none}.toggle-switch{display:inline-block;height:24px;position:relative;width:48px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:18px;left:3px;position:absolute;transition:.3s;width:18px}.toggle-switch input:checked+.toggle-slider{background-color:#215ea1}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 1px #215ea1}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(24px)}.create-device-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);cursor:pointer;display:flex;font-size:28px;height:40px;justify-content:center;transition:all .2s ease;width:40px}.create-device-modal-close:hover{background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);color:#111827;color:var(--theme-text-primary,#111827)}.create-device-modal-body{flex:1 1;overflow-y:auto;padding:0}.create-device-tabs{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;padding:0 32px}.tab-button{font-size:14px;padding:16px 24px}.tab-button:hover{background:#215ea10d;background:var(--theme-interactive-hover,#215ea10d)}.tab-button.active{background:var(--theme-bg-primary,#fff);border-bottom-color:#215ea1;border-bottom-color:var(--theme-primary,#215ea1)}.create-device-form{padding:32px}.create-device-form-section{margin-bottom:32px}.create-device-form-section h4{border-bottom:1px solid #f1f3f4;border-bottom:1px solid var(--theme-border-secondary,#f1f3f4);color:#111827;color:var(--theme-text-primary,#111827);font-size:18px;font-weight:600;margin:0 0 24px;padding-bottom:8px}.form-group{margin-bottom:20px}.form-group label{font-size:14px;margin-bottom:6px}.form-group label.required:after{color:#dc3545;color:var(--error-color,#dc3545);content:" *"}.form-group input,.form-group select,.form-group textarea{border:1.5px solid #e5e7eb;border:1.5px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;box-sizing:border-box;font-size:14px;padding:12px 16px;transition:all .2s ease}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc3545;border-color:var(--error-color,#dc3545);box-shadow:0 0 0 3px #dc35451a}.form-group input[type=number]{-moz-appearance:textfield}.form-group input[type=number]::-webkit-inner-spin-button,.form-group input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-group textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px}.form-group small{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);display:block;font-size:12px;margin-top:4px}.checkbox-group,.checkbox-group label{align-items:center;display:flex;gap:8px}.checkbox-group label{cursor:pointer;font-size:14px;font-weight:500;margin:0}.checkbox-group input[type=checkbox]{border:none;cursor:pointer;margin:0;padding:0;width:auto}.error-message{color:#dc3545;color:var(--error-color,#dc3545);display:block;font-size:12px;font-weight:500;margin-top:6px}.submit-error{background:#dc35451a;border:1px solid #dc354533;border-radius:8px;font-size:14px;margin:16px 0;padding:12px 16px;text-align:center}.create-device-modal-actions{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-top:1px solid #e5e7eb;border-top:1px solid var(--theme-border-primary,#e5e7eb);display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding:24px 32px}.cancel-btn,.create-btn{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:12px 24px;transition:all .2s ease}.cancel-btn{background:#fff;background:var(--theme-bg-primary,#fff);border:1.5px solid #e5e7eb;border:1.5px solid var(--theme-border-primary,#e5e7eb);color:#6b7280;color:var(--theme-text-secondary,#6b7280)}.cancel-btn:hover{background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);border-color:#d1d5db;border-color:var(--theme-border-secondary,#d1d5db)}.create-btn{background:#215ea1;background:var(--theme-primary,#215ea1);border:1.5px solid #215ea1;border:1.5px solid var(--theme-primary,#215ea1);color:#fff}.create-btn:hover:not(:disabled){background:#1e5399;border-color:#1e5399;box-shadow:0 4px 6px #00000012;box-shadow:var(--theme-shadow-md,0 4px 6px #00000012);transform:translateY(-1px)}.cancel-btn:disabled,.create-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.create-device-form-section{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.form-row{grid-gap:20px;gap:20px}@media (max-width:768px){.create-device-modal-overlay{padding:10px}.create-device-modal-content{max-height:95vh;max-width:100%}.create-device-modal-header{padding:20px}.create-device-modal-header h2{font-size:20px}.create-device-tabs{overflow-x:auto;padding:0 20px}.tab-button{font-size:13px;padding:12px 16px;white-space:nowrap}.create-device-form{padding:24px 20px}.form-row{gap:16px;grid-template-columns:1fr}.create-device-modal-actions{flex-direction:column-reverse;padding:20px}.cancel-btn,.create-btn{width:100%}}[data-theme=dark] .create-device-modal-content{background:var(--theme-bg-primary);border:1px solid var(--theme-border-primary);box-shadow:var(--theme-shadow-2xl)}[data-theme=dark] .tab-button.active{background:var(--theme-bg-primary)}[data-theme=dark] .form-group input,[data-theme=dark] .form-group select,[data-theme=dark] .form-group textarea{background:var(--theme-bg-secondary);border-color:var(--theme-border-secondary)}[data-theme=dark] .form-group input:focus,[data-theme=dark] .form-group select:focus,[data-theme=dark] .form-group textarea:focus{background:var(--theme-bg-primary)}[data-theme=dark] .submit-error{background:#f871711a;border-color:#f8717133}.create-btn:disabled{position:relative}.create-btn:disabled:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;content:"";height:16px;left:50%;margin:-8px 0 0 -8px;position:absolute;top:50%;width:16px}.form-group.valid input,.form-group.valid select,.form-group.valid textarea{border-color:#28a745;border-color:var(--success-color,#28a745);box-shadow:0 0 0 3px #28a7451a}.success-message{color:#28a745;color:var(--success-color,#28a745);display:block;font-size:12px;font-weight:500;margin-top:6px}.field-help{animation:slideDown .2s ease-out;border-left:3px solid;border-radius:4px;font-size:.85rem;line-height:1.4;margin-top:.5rem;padding:.75rem}.field-help.valid{background-color:#e8f5e9;border-left-color:#4caf50;color:#2e7d32}.field-help.invalid{background-color:#ffebee;border-left-color:#f44336;color:#c62828}.help-description{font-weight:500;margin-bottom:.25rem}.help-validation{font-size:.8rem;font-weight:600;margin-top:.25rem}.field-help.valid .help-validation{color:#388e3c}.field-help.invalid .help-validation{color:#d32f2f}.input-with-button{align-items:stretch;display:flex;gap:8px}.input-with-button input{flex:1 1}.generate-uuid-btn{background:#f3f4f6;background:var(--theme-bg-secondary,#f3f4f6);border:1.5px solid #e5e7eb;border:1.5px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.generate-uuid-btn:hover{background:#215ea1;background:var(--theme-primary,#215ea1);border-color:#215ea1;border-color:var(--theme-primary,#215ea1);color:#fff}.generate-uuid-btn:active{transform:scale(.98)}[data-theme=dark] .generate-uuid-btn{background:var(--theme-bg-tertiary);border-color:var(--theme-border-secondary);color:var(--theme-text-secondary)}[data-theme=dark] .generate-uuid-btn:hover{background:var(--theme-primary);border-color:var(--theme-primary);color:#fff}.create-client-modal{background:#fff;background:var(--theme-bg-primary,#fff);border-radius:16px;box-shadow:0 25px 50px #00000040;box-shadow:var(--theme-shadow-2xl,0 25px 50px #00000040);display:flex;flex-direction:column;max-height:90vh;max-width:600px;min-width:320px;overflow:hidden;width:100%}.create-client-modal .modal-header{align-items:center;background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;justify-content:space-between;padding:24px 32px}.create-client-modal .header-title-section{align-items:center;display:flex;gap:.75rem}.create-client-modal .header-title-section h2{color:#111827;color:var(--theme-text-primary,#111827);font-size:24px;font-weight:600;margin:0}.create-client-modal .header-controls{align-items:center;display:flex;gap:1.5rem}.create-client-modal .help-toggle{align-items:center;display:flex;gap:.75rem}.create-client-modal .toggle-label{color:#333;font-size:.9rem;font-weight:500;-webkit-user-select:none;user-select:none}.create-client-modal .toggle-switch{display:inline-block;height:24px;position:relative;width:48px}.create-client-modal .toggle-switch input{height:0;opacity:0;width:0}.create-client-modal .toggle-slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.create-client-modal .toggle-slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:18px;left:3px;position:absolute;transition:.3s;width:18px}.create-client-modal .toggle-switch input:checked+.toggle-slider{background-color:#215ea1}.create-client-modal .toggle-switch input:focus+.toggle-slider{box-shadow:0 0 1px #215ea1}.create-client-modal .toggle-switch input:checked+.toggle-slider:before{transform:translateX(24px)}.create-client-modal .close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);cursor:pointer;display:flex;font-size:28px;height:40px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:40px}.create-client-modal .close-btn:hover{background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);color:#111827;color:var(--theme-text-primary,#111827)}.create-client-modal .close-btn:disabled{cursor:not-allowed;opacity:.5}.create-client-modal .modal-body{flex:1 1;overflow-y:auto;padding:32px}.create-client-modal .form-section{margin-bottom:24px}.create-client-modal .form-section h4{border-bottom:1px solid #f1f3f4;border-bottom:1px solid var(--theme-border-secondary,#f1f3f4);color:#111827;color:var(--theme-text-primary,#111827);font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:8px}.create-client-modal .form-group{margin-bottom:24px}.create-client-modal .form-group label{color:#111827;color:var(--theme-text-primary,#111827);display:block;font-size:14px;font-weight:500;margin-bottom:8px}.create-client-modal .form-group label.required{display:block}.create-client-modal .required-asterisk{color:#dc3545;color:var(--error-color,#dc3545);margin-left:2px}.create-client-modal .form-group input{background:#fff;background:var(--theme-bg-primary,#fff);border:1.5px solid #e5e7eb;border:1.5px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;box-sizing:border-box;color:#111827;color:var(--theme-text-primary,#111827);font-size:14px;padding:12px 16px;transition:all .2s ease;width:100%}.create-client-modal .form-group input:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.create-client-modal .form-group input.error{border-color:#dc3545;border-color:var(--error-color,#dc3545);box-shadow:0 0 0 3px #dc35451a}.create-client-modal .form-group input::placeholder{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);opacity:.7}.create-client-modal .error-text{color:#dc3545;color:var(--error-color,#dc3545);display:block;font-size:12px;font-weight:500;margin-top:6px}.create-client-modal .field-help{animation:slideDown .2s ease-out;border-left:3px solid;border-radius:4px;font-size:.85rem;line-height:1.4;margin-top:.5rem;padding:.75rem}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.create-client-modal .field-help.valid{background-color:#e8f5e9;border-left-color:#4caf50;color:#2e7d32}.create-client-modal .field-help.invalid{background-color:#ffebee;border-left-color:#f44336;color:#c62828}.create-client-modal .help-description{font-weight:500;margin-bottom:.25rem}.create-client-modal .help-validation{font-size:.8rem;font-weight:600;margin-top:.25rem}.create-client-modal .field-help.valid .help-validation{color:#388e3c}.create-client-modal .field-help.invalid .help-validation{color:#d32f2f}.create-client-modal .error-banner{align-items:center;background:#dc35451a;border:1px solid #dc354533;border-radius:8px;color:#dc3545;display:flex;font-size:14px;justify-content:space-between;margin-bottom:20px;padding:12px 20px}.create-client-modal .error-banner button{align-items:center;background:none;border:none;color:#dc3545;cursor:pointer;display:flex;font-size:20px;height:24px;justify-content:center;padding:0;width:24px}.create-client-modal .form-help-text{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-left:3px solid #215ea1;border-left:3px solid var(--theme-primary,#215ea1);border-radius:4px;margin-top:16px;padding:12px 16px}.create-client-modal .form-help-text p{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:13px;line-height:1.5;margin:0}.create-client-modal .form-help-text strong{color:#111827;color:var(--theme-text-primary,#111827)}.create-client-modal .modal-footer{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-top:1px solid #e5e7eb;border-top:1px solid var(--theme-border-primary,#e5e7eb);display:flex;gap:12px;justify-content:flex-end;padding:24px 32px}.create-client-modal .btn-primary,.create-client-modal .btn-secondary{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:100px;padding:12px 24px;transition:all .2s ease}.create-client-modal .btn-secondary{background:#fff;background:var(--theme-bg-primary,#fff);border:1.5px solid #e5e7eb;border:1.5px solid var(--theme-border-primary,#e5e7eb);color:#6b7280;color:var(--theme-text-secondary,#6b7280)}.create-client-modal .btn-secondary:hover:not(:disabled){background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);border-color:#d1d5db;border-color:var(--theme-border-secondary,#d1d5db)}.create-client-modal .btn-primary{background:#215ea1;background:var(--theme-primary,#215ea1);border:1.5px solid #215ea1;border:1.5px solid var(--theme-primary,#215ea1);color:#fff}.create-client-modal .btn-primary:hover:not(:disabled){background:#1e5399;border-color:#1e5399;box-shadow:0 4px 6px #00000012;box-shadow:var(--theme-shadow-md,0 4px 6px #00000012);transform:translateY(-1px)}.create-client-modal .btn-primary:disabled,.create-client-modal .btn-secondary:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.create-client-modal .btn-primary:disabled:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;content:"";display:inline-block;height:12px;margin-left:8px;vertical-align:middle;width:12px}@media (max-width:768px){.create-client-modal{max-height:95vh;max-width:100%}.create-client-modal .modal-body,.create-client-modal .modal-footer,.create-client-modal .modal-header{padding:20px}.create-client-modal .header-title-section h2{font-size:20px}.create-client-modal .header-controls{gap:1rem}.create-client-modal .toggle-label{font-size:.85rem}.create-client-modal .toggle-switch{height:22px;width:42px}.create-client-modal .toggle-slider:before{height:16px;width:16px}.create-client-modal .toggle-switch input:checked+.toggle-slider:before{transform:translateX(20px)}.create-client-modal .field-help{font-size:.8rem;padding:.6rem}.create-client-modal .modal-footer{flex-direction:column-reverse}.create-client-modal .btn-primary,.create-client-modal .btn-secondary{width:100%}}[data-theme=dark] .create-client-modal{background:var(--theme-bg-primary);border:1px solid var(--theme-border-primary);box-shadow:var(--theme-shadow-2xl)}[data-theme=dark] .create-client-modal .form-group input{background:var(--theme-bg-secondary);border-color:var(--theme-border-secondary)}[data-theme=dark] .create-client-modal .form-group input:focus{background:var(--theme-bg-primary)}[data-theme=dark] .create-client-modal .error-banner{background:#f871711a;border-color:#f8717133}[data-theme=dark] .create-client-modal .form-help-text{background:var(--theme-bg-tertiary)}.users-page{background-color:#f8f9fa;background-color:var(--theme-bg-secondary,#f8f9fa);max-width:100%;overflow-x:hidden}.users-content{max-width:100%;overflow-x:hidden}.users-container,.users-content{display:flex;flex-direction:column;gap:24px}.users-container .stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:100%}.users-container .stat-card{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px;box-shadow:0 1px 3px #0000000d;overflow:hidden;padding:24px;position:relative;transition:all .3s ease}.users-container .stat-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.users-container .stat-card:before{background:#215ea1;background:var(--stat-color,#215ea1);content:"";height:100%;left:0;position:absolute;top:0;width:4px}.users-container .stat-card.primary{--stat-color:#215ea1}.users-container .stat-card.secondary{--stat-color:#8b5cf6}.users-container .stat-card.success{--stat-color:#10b981}.users-container .stat-card.warning{--stat-color:#f59e0b}.users-container .stat-icon{font-size:32px;margin-bottom:12px;opacity:.9}.users-container .stat-content{margin-bottom:8px}.users-container .stat-value{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:36px;font-weight:700;line-height:1.2;margin-bottom:4px}.users-container .stat-label{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.users-container .stat-meta{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);font-size:13px;margin-top:4px}.users-section{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px;box-shadow:0 1px 3px #0000000d;overflow:hidden}.users-section .section-header{align-items:center;background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--theme-border-primary,#e9ecef);display:flex;justify-content:space-between;padding:20px 24px}.users-section .section-title{align-items:center;display:flex;gap:12px}.users-section .section-title h2{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:18px;font-weight:600;margin:0}.users-section .section-count{background:#e9ecef;background:var(--theme-bg-tertiary,#e9ecef);border-radius:12px;color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:12px;font-weight:500;padding:4px 10px}.users-section .section-controls{align-items:center;display:flex;gap:12px}.search-container{position:relative}.search-input{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:8px;color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:14px;padding:10px 16px;transition:all .2s ease;width:280px}.search-input:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a}.search-input::placeholder{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af)}.users-table{border-collapse:collapse;width:100%}.users-table th{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-bottom:2px solid #e9ecef;border-bottom:2px solid var(--theme-border-primary,#e9ecef);color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.users-table th.sortable{cursor:pointer;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.users-table th.sortable:hover{background:#e9ecef;background:var(--theme-bg-tertiary,#e9ecef)}.users-table td{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--theme-border-primary,#e9ecef);color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:14px;padding:16px}.users-table tbody tr{cursor:pointer;transition:background-color .2s ease}.users-table tbody tr:hover{background:#f8f9fa;background:var(--theme-bg-hover,#f8f9fa)}.user-username{color:#215ea1!important;color:var(--theme-primary,#215ea1)!important;font-weight:600}.user-fullname{font-weight:500}.user-email{color:#6c757d!important;color:var(--theme-text-secondary,#6c757d)!important}.user-created{color:#9ca3af!important;color:var(--theme-text-tertiary,#9ca3af)!important;font-size:13px!important}.user-status{align-items:center;display:flex;gap:8px}.status-badge{font-size:11px;letter-spacing:.3px}.status-badge.active{background:#10b9811a;color:#059669}.status-badge.inactive{background:#ef44441a;color:#dc2626}.verified-badge{align-items:center;background:#10b9811a;border-radius:50%;color:#059669;display:inline-flex;font-size:12px;height:20px;justify-content:center;width:20px}.pagination-wrapper{background:var(--theme-bg-secondary,#f9fafb);border-top:1px solid #e9ecef;border-top:1px solid var(--theme-border-primary,#e9ecef);padding:16px 24px}.pagination-info{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:13px;margin-bottom:12px}.items-per-page{gap:8px}.items-per-page label,.items-per-page-select{color:#2c3e50;color:var(--theme-text-primary,#2c3e50)}.items-per-page-select{background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);font-size:13px;padding:6px 10px}.items-per-page-select:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1)}.pagination{gap:8px}.page-btn,.pagination-btn{background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:13px;font-weight:500;padding:8px 14px}.page-btn:hover,.pagination-btn:hover:not(:disabled){background:#f8f9fa;background:var(--theme-bg-hover,#f8f9fa);border-color:#215ea1;border-color:var(--theme-primary,#215ea1)}.page-btn.active{background:#215ea1;background:var(--theme-primary,#215ea1);border-color:#215ea1;border-color:var(--theme-primary,#215ea1)}.page-numbers{gap:4px}.users-footer{box-shadow:0 1px 3px #0000000d;padding:24px}.users-error,.users-footer,.users-loading{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px}.users-error,.users-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.users-loading .loading-spinner{animation:spin 1s linear infinite;border:4px solid #e9ecef;border-top-color:#215ea1;border:4px solid var(--theme-border-primary,#e9ecef);border-radius:50%;border-top-color:var(--theme-primary,#215ea1);height:48px;margin-bottom:16px;width:48px}.users-loading p{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;margin:0}.users-error .error-icon{align-items:center;background:#ef44441a;border-radius:50%;color:#dc2626;display:flex;font-size:24px;font-weight:700;height:48px;justify-content:center;margin-bottom:16px;width:48px}.users-error h3{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:18px;font-weight:600;margin:0 0 8px}.users-error p{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;margin:0 0 16px}.retry-button{background:#215ea1;background:var(--theme-primary,#215ea1);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s ease}.retry-button:hover{background:#1a4a7f;background:var(--theme-primary-dark,#1a4a7f)}.users-page .last-updated{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-radius:6px;color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:13px;padding:8px 16px}.users-page .refresh-button{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:6px;color:#2c3e50;color:var(--theme-text-primary,#2c3e50);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.users-page .refresh-button:hover{background:#f8f9fa;background:var(--theme-bg-hover,#f8f9fa);border-color:#215ea1;border-color:var(--theme-primary,#215ea1);transform:translateY(-1px)}.create-user-btn{background:#215ea1;background:var(--theme-primary,#215ea1);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.create-user-btn:hover{background:#1a4a7f;background:var(--theme-primary-dark,#1a4a7f);box-shadow:0 4px 12px #215ea14d;transform:translateY(-1px)}.user-detail-modal{max-width:700px;width:90%}.user-detail-modal .modal-tabs{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--theme-border-primary,#e0e0e0);display:flex;padding:0 20px}.user-detail-modal .tab-button{background:none;border:none;border-bottom:2px solid #0000;color:#666;color:var(--theme-text-secondary,#666);cursor:pointer;font-size:.9rem;padding:12px 20px;transition:all .15s ease}.user-detail-modal .tab-button.active,.user-detail-modal .tab-button:hover{color:#215ea1;color:var(--theme-primary,#215ea1)}.user-detail-modal .tab-button.active{border-bottom-color:#215ea1;border-bottom-color:var(--theme-primary,#215ea1)}.user-detail-modal .tab-content{padding:20px 0}.user-details-view .detail-row{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--theme-border-secondary,#f0f0f0);display:flex;padding:10px 0}.user-details-view .detail-row:last-child{border-bottom:none}.user-details-view .detail-label{color:#666;color:var(--theme-text-secondary,#666);flex:0 0 150px;font-weight:500}.user-details-view .detail-value{color:#333;color:var(--theme-text-primary,#333);flex:1 1;word-break:break-all}.groups-list ul{list-style:none;margin:0;padding:0}.groups-list .group-item{border:1px solid #e0e0e0;border:1px solid var(--theme-border-primary,#e0e0e0);border-radius:6px;display:flex;justify-content:space-between;margin-bottom:8px;padding:12px}.groups-list .group-name{color:#333;color:var(--theme-text-primary,#333);font-weight:500}.groups-list .group-path{font-size:.85rem}.groups-list .group-path,.no-groups{color:#666;color:var(--theme-text-secondary,#666)}.no-groups{padding:20px;text-align:center}.password-reset-form{max-width:400px}.password-reset-form .form-group{margin-bottom:15px}.password-reset-form label{color:#333;color:var(--theme-text-primary,#333);display:block;font-weight:500;margin-bottom:5px}.password-reset-form input[type=password]{border:1px solid #ddd;border:1px solid var(--theme-border-primary,#ddd);border-radius:6px;font-size:.9rem;padding:10px;width:100%}.create-user-modal{max-width:600px;width:90%}.create-user-modal .form-section{margin-bottom:25px}.create-user-modal .form-section h4{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--theme-border-primary,#e0e0e0);color:#333;color:var(--theme-text-primary,#333);font-size:1rem;margin:0 0 15px;padding-bottom:10px}.create-user-modal .form-row{display:flex;gap:15px}.create-user-modal .form-row .form-group{flex:1 1}.create-user-modal .form-group{margin-bottom:15px}.create-user-modal .form-group label{color:#333;color:var(--theme-text-primary,#333);display:block;font-weight:500;margin-bottom:5px}.create-user-modal .form-group input[type=email],.create-user-modal .form-group input[type=password],.create-user-modal .form-group input[type=text]{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #ddd;border:1px solid var(--theme-border-primary,#ddd);border-radius:6px;color:#333;color:var(--theme-text-primary,#333);font-size:.9rem;padding:10px;width:100%}.create-user-modal .form-group input:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 2px #215ea11a;outline:none}.create-user-modal .form-group input.error{border-color:#dc3545}.create-user-modal .error-text{color:#dc3545;display:block;font-size:.8rem;margin-top:5px}.create-user-modal .required-asterisk{color:#dc3545}.create-user-modal .checkbox-group label{align-items:center;cursor:pointer;display:flex;gap:8px}.create-user-modal .checkbox-group input[type=checkbox]{width:auto}.create-user-modal .field-help{background:#f8f9fa;background:var(--theme-bg-tertiary,#f8f9fa);border-radius:4px;font-size:.8rem;margin-top:8px;padding:8px}.create-user-modal .help-description{color:#666;color:var(--theme-text-secondary,#666)}.success-banner{align-items:center;background:#28a74526;border:1px solid #28a745;border-radius:6px;color:#28a745;display:flex;justify-content:space-between;margin-bottom:15px;padding:12px 15px}.success-banner button{background:none;border:none;color:#28a745;cursor:pointer;font-size:1.2rem}.btn-danger{background:#dc3545;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;padding:10px 20px;transition:background .15s ease}.btn-danger:hover{background:#c82333}.btn-danger:disabled{cursor:not-allowed;opacity:.5}@media (max-width:1024px){.users-container .stats-grid{grid-template-columns:repeat(2,1fr)}.activity-summary{flex-direction:column;gap:16px}}@media (max-width:768px){.users-section .section-header{align-items:stretch;flex-direction:column;gap:16px}.search-input{width:100%}.users-table td,.users-table th{padding:12px}.create-user-modal .form-row{flex-direction:column;gap:0}.user-details-view .detail-row{flex-direction:column;gap:5px}.user-details-view .detail-label{flex:none}}@media (max-width:640px){.users-container .stats-grid{grid-template-columns:1fr}.users-page .page-header{flex-direction:column;gap:16px}.users-page .page-actions{flex-direction:column;width:100%}.create-user-btn,.users-page .last-updated,.users-page .refresh-button{justify-content:center;text-align:center;width:100%}.pagination-info{flex-direction:column;gap:12px}.pagination{flex-wrap:wrap}.page-numbers{justify-content:center;margin-bottom:10px;order:-1;width:100%}}[data-theme=dark] .users-page{background-color:#0d1117;background-color:var(--theme-bg-secondary,#0d1117)}[data-theme=dark] .users-container .stat-card{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 1px 3px #0000004d}[data-theme=dark] .users-container .stat-card:hover{box-shadow:0 4px 8px #0006}[data-theme=dark] .users-container .stat-value{color:var(--theme-text-primary)}[data-theme=dark] .users-container .stat-label{color:var(--theme-text-secondary)}[data-theme=dark] .users-container .stat-meta{color:var(--theme-text-tertiary)}[data-theme=dark] .users-section{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 1px 3px #0000004d}[data-theme=dark] .users-section .section-header{background:var(--theme-bg-tertiary);border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .users-section .section-title h2{color:var(--theme-text-primary)}[data-theme=dark] .users-section .section-count{background:var(--theme-bg-secondary);color:var(--theme-text-secondary)}[data-theme=dark] .search-input{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .search-input:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .search-input::placeholder{color:var(--theme-text-tertiary)}[data-theme=dark] .users-table th{background:var(--theme-bg-tertiary);border-bottom-color:var(--theme-border-primary);color:var(--theme-text-secondary)}[data-theme=dark] .users-table th.sortable:hover{background:var(--theme-bg-hover)}[data-theme=dark] .users-table td{border-bottom-color:var(--theme-border-secondary);color:var(--theme-text-primary)}[data-theme=dark] .users-table tbody tr:hover{background:var(--theme-bg-tertiary)}[data-theme=dark] .user-username{color:var(--theme-primary)!important}[data-theme=dark] .user-email{color:var(--theme-text-secondary)!important}[data-theme=dark] .user-created{color:var(--theme-text-tertiary)!important}[data-theme=dark] .verified-badge{background:#2ea04333;color:#56d364}[data-theme=dark] .pagination-wrapper{background:var(--theme-bg-tertiary);border-top-color:var(--theme-border-primary)}[data-theme=dark] .pagination-info{color:var(--theme-text-secondary)}[data-theme=dark] .items-per-page label{color:var(--theme-text-primary)}[data-theme=dark] .items-per-page-select{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .items-per-page-select:focus{border-color:var(--theme-primary)}[data-theme=dark] .page-btn,[data-theme=dark] .pagination-btn{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .page-btn:hover,[data-theme=dark] .pagination-btn:hover:not(:disabled){background:var(--theme-bg-tertiary);border-color:var(--theme-primary)}[data-theme=dark] .page-btn.active{background:var(--theme-primary);border-color:var(--theme-primary);color:#fff}[data-theme=dark] .users-footer{box-shadow:0 1px 3px #0000004d}[data-theme=dark] .users-error,[data-theme=dark] .users-footer,[data-theme=dark] .users-loading{background:var(--theme-bg-primary);border-color:var(--theme-border-primary)}[data-theme=dark] .users-loading .loading-spinner{border-color:var(--theme-border-primary);border-top-color:var(--theme-primary)}[data-theme=dark] .users-loading p{color:var(--theme-text-secondary)}[data-theme=dark] .users-error .error-icon{background:#f8514926;color:#f85149}[data-theme=dark] .users-error h3{color:var(--theme-text-primary)}[data-theme=dark] .users-error p{color:var(--theme-text-secondary)}[data-theme=dark] .users-page .last-updated{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}[data-theme=dark] .users-page .refresh-button{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .users-page .refresh-button:hover{background:var(--theme-bg-hover);border-color:var(--theme-primary)}[data-theme=dark] .create-user-btn{background:var(--theme-primary)}[data-theme=dark] .create-user-btn:hover{background:var(--theme-primary-dark);box-shadow:0 4px 12px #58a6ff4d}[data-theme=dark] .user-detail-modal .modal-tabs{border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .user-detail-modal .tab-button{color:var(--theme-text-secondary)}[data-theme=dark] .user-detail-modal .tab-button:hover{color:var(--theme-primary)}[data-theme=dark] .user-detail-modal .tab-button.active{border-bottom-color:var(--theme-primary);color:var(--theme-primary)}[data-theme=dark] .user-details-view .detail-row{border-bottom-color:var(--theme-border-secondary)}[data-theme=dark] .user-details-view .detail-label{color:var(--theme-text-secondary)}[data-theme=dark] .user-details-view .detail-value{color:var(--theme-text-primary)}[data-theme=dark] .groups-list .group-item{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary)}[data-theme=dark] .groups-list .group-name{color:var(--theme-text-primary)}[data-theme=dark] .groups-list .group-path,[data-theme=dark] .no-groups{color:var(--theme-text-secondary)}[data-theme=dark] .password-reset-form label{color:var(--theme-text-primary)}[data-theme=dark] .password-reset-form input[type=password]{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .create-user-modal .form-section h4{border-bottom-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .create-user-modal .form-group label{color:var(--theme-text-primary)}[data-theme=dark] .create-user-modal .form-group input[type=email],[data-theme=dark] .create-user-modal .form-group input[type=password],[data-theme=dark] .create-user-modal .form-group input[type=text]{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .create-user-modal .form-group input:focus{border-color:var(--theme-primary)}[data-theme=dark] .create-user-modal .field-help{background:var(--theme-bg-tertiary)}[data-theme=dark] .create-user-modal .help-description{color:var(--theme-text-secondary)}[data-theme=dark] .success-banner{background:#2ea04326;border-color:#2ea043;color:#56d364}[data-theme=dark] .success-banner button{color:#56d364}.device-types-container .stats-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:1.5rem}.device-types-container .stat-card{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:.75rem;overflow:hidden;padding:1.25rem;position:relative;transition:all .2s ease}.device-types-container .stat-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.device-types-container .stat-card:before{background:#215ea1;background:var(--stat-color,var(--theme-primary,#215ea1));bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.device-types-container .stat-card.primary{--stat-color:#215ea1}.device-types-container .stat-card.success{--stat-color:#22c55e}.device-types-container .stat-card.warning{--stat-color:#f59e0b}.device-types-container .stat-card.secondary{--stat-color:#6b7280}.device-types-container .stat-card .stat-icon{font-size:1.5rem;opacity:.9}.device-types-container .stat-card .stat-content{display:flex;flex-direction:column;gap:.25rem}.device-types-container .stat-card .stat-value{color:#111827;color:var(--theme-text-primary,#111827);font-size:2rem;font-weight:700;line-height:1}.device-types-container .stat-card .stat-label{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.875rem;font-weight:500;text-transform:none}.device-types-container .stat-card .stat-meta{color:#9ca3af;color:var(--theme-text-muted,#9ca3af);font-size:.75rem}.device-types-section{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:1.5rem;overflow:hidden}.device-types-section .section-header{align-items:center;background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.device-types-section .section-title{align-items:center;display:flex;gap:.75rem}.device-types-section .section-title h2{color:#111827;color:var(--theme-text-primary,#111827);font-size:1.125rem;font-weight:600;margin:0}.device-types-section .section-count{background:#e5e7eb;background:var(--theme-bg-tertiary,#e5e7eb);border-radius:12px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.75rem;font-weight:500;padding:.25rem .75rem}.device-types-section .section-controls{align-items:center;display:flex;gap:1rem}.device-types-section .search-container{position:relative}.device-types-section .search-input{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;color:#111827;color:var(--theme-text-primary,#111827);font-size:.875rem;padding:.5rem 1rem;transition:all .2s ease;width:250px}.device-types-section .search-input:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.device-types-section .search-input::placeholder{color:#9ca3af;color:var(--theme-text-muted,#9ca3af)}.view-toggle{border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:6px;display:flex;overflow:hidden}.view-toggle-btn{align-items:center;background:#fff;background:var(--theme-bg-primary,#fff);border:none;cursor:pointer;display:flex;justify-content:center;padding:.5rem .75rem;transition:all .2s ease}.view-toggle-btn:first-child{border-right:1px solid #e5e7eb;border-right:1px solid var(--theme-border-primary,#e5e7eb)}.view-toggle-btn:hover{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb)}.view-toggle-btn.active{background:#215ea1;background:var(--theme-primary,#215ea1);color:#fff}.view-toggle-btn .view-icon{font-size:1rem;line-height:1}.device-types-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));padding:1.5rem}.device-type-card{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;transition:all .2s ease}.device-type-card:hover{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 4px 16px #215ea126;transform:translateY(-2px)}.card-header{align-items:center;display:flex;justify-content:space-between}.type-icon{font-size:2rem}.status-indicator{border-radius:50%;height:10px;width:10px}.status-indicator.active{background:#22c55e;box-shadow:0 0 8px #22c55e80}.status-indicator.inactive{background:#ef4444}.card-content h3{color:#111827;color:var(--theme-text-primary,#111827);font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.type-code{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border-radius:4px;display:inline-block;font-family:Monaco,Consolas,monospace;font-size:.75rem;margin-bottom:.75rem;padding:.25rem .5rem}.type-code,.type-description{color:#6b7280;color:var(--theme-text-secondary,#6b7280)}.type-description{font-size:.85rem;line-height:1.5;margin:0}.card-stats{border-top:1px solid #f3f4f6;border-top:1px solid var(--theme-border-secondary,#f3f4f6);display:flex;justify-content:space-between;padding-top:1rem}.card-stat-item{text-align:center}.card-stat-value{color:#215ea1;color:var(--theme-primary,#215ea1);display:block;font-size:1.25rem;font-weight:600}.card-stat-label{color:#6b7280;color:var(--theme-text-secondary,#6b7280);display:block;font-size:.7rem;letter-spacing:.05em;margin-top:.25rem;text-transform:uppercase}.card-footer{border-top:1px solid #f3f4f6;border-top:1px solid var(--theme-border-secondary,#f3f4f6);padding-top:.75rem}.last-updated{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.75rem}.device-types-list{overflow-x:auto}.device-types-table{border-collapse:collapse;width:100%}.device-types-table thead th{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.8rem;font-weight:600;letter-spacing:.05em;padding:1rem 1.25rem;text-align:left;text-transform:uppercase;white-space:nowrap}.device-types-table tbody td{border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--theme-border-secondary,#f3f4f6);color:#111827;color:var(--theme-text-primary,#111827);font-size:.9rem;padding:1rem 1.25rem}.device-types-table tbody tr.device-type-row{cursor:pointer;transition:background .15s ease}.device-types-table tbody tr.device-type-row:hover{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb)}.device-types-table .type-cell{align-items:center;display:flex;gap:.75rem}.device-types-table .type-icon-small{font-size:1.5rem}.device-types-table .type-name{color:#111827;color:var(--theme-text-primary,#111827);font-weight:600}.device-types-table .type-code{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border-radius:4px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);display:inline-block;font-family:Monaco,Consolas,monospace;font-size:.75rem;padding:.25rem .5rem}.device-types-table .description-cell{color:#6b7280;color:var(--theme-text-secondary,#6b7280);max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-types-table .count-cell{color:#215ea1;color:var(--theme-primary,#215ea1);font-weight:600}.device-types-table .date-cell{color:#6b7280;color:var(--theme-text-secondary,#6b7280);white-space:nowrap}.device-types-table .status-badge{border-radius:20px;display:inline-block;font-size:.75rem;font-weight:600;padding:.35rem .75rem;text-transform:uppercase}.device-types-table .status-badge.active{background:#dcfce7;color:#15803d}.device-types-table .status-badge.inactive{background:#fee2e2;color:#b91c1c}.device-types-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.device-types-loading .loading-spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-top-color:#215ea1;border:4px solid var(--theme-border-primary,#e5e7eb);border-radius:50%;border-top-color:var(--theme-primary,#215ea1);height:48px;margin-bottom:1rem;width:48px}.device-types-loading p{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.95rem}.device-types-error{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;flex-direction:column;padding:4rem 2rem;text-align:center}.device-types-error,.device-types-error .error-icon{align-items:center;display:flex;justify-content:center}.device-types-error .error-icon{background:#fef2f2;border:2px solid #fecaca;border-radius:50%;color:#b91c1c;font-size:1.5rem;font-weight:700;height:48px;margin-bottom:1rem;width:48px}.device-types-error h3{color:#b91c1c;font-size:1.25rem;margin:0 0 .5rem}.device-types-error p{color:#6b7280;color:var(--theme-text-secondary,#6b7280);margin:0 0 1.5rem}.device-types-error .retry-button{background:#215ea1;background:var(--theme-primary,#215ea1);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1.5rem;transition:all .2s ease}.device-types-error .retry-button:hover{background:#1a4d85}.device-types-section .empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.device-types-section .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.device-types-section .empty-state h3{color:#111827;color:var(--theme-text-primary,#111827);font-size:1.25rem;margin:0 0 .5rem}.device-types-section .empty-state p{color:#6b7280;color:var(--theme-text-secondary,#6b7280);margin:0}.device-types-footer{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1rem 1.5rem}.device-types-footer .activity-summary{align-items:center;display:flex;flex-wrap:wrap;gap:2rem}.device-types-footer .activity-item{align-items:center;display:flex;gap:.5rem}.device-types-footer .activity-icon{font-size:1rem;opacity:.7}.device-types-footer .activity-text{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.875rem}.device-types-footer .activity-text strong{color:#111827;color:var(--theme-text-primary,#111827);font-weight:600}.device-type-detail-modal .error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#b91c1c;font-size:.875rem;margin-bottom:1rem;padding:.75rem 1rem}.device-type-detail-modal .success-message{background:#f0fdf4;border:1px solid #86efac;border-radius:6px;color:#15803d;font-size:.875rem;margin-bottom:1rem;padding:.75rem 1rem}.device-type-detail-modal .field-error{color:#b91c1c;font-size:.75rem;margin-top:.25rem}.device-type-detail-modal input.error,.device-type-detail-modal textarea.error{background-color:#fef2f2!important;border-color:#ef4444!important}.device-type-detail-modal .edit-select.status-select{background:#fff;border:1px solid #d1d5db;border:1px solid var(--theme-border-primary,#d1d5db);border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem;transition:all .2s ease}.device-type-detail-modal .edit-select.status-select:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.device-type-detail-modal .edit-select.status-select[value=active]{background:#dcfce7;border-color:#22c55e;color:#15803d}.device-type-detail-modal .edit-select.status-select[value=inactive]{background:#fee2e2;border-color:#ef4444;color:#b91c1c}.device-type-detail-modal .info-item input{border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:6px;font-size:.9rem;padding:.5rem;width:100%}.device-type-detail-modal .info-item input:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.device-type-detail-modal{background:#fff;background:var(--theme-bg-primary,#fff);border-radius:12px;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:90%}.device-type-detail-modal .modal-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;justify-content:space-between;padding:1.5rem}.device-type-detail-modal .modal-title{align-items:center;display:flex;gap:1rem}.type-icon-large{font-size:2.5rem}.device-type-detail-modal .modal-title h2{color:#111827;color:var(--theme-text-primary,#111827);font-size:1.25rem;margin:0 0 .25rem}.type-code-badge{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border-radius:4px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);display:inline-block;font-family:Monaco,Consolas,monospace;font-size:.75rem;padding:.25rem .5rem}.device-type-detail-modal .modal-content{flex:1 1;overflow-y:auto;padding:1.5rem}.settings-grid{gap:1.5rem}.setting-item,.settings-grid{display:flex;flex-direction:column}.setting-item{gap:.5rem}.setting-item label{color:#111827;color:var(--theme-text-primary,#111827);font-size:.85rem;font-weight:600}.setting-value{color:#215ea1;color:var(--theme-primary,#215ea1);font-size:1.1rem;font-weight:500}.setting-description{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.8rem}.setting-item input{border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:6px;font-size:1rem;padding:.5rem;width:120px}.setting-item input:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.devices-placeholder{padding:2rem;text-align:center}.placeholder-icon{font-size:3rem;margin-bottom:1rem}.devices-placeholder h3{color:#111827;color:var(--theme-text-primary,#111827);font-size:1.25rem;margin:0 0 .5rem}.devices-placeholder p{color:#6b7280;color:var(--theme-text-secondary,#6b7280);line-height:1.5;margin:0 0 1.5rem}.device-type-detail-modal .modal-actions{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-top:1px solid #e5e7eb;border-top:1px solid var(--theme-border-primary,#e5e7eb);display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.device-type-detail-modal .modal-tabs{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;padding:0 1.5rem}.device-type-detail-modal .info-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:1fr 1fr}.device-type-detail-modal .info-item{display:flex;flex-direction:column;gap:.35rem}.device-type-detail-modal .info-item.full-width{grid-column:1/-1}.device-type-detail-modal .info-item label{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.8rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.device-type-detail-modal .info-item span{color:#111827;color:var(--theme-text-primary,#111827);font-size:.95rem}.device-type-detail-modal .info-item textarea{border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:6px;font-size:.9rem;min-height:60px;padding:.5rem;resize:vertical}.device-type-detail-modal .info-item textarea:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.device-type-detail-modal .monospace{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-radius:4px;font-family:Monaco,Consolas,monospace;font-size:.85rem;padding:.25rem .5rem}.device-count-value{color:#215ea1;color:var(--theme-primary,#215ea1);font-size:1.1rem;font-weight:600}.device-type-detail-modal .status-badge{border-radius:12px;display:inline-block;font-size:.8rem;font-weight:600;padding:.25rem .6rem}.device-type-detail-modal .status-badge.active{background:#dcfce7;color:#15803d}.device-type-detail-modal .status-badge.inactive{background:#fee2e2;color:#b91c1c}@media (max-width:768px){.device-types-container .stats-grid{grid-template-columns:repeat(2,1fr)}.device-types-grid{grid-template-columns:1fr}.device-types-section .section-header{align-items:flex-start;flex-direction:column;gap:1rem}.device-types-section .search-input{width:100%}.device-type-detail-modal .info-grid{grid-template-columns:1fr}.device-types-footer .activity-summary{align-items:flex-start;flex-direction:column;gap:.75rem}}@media (max-width:480px){.device-types-container .stats-grid{grid-template-columns:1fr}}[data-theme=dark] .device-types-container{background:#161b22;background:var(--theme-bg-secondary,#161b22);border-color:var(--theme-border-primary)}[data-theme=dark] .device-types-grid{background:#0d1117;background:var(--theme-bg-primary,#0d1117)}[data-theme=dark] .device-types-container .stat-card{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 2px 8px #0000004d}[data-theme=dark] .device-types-container .stat-card:hover{box-shadow:0 4px 12px #0006}[data-theme=dark] .device-types-container .stat-card .stat-value{color:var(--theme-text-primary)}[data-theme=dark] .device-types-container .stat-card .stat-label{color:var(--theme-text-secondary)}[data-theme=dark] .device-types-container .stat-card .stat-meta{color:var(--theme-text-muted)}[data-theme=dark] .device-types-section{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 2px 8px #0000004d}[data-theme=dark] .device-types-section .section-header{background:var(--theme-bg-secondary);border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .device-types-section .section-title h2{color:var(--theme-text-primary)}[data-theme=dark] .device-types-section .section-count{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}[data-theme=dark] .device-types-section .search-input{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .device-types-section .search-input:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .device-types-section .search-input::placeholder{color:var(--theme-text-muted)}[data-theme=dark] .device-type-card{background:var(--theme-bg-primary);border-color:var(--theme-border-primary)}[data-theme=dark] .device-type-card:hover{border-color:var(--theme-primary);box-shadow:0 4px 16px #58a6ff26}[data-theme=dark] .status-indicator.active{background:#2ea043;box-shadow:0 0 8px #2ea04380}[data-theme=dark] .status-indicator.inactive{background:#f85149}[data-theme=dark] .card-content h3{color:var(--theme-text-primary)}[data-theme=dark] .type-code{background:var(--theme-bg-tertiary)}[data-theme=dark] .type-code,[data-theme=dark] .type-description{color:var(--theme-text-secondary)}[data-theme=dark] .card-stats{border-top-color:var(--theme-border-secondary)}[data-theme=dark] .card-stat-value{color:var(--theme-primary)}[data-theme=dark] .card-stat-label{color:var(--theme-text-secondary)}[data-theme=dark] .card-footer{border-top-color:var(--theme-border-secondary)}[data-theme=dark] .device-types-loading p,[data-theme=dark] .last-updated{color:var(--theme-text-secondary)}[data-theme=dark] .device-types-loading .loading-spinner{border-color:var(--theme-border-primary);border-top-color:var(--theme-primary)}[data-theme=dark] .device-types-error{background:var(--theme-bg-primary);border-color:var(--theme-border-primary)}[data-theme=dark] .device-types-error .error-icon{background:#f8514926;border-color:#f851494d;color:#f85149}[data-theme=dark] .device-types-error h3{color:#f85149}[data-theme=dark] .device-types-error p{color:var(--theme-text-secondary)}[data-theme=dark] .device-types-section .empty-state h3{color:var(--theme-text-primary)}[data-theme=dark] .device-types-section .empty-state p{color:var(--theme-text-secondary)}[data-theme=dark] .device-types-footer{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 2px 8px #0000004d}[data-theme=dark] .device-types-footer .activity-text{color:var(--theme-text-secondary)}[data-theme=dark] .device-types-footer .activity-text strong{color:var(--theme-text-primary)}[data-theme=dark] .device-type-detail-modal{background:var(--theme-bg-primary);border:1px solid var(--theme-border-primary)}[data-theme=dark] .device-type-detail-modal .modal-header{border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .device-type-detail-modal .modal-title h2{color:var(--theme-text-primary)}[data-theme=dark] .type-code-badge{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}[data-theme=dark] .setting-item label{color:var(--theme-text-primary)}[data-theme=dark] .setting-value{color:var(--theme-primary)}[data-theme=dark] .setting-description{color:var(--theme-text-secondary)}[data-theme=dark] .setting-item input{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .setting-item input:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .devices-placeholder h3{color:var(--theme-text-primary)}[data-theme=dark] .devices-placeholder p{color:var(--theme-text-secondary)}[data-theme=dark] .device-type-detail-modal .modal-actions{background:var(--theme-bg-tertiary);border-top-color:var(--theme-border-primary)}[data-theme=dark] .device-type-detail-modal .modal-tabs{border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .device-type-detail-modal .info-item label{color:var(--theme-text-secondary)}[data-theme=dark] .device-type-detail-modal .info-item span{color:var(--theme-text-primary)}[data-theme=dark] .device-type-detail-modal .info-item textarea{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .device-type-detail-modal .info-item textarea:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .device-type-detail-modal .monospace{background:var(--theme-bg-tertiary)}[data-theme=dark] .device-count-value{color:var(--theme-primary)}[data-theme=dark] .device-type-detail-modal .status-badge.active{background:#2ea04333;color:#56d364}[data-theme=dark] .device-type-detail-modal .status-badge.inactive{background:#f8514933;color:#f85149}[data-theme=dark] .device-type-detail-modal .error-message{background:#f8514926;border-color:#f851494d;color:#f85149}[data-theme=dark] .device-type-detail-modal .success-message{background:#2ea04326;border-color:#2ea0434d;color:#56d364}[data-theme=dark] .device-type-detail-modal .field-error{color:#f85149}[data-theme=dark] .device-type-detail-modal input.error,[data-theme=dark] .device-type-detail-modal textarea.error{background-color:#f851491a!important;border-color:#f85149!important}[data-theme=dark] .device-type-detail-modal .edit-select.status-select{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .device-type-detail-modal .edit-select.status-select:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .device-type-detail-modal .edit-select.status-select[value=active]{background:#2ea04326;border-color:#2ea043;color:#56d364}[data-theme=dark] .device-type-detail-modal .edit-select.status-select[value=inactive]{background:#f8514926;border-color:#da3633;color:#f85149}[data-theme=dark] .device-type-detail-modal .info-item input{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .device-type-detail-modal .info-item input:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .view-toggle{border-color:var(--theme-border-primary)}[data-theme=dark] .view-toggle-btn{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}[data-theme=dark] .view-toggle-btn:first-child{border-right-color:var(--theme-border-primary)}[data-theme=dark] .view-toggle-btn:hover{background:var(--theme-bg-secondary);color:var(--theme-text-primary)}[data-theme=dark] .view-toggle-btn.active{background:var(--theme-primary);color:#fff}[data-theme=dark] .device-types-table thead th{background:var(--theme-bg-tertiary);border-bottom-color:var(--theme-border-primary);color:var(--theme-text-secondary)}[data-theme=dark] .device-types-table tbody td{border-bottom-color:var(--theme-border-secondary);color:var(--theme-text-primary)}[data-theme=dark] .device-types-table tbody tr.device-type-row:hover{background:var(--theme-bg-tertiary)}[data-theme=dark] .device-types-table .type-name{color:var(--theme-text-primary)}[data-theme=dark] .device-types-table .type-code{background:var(--theme-bg-secondary);color:var(--theme-text-secondary)}[data-theme=dark] .device-types-table .description-cell{color:var(--theme-text-secondary)}[data-theme=dark] .device-types-table .count-cell{color:var(--theme-primary)}[data-theme=dark] .device-types-table .date-cell{color:var(--theme-text-secondary)}[data-theme=dark] .device-types-table .status-badge.active{background:#2ea04333;color:#56d364}[data-theme=dark] .device-types-table .status-badge.inactive{background:#f8514933;color:#f85149}.ota-updates-page{background-color:#f8f9fa;background-color:var(--theme-bg-secondary,#f8f9fa);max-width:100%;overflow-x:hidden}.ota-content{max-width:100%;overflow-x:hidden}.ota-content,.ota-updates-container{display:flex;flex-direction:column;gap:24px}.ota-updates-container .stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:100%}.ota-updates-container .stat-card{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px;box-shadow:0 1px 3px #0000000d;overflow:hidden;padding:24px;position:relative;transition:all .3s ease}.ota-updates-container .stat-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.ota-updates-container .stat-card:before{background:#215ea1;background:var(--stat-color,#215ea1);content:"";height:100%;left:0;position:absolute;top:0;width:4px}.ota-updates-container .stat-card.primary{--stat-color:#215ea1}.ota-updates-container .stat-card.secondary{--stat-color:#8b5cf6}.ota-updates-container .stat-card.success{--stat-color:#10b981}.ota-updates-container .stat-card.warning{--stat-color:#f59e0b}.ota-updates-container .stat-icon{font-size:32px;margin-bottom:12px;opacity:.9}.ota-updates-container .stat-content{margin-bottom:8px}.ota-updates-container .stat-value{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:36px;font-weight:700;line-height:1.2;margin-bottom:4px}.ota-updates-container .stat-label{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.ota-updates-container .stat-meta{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);font-size:13px;margin-top:4px}.ota-section{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px;box-shadow:0 1px 3px #0000000d;overflow:hidden}.section-tabs{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--theme-border-primary,#e9ecef);display:flex;padding:0 24px}.section-tabs .tab-button{align-items:center;background:none;border:none;color:#6c757d;color:var(--theme-text-secondary,#6c757d);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:16px 20px;position:relative;transition:all .2s ease}.section-tabs .tab-button:hover{color:#2c3e50;color:var(--theme-text-primary,#2c3e50)}.section-tabs .tab-button.active{color:#215ea1;color:var(--theme-primary,#215ea1)}.section-tabs .tab-button.active:after{bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0}.section-tabs .tab-button.active:after,.tab-badge{background:#215ea1;background:var(--theme-primary,#215ea1)}.tab-badge{align-items:center;border-radius:10px;color:#fff;display:inline-flex;font-size:11px;font-weight:600;height:20px;justify-content:center;min-width:20px;padding:0 6px}.section-content{padding:24px}.ota-table{border-collapse:collapse;width:100%}.ota-table th{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-bottom:2px solid #e9ecef;border-bottom:2px solid var(--theme-border-primary,#e9ecef);color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase}.ota-table td{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--theme-border-primary,#e9ecef);color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:14px;padding:16px}.ota-table tbody tr{transition:background-color .2s ease}.ota-table tbody tr:hover{background:#f8f9fa;background:var(--theme-bg-hover,#f8f9fa)}.device-info{display:flex;flex-direction:column;gap:4px}.device-info strong{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-weight:600}.device-id{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:12px}.device-id,.version{font-family:Monaco,Consolas,monospace}.version{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:13px}.muted{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af)}.type-badge{border-radius:12px;font-size:11px;letter-spacing:.3px;padding:4px 10px}.type-badge.voice{background:#3b82f61a;color:#2563eb}.type-badge.local_alarm{background:#f59e0b1a;color:#d97706}.type-badge.dtmf_server{background:#8b5cf61a;color:#7c3aed}.status-badge{border-radius:20px;font-size:12px;font-weight:600;padding:6px 12px}.status-badge.completed,.status-badge.up-to-date{background:#10b9811a;color:#059669}.status-badge.needs-update{background:#f59e0b1a;color:#d97706}.status-badge.in-progress{background:#3b82f61a;color:#2563eb}.status-badge.pending{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);color:#6c757d;color:var(--theme-text-secondary,#6c757d)}.status-badge.failed{background:#ef44441a;color:#dc2626}.progress-bar{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border-radius:10px;height:20px;overflow:hidden;position:relative;width:100px}.progress-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:10px;height:100%;left:0;position:absolute;top:0;transition:width .3s ease}.progress-text{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:11px;font-weight:600;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.firmware-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.firmware-card{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:10px;padding:20px;transition:all .2s ease}.firmware-card:hover{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 4px 12px #215ea11a}.firmware-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.firmware-version{align-items:center;display:flex;gap:10px}.firmware-version h4{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-family:Monaco,Consolas,monospace;font-size:18px;font-weight:600;margin:0}.latest-badge{background:#10b9811a;border-radius:8px;color:#059669;display:inline-block;font-size:10px;font-weight:600;letter-spacing:.3px;padding:3px 8px;text-transform:uppercase}.changelog{font-size:14px;line-height:1.6;margin:0 0 16px}.changelog,.firmware-meta{color:#6c757d;color:var(--theme-text-secondary,#6c757d)}.firmware-meta{display:flex;font-size:13px;gap:20px}.firmware-meta strong{color:#2c3e50;color:var(--theme-text-primary,#2c3e50)}.empty-state{padding:60px 20px;text-align:center}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.6}.empty-state h3{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:18px;font-weight:600;margin:0 0 8px}.empty-state p{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;margin:0}.empty-meta{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border-radius:8px;display:inline-block;margin-top:16px!important;padding:12px 16px}.ota-error,.ota-loading{align-items:center;background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.ota-loading .loading-spinner{animation:spin 1s linear infinite;border:4px solid #e9ecef;border-top-color:#215ea1;border:4px solid var(--theme-border-primary,#e9ecef);border-radius:50%;border-top-color:var(--theme-primary,#215ea1);height:48px;margin-bottom:16px;width:48px}.ota-loading p{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;margin:0}.ota-error .error-icon{align-items:center;background:#ef44441a;border-radius:50%;color:#dc2626;display:flex;font-size:24px;font-weight:700;height:48px;justify-content:center;margin-bottom:16px;width:48px}.ota-error h3{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:18px;font-weight:600;margin:0 0 8px}.ota-error p{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;margin:0}.ota-footer{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:12px;box-shadow:0 1px 3px #0000000d;padding:24px}.activity-summary{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between}.activity-item{align-items:center;color:#6c757d;color:var(--theme-text-secondary,#6c757d);display:flex;font-size:14px;gap:10px}.activity-icon{font-size:20px}.activity-text strong{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-weight:600}.ota-updates-page .last-updated{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-radius:6px;color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:13px;padding:8px 16px}.ota-updates-page .refresh-button{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:6px;color:#2c3e50;color:var(--theme-text-primary,#2c3e50);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.ota-updates-page .refresh-button:hover{background:#f8f9fa;background:var(--theme-bg-hover,#f8f9fa);border-color:#215ea1;border-color:var(--theme-primary,#215ea1);transform:translateY(-1px)}.schedule-update-btn{background:#215ea1;background:var(--theme-primary,#215ea1);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.schedule-update-btn:hover{background:#1a4a7f;background:var(--theme-primary-dark,#1a4a7f);box-shadow:0 4px 12px #215ea14d;transform:translateY(-1px)}.btn{font-size:14px;padding:8px 16px}.btn-sm{font-size:13px;padding:6px 12px}.btn-primary:hover{background:#1a4a7f;background:var(--theme-primary-dark,#1a4a7f)}.btn-secondary{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);color:#2c3e50;color:var(--theme-text-primary,#2c3e50)}.btn-secondary:hover{background:#e5e7eb;background:var(--theme-bg-hover,#e5e7eb)}@media (max-width:1024px){.ota-updates-container .stats-grid{grid-template-columns:repeat(2,1fr)}.activity-summary{flex-direction:column;gap:16px}}@media (max-width:768px){.section-tabs{padding:0 16px}.section-tabs .tab-button{font-size:13px;padding:12px 16px}.section-content{padding:16px}.firmware-grid{grid-template-columns:1fr}.ota-table td,.ota-table th{padding:12px}}@media (max-width:640px){.ota-updates-container .stats-grid{grid-template-columns:1fr}.ota-updates-page .page-header{flex-direction:column;gap:16px}.ota-updates-page .page-actions{flex-direction:column;width:100%}.ota-updates-page .last-updated,.ota-updates-page .refresh-button,.schedule-update-btn{justify-content:center;text-align:center;width:100%}}[data-theme=dark] .ota-updates-page{background-color:#0d1117;background-color:var(--theme-bg-secondary,#0d1117)}[data-theme=dark] .ota-updates-container .stat-card{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 1px 3px #0000004d}[data-theme=dark] .ota-updates-container .stat-card:hover{box-shadow:0 4px 8px #0006}[data-theme=dark] .ota-updates-container .stat-value{color:var(--theme-text-primary)}[data-theme=dark] .ota-updates-container .stat-label{color:var(--theme-text-secondary)}[data-theme=dark] .ota-updates-container .stat-meta{color:var(--theme-text-tertiary)}[data-theme=dark] .ota-section{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 1px 3px #0000004d}[data-theme=dark] .section-tabs{background:var(--theme-bg-tertiary);border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .section-tabs .tab-button{color:var(--theme-text-secondary)}[data-theme=dark] .section-tabs .tab-button:hover{color:var(--theme-text-primary)}[data-theme=dark] .section-tabs .tab-button.active{color:var(--theme-primary)}[data-theme=dark] .section-tabs .tab-button.active:after,[data-theme=dark] .tab-badge{background:var(--theme-primary)}[data-theme=dark] .ota-table th{background:var(--theme-bg-tertiary);border-bottom-color:var(--theme-border-primary);color:var(--theme-text-secondary)}[data-theme=dark] .ota-table td{border-bottom-color:var(--theme-border-secondary);color:var(--theme-text-primary)}[data-theme=dark] .ota-table tbody tr:hover{background:var(--theme-bg-tertiary)}[data-theme=dark] .device-info strong{color:var(--theme-text-primary)}[data-theme=dark] .device-id{color:var(--theme-text-secondary)}[data-theme=dark] .version{color:var(--theme-text-primary)}[data-theme=dark] .muted{color:var(--theme-text-tertiary)}[data-theme=dark] .type-badge.voice{background:#3b82f633}[data-theme=dark] .type-badge.local_alarm{background:#f59e0b33;color:#ffab70}[data-theme=dark] .type-badge.dtmf_server{background:#8b5cf633;color:#b392f0}[data-theme=dark] .status-badge.completed,[data-theme=dark] .status-badge.up-to-date{background:#2ea04333;color:#56d364}[data-theme=dark] .status-badge.needs-update{background:#d2992233;color:#e3b341}[data-theme=dark] .status-badge.in-progress{background:#1f9cf033;color:#58a6ff}[data-theme=dark] .status-badge.pending{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}[data-theme=dark] .status-badge.failed{background:#f8514933;color:#f85149}[data-theme=dark] .progress-bar{background:var(--theme-bg-tertiary)}[data-theme=dark] .progress-fill{background:linear-gradient(90deg,#388bfd,#58a6ff)}[data-theme=dark] .progress-text{color:var(--theme-text-primary)}[data-theme=dark] .firmware-card{background:var(--theme-bg-tertiary);border-color:var(--theme-border-secondary)}[data-theme=dark] .firmware-card:hover{border-color:var(--theme-primary);box-shadow:0 4px 12px #58a6ff26}[data-theme=dark] .firmware-version h4{color:var(--theme-text-primary)}[data-theme=dark] .latest-badge{background:#2ea04333;color:#56d364}[data-theme=dark] .changelog,[data-theme=dark] .firmware-meta{color:var(--theme-text-secondary)}[data-theme=dark] .empty-state h3,[data-theme=dark] .firmware-meta strong{color:var(--theme-text-primary)}[data-theme=dark] .empty-state p{color:var(--theme-text-secondary)}[data-theme=dark] .empty-meta{background:var(--theme-bg-tertiary)}[data-theme=dark] .ota-error,[data-theme=dark] .ota-loading{background:var(--theme-bg-primary);border-color:var(--theme-border-primary)}[data-theme=dark] .ota-loading .loading-spinner{border-color:var(--theme-border-primary);border-top-color:var(--theme-primary)}[data-theme=dark] .ota-loading p{color:var(--theme-text-secondary)}[data-theme=dark] .ota-error .error-icon{background:#f8514926;color:#f85149}[data-theme=dark] .ota-error h3{color:var(--theme-text-primary)}[data-theme=dark] .ota-error p{color:var(--theme-text-secondary)}[data-theme=dark] .ota-footer{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 1px 3px #0000004d}[data-theme=dark] .activity-item{color:var(--theme-text-secondary)}[data-theme=dark] .activity-text strong{color:var(--theme-text-primary)}[data-theme=dark] .ota-updates-page .last-updated{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}[data-theme=dark] .ota-updates-page .refresh-button{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .ota-updates-page .refresh-button:hover{background:var(--theme-bg-hover);border-color:var(--theme-primary)}[data-theme=dark] .schedule-update-btn{background:var(--theme-primary)}[data-theme=dark] .schedule-update-btn:hover{background:var(--theme-primary-dark);box-shadow:0 4px 12px #58a6ff4d}[data-theme=dark] .btn-primary{background:var(--theme-primary)}[data-theme=dark] .btn-primary:hover{background:var(--theme-primary-dark)}[data-theme=dark] .btn-secondary{background:var(--theme-bg-tertiary)}[data-theme=dark] .btn-secondary:hover{background:var(--theme-bg-hover)}.schedule-update-modal{max-width:600px;width:90vw}.schedule-update-modal .modal-header{align-items:center;background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--theme-border-primary,#e9ecef);display:flex;justify-content:space-between;padding:20px 24px}.schedule-update-modal .modal-header h2{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:18px;font-weight:600;margin:0}.schedule-update-modal .close-btn{background:none;border:none;border-radius:4px;color:#6c757d;color:var(--theme-text-secondary,#6c757d);cursor:pointer;font-size:24px;line-height:1;padding:4px 8px;transition:all .2s ease}.schedule-update-modal .close-btn:hover{background:#e9ecef;background:var(--theme-bg-hover,#e9ecef);color:#2c3e50;color:var(--theme-text-primary,#2c3e50)}.schedule-update-modal .modal-body{max-height:60vh;overflow-y:auto;padding:24px}.schedule-update-modal .form-section h4{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 20px;text-transform:uppercase}.schedule-update-modal .form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.schedule-update-modal .form-group{margin-bottom:16px}.schedule-update-modal .form-group label{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);display:block;font-size:14px;font-weight:500;margin-bottom:6px}.schedule-update-modal .form-group label.required{font-weight:600}.schedule-update-modal .required-asterisk{color:#dc2626}.schedule-update-modal .form-group input,.schedule-update-modal .form-group select,.schedule-update-modal .form-group textarea{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:6px;color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:14px;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.schedule-update-modal .form-group input:focus,.schedule-update-modal .form-group select:focus,.schedule-update-modal .form-group textarea:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.schedule-update-modal .form-group input.error,.schedule-update-modal .form-group select.error{border-color:#dc2626}.schedule-update-modal .form-group textarea{min-height:80px;resize:vertical}.schedule-update-modal .error-text{color:#dc2626;display:block;font-size:12px;margin-top:4px}.schedule-update-modal .help-text{color:#6c757d;color:var(--theme-text-secondary,#6c757d);display:block;font-size:12px;margin-top:4px}.schedule-update-modal .checkbox-group{margin-top:8px}.schedule-update-modal .checkbox-label{align-items:center;color:#2c3e50;color:var(--theme-text-primary,#2c3e50);cursor:pointer;display:flex;font-size:14px;gap:10px}.schedule-update-modal .checkbox-label input[type=checkbox]{cursor:pointer;height:18px;width:18px}.schedule-update-modal .error-banner{align-items:center;background:#dc26261a;border:1px solid #dc26264d;border-radius:8px;color:#dc2626;display:flex;font-size:14px;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.schedule-update-modal .error-banner button{background:none;border:none;color:#dc2626;cursor:pointer;font-size:18px;padding:0 4px}.schedule-update-modal .modal-footer{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-top:1px solid #e9ecef;border-top:1px solid var(--theme-border-primary,#e9ecef);display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.schedule-update-modal .btn-secondary{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:6px;color:#2c3e50;color:var(--theme-text-primary,#2c3e50);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.schedule-update-modal .btn-secondary:hover{background:#f1f3f4;background:var(--theme-bg-hover,#f1f3f4)}.schedule-update-modal .btn-primary{background:#215ea1;background:var(--theme-primary,#215ea1);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.schedule-update-modal .btn-primary:hover{background:#1a4a7f;background:var(--theme-primary-dark,#1a4a7f)}.schedule-update-modal .btn-primary:disabled,.schedule-update-modal .btn-secondary:disabled{cursor:not-allowed;opacity:.6}[data-theme=dark] .schedule-update-modal .modal-header{background:var(--theme-bg-tertiary);border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .schedule-update-modal .modal-header h2{color:var(--theme-text-primary)}[data-theme=dark] .schedule-update-modal .close-btn{color:var(--theme-text-secondary)}[data-theme=dark] .schedule-update-modal .close-btn:hover{background:var(--theme-bg-hover);color:var(--theme-text-primary)}[data-theme=dark] .schedule-update-modal .form-section h4{color:var(--theme-text-secondary)}[data-theme=dark] .schedule-update-modal .form-group label{color:var(--theme-text-primary)}[data-theme=dark] .schedule-update-modal .form-group input,[data-theme=dark] .schedule-update-modal .form-group select,[data-theme=dark] .schedule-update-modal .form-group textarea{background:var(--theme-bg-tertiary);border-color:var(--theme-border-secondary);color:var(--theme-text-primary)}[data-theme=dark] .schedule-update-modal .form-group input:focus,[data-theme=dark] .schedule-update-modal .form-group select:focus,[data-theme=dark] .schedule-update-modal .form-group textarea:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .schedule-update-modal .help-text{color:var(--theme-text-secondary)}[data-theme=dark] .schedule-update-modal .checkbox-label{color:var(--theme-text-primary)}[data-theme=dark] .schedule-update-modal .error-banner{background:#f8514926;border-color:#f851494d;color:#f85149}[data-theme=dark] .schedule-update-modal .error-banner button{color:#f85149}[data-theme=dark] .schedule-update-modal .modal-footer{background:var(--theme-bg-tertiary);border-top-color:var(--theme-border-primary)}[data-theme=dark] .schedule-update-modal .btn-secondary{background:var(--theme-bg-secondary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .schedule-update-modal .btn-secondary:hover{background:var(--theme-bg-hover)}@media (max-width:640px){.schedule-update-modal .form-row{grid-template-columns:1fr}}.create-template-btn{align-items:center;background:#215ea1;background:var(--theme-primary,#215ea1);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;padding:.75rem 1.25rem;transition:all .2s ease}.create-template-btn:hover{background:#1a4a7f;background:var(--theme-primary-dark,#1a4a7f);box-shadow:0 4px 12px #215ea14d;transform:translateY(-1px)}.templates-container .stats-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:1.5rem}.templates-container .stat-card{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:.75rem;overflow:hidden;padding:1.25rem;position:relative;transition:all .2s ease}.templates-container .stat-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.templates-container .stat-card:before{background:#215ea1;background:var(--stat-color,var(--theme-primary,#215ea1));bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.templates-container .stat-card.primary{--stat-color:#215ea1}.templates-container .stat-card.success{--stat-color:#22c55e}.templates-container .stat-card.warning{--stat-color:#f59e0b}.templates-container .stat-card.secondary{--stat-color:#6b7280}.templates-container .stat-card .stat-icon{font-size:1.5rem;opacity:.9}.templates-container .stat-card .stat-content{display:flex;flex-direction:column;gap:.25rem}.templates-container .stat-card .stat-value{color:#111827;color:var(--theme-text-primary,#111827);font-size:2rem;font-weight:700;line-height:1}.templates-container .stat-card .stat-label{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.875rem;font-weight:500;text-transform:none}.templates-container .stat-card .stat-meta{color:#9ca3af;color:var(--theme-text-muted,#9ca3af);font-size:.75rem}.templates-section{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:1.5rem;overflow:hidden}.templates-section .section-header{align-items:center;background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.templates-section .section-title{align-items:center;display:flex;gap:.75rem}.templates-section .section-title h2{color:#111827;color:var(--theme-text-primary,#111827);font-size:1.125rem;font-weight:600;margin:0}.templates-section .section-count{background:#e5e7eb;background:var(--theme-bg-tertiary,#e5e7eb);border-radius:12px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.75rem;font-weight:500;padding:.25rem .75rem}.templates-section .section-controls{align-items:center;display:flex;gap:1rem}.templates-section .search-container{position:relative}.templates-section .search-input{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;color:#111827;color:var(--theme-text-primary,#111827);font-size:.875rem;padding:.5rem 1rem;transition:all .2s ease;width:250px}.templates-section .search-input:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.templates-section .search-input::placeholder{color:#9ca3af;color:var(--theme-text-muted,#9ca3af)}.filters-row{align-items:flex-end;background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;flex-wrap:wrap;gap:1rem;padding:1rem 1.5rem}.filter-group{display:flex;flex-direction:column;gap:.35rem;min-width:150px}.filter-group label{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.filter-input,.filter-select{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:6px;color:#111827;color:var(--theme-text-primary,#111827);font-size:.875rem;padding:.5rem .75rem;transition:all .2s ease}.filter-input:focus,.filter-select:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.filter-input::placeholder{color:#9ca3af;color:var(--theme-text-muted,#9ca3af)}.clear-filters-btn{background:#0000;border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:6px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);cursor:pointer;font-size:.8rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease;white-space:nowrap}.clear-filters-btn:hover{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border-color:#9ca3af;border-color:var(--theme-text-muted,#9ca3af);color:#111827;color:var(--theme-text-primary,#111827)}.templates-section .table-wrapper{overflow-x:auto}.templates-table{border-collapse:collapse;width:100%}.templates-table thead th{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.85rem;font-weight:600;letter-spacing:.05em;padding:1rem 1.25rem;text-align:left;text-transform:uppercase;white-space:nowrap}.templates-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.templates-table thead th.sortable:hover{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6)}.templates-table tbody td{border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--theme-border-secondary,#f3f4f6);color:#111827;color:var(--theme-text-primary,#111827);font-size:.9rem;padding:1rem 1.25rem}.templates-table tbody tr.template-row{cursor:pointer;transition:background .15s ease}.templates-table tbody tr.template-row:hover{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb)}.template-name-cell{display:flex;flex-direction:column;gap:.25rem}.template-name-cell strong{color:#111827;color:var(--theme-text-primary,#111827);font-weight:600}.template-description{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.8rem;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-client{color:#111827;color:var(--theme-text-primary,#111827);font-size:.9rem}.type-badge{border-radius:20px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.03em;padding:.35rem .75rem;text-transform:uppercase}.type-badge.voice{background:#dbeafe;color:#1d4ed8}.type-badge.alarm{background:#fef3c7;color:#d97706}.type-badge.dtmf{background:#f3e8ff;color:#7c3aed}.templates-table .device-count-badge{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border-radius:12px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);display:inline-block;font-size:.85rem;font-weight:500;padding:.25rem .6rem}.templates-table .status-badge{border-radius:20px;display:inline-block;font-size:.75rem;font-weight:600;padding:.35rem .75rem;text-transform:uppercase}.templates-table .status-badge.active{background:#dcfce7;color:#15803d}.templates-table .status-badge.inactive{background:#fee2e2;color:#b91c1c}.templates-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.templates-loading .loading-spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-top-color:#215ea1;border:4px solid var(--theme-border-primary,#e5e7eb);border-radius:50%;border-top-color:var(--theme-primary,#215ea1);height:48px;margin-bottom:1rem;width:48px}.templates-loading p{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.95rem}.templates-error{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;flex-direction:column;padding:4rem 2rem;text-align:center}.templates-error,.templates-error .error-icon{align-items:center;display:flex;justify-content:center}.templates-error .error-icon{background:#fef2f2;border:2px solid #fecaca;border-radius:50%;color:#b91c1c;font-size:1.5rem;font-weight:700;height:48px;margin-bottom:1rem;width:48px}.templates-error h3{color:#b91c1c;font-size:1.25rem;margin:0 0 .5rem}.templates-error p{color:#6b7280;color:var(--theme-text-secondary,#6b7280);margin:0 0 1.5rem}.templates-error .retry-button{background:#215ea1;background:var(--theme-primary,#215ea1);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1.5rem;transition:all .2s ease}.templates-error .retry-button:hover{background:#1a4d85}.templates-section .empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.templates-section .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.templates-section .empty-state h3{color:#111827;color:var(--theme-text-primary,#111827);font-size:1.25rem;margin:0 0 .5rem}.templates-section .empty-state p{color:#6b7280;color:var(--theme-text-secondary,#6b7280);margin:0}.templates-section .pagination-wrapper{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-top:1px solid #e5e7eb;border-top:1px solid var(--theme-border-primary,#e5e7eb)}.templates-section .pagination-info{align-items:center;color:#6b7280;color:var(--theme-text-secondary,#6b7280);display:flex;font-size:.875rem;gap:1rem;justify-content:space-between;padding:1rem 1.5rem}.templates-section .items-per-page{align-items:center;display:flex;gap:.5rem}.templates-section .items-per-page label{color:#374151;color:var(--theme-text-primary,#374151);font-weight:500}.templates-section .items-per-page-select{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #d1d5db;border:1px solid var(--theme-border-primary,#d1d5db);border-radius:6px;color:#374151;color:var(--theme-text-primary,#374151);cursor:pointer;font-size:.875rem;padding:.375rem .5rem;transition:border-color .2s ease}.templates-section .items-per-page-select:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.templates-section .pagination{align-items:center;display:flex;gap:.5rem;justify-content:center;padding:0 1.5rem 1rem}.templates-section .page-btn,.templates-section .pagination-btn{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #d1d5db;border:1px solid var(--theme-border-primary,#d1d5db);border-radius:6px;color:#374151;color:var(--theme-text-primary,#374151);cursor:pointer;font-size:.875rem;padding:.5rem .75rem;transition:all .2s ease}.templates-section .page-btn:hover,.templates-section .pagination-btn:hover:not(:disabled){background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border-color:#9ca3af}.templates-section .pagination-btn:disabled{cursor:not-allowed;opacity:.5}.templates-section .page-btn.active{background:#215ea1;background:var(--theme-primary,#215ea1);border-color:#215ea1;border-color:var(--theme-primary,#215ea1);color:#fff}.templates-section .page-numbers{display:flex;gap:.25rem}.templates-footer{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1rem 1.5rem}.templates-footer .activity-summary{align-items:center;display:flex;flex-wrap:wrap;gap:2rem}.templates-footer .activity-item{align-items:center;display:flex;gap:.5rem}.templates-footer .activity-icon{font-size:1rem;opacity:.7}.templates-footer .activity-text{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.875rem}.templates-footer .activity-text strong{color:#111827;color:var(--theme-text-primary,#111827);font-weight:600}.config-template-detail-modal,.config-template-modal{background:#fff;background:var(--theme-bg-primary,#fff);border-radius:12px;box-shadow:0 25px 50px -12px #00000040;display:flex;flex-direction:column;max-height:calc(100vh - 2rem);max-width:700px;overflow:hidden;width:100%}.config-template-detail-modal .modal-header,.config-template-modal .modal-header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;flex-shrink:0;justify-content:space-between;padding:1.5rem}.config-template-detail-modal .modal-header h2,.config-template-modal .modal-header h2{color:#111827;color:var(--theme-text-primary,#111827);font-size:1.25rem;margin:0}.close-button{color:var(--theme-text-secondary,#6b7280);padding:.25rem}.close-button:hover{color:#111827;color:var(--theme-text-primary,#111827)}.config-template-detail-modal .modal-content,.config-template-modal .modal-content{flex:1 1;min-height:0;overflow-y:auto;padding:1.5rem}.form-section{margin-bottom:2rem}.form-section:last-child{margin-bottom:0}.form-section h3{border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--theme-border-secondary,#f3f4f6);color:#111827;color:var(--theme-text-primary,#111827);font-size:1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem}.form-group{margin-bottom:1rem}.form-group label{color:#111827;color:var(--theme-text-primary,#111827);display:block;font-size:.85rem;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);color:#111827;color:var(--theme-text-primary,#111827);font-size:.9rem;padding:.75rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a}.form-group input.error,.form-group select.error{border-color:#dc2626}.form-group textarea{min-height:80px;resize:vertical}.field-error{color:#dc2626;display:block;font-size:.8rem;margin-top:.25rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.9rem;margin-bottom:1rem;padding:1rem}.config-template-detail-modal .modal-actions,.config-template-modal .modal-actions{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-top:1px solid #e5e7eb;border-top:1px solid var(--theme-border-primary,#e5e7eb);display:flex;flex-shrink:0;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.btn{font-size:.9rem;padding:.6rem 1.25rem}.btn-primary{background:#215ea1;background:var(--theme-primary,#215ea1)}.btn-primary:hover:not(:disabled){background:#1a4a7f;background:var(--theme-primary-dark,#1a4a7f)}.btn-secondary{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);color:var(--theme-text-primary,#111827)}.btn-secondary:hover:not(:disabled){background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb)}.modal-tabs{border-bottom:1px solid var(--theme-border-primary,#e5e7eb);padding:0 1.5rem}.tab-button{color:var(--theme-text-secondary,#6b7280);font-size:.9rem;padding:1rem 1.25rem;position:relative;transition:color .2s}.tab-button:hover{color:#111827;color:var(--theme-text-primary,#111827)}.tab-button.active{color:#215ea1;color:var(--theme-primary,#215ea1)}.tab-button.active:after{background:#215ea1;background:var(--theme-primary,#215ea1);bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0}.tab-content{padding:1rem 0}.info-grid{grid-gap:1.25rem;gap:1.25rem;grid-template-columns:1fr 1fr}.info-item{gap:.35rem}.info-item label{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}.info-item span{color:#111827;color:var(--theme-text-primary,#111827);font-size:.95rem}.info-item .monospace{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-radius:4px;font-family:Monaco,Consolas,monospace;font-size:.85rem;padding:.25rem .5rem}.config-template-detail-modal .device-count-badge{background:#f3f4f6;background:var(--theme-bg-tertiary,#f3f4f6);border-radius:12px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);display:inline-block;font-size:.85rem;font-weight:500;padding:.25rem .6rem}.config-template-detail-modal .status-badge{border-radius:12px;display:inline-block;font-size:.8rem;font-weight:600;padding:.25rem .6rem}.config-template-detail-modal .status-badge.active{background:#dcfce7;color:#15803d}.config-template-detail-modal .status-badge.inactive{background:#fee2e2;color:#b91c1c}@media (max-width:768px){.templates-container .stats-grid{grid-template-columns:repeat(2,1fr)}.templates-section .section-header{align-items:flex-start;flex-direction:column;gap:1rem}.templates-section .search-input{width:100%}.templates-section .pagination-info{align-items:stretch;flex-direction:column;gap:.75rem;text-align:center}.templates-section .items-per-page{justify-content:center}.templates-section .pagination{flex-wrap:wrap}.templates-footer .activity-summary{align-items:flex-start;flex-direction:column;gap:.75rem}.form-row,.info-grid{grid-template-columns:1fr}}@media (max-width:480px){.templates-container .stats-grid{grid-template-columns:1fr}}[data-theme=dark] .templates-container .stat-card{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 2px 8px #0000004d}[data-theme=dark] .templates-container .stat-card:hover{box-shadow:0 4px 12px #0006}[data-theme=dark] .templates-container .stat-card .stat-value{color:var(--theme-text-primary)}[data-theme=dark] .templates-container .stat-card .stat-label{color:var(--theme-text-secondary)}[data-theme=dark] .templates-container .stat-card .stat-meta{color:var(--theme-text-muted)}[data-theme=dark] .templates-section{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 2px 8px #0000004d}[data-theme=dark] .templates-section .section-header{background:var(--theme-bg-secondary);border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .templates-section .section-title h2{color:var(--theme-text-primary)}[data-theme=dark] .templates-section .section-count{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}[data-theme=dark] .templates-section .search-input{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .templates-section .search-input:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .templates-section .search-input::placeholder{color:var(--theme-text-muted)}[data-theme=dark] .templates-table thead th{background:var(--theme-bg-tertiary);border-bottom-color:var(--theme-border-primary);color:var(--theme-text-secondary)}[data-theme=dark] .templates-table thead th.sortable:hover{background:#2d333b}[data-theme=dark] .templates-table tbody td{border-bottom-color:var(--theme-border-secondary);color:var(--theme-text-primary)}[data-theme=dark] .templates-table tbody tr.template-row:hover{background:var(--theme-bg-tertiary)}[data-theme=dark] .template-name-cell strong{color:var(--theme-text-primary)}[data-theme=dark] .template-description{color:var(--theme-text-secondary)}[data-theme=dark] .template-client{color:var(--theme-text-primary)}[data-theme=dark] .type-badge.voice{background:#1d4ed833;color:#79b8ff}[data-theme=dark] .type-badge.alarm{background:#d9770633;color:#ffab70}[data-theme=dark] .type-badge.dtmf{background:#7c3aed33;color:#b392f0}[data-theme=dark] .templates-table .device-count-badge{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}[data-theme=dark] .templates-table .status-badge.active{background:#2ea04333;color:#56d364}[data-theme=dark] .templates-table .status-badge.inactive{background:#f8514933;color:#f85149}[data-theme=dark] .templates-loading p{color:var(--theme-text-secondary)}[data-theme=dark] .templates-loading .loading-spinner{border-color:var(--theme-border-primary);border-top-color:var(--theme-primary)}[data-theme=dark] .templates-error{background:var(--theme-bg-primary);border-color:var(--theme-border-primary)}[data-theme=dark] .templates-error .error-icon{background:#f8514926;border-color:#f851494d;color:#f85149}[data-theme=dark] .templates-error h3{color:#f85149}[data-theme=dark] .templates-error p{color:var(--theme-text-secondary)}[data-theme=dark] .templates-section .empty-state h3{color:var(--theme-text-primary)}[data-theme=dark] .templates-section .empty-state p{color:var(--theme-text-secondary)}[data-theme=dark] .templates-section .pagination-wrapper{background:var(--theme-bg-tertiary);border-top-color:var(--theme-border-primary)}[data-theme=dark] .templates-section .pagination-info{color:var(--theme-text-secondary)}[data-theme=dark] .templates-section .items-per-page label{color:var(--theme-text-primary)}[data-theme=dark] .templates-section .items-per-page-select{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .templates-section .items-per-page-select:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .templates-section .page-btn,[data-theme=dark] .templates-section .pagination-btn{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .templates-section .page-btn:hover,[data-theme=dark] .templates-section .pagination-btn:hover:not(:disabled){background:var(--theme-bg-tertiary);border-color:#484f58}[data-theme=dark] .templates-section .page-btn.active{background:var(--theme-primary);border-color:var(--theme-primary);color:#fff}[data-theme=dark] .templates-footer{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:0 2px 8px #0000004d}[data-theme=dark] .templates-footer .activity-text{color:var(--theme-text-secondary)}[data-theme=dark] .templates-footer .activity-text strong{color:var(--theme-text-primary)}[data-theme=dark] .config-template-detail-modal,[data-theme=dark] .config-template-modal{background:var(--theme-bg-primary);border:1px solid var(--theme-border-primary)}[data-theme=dark] .config-template-detail-modal .modal-header,[data-theme=dark] .config-template-modal .modal-header{border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .config-template-detail-modal .modal-header h2,[data-theme=dark] .config-template-modal .modal-header h2{color:var(--theme-text-primary)}[data-theme=dark] .close-button{color:var(--theme-text-secondary)}[data-theme=dark] .close-button:hover{color:var(--theme-text-primary)}[data-theme=dark] .form-section h3{border-bottom-color:var(--theme-border-secondary);color:var(--theme-text-primary)}[data-theme=dark] .form-group label{color:var(--theme-text-primary)}[data-theme=dark] .form-group input,[data-theme=dark] .form-group select,[data-theme=dark] .form-group textarea{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .form-group input:focus,[data-theme=dark] .form-group select:focus,[data-theme=dark] .form-group textarea:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .error-message{background:#f8514926;border-color:#f85149;color:#f85149}[data-theme=dark] .config-template-detail-modal .modal-actions,[data-theme=dark] .config-template-modal .modal-actions{background:var(--theme-bg-tertiary);border-top-color:var(--theme-border-primary)}[data-theme=dark] .btn-secondary{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .btn-secondary:hover:not(:disabled){background:var(--theme-bg-tertiary)}[data-theme=dark] .modal-tabs{border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .tab-button{color:var(--theme-text-secondary)}[data-theme=dark] .tab-button:hover{color:var(--theme-text-primary)}[data-theme=dark] .tab-button.active{color:var(--theme-primary)}[data-theme=dark] .tab-button.active:after{background:var(--theme-primary)}[data-theme=dark] .info-item label{color:var(--theme-text-secondary)}[data-theme=dark] .info-item span{color:var(--theme-text-primary)}[data-theme=dark] .info-item .monospace{background:var(--theme-bg-tertiary)}[data-theme=dark] .config-template-detail-modal .device-count-badge{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}[data-theme=dark] .config-template-detail-modal .status-badge.active{background:#2ea04333;color:#56d364}[data-theme=dark] .config-template-detail-modal .status-badge.inactive{background:#f8514933;color:#f85149}[data-theme=dark] .filters-row{background:var(--theme-bg-tertiary);border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .filter-group label{color:var(--theme-text-secondary)}[data-theme=dark] .filter-input,[data-theme=dark] .filter-select{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .filter-input:focus,[data-theme=dark] .filter-select:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .filter-input::placeholder{color:var(--theme-text-muted)}[data-theme=dark] .clear-filters-btn{border-color:var(--theme-border-primary);color:var(--theme-text-secondary)}[data-theme=dark] .clear-filters-btn:hover{background:var(--theme-bg-secondary);border-color:#484f58;color:var(--theme-text-primary)}.profile-modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.profile-modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;width:100%}.profile-modal-content.profile-modal-wide{max-width:1000px}.profile-modal-header{align-items:center;background:#215ea1;color:#fff;display:flex;justify-content:space-between;padding:20px 30px}.profile-modal-header h2{align-items:center;display:flex;font-size:20px;font-weight:600;gap:10px;margin:0}.profile-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:background-color .2s;width:32px}.profile-modal-close:hover{background:#fff3}.profile-tabs{background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;padding:0 20px}.profile-tab{background:none;border:none;border-bottom:3px solid #0000;color:#6c757d;cursor:pointer;font-size:14px;font-weight:600;padding:15px 25px;transition:all .2s}.profile-tab:hover{background:#215ea10d;color:#215ea1}.profile-tab.active{border-bottom-color:#215ea1;color:#215ea1}.profile-modal-body{flex:1 1;overflow-y:auto;padding:30px}.profile-details{display:flex;flex-direction:column;gap:30px}.profile-section h3{color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 20px}.profile-section h3,.profile-section-header{border-bottom:2px solid #e9ecef;padding-bottom:10px}.profile-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.profile-section-header h3{border:none;margin:0;padding:0}.profile-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.profile-item{display:flex;flex-direction:column;gap:5px}.profile-item label{color:#495057;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.profile-item span{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;font-family:Courier New,monospace;font-size:13px;padding:10px;word-break:break-all}.profile-token{color:#28a745;font-weight:600}.token-valid{background:#d4edda!important;color:#155724!important;font-weight:600}.token-expired{background:#f8d7da!important;color:#721c24!important;font-weight:600}.profile-roles{display:flex;flex-wrap:wrap;gap:10px}.profile-role-badge{background:#e7f3ff;border:1px solid #b8daff;border-radius:20px;color:#215ea1;font-size:13px;font-weight:500;padding:6px 12px}.profile-raw-data{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;overflow-x:auto;padding:20px}.profile-raw-data pre{color:#495057;font-family:Courier New,monospace;font-size:12px;line-height:1.5;margin:0;white-space:pre-wrap}.profile-token-raw{background:#2d2d2d;border-color:#1a1a1a}.profile-token-raw pre{color:#f8f8f2;word-break:break-all}.token-parts{gap:15px}.token-part,.token-parts{display:flex;flex-direction:column}.token-part{gap:8px}.token-part label{color:#495057;font-size:13px;font-weight:600;text-transform:uppercase}.token-part code{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;color:#495057;display:block;font-family:Courier New,monospace;font-size:11px;padding:12px;word-break:break-all}.profile-copy-btn{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:background-color .2s}.profile-copy-btn:hover:not(:disabled){background:#218838}.profile-copy-btn:disabled{background:#6c757d;cursor:not-allowed}.profile-no-data{color:#6c757d;padding:60px 20px;text-align:center}.profile-no-data p{font-size:16px;margin:0}.profile-modal-footer{background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;gap:10px;justify-content:flex-end;padding:20px 30px}.profile-modal-button{background:#215ea1;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:background-color .2s}.profile-modal-button:hover{background:#1a4d87}.profile-modal-button.secondary{background:#6c757d}.profile-modal-button.secondary:hover{background:#5a6268}[data-theme=dark] .profile-modal-content{background:#1e1e1e}[data-theme=dark] .profile-tabs{background:#252525;border-color:#333}[data-theme=dark] .profile-tab{color:#adb5bd}[data-theme=dark] .profile-tab:hover{background:#215ea11a}[data-theme=dark] .profile-tab.active{border-bottom-color:#6eb3f7;color:#6eb3f7}[data-theme=dark] .profile-section h3{border-color:#333;color:#e9ecef}[data-theme=dark] .profile-section-header{border-color:#333}[data-theme=dark] .profile-item label{color:#adb5bd}[data-theme=dark] .profile-item span{color:#e9ecef}[data-theme=dark] .profile-item span,[data-theme=dark] .profile-raw-data{background:#2d2d2d;border-color:#404040}[data-theme=dark] .profile-raw-data pre{color:#e9ecef}[data-theme=dark] .profile-role-badge{background:#215ea133;border-color:#215ea166}[data-theme=dark] .token-part code{background:#2d2d2d;border-color:#404040;color:#e9ecef}[data-theme=dark] .profile-modal-footer{background:#252525;border-color:#333}@media (max-width:768px){.profile-modal-overlay{padding:10px}.profile-modal-content{max-height:95vh}.profile-modal-header{padding:15px 20px}.profile-tabs{overflow-x:auto;padding:0 10px}.profile-tab{font-size:13px;padding:12px 15px;white-space:nowrap}.profile-modal-body{padding:20px}.profile-grid{grid-template-columns:1fr}.profile-section-header{align-items:flex-start;flex-direction:column;gap:10px}.profile-modal-footer{flex-direction:column;padding:15px 20px}.profile-modal-button{width:100%}}.statistics-modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.statistics-modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1000px;overflow:hidden;width:100%}.statistics-modal-header{align-items:center;background:#215ea1;border-radius:12px 12px 0 0;color:#fff;display:flex;justify-content:space-between;padding:20px 30px}.statistics-modal-header h2{align-items:center;display:flex;font-size:20px;font-weight:600;gap:10px;margin:0}.statistics-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:background-color .2s;width:32px}.statistics-modal-close:hover{background:#fff3}.statistics-modal-body{flex:1 1;overflow-y:auto;padding:30px}.statistics-loading{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center;padding:60px 20px}.loading-spinner{border:3px solid #e9ecef;border-top-color:#215ea1}.statistics-content{display:flex;flex-direction:column;gap:30px}.statistics-section h3{align-items:center;border-bottom:2px solid #e9ecef;color:#2c3e50;display:flex;font-size:18px;font-weight:600;gap:10px;margin:0 0 20px;padding-bottom:10px}.statistics-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.statistics-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:space-between;padding:15px;transition:transform .2s,box-shadow .2s}.statistics-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.statistics-item label{color:#495057;font-size:14px;font-weight:600}.statistics-value{background:#fff;border:1px solid #dee2e6;border-radius:4px;color:#2c3e50;font-size:16px;font-weight:700;padding:4px 8px}.statistics-value.primary{background:#215ea1;border-color:#215ea1;color:#fff}.statistics-value.success{background:#28a745;border-color:#28a745;color:#fff}.statistics-value.error{background:#dc3545;border-color:#dc3545;color:#fff}.request-history{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;overflow:hidden}.request-history-table{display:flex;flex-direction:column}.request-history-header{background:#e9ecef;color:#495057;font-weight:600;letter-spacing:.5px;padding:15px;text-transform:uppercase}.request-history-header,.request-history-row{grid-gap:10px;display:grid;font-size:12px;gap:10px;grid-template-columns:80px 60px 1fr 60px 80px}.request-history-row{border-bottom:1px solid #e9ecef;font-family:Courier New,monospace;padding:12px 15px;transition:background-color .2s}.request-history-row:hover{background:#f1f3f4}.request-history-row:last-child{border-bottom:none}.request-time{color:#6c757d;font-weight:500}.request-method{font-weight:600;text-transform:uppercase}.request-endpoint{color:#495057;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.request-status{font-weight:600;text-align:center}.request-duration{color:#6c757d;text-align:right}.no-history{color:#6c757d;padding:40px 20px;text-align:center}.no-history p{font-size:16px;margin:0 0 8px}.no-history small{font-size:13px;opacity:.8}.statistics-modal-footer{background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;gap:10px;justify-content:flex-end;padding:20px 30px}.statistics-modal-button{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:5px;padding:10px 20px;transition:background-color .2s,transform .2s}.statistics-modal-button:hover{transform:translateY(-1px)}.statistics-modal-button.secondary{background:#6c757d;color:#fff}.statistics-modal-button.secondary:hover{background:#5a6268}.statistics-modal-button:not(.secondary){background:#215ea1;color:#fff}.statistics-modal-button:not(.secondary):hover{background:#1a4d87}@media (max-width:768px){.statistics-modal-overlay{padding:10px}.statistics-modal-content{max-height:95vh}.statistics-modal-header{padding:15px 20px}.statistics-modal-body{padding:20px}.statistics-grid{grid-template-columns:1fr}.statistics-item{align-items:flex-start;flex-direction:column;gap:8px}.request-history-header,.request-history-row{font-size:11px;grid-template-columns:60px 50px 1fr 50px 60px}.statistics-modal-footer{flex-direction:column;padding:15px 20px}.statistics-modal-button{justify-content:center;width:100%}}.validation-tests-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;background:var(--theme-bg-overlay,#00000080);bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.validation-tests-modal-content{background:#fff;background:var(--theme-bg-primary,#fff);border-radius:16px;box-shadow:0 25px 50px #00000040;box-shadow:var(--theme-shadow-2xl,0 25px 50px #00000040);display:flex;flex-direction:column;max-height:90vh;max-width:900px;min-width:320px;overflow:hidden;width:100%}.validation-tests-header{align-items:center;background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;justify-content:space-between;padding:24px 32px}.validation-tests-header h2{align-items:center;color:#111827;color:var(--theme-text-primary,#111827);display:flex;font-size:24px;font-weight:600;gap:12px;margin:0}.validation-tests-close{align-items:center;background:none;border:none;border-radius:50%;color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);cursor:pointer;display:flex;font-size:28px;height:40px;justify-content:center;transition:all .2s ease;width:40px}.validation-tests-close:hover{background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);color:#111827;color:var(--theme-text-primary,#111827)}.validation-tests-body{flex:1 1;overflow-y:auto;padding:32px}.validation-tests-controls{align-items:center;border-bottom:1px solid #f1f3f4;border-bottom:1px solid var(--theme-border-secondary,#f1f3f4);display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:16px}.validation-test-run-btn{align-items:center;background:#215ea1;background:var(--theme-primary,#215ea1);border:none;border-radius:8px;box-shadow:0 1px 2px #0000000d;box-shadow:var(--theme-shadow-sm,0 1px 2px #0000000d);color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s ease}.validation-test-run-btn:hover:not(:disabled){background:#1e5399;box-shadow:0 4px 6px #00000012;box-shadow:var(--theme-shadow-md,0 4px 6px #00000012);transform:translateY(-1px)}.validation-test-run-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.validation-overall-status{align-items:center;display:flex;font-size:14px;gap:12px}.validation-overall-label{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-weight:500}.validation-overall-value{background:#f2f4f7;background:var(--theme-bg-tertiary,#f2f4f7);border-radius:6px;color:#111827;color:var(--theme-text-primary,#111827);font-weight:600;padding:4px 12px}.validation-tests-results{display:flex;flex-direction:column;gap:16px}.validation-no-tests{color:#6b7280;color:var(--theme-text-secondary,#6b7280);padding:48px 24px;text-align:center}.validation-no-tests p{font-size:16px;font-weight:500;margin:0 0 8px}.validation-no-tests small{font-size:14px;opacity:.8}.validation-test-result{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;padding:20px;transition:all .2s ease}.validation-test-result.passed{background:#28a7450d;border-color:#28a745;border-color:var(--success-color,#28a745)}.validation-test-result.failed{background:#dc35450d;border-color:#dc3545;border-color:var(--error-color,#dc3545)}.validation-test-result.warning{background:#ffc1070d;border-color:#ffc107;border-color:var(--warning-color,#ffc107)}.validation-test-result.running{animation:pulse 2s infinite;background:#17a2b80d;border-color:#17a2b8;border-color:var(--info-color,#17a2b8)}.validation-test-header{align-items:center;display:flex;gap:12px;margin-bottom:8px}.validation-test-icon{flex-shrink:0;font-size:20px}.validation-test-name{color:#111827;color:var(--theme-text-primary,#111827);flex:1 1;font-size:16px;font-weight:600}.validation-test-duration{background:#f2f4f7;background:var(--theme-bg-tertiary,#f2f4f7);border-radius:4px;color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);font-size:12px;font-weight:500;padding:2px 8px}.validation-test-message{font-size:14px;font-weight:500;line-height:1.4;margin-bottom:12px}.validation-test-details{margin-top:12px}.validation-test-details summary{border-top:1px solid #f1f3f4;border-top:1px solid var(--theme-border-secondary,#f1f3f4);color:#6b7280;color:var(--theme-text-secondary,#6b7280);cursor:pointer;font-size:13px;font-weight:500;padding:8px 0}.validation-test-details pre,.validation-test-details summary:hover{color:#111827;color:var(--theme-text-primary,#111827)}.validation-test-details pre{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #f1f3f4;border:1px solid var(--theme-border-secondary,#f1f3f4);border-radius:8px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;margin:8px 0 0;overflow-x:auto;padding:16px;white-space:pre-wrap;word-break:break-word}.validation-running-indicator{align-items:center;color:#6b7280;color:var(--theme-text-secondary,#6b7280);display:flex;font-size:14px;font-weight:500;gap:12px;justify-content:center;padding:24px}.validation-spinner{animation:spin 1s linear infinite;border:2px solid #f1f3f4;border-top:2px solid #215ea1;border:2px solid var(--theme-border-secondary,#f1f3f4);border-radius:50%;border-top-color:var(--theme-primary,#215ea1);height:20px;width:20px}.validation-tests-footer{align-items:center;background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border-top:1px solid #e5e7eb;border-top:1px solid var(--theme-border-primary,#e5e7eb);display:flex;justify-content:space-between;padding:24px 32px}.validation-tests-info{flex:1 1}.validation-tests-info small{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);font-size:12px;line-height:1.4}.validation-tests-close-btn{background:#fff;background:var(--theme-bg-primary,#fff);border:1.5px solid #e5e7eb;border:1.5px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);cursor:pointer;font-size:14px;font-weight:500;min-width:100px;padding:10px 20px;transition:all .2s ease}.validation-tests-close-btn:hover{background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);border-color:#d1d5db;border-color:var(--theme-border-secondary,#d1d5db)}@media (max-width:768px){.validation-tests-modal-overlay{padding:10px}.validation-tests-modal-content{max-height:95vh;max-width:100%}.validation-tests-header{padding:20px}.validation-tests-header h2{font-size:20px}.validation-tests-body{padding:24px 20px}.validation-tests-controls{align-items:stretch;flex-direction:column;gap:16px}.validation-test-result{padding:16px}.validation-tests-footer{align-items:stretch;flex-direction:column;gap:16px;padding:20px}.validation-tests-close-btn{width:100%}}[data-theme=dark] .validation-tests-modal-content{background:var(--theme-bg-primary);border:1px solid var(--theme-border-primary);box-shadow:var(--theme-shadow-2xl)}[data-theme=dark] .validation-test-details pre{background:var(--theme-bg-secondary);border-color:var(--theme-border-secondary)}[data-theme=dark] .validation-test-result.passed{background:#22c55e1a}[data-theme=dark] .validation-test-result.failed{background:#f871711a}[data-theme=dark] .validation-test-result.warning{background:#fbbf241a}[data-theme=dark] .validation-test-result.running{background:#3b82f61a}@media (prefers-reduced-motion:reduce){.validation-spinner,.validation-test-result.running{animation:none}.validation-test-result{transition:none}.validation-test-run-btn:hover:not(:disabled){transform:none}}.validation-test-run-btn:focus,.validation-tests-close-btn:focus,.validation-tests-close:focus{box-shadow:0 0 0 3px #215ea11a;outline:none}.validation-test-details summary:focus{background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);border-radius:4px;outline:none}.language-selector{font-family:inherit;position:relative}.language-flag{display:inline-block;font-size:1.2em;margin-right:8px;min-width:20px;text-align:center}.language-flag.large{font-size:2em;margin-right:16px;min-width:32px}.language-name{font-weight:500}.language-name,.language-name-primary{color:#111827;color:var(--theme-text-primary,#111827)}.language-name-primary{font-size:14px;font-weight:600}.language-name-secondary{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:12px;font-weight:400}.language-check{color:#215ea1;color:var(--theme-primary,#215ea1);font-size:16px;font-weight:700;margin-left:auto}.language-selector-inline{background:#f2f4f7;background:var(--theme-bg-tertiary,#f2f4f7);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;display:flex;flex-direction:column;gap:12px;padding:16px}.language-selector-label{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.language-options-inline{display:flex;flex-wrap:wrap;gap:8px}.language-option-inline{align-items:center;background:#fff;background:var(--theme-bg-primary,#fff);border:2px solid #e5e7eb;border:2px solid var(--theme-border-primary,#e5e7eb);border-radius:6px;cursor:pointer;display:flex;font-size:13px;min-height:40px;padding:8px 12px;transition:all .2s ease}.language-option-inline:hover{background:#f9fafb;background:var(--theme-interactive-hover,#f9fafb);border-color:#d1d5db;border-color:var(--theme-border-secondary,#d1d5db);transform:translateY(-1px)}.language-option-inline.active{background:#215ea1;background:var(--theme-primary,#215ea1);border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 4px 6px #00000012;box-shadow:var(--theme-shadow-md,0 4px 6px #00000012);color:#fff;color:var(--theme-text-inverse,#fff)}.language-option-inline.changing{opacity:.6;pointer-events:none;transform:scale(.98)}.language-selector-dropdown{display:inline-block;position:relative}.language-selector-dropdown.compact .language-name{display:none}.language-selector-trigger{align-items:center;background:#fff;background:var(--theme-bg-primary,#fff);border:1.5px solid #e5e7eb;border:1.5px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;cursor:pointer;display:flex;font-size:14px;min-height:40px;padding:0;transition:all .2s ease}.language-selector-trigger:hover{border-color:#d1d5db;border-color:var(--theme-border-secondary,#d1d5db);box-shadow:0 1px 2px #0000000d;box-shadow:var(--theme-shadow-sm,0 1px 2px #0000000d)}.language-selector-trigger:focus{border-color:#215ea1;border-color:var(--theme-border-focus,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.language-selector-current{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:8px 12px;width:100%}.language-selector-dropdown.compact .language-selector-current{justify-content:center;padding:8px}.language-arrow{align-items:center;color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);display:flex;font-size:10px;justify-content:center;min-width:16px;transition:transform .2s ease}.language-arrow.open{transform:rotate(180deg)}.language-arrow.changing{animation:spin 1s linear infinite}.language-dropdown{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;box-shadow:0 25px 50px #00000026;box-shadow:var(--theme-shadow-xl,0 25px 50px #00000026);left:0;margin-top:8px;max-width:300px;min-width:200px;overflow:hidden;position:absolute;top:100%;z-index:1000}.language-dropdown-header{background:#f2f4f7;background:var(--theme-bg-tertiary,#f2f4f7);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);padding:12px 16px}.language-dropdown-title{color:#6b7280;color:var(--theme-text-secondary,#6b7280);font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.language-dropdown-option{background:none;border:none;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);cursor:pointer;padding:0;transition:all .2s ease;width:100%}.language-dropdown-option:last-of-type{border-bottom:none}.language-dropdown-option:hover{background:#f9fafb;background:var(--theme-interactive-hover,#f9fafb)}.language-dropdown-option.active{background:#215ea10d}.language-dropdown-option:disabled{cursor:not-allowed;opacity:.6}.language-option-content{align-items:center;display:flex;gap:12px;padding:14px 16px}.language-names{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;gap:2px}.language-dropdown-footer{background:#f2f4f7;background:var(--theme-bg-tertiary,#f2f4f7);border-top:1px solid #e5e7eb;border-top:1px solid var(--theme-border-primary,#e5e7eb);padding:10px 16px}.language-current-status{color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);font-size:11px;text-align:center}.language-selector-button{align-items:center;background:#fff;background:var(--theme-bg-primary,#fff);border:1.5px solid #e5e7eb;border:1.5px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;color:#111827;color:var(--theme-text-primary,#111827);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.language-selector-button:hover{background:#f9fafb;background:var(--theme-interactive-hover,#f9fafb);border-color:#d1d5db;border-color:var(--theme-border-secondary,#d1d5db)}.language-icon{font-size:16px}.language-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;background:var(--theme-bg-overlay,#0006);bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.language-modal-content{background:#fff;background:var(--theme-bg-primary,#fff);border-radius:16px;box-shadow:0 25px 50px #00000040;box-shadow:var(--theme-shadow-2xl,0 25px 50px #00000040);display:flex;flex-direction:column;max-height:80vh;max-width:480px;min-width:320px;overflow:hidden;width:100%}.language-modal-header{align-items:center;background:#f2f4f7;background:var(--theme-bg-tertiary,#f2f4f7);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--theme-border-primary,#e5e7eb);display:flex;justify-content:space-between;padding:20px 24px}.language-modal-header h3{color:#111827;color:var(--theme-text-primary,#111827);font-size:18px;font-weight:600;margin:0}.language-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#9ca3af;color:var(--theme-text-tertiary,#9ca3af);cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.language-modal-close:hover{background:#f9fafb;background:var(--theme-interactive-hover,#f9fafb);color:#111827;color:var(--theme-text-primary,#111827)}.language-modal-body{flex:1 1;overflow-y:auto;padding:24px}.language-modal-option{align-items:center;background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border:2px solid #e5e7eb;border:2px solid var(--theme-border-primary,#e5e7eb);border-radius:12px;cursor:pointer;display:flex;gap:16px;margin-bottom:8px;padding:16px;transition:all .2s ease;width:100%}.language-modal-option:hover{background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);border-color:#d1d5db;border-color:var(--theme-border-secondary,#d1d5db);transform:translateY(-2px)}.language-modal-option.active{background:#215ea11a;border-color:#215ea1;border-color:var(--theme-primary,#215ea1)}.language-modal-option:disabled{cursor:not-allowed;opacity:.6;transform:none}.language-info{display:flex;flex:1 1;flex-direction:column;gap:4px}.language-modal-footer{background:#f2f4f7;background:var(--theme-bg-tertiary,#f2f4f7);border-top:1px solid #e5e7eb;border-top:1px solid var(--theme-border-primary,#e5e7eb);padding:16px 24px}.language-modal-cancel{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--theme-border-primary,#e5e7eb);border-radius:8px;color:#6b7280;color:var(--theme-text-secondary,#6b7280);cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s ease}.language-modal-cancel:hover{background:#f3f4f6;background:var(--theme-interactive-hover,#f3f4f6);border-color:#d1d5db;border-color:var(--theme-border-secondary,#d1d5db)}.animate-in{animation:slideInDown .2s cubic-bezier(.4,0,.2,1)}@keyframes slideInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.language-dropdown{left:50%;margin:0;max-width:320px;position:fixed;top:50%;transform:translate(-50%,-50%);width:calc(100vw - 40px)}.language-modal-content{margin:20px;width:calc(100% - 40px)}.language-options-inline{flex-direction:column}.language-option-inline{justify-content:center;min-height:48px}}[data-theme=dark] .language-dropdown,[data-theme=dark] .language-modal-content{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);box-shadow:var(--theme-shadow-xl)}@media (prefers-reduced-motion:reduce){.animate-in,.language-arrow.changing{animation:none}*{transition-duration:.01ms!important}}.debug-menu{display:inline-block;position:relative}.debug-menu-trigger{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 12px;transition:all .2s ease}.debug-menu-trigger:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.debug-menu-trigger:active{transform:translateY(0)}.debug-icon{align-items:center;display:flex;font-size:14px}.debug-text{font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.debug-arrow{font-size:10px;margin-left:2px;transition:transform .2s ease}.debug-arrow.open{transform:rotate(180deg)}.debug-menu-dropdown{animation:debugMenuSlide .2s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:8px;box-shadow:0 8px 25px #00000026;box-shadow:var(--theme-shadow-xl,0 8px 25px #00000026);margin-top:8px;max-height:600px;max-width:400px;min-width:320px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}@keyframes debugMenuSlide{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.debug-menu-section{border-bottom:1px solid #f1f3f4;border-bottom:1px solid var(--theme-border-secondary,#f1f3f4)}.debug-menu-section:last-child{border-bottom:none}.debug-menu-section-title{background:#f8f9fa;background:var(--theme-bg-tertiary,#f8f9fa);border-bottom:1px solid #f1f3f4;border-bottom:1px solid var(--theme-border-secondary,#f1f3f4);color:#6c757d;color:var(--theme-text-tertiary,#6c757d);font-size:11px;font-weight:600;letter-spacing:.5px;padding:12px 20px 8px;text-transform:uppercase}.debug-menu-item{align-items:flex-start;background:none;border:none;border-bottom:1px solid #f1f3f4;border-bottom:1px solid var(--theme-border-secondary,#f1f3f4);cursor:pointer;display:flex;gap:12px;padding:12px 20px;text-align:left;transition:background-color .2s ease;width:100%}.debug-menu-item:last-child{border-bottom:none}.debug-menu-item:hover{background:#f8f9fa;background:var(--theme-interactive-hover,#f8f9fa)}.debug-menu-item:active{background:#e9ecef;background:var(--theme-interactive-pressed,#e9ecef)}.debug-menu-item.theme-toggle:hover{background:linear-gradient(45deg,#215ea11a,#215ea10d)}.debug-menu-item.danger:hover{background:#dc35451a;color:#dc3545;color:var(--error-color,#dc3545)}.debug-menu-icon{flex-shrink:0;font-size:18px;margin-top:2px}.debug-menu-content{display:flex;flex:1 1;flex-direction:column;gap:4px}.debug-menu-label{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:14px;font-weight:600;line-height:1.3;margin:0}.debug-menu-desc{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:12px;line-height:1.3;margin:0}.debug-menu-language-selector{padding:8px 16px}.debug-menu-language-selector .language-selector-inline{background:#f9fafb;background:var(--theme-bg-secondary,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--theme-border-secondary,#e5e7eb);margin:0;padding:8px}.debug-menu-language-selector .language-options-inline{gap:4px}.debug-menu-language-selector .language-option-inline{font-size:12px;min-height:28px;padding:4px 8px}.debug-menu-trigger:before{animation:debugPulse 2s infinite;background:#ffc107;border:2px solid #fff;border-radius:50%;content:"";height:8px;position:absolute;right:-4px;top:-4px;width:8px}@keyframes debugPulse{0%,50%,to{opacity:1}25%,75%{opacity:.6}}@media (max-width:768px){.debug-menu-dropdown{min-width:260px;right:-10px}.debug-menu-item{padding:14px 16px}.debug-menu-trigger{font-size:12px;padding:6px 10px}.debug-text{display:none}.debug-icon{font-size:16px}}.App{background-color:var(--bg-secondary);color:var(--text-primary);display:flex;flex-direction:column;min-height:100vh;transition:background-color .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1)}.App-header{background:var(--gradient-primary);border-bottom:1px solid #ffffff1a;box-shadow:var(--shadow-md);box-sizing:border-box;color:#fff;height:80px;left:0;padding:1.5rem 2rem;position:fixed;right:0;top:0;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%;z-index:1000}.header-content{height:100%;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem}.header-content,.header-title{align-items:center;display:flex}.header-title{gap:1rem;max-width:100%;overflow:hidden}.app-logo{border-radius:4px;height:50px;object-fit:contain;width:auto}.title-text h1{color:#fff;font-size:1.5rem;margin:0}.title-text p{color:#cbd5e0;font-size:.875rem;margin:.25rem 0 0}.header-status{gap:1rem}.App-main{display:flex;flex:1 1;margin-top:80px;position:relative}.main-layout{display:flex;width:100%}.main-content,.main-layout{min-height:calc(100vh - 80px)}.main-content{background-color:var(--bg-secondary);flex:1 1;margin-left:180px;transition:background-color .3s ease}@media (max-width:768px){.main-content{margin-left:60px}}.dashboard{max-width:100%}.dashboard h1{color:#2d3748;margin-bottom:.5rem}.dashboard>p{color:#718096}.dashboard-section,.dashboard>p{margin-bottom:2rem}.dashboard-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:2rem}.dashboard-card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:12px;box-shadow:var(--shadow-sm);padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.dashboard-card:hover{border-color:var(--border-secondary);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.dashboard-card h3{color:var(--text-primary);font-size:1.25rem;margin:0 0 .5rem}.dashboard-card p{color:var(--text-secondary);font-size:.875rem;margin:0}.auth-callback{align-items:center;display:flex;justify-content:center;min-height:400px}@media (max-width:768px){.App-header{padding:1rem}.header-content{align-items:stretch;flex-direction:column;gap:1rem;padding:0 1rem}.header-title{flex-direction:column;gap:.5rem;text-align:center}.app-logo{height:40px}.App-main{padding:1rem}.dashboard-grid{grid-template-columns:1fr}}:root{--primary-color:#215ea1;--primary-color-light:#3a7bc8;--primary-color-dark:#1a4d85}@media (prefers-color-scheme:dark){.dashboard h1{color:#f7fafc}.dashboard>p{color:#a0aec0}.dashboard-card{background:#2d3748;border-color:#4a5568}.dashboard-card h3{color:#f7fafc}.dashboard-card p{color:#a0aec0}}.auth-button{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.auth-button:disabled{cursor:not-allowed;opacity:.6}.login-button{background-color:#007bff;color:#fff}.login-button:hover:not(:disabled){background-color:#0056b3}.logout-button{background-color:#6c757d;color:#fff;font-size:12px;padding:6px 12px}.logout-button:hover{background-color:#545b62}.auth-container{display:inline-block;position:relative}.user-info{align-items:flex-end;display:flex;flex-direction:column}.user-name{color:#333;font-size:14px;font-weight:500}.user-email{color:#666;font-size:12px}.user-info-badge{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;font-size:.875rem;gap:.75rem;padding:.5rem .75rem;transition:all .2s ease}.user-info-badge:hover{background:#fff;box-shadow:0 2px 4px #0000001a}.user-avatar{align-items:center;background:#215ea1;background:var(--primary-color,#215ea1);border-radius:50%;color:#fff;display:flex;font-size:.875rem;font-weight:600;height:2rem;justify-content:center;width:2rem}.user-summary{align-items:flex-start;display:flex;flex-direction:column}.user-summary .user-name{color:#1f2937;font-size:.875rem;font-weight:500;line-height:1.2}.user-summary .user-email{color:#6b7280;font-size:.75rem;line-height:1.2}.expand-icon{color:#6b7280;font-size:.75rem;transition:transform .2s ease}.user-info-badge:hover .expand-icon{color:#374151}.user-details{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 25px #00000026;margin-top:.5rem;min-width:280px;padding:1rem;position:absolute;right:0;top:100%;z-index:1000}.user-detail-header{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.5rem}.user-detail-header h4{color:#1f2937;font-size:.9375rem;font-weight:600;margin:0}.user-detail-item{align-items:flex-start;border-bottom:1px solid #f9fafb;display:flex;font-size:.8125rem;justify-content:space-between;padding:.375rem 0}.user-detail-item:last-of-type{border-bottom:none}.user-detail-item label{color:#6b7280;font-weight:500;min-width:60px}.user-detail-value{color:#1f2937;font-weight:500;max-width:180px;text-align:right;word-break:break-word}.user-actions{border-top:1px solid #f3f4f6;margin-top:.75rem;padding-top:.75rem}.user-actions .logout-button{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8125rem;font-weight:500;margin:0;padding:.5rem;transition:all .2s ease;width:100%}.user-actions .logout-button:hover{background:#b91c1c}.loading-spinner{border:2px solid #f3f3f3;border-top-color:#007bff;height:16px;width:16px}.auth-button.loading{background-color:#e9ecef;color:#6c757d}.auth-loading-page{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 120px);padding:20px}.auth-loading-page .loading-container{text-align:center}.auth-loading-page .loading-spinner{animation:spin 1s linear infinite;border:4px solid #e9ecef;border-radius:50%;border-top:4px solid var(--theme-primary,#215ea1);height:48px;margin:0 auto 16px;width:48px}.auth-loading-page .loading-container p{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:16px}.protected-route-loading,.protected-route-unauthorized{align-items:center;display:flex;justify-content:center;min-height:400px;padding:20px}.loading-container,.unauthorized-container{max-width:400px;text-align:center}.loading-container .loading-spinner{height:32px;margin-bottom:16px;width:32px}.unauthorized-container h2{color:#333;margin-bottom:12px}.unauthorized-container p{color:#666;margin-bottom:20px}@media (max-width:768px){.user-details{left:0;max-width:calc(100vw - 2rem);min-width:auto;right:0;width:300px}.user-info-badge .user-summary .user-email{display:none}.user-info-badge{padding:.5rem}.auth-container.old-layout{align-items:flex-end;flex-direction:column;gap:8px}.user-info{align-items:center;text-align:center}.auth-button{justify-content:center;width:100%}}@media (max-width:480px){.user-details{bottom:1rem;left:1rem;margin:0;max-width:none;position:fixed;right:1rem;top:auto;width:auto}.user-info-badge .expand-icon{display:none}}@media (prefers-color-scheme:dark){.user-name{color:#f8f9fa}.user-email{color:#adb5bd}.user-info-badge{background:#1f2937e6;border-color:#4b5563}.user-info-badge:hover{background:#1f2937}.user-summary .user-name{color:#f3f4f6}.expand-icon,.user-summary .user-email{color:#9ca3af}.user-info-badge:hover .expand-icon{color:#d1d5db}.user-details{background:#1f2937;border-color:#374151}.user-detail-header{border-bottom-color:#374151}.user-detail-header h4{color:#f3f4f6}.user-detail-item{border-bottom-color:#2d3748}.user-detail-item label{color:#9ca3af}.user-detail-value{color:#f3f4f6}.user-actions{border-top-color:#374151}.unauthorized-container h2{color:#f8f9fa}.unauthorized-container p{color:#adb5bd}}.devices-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.devices-table-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:1.5rem}.devices-table-header h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 1rem}.filter-controls{display:flex;flex-wrap:wrap;gap:.75rem}.filter-select{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #d1d5db;border:1px solid var(--theme-border-primary,#d1d5db);border-radius:6px;color:#374151;color:var(--theme-text-primary,#374151);cursor:pointer;font-size:.875rem;min-width:150px;padding:.5rem .75rem;transition:border-color .2s ease}.filter-select.filter-client{min-width:200px}.filter-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.filter-select:hover{border-color:#9ca3af}.table-wrapper{overflow-x:auto}.devices-table{border-collapse:collapse;font-size:.875rem;width:100%}.devices-table thead{background:#f9fafb}.devices-table th{border-bottom:1px solid #e5e7eb;color:#374151;font-weight:600;padding:.75rem 1rem;text-align:left;white-space:nowrap}.devices-table th.sortable{cursor:pointer;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.devices-table th.sortable:hover{background:#f3f4f6}.devices-table td{border-bottom:1px solid #f3f4f6;color:#374151;padding:.75rem 1rem}.device-row{cursor:pointer;transition:background-color .2s ease}.device-row:hover{background:#f9fafb}.device-row:active{background:#f3f4f6}.device-id{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-weight:500}.client-id{color:#3b82f6}.mqtt-host,.phone{font-family:Monaco,Menlo,Ubuntu Mono,monospace}.mqtt-host{font-size:.8125rem}.date-time{color:#6b7280}.status-badge.needs-refresh{background:#fef3c7;color:#92400e}.devices-table-error,.devices-table-loading{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:center;min-height:400px}.no-devices{background:#f9fafb;color:#6b7280;padding:2rem;text-align:center}.pagination-wrapper{background:#f9fafb;border-top:1px solid #e5e7eb}.pagination-info{align-items:center;color:#6b7280;display:flex;font-size:.875rem;gap:1rem;justify-content:space-between;padding:1rem}.items-per-page{align-items:center;display:flex;gap:.5rem}.items-per-page label{color:#374151;font-weight:500}.items-per-page-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;padding:.375rem .5rem;transition:border-color .2s ease}.items-per-page-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.items-per-page-select:hover{border-color:#9ca3af}.pagination{align-items:center;display:flex;gap:.5rem;justify-content:center;padding:0 1rem 1rem}.page-btn,.pagination-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;padding:.5rem .75rem;transition:all .2s ease}.page-btn:hover,.pagination-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.pagination-btn:disabled{cursor:not-allowed;opacity:.5}.page-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.page-numbers{display:flex;gap:.25rem}@media (max-width:768px){.devices-table-header{padding:1rem}.table-controls{align-items:stretch;flex-direction:column;gap:.75rem}.search-container{max-width:none;min-width:auto}.filter-controls{width:100%}.filter-select{flex:1 1;min-width:120px}.pagination-info,.table-info{text-align:center}.pagination-info{align-items:stretch;flex-direction:column;gap:.75rem}.items-per-page{justify-content:center}.devices-table{font-size:.8125rem}.devices-table td,.devices-table th{padding:.5rem}.devices-table td:nth-child(3),.devices-table td:nth-child(5),.devices-table th:nth-child(3),.devices-table th:nth-child(5){display:none}.pagination{flex-wrap:wrap;padding:.75rem}.page-btn,.pagination-btn{font-size:.8125rem;padding:.375rem .5rem}}@media (max-width:480px){.devices-table td:nth-child(4),.devices-table td:nth-child(6),.devices-table th:nth-child(4),.devices-table th:nth-child(6){display:none}}@media (prefers-color-scheme:dark){.devices-table-container{background:#1f2937;color:#f9fafb}.devices-table-header{background:#111827;border-bottom-color:#374151}.devices-table-header h2{color:#f9fafb}.search-input{background:#374151;border-color:#4b5563;color:#f9fafb}.search-input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa1a}.filter-select,.items-per-page-select{background:#374151;border-color:#4b5563;color:#d1d5db}.filter-select:focus,.items-per-page-select:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa1a}.filter-select:hover,.items-per-page-select:hover{border-color:#6b7280}.items-per-page label{color:#d1d5db}.pagination-info{color:#9ca3af}.pagination-wrapper{background:#111827;border-top-color:#374151}.devices-table thead{background:#111827}.devices-table th{border-bottom-color:#374151;color:#d1d5db}.devices-table th.sortable:hover{background:#1f2937}.devices-table td{border-bottom-color:#374151;color:#d1d5db}.device-row:hover{background:#111827}.client-id{color:#60a5fa}.pagination{background:#111827;border-top-color:#374151}.page-btn,.pagination-btn{background:#374151;border-color:#4b5563;color:#d1d5db}.page-btn:hover,.pagination-btn:hover:not(:disabled){background:#4b5563;border-color:#6b7280}.page-btn.active{background:#3b82f6;border-color:#3b82f6}}.clients-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.clients-table-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:1.5rem}.clients-table-header h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 1rem}.clients-table-header .table-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.clients-table-header .search-container{flex:1 1;max-width:300px;min-width:200px}.clients-table-header .search-input{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s ease;width:100%}.clients-table-header .search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.clients-table-header .filter-controls{display:flex;flex-wrap:wrap;gap:.75rem}.clients-table-header .siret-search{width:150px}.clients-table-header .filter-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;min-width:120px;padding:.5rem .75rem;transition:border-color .2s ease}.clients-table-header .filter-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.clients-table-header .filter-select:hover{border-color:#9ca3af}.clients-table-header .table-info{color:#6b7280;font-size:.875rem;font-weight:500}.clients-table{border-collapse:collapse;font-size:.875rem;width:100%}.clients-table thead{background:#f9fafb}.clients-table th{border-bottom:1px solid #e5e7eb;color:#374151;font-weight:600;padding:.75rem 1rem;text-align:left;white-space:nowrap}.clients-table th.sortable{cursor:pointer;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.clients-table th.sortable:hover{background:#f3f4f6}.clients-table td{border-bottom:1px solid #f3f4f6;color:#374151;padding:.75rem 1rem}.client-row{cursor:pointer;transition:background-color .2s ease}.client-row:hover{background:#f9fafb}.client-row:active{background:#f3f4f6}.client-id{color:#215ea1;color:var(--theme-primary,#215ea1);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-weight:500}.client-name{color:#1f2937;font-weight:500}.client-siret{color:#6b7280;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8125rem}.device-count-badge{background:#e0f2fe;border-radius:12px;color:#0277bd;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.last-activity{color:#6b7280;font-size:.8125rem}.status-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .5rem;text-transform:uppercase}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.inactive{background:#fee2e2;color:#991b1b}.clients-table-error,.clients-table-loading{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:center;min-height:300px}.no-clients{background:#f9fafb;color:#6b7280;padding:2rem;text-align:center}.clients-table-container .pagination-wrapper{background:#f9fafb;border-top:1px solid #e5e7eb}.clients-table-container .pagination-info{align-items:center;color:#6b7280;display:flex;font-size:.875rem;gap:1rem;justify-content:space-between;padding:1rem}.clients-table-container .items-per-page{align-items:center;display:flex;gap:.5rem}.clients-table-container .items-per-page label{color:#374151;font-weight:500}.clients-table-container .items-per-page-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;padding:.375rem .5rem;transition:border-color .2s ease}.clients-table-container .items-per-page-select:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.clients-table-container .items-per-page-select:hover{border-color:#9ca3af}.clients-table-container .pagination{align-items:center;display:flex;gap:.5rem;justify-content:center;padding:0 1rem 1rem}.clients-table-container .page-btn,.clients-table-container .pagination-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;padding:.5rem .75rem;transition:all .2s ease}.clients-table-container .page-btn:hover,.clients-table-container .pagination-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.clients-table-container .pagination-btn:disabled{cursor:not-allowed;opacity:.5}.clients-table-container .page-btn.active{background:#215ea1;background:var(--theme-primary,#215ea1);border-color:#215ea1;border-color:var(--theme-primary,#215ea1);color:#fff}.clients-table-container .page-numbers{display:flex;gap:.25rem}@media (max-width:768px){.clients-table-header{padding:1rem}.clients-table{font-size:.8125rem}.clients-table td,.clients-table th{padding:.5rem}.clients-table td:nth-child(4),.clients-table th:nth-child(4){display:none}.clients-table-container .pagination-info{align-items:stretch;flex-direction:column;gap:.75rem;text-align:center}.clients-table-container .items-per-page{justify-content:center}.clients-table-container .pagination{flex-wrap:wrap;padding:.75rem}.clients-table-container .page-btn,.clients-table-container .pagination-btn{font-size:.8125rem;padding:.375rem .5rem}}@media (max-width:480px){.clients-table td:nth-child(3),.clients-table th:nth-child(3){display:none}}[data-theme=dark] .clients-table-container{background:var(--theme-bg-primary);box-shadow:0 2px 4px #0000004d;color:var(--theme-text-primary)}[data-theme=dark] .clients-table-header{background:var(--theme-bg-tertiary);border-bottom-color:var(--theme-border-primary)}[data-theme=dark] .clients-table-header h2{color:var(--theme-text-primary)}[data-theme=dark] .clients-table thead{background:var(--theme-bg-tertiary)}[data-theme=dark] .clients-table th{border-bottom-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .clients-table th.sortable:hover{background:#2d333b}[data-theme=dark] .clients-table td{border-bottom-color:var(--theme-border-secondary);color:var(--theme-text-primary)}[data-theme=dark] .client-row:hover{background:var(--theme-bg-tertiary)}[data-theme=dark] .client-id{color:var(--theme-primary)}[data-theme=dark] .client-name{color:var(--theme-text-primary)}[data-theme=dark] .device-count-badge{background:#58a6ff26;color:#79b8ff}[data-theme=dark] .clients-table-container .pagination-wrapper{background:var(--theme-bg-tertiary);border-top-color:var(--theme-border-primary)}[data-theme=dark] .clients-table-container .pagination-info{color:var(--theme-text-secondary)}[data-theme=dark] .clients-table-container .items-per-page label{color:var(--theme-text-primary)}[data-theme=dark] .clients-table-container .items-per-page-select{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .clients-table-container .items-per-page-select:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .clients-table-container .items-per-page-select:hover{border-color:#484f58}[data-theme=dark] .clients-table-container .page-btn,[data-theme=dark] .clients-table-container .pagination-btn{background:var(--theme-bg-primary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .clients-table-container .page-btn:hover,[data-theme=dark] .clients-table-container .pagination-btn:hover:not(:disabled){background:var(--theme-bg-tertiary);border-color:#484f58}[data-theme=dark] .clients-table-container .page-btn.active{background:var(--theme-primary);border-color:var(--theme-primary);color:#fff}[data-theme=dark] .status-badge.active{background:#2ea04333;color:#56d364}[data-theme=dark] .status-badge.inactive{background:#f8514933;color:#f85149}[data-theme=dark] .no-clients{color:var(--theme-text-secondary)}[data-theme=dark] .stats-dot{background:#2ea043}[data-theme=dark] .stats-dot.inactive{background:#f85149}[data-theme=dark] .edit-select.status-select{background:var(--theme-bg-tertiary);border-color:var(--theme-border-primary);color:var(--theme-text-primary)}[data-theme=dark] .edit-select.status-select:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #58a6ff26}[data-theme=dark] .edit-select.status-select[value=active]{background:#2ea04326;border-color:#2ea043;color:#56d364}[data-theme=dark] .edit-select.status-select[value=inactive]{background:#f8514926;border-color:#da3633;color:#f85149}.device-count-badge{transition:all .2s ease}.client-row:hover .device-count-badge{transform:scale(1.05)}.client-stats{align-items:center;display:flex;gap:.5rem}.stats-dot{background:#10b981;border-radius:50%;height:8px;width:8px}.stats-dot.inactive{background:#ef4444}.edit-select.status-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem;transition:all .2s ease}.edit-select.status-select:focus{border-color:#215ea1;border-color:var(--theme-primary,#215ea1);box-shadow:0 0 0 3px #215ea11a;outline:none}.edit-select.status-select option[value=active]{color:#10b981;font-weight:600}.edit-select.status-select option[value=inactive]{color:#ef4444;font-weight:600}.edit-select.status-select[value=active]{background:#d1fae5;border-color:#10b981;color:#10b981}.edit-select.status-select[value=inactive]{background:#fee2e2;border-color:#ef4444;color:#ef4444}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.client-detail-modal,.device-detail-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;width:100%}.modal-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;justify-content:space-between;padding:1.5rem}.modal-header,.modal-title{align-items:center;display:flex}.modal-title{gap:1rem}.modal-title h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0}.client-id-badge,.device-id-badge{background:#3b82f6;border-radius:6px;color:#fff;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;font-weight:500;padding:.25rem .75rem}.close-button{background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;font-size:1.5rem;line-height:1;padding:.5rem;transition:all .2s ease}.close-button:hover{background:#f3f4f6;color:#374151}.modal-tabs{background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;overflow-x:auto}.tab-button{background:none;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-weight:500;padding:1rem 1.5rem;transition:all .2s ease;white-space:nowrap}.tab-button:hover{background:#f3f4f6;color:#374151}.tab-button.active{background:#fff;border-bottom-color:#3b82f6;color:#3b82f6}.modal-content{flex:1 1;overflow-y:auto;padding:1.5rem}.error-banner{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;display:flex;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.error-banner button{background:none;border:none;color:#dc2626;cursor:pointer;font-size:1.25rem;line-height:1;padding:0}.info-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.info-item{display:flex;flex-direction:column;gap:.5rem}.info-item.full-width{grid-column:1/-1}.info-item label{color:#374151;font-size:.875rem;font-weight:500}.info-value{color:#1f2937;font-size:.875rem;padding:.5rem 0}.info-value.monospace{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;padding:.5rem .75rem}.info-value.password{font-family:monospace;font-size:1rem;letter-spacing:.1em}.config-section{margin-bottom:2rem}.config-section h3{border-bottom:1px solid #e5e7eb;color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem}.voice-dsts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.voice-dst-tag{background:#ddd6fe;border-radius:4px;color:#5b21b6;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.registry-data{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#1e293b;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8125rem;max-height:400px;overflow-x:auto;overflow-y:auto;padding:1rem;white-space:pre-wrap}.no-data{color:#6b7280;font-style:italic;padding:2rem;text-align:center}.edit-form h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#374151;font-size:.875rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.modal-actions{align-items:center;background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.5rem}.action-group{display:flex;gap:.5rem}.btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#3b82f6}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.modal-content .loading-spinner{display:block;margin:2rem auto}@media (max-width:768px){.modal-overlay{padding:.5rem}.client-detail-modal,.device-detail-modal{max-height:95vh}.modal-header{padding:1rem}.modal-title{align-items:flex-start;flex-direction:column;gap:.5rem}.modal-content{padding:1rem}.form-grid,.info-grid{grid-template-columns:1fr}.modal-actions{align-items:stretch;flex-direction:column;gap:1rem;padding:1rem}.action-group{order:2}.action-group .btn{flex:1 1}.modal-tabs{flex-wrap:wrap}.tab-button{flex:1 1;min-width:0;padding:.75rem .5rem}}.client-overview{max-width:100%}.device-count-large{color:#3b82f6;font-size:1.5rem;font-weight:600}.client-stats{border-top:1px solid #e5e7eb;margin-top:2rem;padding-top:2rem}.client-stats h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.stat-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;text-align:center}.stat-value{color:#1f2937;display:block;font-size:1.5rem;font-weight:600;margin-bottom:.25rem}.stat-label{color:#6b7280;font-size:.875rem;font-weight:500}.devices-list h3{border-bottom:1px solid #e5e7eb;color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem}.device-list-container{max-height:400px;overflow-y:auto}.device-list-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.device-list-item:hover{background:#f9fafb;border-color:#d1d5db;box-shadow:0 1px 3px #0000001a}.device-info{flex:1 1}.device-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.5rem}.device-list-item .device-id{color:#1f2937;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;font-weight:500}.device-status{border-radius:4px;font-size:.75rem;font-weight:500;padding:.125rem .375rem;text-transform:uppercase}.device-status.active{background:#d1fae5;color:#065f46}.device-status.needs-refresh{background:#fef3c7;color:#92400e}.device-details{color:#6b7280;display:flex;font-size:.8125rem;gap:1rem}.device-type{font-weight:500;text-transform:capitalize}.device-phone{font-family:Monaco,Menlo,Ubuntu Mono,monospace}.device-updated{color:#9ca3af}.device-arrow{color:#9ca3af;font-size:1.25rem;transition:transform .2s ease}.device-list-item:hover .device-arrow{color:#6b7280;transform:translateX(4px)}@media (prefers-color-scheme:dark){.client-detail-modal,.device-detail-modal{background:#1f2937;color:#f9fafb}.modal-header{background:#111827;border-bottom-color:#374151}.modal-title h2{color:#f9fafb}.close-button{color:#9ca3af}.close-button:hover{background:#374151;color:#d1d5db}.modal-tabs{background:#111827;border-bottom-color:#374151}.tab-button{color:#9ca3af}.tab-button:hover{background:#374151;color:#d1d5db}.tab-button.active{background:#1f2937;border-bottom-color:#60a5fa;color:#60a5fa}.info-item label{color:#d1d5db}.info-value{color:#f3f4f6}.info-value.monospace{background:#374151;border-color:#4b5563}.config-section h3{border-bottom-color:#374151;color:#f9fafb}.registry-data{background:#111827;border-color:#374151;color:#e2e8f0}.form-group label{color:#d1d5db}.form-group input,.form-group select,.form-group textarea{background:#374151;border-color:#4b5563;color:#f3f4f6}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa1a}.modal-actions{background:#111827;border-top-color:#374151}}.api-status-indicator{display:inline-block;position:relative}.status-badge-container{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.5rem .75rem}.status-badge-container:hover{background:#fff;box-shadow:0 2px 4px #0000001a}.status-indicator{animation:pulse 2s infinite;font-size:.75rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-text{color:#374151;font-weight:500;white-space:nowrap}.status-details{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 25px #00000026;margin-top:.5rem;min-width:250px;padding:1rem;position:absolute;right:0;top:100%;z-index:1000}.status-detail-header{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.5rem}.status-detail-header h4{color:#1f2937;font-size:.9375rem;font-weight:600;margin:0}.close-btn{background:none;border:none;color:#6b7280;cursor:pointer;font-size:1.125rem;line-height:1;padding:.125rem;transition:color .2s ease}.close-btn:hover{color:#374151}.status-detail-item{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;font-size:.8125rem;justify-content:space-between;padding:.375rem 0}.status-detail-item:last-of-type{border-bottom:none}.status-detail-item label{color:#6b7280;font-weight:500}.status-value{color:#1f2937;font-weight:500;max-width:150px;text-align:right;word-break:break-word}.status-value.connected{color:#059669}.status-value.disconnected{color:#dc2626}.status-value.error{color:#dc2626;font-size:.75rem}.manual-check-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.8125rem;font-weight:500;margin-top:.75rem;padding:.5rem;transition:all .2s ease;width:100%}.manual-check-btn:hover{background:#e5e7eb;border-color:#9ca3af}.manual-check-btn:active{background:#d1d5db}.header-auth{gap:1rem}.header-auth,.header-status{align-items:center;display:flex}@media (max-width:768px){.status-details{left:0;max-width:calc(100vw - 2rem);min-width:auto;right:0;width:280px}.status-text{display:none}.status-badge-container{padding:.5rem}}@media (max-width:480px){.status-details{bottom:1rem;left:1rem;margin:0;max-width:none;position:fixed;right:1rem;top:auto;width:auto}}@media (prefers-color-scheme:dark){.status-badge-container{background:#1f2937e6;border-color:#4b5563}.status-badge-container:hover{background:#1f2937}.status-text{color:#d1d5db}.status-details{background:#1f2937;border-color:#374151}.status-detail-item{border-bottom-color:#374151}.status-detail-item label{color:#9ca3af}.status-value{color:#f3f4f6}.manual-check-btn{background:#374151;border-color:#4b5563;color:#d1d5db}.manual-check-btn:hover{background:#4b5563;border-color:#6b7280}}.status-indicator{transition:color .3s ease}.status-badge-container{transition:all .2s ease}.connection-lost{animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.page{background-color:#f8f9fa;min-height:calc(100vh - 60px);width:100%}.page,.page-header{box-sizing:border-box}.page-header{align-items:flex-start;background:#fff;background:var(--theme-bg-primary,#fff);border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--theme-border-primary,#e9ecef);display:flex;justify-content:space-between;margin-bottom:0;padding:20px 24px}.page-title h1{align-items:center;color:#2c3e50;color:var(--theme-text-primary,#2c3e50);display:flex;font-size:28px;font-weight:600;gap:12px;margin:0 0 8px}.page-title p{color:#6c757d;color:var(--theme-text-secondary,#6c757d);font-size:16px;margin:0}.page-actions{align-items:center;display:flex;gap:12px}.create-client-btn,.create-device-btn,.create-template-btn,.create-user-btn{align-items:center;background:#215ea1;background:var(--theme-primary,#215ea1);border:none;border-radius:8px;box-shadow:0 1px 2px #0000000d;box-shadow:var(--theme-shadow-sm,0 1px 2px #0000000d);color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s ease}.create-client-btn:hover,.create-device-btn:hover,.create-template-btn:hover,.create-user-btn:hover{background:#1e5399;box-shadow:0 4px 6px #00000012;box-shadow:var(--theme-shadow-md,0 4px 6px #00000012);transform:translateY(-1px)}.create-client-btn:active,.create-device-btn:active,.create-template-btn:active,.create-user-btn:active{transform:translateY(0)}.page-content{box-sizing:border-box;padding:24px}@media (max-width:768px){.page-header{padding:20px}.page-header h1{font-size:24px}.page-header p{font-size:14px}.page-content{padding:20px}}.clients-table-container,.config-templates-table-container,.device-types-container,.devices-table-container,.users-table-container{background:#fff;background:var(--theme-bg-primary,#fff);border:1px solid #e9ecef;border:1px solid var(--theme-border-primary,#e9ecef);border-radius:8px;box-shadow:0 2px 4px #0000001a}.clients-table-header,.config-templates-table-header,.device-types-header,.devices-table-header,.users-table-header{background:#f8f9fa;background:var(--theme-bg-secondary,#f8f9fa);border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--theme-border-primary,#e9ecef);border-radius:8px 8px 0 0}.clients-table-header h2,.config-templates-table-header h2,.device-types-header h2,.devices-table-header h2,.users-table-header h2{color:#2c3e50;color:var(--theme-text-primary,#2c3e50);font-size:20px;font-weight:600;margin:0 0 1rem}.table-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.search-container{flex:1 1;max-width:400px;min-width:250px}.search-input{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s ease;width:100%}.search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.table-info{color:#6b7280;font-size:.875rem;font-weight:500}.loading-container{align-items:center;display:flex;flex-direction:column;gap:1rem;padding:3rem}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.error-container{max-width:400px;text-align:center}.error-container h3{color:#dc2626;margin-bottom:.5rem}.error-container p{color:#6b7280;margin-bottom:1rem}.error-container button{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:background-color .2s ease}.error-container button:hover{background:#2563eb}.login-required-page{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;justify-content:center;min-height:calc(100vh - 80px);padding:40px}.login-required-content{background:#fff;border-radius:12px;box-shadow:0 8px 25px #0000001a;max-width:500px;padding:60px 40px;text-align:center;width:100%}.login-required-icon{font-size:64px;margin-bottom:24px;opacity:.8}.login-required-content h2{color:#2c3e50;font-size:28px;font-weight:600;margin:0 0 16px}.login-required-content p{color:#6c757d;font-size:16px;line-height:1.6;margin-bottom:32px}.login-required-features{background:#f8f9fa;border-radius:8px;padding:24px;text-align:left}.login-required-features h3{color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 16px;text-align:center}.login-required-features ul{list-style:none;margin:0;padding:0}.login-required-features li{border-bottom:1px solid #e9ecef;color:#495057;font-size:14px;padding:8px 0}.login-required-features li:last-child{border-bottom:none}@media (max-width:768px){.login-required-page{padding:20px}.login-required-content{padding:40px 24px}.login-required-icon{font-size:48px}.login-required-content h2{font-size:24px}}body.dark-theme{color:var(--text-primary)}[data-theme=dark] .page,body.dark-theme{background-color:var(--bg-secondary)}[data-theme=dark] .page-header{background:var(--bg-primary);border-bottom:1px solid var(--border-color)}[data-theme=dark] .page-header h1{color:var(--text-primary)}[data-theme=dark] .page-header p{color:var(--text-secondary)}[data-theme=dark] .clients-table-container,[data-theme=dark] .config-templates-table-container,[data-theme=dark] .device-types-container,[data-theme=dark] .devices-table-container,[data-theme=dark] .users-table-container{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:0 2px 4px var(--shadow-light)}[data-theme=dark] .clients-table-header,[data-theme=dark] .config-templates-table-header,[data-theme=dark] .device-types-header,[data-theme=dark] .devices-table-header,[data-theme=dark] .users-table-header{background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}[data-theme=dark] .clients-table-header h2,[data-theme=dark] .config-templates-table-header h2,[data-theme=dark] .device-types-header h2,[data-theme=dark] .devices-table-header h2,[data-theme=dark] .users-table-header h2{color:var(--text-primary)}[data-theme=dark] .modal-overlay{background:#000c}[data-theme=dark] .modal-content{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:0 20px 60px #00000080}[data-theme=dark] .modal-header{border-bottom:1px solid var(--border-color)}[data-theme=dark] .modal-footer{background:var(--bg-tertiary);border-top:1px solid var(--border-color)}[data-theme=dark] .debug-menu-dropdown{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:0 8px 25px #0006}[data-theme=dark] .debug-menu-item:hover{background:var(--bg-tertiary)}[data-theme=dark] .debug-menu-label{color:var(--text-primary)}[data-theme=dark] .debug-menu-desc{color:var(--text-secondary)}[data-theme=dark] .profile-modal-content,[data-theme=dark] .statistics-modal-content{background:var(--bg-primary);border:1px solid var(--border-color)}[data-theme=dark] .profile-modal-body,[data-theme=dark] .statistics-modal-body{background:var(--bg-primary)}[data-theme=dark] .profile-section h3,[data-theme=dark] .statistics-section h3{border-bottom:2px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .profile-item span,[data-theme=dark] .statistics-item{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .profile-item label,[data-theme=dark] .statistics-item label{color:var(--text-secondary)}[data-theme=dark] .profile-raw-data,[data-theme=dark] .request-history{background:var(--bg-tertiary);border:1px solid var(--border-color)}[data-theme=dark] .profile-raw-data pre{color:var(--text-primary)}[data-theme=dark] .request-history-header{background:var(--bg-secondary);color:var(--text-secondary)}[data-theme=dark] .request-history-row{border-bottom:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .request-history-row:hover{background:var(--bg-secondary)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] input:focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #215ea133}[data-theme=dark] .btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .btn-secondary:hover{background:var(--bg-secondary)}[data-theme=dark] .login-required-page{background:linear-gradient(135deg,var(--bg-secondary) 0,var(--bg-tertiary) 100%)}[data-theme=dark] .login-required-content{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:0 8px 25px var(--shadow-medium)}[data-theme=dark] .login-required-content h2{color:var(--text-primary)}[data-theme=dark] .login-required-content p{color:var(--text-secondary)}[data-theme=dark] .login-required-features{background:var(--bg-tertiary);border:1px solid var(--border-color)}[data-theme=dark] .login-required-features h3{color:var(--text-primary)}[data-theme=dark] .login-required-features li{border-bottom:1px solid var(--border-color);color:var(--text-secondary)}[data-theme=dark] ::-webkit-scrollbar{background:var(--bg-tertiary)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--border-color)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}[data-theme=dark] *{transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}:root{--primary-50:#f0f7ff;--primary-100:#e0efff;--primary-200:#bae0ff;--primary-300:#7cc7ff;--primary-400:#36aaff;--primary-500:#0b89f0;--primary-600:#0068c7;--primary-700:#215ea1;--primary-800:#1a4d87;--primary-900:#1a4373;--theme-primary:#215ea1;--theme-primary-dark:#1a4d87;--theme-primary-light:#3a7bc8;--theme-bg-primary:#fff;--theme-bg-secondary:#f9fafb;--theme-bg-tertiary:#f3f4f6;--theme-text-primary:#111827;--theme-text-secondary:#6b7280;--theme-text-tertiary:#9ca3af;--theme-border-primary:#e5e7eb;--theme-border-secondary:#f3f4f6;--theme-shadow-sm:0 1px 2px #0000000d;--theme-shadow-md:0 4px 6px #00000012;--card-bg:var(--theme-bg-primary);--card-bg-dark:#1e1e1e;--input-bg:var(--theme-bg-primary);--table-header-bg:var(--theme-bg-secondary);--table-header-bg-dark:#2d2d2d;--table-header-hover:#e9ecef;--table-row-hover:#f5f5f5;--table-row-hover-dark:#2a2a2a;--border-color:var(--theme-border-primary);--help-bg:var(--theme-bg-secondary);--primary-color:var(--theme-primary);--primary-hover:var(--theme-primary-dark);--neutral-0:#fff;--neutral-50:#fafbfc;--neutral-100:#f2f4f7;--neutral-200:#e5e8ec;--neutral-300:#d1d6dc;--neutral-400:#9aa1aa;--neutral-500:#6c737d;--neutral-600:#4b5563;--neutral-700:#374151;--neutral-800:#1f2937;--neutral-900:#111827;--success-light:#d4edda;--success-base:#28a745;--success-dark:#155724;--error-light:#f8d7da;--error-base:#dc3545;--error-dark:#721c24;--warning-light:#fff3cd;--warning-base:#ffc107;--warning-dark:#856404;--info-light:#cce7ff;--info-base:#17a2b8;--info-dark:#0c5460;--bg-primary:var(--neutral-0);--bg-secondary:var(--neutral-50);--bg-tertiary:var(--neutral-100);--bg-elevated:var(--neutral-0);--bg-overlay:#0006;--text-primary:var(--neutral-900);--text-secondary:var(--neutral-700);--text-tertiary:var(--neutral-600);--text-muted:var(--neutral-500);--text-inverse:var(--neutral-0);--border-primary:var(--neutral-200);--border-secondary:var(--neutral-300);--border-focus:var(--primary-500);--border-error:var(--error-base);--interactive-hover:var(--neutral-100);--interactive-active:var(--neutral-200);--interactive-disabled:var(--neutral-300);--shadow-xs:0 1px 2px #1018280f;--shadow-sm:0 1px 2px #1018280f,0 1px 3px #1018281a;--shadow-md:0 2px 4px #1018280f,0 4px 8px #1018281a;--shadow-lg:0 4px 6px #1018280d,0 10px 15px #1018281a;--shadow-xl:0 8px 10px #1018280a,0 20px 25px #1018281a;--shadow-2xl:0 25px 50px #10182840;--gradient-primary:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-800) 100%);--gradient-surface:linear-gradient(135deg,var(--neutral-50) 0%,var(--neutral-100) 100%)}[data-theme=dark]{--theme-primary:#58a6ff;--theme-primary-dark:#388bfd;--theme-primary-light:#79c0ff;--theme-bg-primary:#161b22;--theme-bg-secondary:#0d1117;--theme-bg-tertiary:#21262d;--theme-text-primary:#f0f6fc;--theme-text-secondary:#8b949e;--theme-text-tertiary:#6e7681;--theme-border-primary:#30363d;--theme-border-secondary:#21262d;--theme-shadow-sm:0 1px 2px #0000004d;--theme-shadow-md:0 4px 6px #0006;--card-bg:var(--theme-bg-primary);--input-bg:var(--theme-bg-tertiary);--table-header-bg:var(--theme-bg-tertiary);--table-header-hover:#2d333b;--table-row-hover:#1c2128;--border-color:var(--theme-border-primary);--help-bg:var(--theme-bg-tertiary);--primary-color:var(--theme-primary);--primary-hover:var(--theme-primary-dark);--neutral-0:#0a0e13;--neutral-50:#161b22;--neutral-100:#21262d;--neutral-200:#30363d;--neutral-300:#484f58;--neutral-400:#6e7681;--neutral-500:#8b949e;--neutral-600:#b1bac4;--neutral-700:#c9d1d9;--neutral-800:#f0f6fc;--neutral-900:#fff;--success-light:#2ea04326;--success-base:#2ea043;--success-dark:#238636;--error-light:#f8514926;--error-base:#f85149;--error-dark:#da3633;--warning-light:#d2992226;--warning-base:#d29922;--warning-dark:#bf8700;--info-light:#1f9cf026;--info-base:#1f9cf0;--info-dark:#0969da;--bg-primary:var(--neutral-50);--bg-secondary:var(--neutral-0);--bg-tertiary:var(--neutral-100);--bg-elevated:var(--neutral-100);--bg-overlay:#000c;--text-primary:var(--neutral-800);--text-secondary:var(--neutral-700);--text-tertiary:var(--neutral-600);--text-muted:var(--neutral-500);--text-inverse:var(--neutral-0);--border-primary:var(--neutral-200);--border-secondary:var(--neutral-300);--border-focus:var(--primary-400);--border-error:var(--error-base);--interactive-hover:var(--neutral-100);--interactive-active:var(--neutral-200);--interactive-disabled:var(--neutral-200);--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 2px #0000004d,0 1px 3px #0006;--shadow-md:0 2px 4px #0000004d,0 4px 8px #0006;--shadow-lg:0 4px 6px #0000004d,0 10px 15px #0006;--shadow-xl:0 8px 10px #0000004d,0 20px 25px #0006;--shadow-2xl:0 25px 50px #0009;--gradient-primary:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-700) 100%);--gradient-surface:linear-gradient(135deg,var(--neutral-50) 0%,var(--neutral-100) 100%)}body{background:#fafbfc;background:var(--bg-secondary);color:#111827;color:var(--text-primary);transition:background-color .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1)}.card,.dropdown,.modal-content,.tooltip{background:#fff;background:var(--bg-primary);border:1px solid #e5e8ec;border:1px solid var(--border-primary);border-radius:12px;box-shadow:0 2px 4px #1018280f,0 4px 8px #1018281a;box-shadow:var(--shadow-md);transition:all .3s cubic-bezier(.4,0,.2,1)}.card:hover,.dropdown:hover{border-color:#d1d6dc;border-color:var(--border-secondary);box-shadow:0 4px 6px #1018280d,0 10px 15px #1018281a;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.elevated{background:#fff;background:var(--bg-elevated);box-shadow:0 8px 10px #1018280a,0 20px 25px #1018281a;box-shadow:var(--shadow-xl)}.btn,.button,button{border-radius:8px;font-weight:600;overflow:hidden;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn:hover,.button:hover,button:hover{box-shadow:0 2px 4px #1018280f,0 4px 8px #1018281a;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active,.button:active,button:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,#0068c7,#1a4d87);background:var(--gradient-primary);border:none;color:#fff;color:var(--text-inverse)}.btn-primary:hover{filter:brightness(1.1)}.btn-secondary{background:#f2f4f7;background:var(--bg-tertiary);border:1px solid #e5e8ec;border:1px solid var(--border-primary);color:#111827;color:var(--text-primary)}.btn-secondary:hover{background:#f2f4f7;background:var(--interactive-hover);border-color:#d1d6dc;border-color:var(--border-secondary)}input,select,textarea{background:#fff;background:var(--bg-primary);border:1.5px solid #e5e8ec;border:1.5px solid var(--border-primary);border-radius:8px;color:#111827;color:var(--text-primary);padding:12px 16px;transition:all .2s cubic-bezier(.4,0,.2,1)}input:focus,select:focus,textarea:focus{border-color:#0b89f0;border-color:var(--border-focus);box-shadow:0 0 0 3px #215ea11a;outline:none}input::placeholder,textarea::placeholder{color:#4b5563;color:var(--text-tertiary)}.table{background:#fff;background:var(--bg-primary);border-radius:12px;box-shadow:0 2px 4px #1018280f,0 4px 8px #1018281a;box-shadow:var(--shadow-md);overflow:hidden}.table th{background:#f2f4f7;background:var(--bg-tertiary);color:#374151;color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;padding:16px 20px;text-transform:uppercase}.table td{border-top:1px solid #e5e8ec;border-top:1px solid var(--border-primary);padding:16px 20px}.table tbody tr:hover{background:#f2f4f7;background:var(--interactive-hover)}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0006;background:var(--bg-overlay);transition:all .3s cubic-bezier(.4,0,.2,1)}.modal-content{border:1px solid #d1d6dc;border:1px solid var(--border-secondary);box-shadow:0 25px 50px #10182840;box-shadow:var(--shadow-2xl)}.modal-header{background:linear-gradient(135deg,#0068c7,#1a4d87);background:var(--gradient-primary);border-bottom:none;color:#fff;color:var(--text-inverse)}.modal-footer{background:#f2f4f7;background:var(--bg-tertiary);border-top:1px solid #e5e8ec;border-top:1px solid var(--border-primary)}.sidebar{background:linear-gradient(135deg,#0068c7,#1a4d87);background:var(--gradient-primary);box-shadow:0 4px 6px #1018280d,0 10px 15px #1018281a;box-shadow:var(--shadow-lg)}.nav-item{border-radius:8px;color:#ffffffe6;margin:4px 8px;transition:all .2s cubic-bezier(.4,0,.2,1)}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#fff3;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a;box-shadow:var(--shadow-sm);color:#fff}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f2f4f7;background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb{background:#9aa1aa;background:var(--neutral-400);border:1px solid #f2f4f7;border:1px solid var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#6c737d;background:var(--neutral-500)}.loading{overflow:hidden;position:relative}.loading:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}[data-theme=dark] .loading:after{background:linear-gradient(90deg,#0000,#ffffff0d,#0000)}@keyframes shimmer{to{left:100%}}:focus{outline:2px solid #0b89f0;outline:2px solid var(--border-focus);outline-offset:2px}.btn:focus,.button:focus,button:focus{outline-offset:4px}.status-success{color:#28a745;color:var(--success-base)}.status-error{color:#dc3545;color:var(--error-base)}.status-warning{color:#ffc107;color:var(--warning-base)}.status-info{color:#17a2b8;color:var(--info-base)}.badge-success{background:#d4edda;background:var(--success-light);border:1px solid #28a745;border:1px solid var(--success-base);color:#155724;color:var(--success-dark)}.badge-error{background:#f8d7da;background:var(--error-light);border:1px solid #dc3545;border:1px solid var(--error-base);color:#721c24;color:var(--error-dark)}.badge-warning{background:#fff3cd;background:var(--warning-light);border:1px solid #ffc107;border:1px solid var(--warning-base);color:#856404;color:var(--warning-dark)}.badge-info{background:#cce7ff;background:var(--info-light);border:1px solid #17a2b8;border:1px solid var(--info-base);color:#0c5460;color:var(--info-dark)}@media (prefers-reduced-motion:no-preference){*{scroll-behavior:smooth}.animate-in{animation:slideInUp .3s cubic-bezier(.4,0,.2,1)}.animate-out{animation:slideOutDown .3s cubic-bezier(.4,0,.2,1)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@media (prefers-contrast:high){:root{--border-primary:#000;--border-secondary:#000}[data-theme=dark]{--border-primary:#fff;--border-secondary:#fff}}
/*# sourceMappingURL=main.3cbe2308.css.map*/