@charset "UTF-8";.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--bg-primary)}.login-box{background:var(--bg-secondary);padding:3rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:2rem}.login-logo{height:60px;width:auto;margin-bottom:1rem}.login-box h1{font-size:1.5rem;color:var(--primary-color);margin:0 0 .5rem}.login-subtitle{font-size:.95rem;color:var(--text-muted);margin:0 0 1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-weight:500}.form-group input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;background-color:var(--bg-tertiary);color:var(--text-primary);transition:border-color var(--transition-base)}.form-group input:focus{outline:none;border-color:var(--primary-color)}.form-group input:disabled{background-color:var(--bg-primary);cursor:not-allowed;opacity:.6}button{padding:.875rem;background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:none}button:disabled{opacity:.6;cursor:not-allowed}.monitoring-dashboard{display:flex;background:var(--bg-primary);min-height:100vh;color:var(--text-primary)}.job-header-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.job-info h2{color:var(--text-primary);margin:0 0 1rem;font-size:1.375rem;font-weight:600}.job-details{display:flex;gap:2rem;flex-wrap:wrap}.job-details span{color:var(--text-secondary);font-size:.875rem;display:flex;align-items:center;gap:.5rem}.devices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}@media (max-width: 1600px){.devices-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1024px){.devices-grid{grid-template-columns:1fr}}.device-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:1.25rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.device-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.device-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.device-header h3{color:var(--text-primary);margin:0;font-size:1.125rem;font-weight:600}.device-name{color:var(--text-muted);margin:.25rem 0 0;font-size:.8125rem}.charts-section{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.25rem}.chart-container{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:.75rem;border:1px solid var(--border-color)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.chart-label{color:var(--text-muted);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.chart-value{font-size:1rem;font-weight:600;color:var(--text-primary)}.line-chart{width:100%;height:60px;display:block}@media (max-width: 768px){.main-monitoring-content{padding:1rem}.devices-grid{grid-template-columns:1fr}.job-details{flex-direction:column;gap:.75rem}}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}th.sortable:hover{background-color:#3b82f61a}.sort-icon{margin-left:5px;opacity:.5;font-size:.85em}th.sortable:hover .sort-icon{opacity:1}.clickable{cursor:pointer;color:var(--primary-color, #3b82f6)}.clickable:hover{text-decoration:underline}.users-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.users-stats-row .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem}.users-stats-row .stat-card:hover{transform:none;box-shadow:none}.users-stats-row .stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.users-stats-row .stat-content{display:flex;flex-direction:column;gap:.25rem}.users-stats-row .stat-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.users-stats-row .stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.users-filter-bar{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap}.users-filter-bar .filter-group{display:flex;align-items:center;gap:.5rem}.users-filter-bar label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.users-filter-bar select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.625rem 1rem;font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.users-filter-bar select:hover{border-color:var(--primary-color)}.users-filter-bar select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.users-filter-bar .btn-primary{background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all var(--transition-fast);margin-left:auto}.users-filter-bar .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.users-table-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table th{background:var(--bg-tertiary);color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--border-color)}.users-table td{padding:1rem 1.25rem;color:var(--text-primary);font-size:.9rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.users-table tbody tr{transition:background var(--transition-fast)}.users-table tbody tr:hover{background:var(--bg-tertiary)}.users-table tbody tr:last-child td{border-bottom:none}.user-name{color:var(--primary-color);cursor:pointer;font-weight:500;transition:opacity var(--transition-fast)}.user-name:hover{opacity:.8}.role-badge{display:inline-block;padding:.25rem .75rem;background:#a855f71a;color:#a855f7;border:1px solid rgba(168,85,247,.3);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.users-empty{text-align:center;padding:3rem;color:var(--text-muted)}.users-empty .empty-icon{font-size:3rem;margin-bottom:1rem}.users-empty p{font-size:1rem;margin:0}.users-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.users-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.users-modal h2{color:var(--text-primary);font-size:1.375rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.users-modal .form-group{margin-bottom:1.25rem}.users-modal .form-group label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.users-modal .form-group input,.users-modal .form-group select{width:100%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.9rem;transition:all var(--transition-fast)}.users-modal .form-group input:focus,.users-modal .form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.users-modal .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color);margin-top:1.5rem}.users-modal .btn-cancel{padding:.625rem 1.25rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.users-modal .btn-cancel:hover{background:var(--bg-primary);border-color:var(--primary-color)}.users-modal .btn-submit{padding:.625rem 1.25rem;background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.users-modal .btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.users-modal .btn-submit:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 1200px){.users-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.users-stats-row{grid-template-columns:1fr}.users-filter-bar{flex-direction:column;align-items:stretch}.users-filter-bar .btn-primary{margin-left:0;justify-content:center}.users-table-wrapper{overflow-x:auto}.users-table{min-width:600px}}.dashboard{min-height:100vh;display:flex;flex-direction:column}.navbar{background:var(--bg-secondary);color:var(--text-primary);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-md);border-bottom:1px solid var(--border-color)}.navbar-brand{display:flex;align-items:center}.navbar-brand .logo{height:40px;width:auto}.navbar-brand h1{font-size:1.5rem;margin:0}.navbar-user{display:flex;align-items:center;gap:1rem}.logout-btn{padding:.5rem 1rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);font-size:.9rem}.logout-btn:hover{background:var(--primary-color);border-color:var(--primary-color)}.dashboard-content{display:flex;flex:1}.sidebar{width:250px;background:var(--bg-secondary);border-right:1px solid var(--border-color);padding:2rem 0}.menu{list-style:none;padding:0;margin:0}.menu-item{color:var(--text-secondary);font-weight:500}.menu-item-header{padding:1rem 2rem;cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:space-between}.menu-item-header:hover{background:var(--bg-tertiary);color:var(--text-primary)}.menu-item-header.active{background:var(--bg-tertiary);color:var(--primary-color);border-right:3px solid var(--primary-color)}.menu-item-header .icon{margin-right:.5rem}.menu-item-header .expand-icon{transition:transform var(--transition-fast);font-size:.8rem}.menu-item-header .expand-icon.expanded{transform:rotate(90deg)}.submenu{list-style:none;padding:0;margin:0;max-height:0;overflow:hidden;transition:max-height var(--transition-base);background:var(--bg-primary)}.submenu.expanded{max-height:500px}.submenu-item{padding:.75rem 2rem .75rem 3.5rem;cursor:pointer;transition:all var(--transition-fast);color:var(--text-muted);font-size:.9rem}.submenu-item:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.submenu-item.active{background:var(--bg-tertiary);color:var(--primary-color);border-right:3px solid var(--primary-color)}.main-content{flex:1;padding:2rem;background:var(--bg-primary)}.main-content h2{margin-bottom:2rem;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:var(--bg-secondary);padding:1.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:transform var(--transition-base),box-shadow var(--transition-base)}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-color)}.stat-card h3{font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.stat-number{font-size:2.5rem;font-weight:700;color:var(--primary-color);margin:0}.stat-label{font-size:.85rem;color:var(--text-muted)}.user-info,.coming-soon{background:var(--bg-secondary);padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);margin-bottom:2rem}.user-info h3,.coming-soon h3{margin-bottom:1rem;color:var(--text-primary)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.info-grid div{padding:.5rem 0;color:var(--text-secondary)}.coming-soon ul{list-style:none;padding:0}.coming-soon li{padding:.75rem 0;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.coming-soon li:last-child{border-bottom:none}.coming-soon li:before{content:"🚀 ";margin-right:.5rem}.online-status-icon{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.875rem}.online-status-icon:before{content:"●";font-size:1.25rem;line-height:1}.online-status-icon.online{color:var(--success-color)}.online-status-icon.online:before{color:var(--success-color)}.online-status-icon.offline{color:var(--error-color)}.online-status-icon.offline:before{color:var(--error-color)}.online-status-icon.unknown{color:var(--text-muted)}.online-status-icon.unknown:before{color:var(--text-muted)}.status-badge.online-true{background-color:var(--success-color);color:#fff}.status-badge.online-false{background-color:var(--error-color);color:#fff}.status-badge.online-unknown{background-color:var(--text-muted);color:#fff}.status-badge{padding:4px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;display:inline-block}.status-badge.status-available{background-color:#28a745;color:#fff}.status-badge.status-in_use{background-color:#007bff;color:#fff}.status-badge.status-maintenance{background-color:#ffc107;color:#212529}.status-badge.status-defect{background-color:#dc3545;color:#fff}.mobile-menu-toggle{display:none;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);width:44px;height:44px;font-size:1.5rem;cursor:pointer;align-items:center;justify-content:center;transition:all var(--transition-fast)}.mobile-menu-toggle:hover{background:var(--primary-color);border-color:var(--primary-color)}.mobile-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:998;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mobile-overlay.active{display:block}.notification-bell{position:relative;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);width:44px;height:44px;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.notification-bell:hover{background:var(--bg-hover);border-color:var(--primary-color)}.notification-badge{position:absolute;top:-4px;right:-4px;background:var(--status-error);color:#fff;font-size:.65rem;font-weight:700;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0 4px}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:400px;background:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);z-index:1001;overflow:hidden;display:flex;flex-direction:column}.notification-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-color)}.notification-header h4{color:var(--text-primary);font-size:.9rem;font-weight:600;margin:0}.notification-mark-all{background:none;border:none;color:var(--primary-color);font-size:.75rem;cursor:pointer;padding:.25rem .5rem;transition:color var(--transition-fast)}.notification-mark-all:hover{color:var(--primary-light)}.notification-list{flex:1;overflow-y:auto}.notification-item{display:flex;gap:.75rem;padding:.875rem 1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background var(--transition-fast)}.notification-item:hover{background:var(--bg-tertiary)}.notification-item.unread{background:#ff6b350d}.notification-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}.notification-icon.alert{background:#da363333;color:var(--status-error-text)}.notification-icon.warning{background:#9a670033;color:var(--status-warning-text)}.notification-icon.info{background:#0969da33;color:var(--status-info-text)}.notification-icon.success{background:#23863633;color:var(--status-success-text)}.notification-content{flex:1;min-width:0}.notification-title{color:var(--text-primary);font-size:.85rem;font-weight:500;margin-bottom:.25rem}.notification-message{color:var(--text-muted);font-size:.75rem;line-height:1.4;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-time{color:var(--text-disabled);font-size:.7rem}.notification-empty{padding:2rem;text-align:center;color:var(--text-muted)}.notification-empty-icon{font-size:2rem;margin-bottom:.5rem}.language-selector{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);padding:.5rem;font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.language-selector:hover{border-color:var(--primary-color)}.language-selector:focus{outline:none;border-color:var(--primary-color)}@media (max-width: 1024px){.sidebar{width:220px}.main-content{padding:1.5rem}}@media (max-width: 768px){.mobile-menu-toggle{display:flex}.navbar{padding:.75rem 1rem;position:sticky;top:0;z-index:100}.navbar-brand .logo{height:32px}.navbar-user{gap:.5rem}.navbar-user>span{display:none}.logout-btn{padding:.5rem .75rem;font-size:.8rem}.sidebar{position:fixed;top:0;left:-280px;width:280px;height:100vh;z-index:999;transition:left .3s ease;padding-top:70px;overflow-y:auto}.sidebar.open{left:0}.dashboard-content{flex-direction:column}.main-content{padding:1rem;min-height:calc(100vh - 60px)}.main-content h2{font-size:1.25rem;margin-bottom:1rem}.stats-grid{grid-template-columns:1fr;gap:1rem}.stat-card{padding:1rem}.stat-number{font-size:2rem}.menu-item-header{padding:1rem 1.5rem;min-height:48px}.submenu-item{padding:.875rem 1.5rem .875rem 3rem;min-height:44px}.notification-dropdown{position:fixed;top:60px;right:0;left:0;width:100%;max-height:calc(100vh - 60px)}.language-selector{padding:.375rem;font-size:.8rem;width:50px;text-overflow:ellipsis}}@media (max-width: 480px){.navbar{padding:.5rem}.navbar-brand .logo{height:28px}.logout-btn{display:none}.mobile-menu-toggle,.notification-bell{width:40px;height:40px;font-size:1.2rem}.main-content{padding:.75rem}.sidebar-close{display:block;position:absolute;top:1rem;right:1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);width:36px;height:36px;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center}}@media (pointer: coarse){.menu-item-header,.submenu-item,.logout-btn,.mobile-menu-toggle,.notification-bell{min-height:44px}.notification-item{padding:1rem}}.sidebar-close{display:none;position:absolute;top:1rem;right:1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);width:36px;height:36px;font-size:1.25rem;cursor:pointer;align-items:center;justify-content:center}@media (max-width: 768px){.sidebar-close{display:flex}}.mobile-logout-item{display:none}@media (max-width: 480px){.mobile-logout-item{display:block;margin-top:1rem;border-top:1px solid var(--border-color);padding-top:1rem}}.notification-wrapper{position:relative}@media (max-width: 768px){.users-stats-row,.calendar-stats-row,.monitoring-stats{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.5rem}.users-stats-row .stat-card,.calendar-stats-row .stat-card{min-width:0;padding:1rem}.users-stats-row .stat-icon,.calendar-stats-row .stat-icon{width:40px;height:40px;font-size:1.25rem}.users-stats-row .stat-value,.calendar-stats-row .stat-value{font-size:1.25rem}.users-stats-row .stat-label,.calendar-stats-row .stat-label{font-size:.7rem}}@media (max-width: 768px){.calendar-wrapper{padding:.75rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.rbc-calendar{min-width:600px}.rbc-toolbar{flex-direction:column;gap:.5rem;margin-bottom:1rem}.rbc-toolbar-label{order:-1;width:100%;text-align:center;font-size:1rem}.rbc-btn-group{width:100%;display:flex;justify-content:center}.rbc-btn-group button{flex:1;padding:.5rem;font-size:.75rem}}@media (max-width: 480px){.calendar-wrapper{padding:.5rem;margin:0 -.5rem;border-radius:0;border-left:none;border-right:none}.rbc-calendar{min-width:500px}.rbc-header{padding:.5rem .25rem;font-size:.7rem}.rbc-date-cell{padding:.25rem;font-size:.75rem}.rbc-event{padding:.125rem .25rem;font-size:.65rem}}@media (max-width: 768px){.monitoring-header{padding:0 0 1rem}.page-title{font-size:1.25rem;word-break:break-word}.page-subtitle{font-size:.8rem}}@media (max-width: 768px){.users-table-card{overflow-x:auto;-webkit-overflow-scrolling:touch}.users-table{min-width:600px}}@media (max-width: 768px){.modal-content,.modal-dialog{margin:.5rem;max-width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);overflow-y:auto}}@media (max-width: 768px){.btn-group,.flex-gap-container{flex-wrap:wrap}}@media (max-width: 768px){input,select,textarea{font-size:16px!important}}@media (max-width: 768px){.sidebar{background:var(--bg-secondary, #1e1e2e)!important;opacity:1!important}.sidebar.open{left:0!important;background:var(--bg-secondary, #1e1e2e)!important}.mobile-overlay{z-index:997!important}.sidebar{z-index:999!important}}@media (max-width: 768px){.users-stats-row,.calendar-stats-row{display:block!important}.users-stats-row .stat-card,.calendar-stats-row .stat-card,.stat-card{display:flex!important;flex-direction:row!important;align-items:center!important;width:100%!important;margin-bottom:.75rem!important;padding:1rem!important;gap:1rem!important;box-sizing:border-box!important}.stat-icon{width:40px!important;height:40px!important;min-width:40px!important;flex-shrink:0!important;font-size:1.25rem!important}.stat-content{display:flex!important;flex-direction:column!important;flex:1!important}.stat-label{font-size:.75rem!important}.stat-value{font-size:1.5rem!important}}@media (max-width: 768px){.calendar-wrapper{width:100%!important;padding:.5rem!important;overflow:visible!important}.rbc-calendar{width:100%!important}.rbc-month-header,.rbc-row.rbc-month-header{display:flex!important;width:100%!important}.rbc-header{flex:1 1 0!important;min-width:0!important;width:auto!important;padding:4px 1px!important;font-size:9px!important;text-align:center!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rbc-month-view{display:flex!important;flex-direction:column!important;width:100%!important}.rbc-month-row{display:flex!important;flex-direction:column!important;flex:1!important;min-height:60px!important}.rbc-row-bg{display:flex!important;width:100%!important}.rbc-day-bg{flex:1 1 0!important;min-width:0!important}.rbc-row-content{display:flex!important;flex-direction:column!important;width:100%!important}.rbc-row{display:flex!important;width:100%!important}.rbc-date-cell{flex:1 1 0!important;min-width:0!important;padding:2px!important;font-size:10px!important;text-align:right!important}.rbc-row-segment{flex:1 1 0!important;min-width:0!important}.rbc-event{font-size:8px!important;padding:1px 2px!important;margin:0 1px 1px!important;line-height:1.2!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rbc-show-more{font-size:8px!important}.rbc-toolbar{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-bottom:10px!important;padding:0!important}.rbc-toolbar-label{width:100%!important;text-align:center!important;font-size:1rem!important;font-weight:600!important;order:-1!important;margin-bottom:4px!important}.rbc-btn-group{display:flex!important;flex:1!important}.rbc-btn-group button{flex:1!important;padding:8px 4px!important;font-size:10px!important;min-height:36px!important}}@media (max-width: 768px){.devices-grid{display:block!important}.device-card{width:100%!important;margin-bottom:1rem!important;padding:1rem!important;box-sizing:border-box!important}.device-header h3{font-size:1rem!important}.charts-section{width:100%!important}.chart-container{width:100%!important;padding:.5rem!important;overflow:hidden!important}.chart-container svg{width:100%!important;height:auto!important;max-height:100px!important}.metrics-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:.5rem!important}.metric-box{padding:.5rem!important}.metric-label{font-size:.65rem!important}.metric-value{font-size:.9rem!important}}@media (max-width: 768px){.users-table-card{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}.users-table{min-width:600px!important}}@media (max-width: 768px){.main-content,.main-monitoring-content{padding:1rem!important}.page-title{font-size:1.25rem!important}.monitoring-tabs{display:flex!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;flex-wrap:nowrap!important;gap:0!important}.monitoring-tab{flex-shrink:0!important;padding:.5rem .75rem!important;font-size:.8rem!important;white-space:nowrap!important}input,select,textarea{font-size:16px!important}}.jobs-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.jobs-stats-row .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem}.jobs-stats-row .stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.jobs-stats-row .stat-content{display:flex;flex-direction:column;gap:.25rem}.jobs-stats-row .stat-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.jobs-stats-row .stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.jobs-filter-bar{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;justify-content:space-between}.jobs-filter-bar .filter-group{display:flex;align-items:center;gap:.5rem}.jobs-filter-bar .filter-group label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.jobs-filter-bar .filter-group select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem 1rem;font-size:.875rem;cursor:pointer}.jobs-filter-bar .btn-primary{background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all var(--transition-fast)}.jobs-filter-bar .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.jobs-table-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.jobs-table{width:100%;border-collapse:collapse}.jobs-table thead{background:var(--bg-tertiary)}.jobs-table th{text-align:left;padding:1rem;color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.jobs-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary);font-size:.875rem}.jobs-table tbody tr:last-child td{border-bottom:none}.jobs-table tbody tr:hover{background:var(--bg-tertiary)}.job-number{color:var(--primary-color);font-weight:600;cursor:pointer;font-family:monospace;font-size:.85rem}.job-number:hover{text-decoration:underline}.job-title{color:var(--text-primary);font-weight:500}.job-customer{color:var(--text-muted);font-size:.75rem;margin-top:.25rem}.job-status-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.job-status-badge.status-draft{background:#6b72801a;color:#6b7280;border:1px solid rgba(107,114,128,.3)}.job-status-badge.status-active{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.job-status-badge.status-completed{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.job-status-badge.status-cancelled{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.count-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.count-badge:hover{background:var(--primary-color);color:var(--text-primary)}.jobs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--text-muted)}.jobs-empty .empty-icon{font-size:3rem;margin-bottom:1rem}.jobs-empty p{font-size:1rem}.jobs-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.jobs-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.jobs-modal h2{color:var(--text-primary);font-size:1.375rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.jobs-modal h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:1.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.jobs-modal .form-group{margin-bottom:1rem}.jobs-modal .form-group label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.jobs-modal .form-group input,.jobs-modal .form-group select,.jobs-modal .form-group textarea{width:100%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.9rem;transition:all var(--transition-fast);font-family:inherit}.jobs-modal .form-group input:focus,.jobs-modal .form-group select:focus,.jobs-modal .form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.jobs-modal .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.jobs-modal .form-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.jobs-modal .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color);margin-top:1.5rem}.jobs-modal .btn-cancel{padding:.625rem 1.25rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.jobs-modal .btn-cancel:hover{background:var(--bg-primary);border-color:var(--primary-color)}.jobs-modal .btn-submit{padding:.625rem 1.25rem;background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.jobs-modal .btn-submit:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.status-select{display:flex;gap:.5rem;flex-wrap:wrap}.status-option{padding:.5rem 1rem;border:2px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;font-weight:500;transition:all var(--transition-fast);background:transparent}.status-option:hover{border-color:var(--primary-color)}.status-option.selected{border-color:var(--primary-color);background:var(--primary-color);color:#fff}.status-option.draft{color:#6b7280}.status-option.draft.selected{background:#6b7280;border-color:#6b7280}.status-option.active{color:#22c55e}.status-option.active.selected{background:#22c55e;border-color:#22c55e}.status-option.completed{color:#3b82f6}.status-option.completed.selected{background:#3b82f6;border-color:#3b82f6}.status-option.cancelled{color:#ef4444}.status-option.cancelled.selected{background:#ef4444;border-color:#ef4444}.assigned-devices-table{width:100%;border-collapse:collapse;margin-top:.5rem}.assigned-devices-table th,.assigned-devices-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--border-color);font-size:.8rem}.assigned-devices-table th{color:var(--text-muted);font-weight:600;text-transform:uppercase}.btn-remove{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3);padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;cursor:pointer;transition:all var(--transition-fast)}.btn-remove:hover{background:#ef4444;color:#fff}.add-device-section{display:flex;gap:.5rem;margin-top:1rem}.add-device-section select{flex:1;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem;font-size:.875rem}.btn-add{background:var(--primary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-add:hover:not(:disabled){transform:translateY(-1px)}.btn-add:disabled{opacity:.5;cursor:not-allowed}.images-section{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:1rem}.images-column h5{color:var(--text-primary);font-size:.9rem;font-weight:600;margin-bottom:.75rem}.images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.75rem;margin-bottom:.75rem}.image-item{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-color);cursor:pointer}.image-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-fast)}.image-item:hover img{transform:scale(1.05)}.image-item .image-actions{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000c);padding:.5rem;display:flex;justify-content:flex-end;opacity:0;transition:opacity var(--transition-fast)}.image-item:hover .image-actions{opacity:1}.image-upload-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-tertiary);color:var(--text-secondary);border:1px dashed var(--border-color);border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast);width:100%}.image-upload-btn:hover{background:var(--bg-primary);border-color:var(--primary-color);color:var(--primary-color)}.image-preview-modal{position:relative;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.image-preview-modal .close-btn{position:absolute;top:.5rem;right:.5rem;background:var(--bg-tertiary);border:none;color:var(--text-primary);width:2rem;height:2rem;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1}.image-preview-modal .close-btn:hover{background:var(--primary-color)}.image-preview-modal img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:var(--radius-sm)}.image-preview-modal .image-info{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color);width:100%;color:var(--text-secondary);font-size:.875rem}.image-preview-modal .image-info p{margin:.25rem 0}.image-preview-modal .image-info strong{color:var(--text-primary)}.image-comment-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.image-comment-section label{display:block;margin-bottom:.5rem}.image-comment-section textarea{width:100%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem;font-size:.9rem;font-family:inherit;resize:vertical;min-height:60px}.image-comment-section textarea:focus{outline:none;border-color:var(--primary-color)}.image-comment-section .btn-primary{margin-top:.75rem;padding:.5rem 1rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem}.image-comment-section .btn-primary:hover{opacity:.9}.btn-icon{background:transparent;border:none;padding:.25rem;cursor:pointer;font-size:.875rem;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.btn-icon:hover{background:var(--bg-tertiary)}.btn-icon.btn-danger:hover{background:#ef444433}@media (max-width: 1200px){.jobs-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 992px){.jobs-table-wrapper{overflow-x:auto}.jobs-table{min-width:900px}}@media (max-width: 768px){.jobs-stats-row{grid-template-columns:1fr}.jobs-filter-bar{flex-direction:column;align-items:stretch}.jobs-modal .form-row,.jobs-modal .form-row-3,.images-section{grid-template-columns:1fr}.images-grid{grid-template-columns:repeat(3,1fr)}}.sites-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.sites-stats-row .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem}.sites-stats-row .stat-card:hover{transform:none;box-shadow:none}.sites-stats-row .stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.sites-stats-row .stat-content{display:flex;flex-direction:column;gap:.25rem}.sites-stats-row .stat-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.sites-stats-row .stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.sites-filter-bar{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap}.sites-filter-bar .filter-group{display:flex;align-items:center;gap:.5rem}.sites-filter-bar label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.sites-filter-bar select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.625rem 1rem;font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.sites-filter-bar select:hover{border-color:var(--primary-color)}.sites-filter-bar select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.sites-filter-bar .btn-primary{background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all var(--transition-fast);margin-left:auto}.sites-filter-bar .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.sites-table-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.sites-table{width:100%;border-collapse:collapse}.sites-table th{background:var(--bg-tertiary);color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--border-color)}.sites-table td{padding:1rem 1.25rem;color:var(--text-primary);font-size:.9rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.sites-table tbody tr{transition:background var(--transition-fast)}.sites-table tbody tr:hover{background:var(--bg-tertiary)}.sites-table tbody tr:last-child td{border-bottom:none}.site-name{color:var(--primary-color);cursor:pointer;font-weight:500;transition:opacity var(--transition-fast)}.site-name:hover{opacity:.8}.site-status-badge{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.site-status-badge.status-active{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.site-status-badge.status-completed{background:#f59e0b1a;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.site-status-badge.status-inactive{background:#6b72801a;color:#6b7280;border:1px solid rgba(107,114,128,.3)}.sites-empty{text-align:center;padding:3rem;color:var(--text-muted)}.sites-empty .empty-icon{font-size:3rem;margin-bottom:1rem}.sites-empty p{font-size:1rem;margin:0}.sites-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sites-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.sites-modal h2{color:var(--text-primary);font-size:1.375rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.sites-modal .form-group{margin-bottom:1.25rem}.sites-modal .form-group label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.sites-modal .form-group input,.sites-modal .form-group select{width:100%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.9rem;transition:all var(--transition-fast)}.sites-modal .form-group input:focus,.sites-modal .form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.sites-modal .form-row{display:grid;grid-template-columns:1fr 2fr;gap:1rem}.sites-modal .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color);margin-top:1.5rem}.sites-modal .btn-cancel{padding:.625rem 1.25rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.sites-modal .btn-cancel:hover{background:var(--bg-primary);border-color:var(--primary-color)}.sites-modal .btn-submit{padding:.625rem 1.25rem;background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.sites-modal .btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (max-width: 1200px){.sites-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.sites-stats-row{grid-template-columns:1fr}.sites-filter-bar{flex-direction:column;align-items:stretch}.sites-filter-bar .btn-primary{margin-left:0;justify-content:center}.sites-table-wrapper{overflow-x:auto}.sites-table{min-width:800px}.sites-modal .form-row{grid-template-columns:1fr}}.device-dashboard-container{padding:0}.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.dashboard-stats .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem}.dashboard-stats .stat-card:hover{transform:none;box-shadow:none}.dashboard-stats .stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.dashboard-stats .stat-content{display:flex;flex-direction:column;gap:.25rem}.dashboard-stats .stat-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.dashboard-stats .stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.dashboard-header h1{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0}.dashboard-controls{display:flex;align-items:center;gap:1rem}.auto-refresh-toggle{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.875rem;cursor:pointer}.auto-refresh-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--primary-color)}.btn-refresh{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.625rem 1rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-refresh:hover{border-color:var(--primary-color);background:var(--bg-secondary)}.dashboard-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem}.devices-sidebar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;max-height:calc(100vh - 300px);display:flex;flex-direction:column}.devices-sidebar h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.devices-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.5rem}.device-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem;cursor:pointer;transition:all var(--transition-fast)}.device-item:hover{border-color:var(--primary-color)}.device-item.active{border-color:var(--primary-color);background:#ff6b351a}.device-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.device-serial{color:var(--text-primary);font-size:.875rem;font-weight:600}.device-status-dot{width:10px;height:10px;border-radius:50%}.device-item-info{display:flex;flex-direction:column;gap:.25rem}.device-type{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.3px}.device-site{color:var(--text-secondary);font-size:.8125rem}.device-details{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem}.details-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.details-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0 0 .25rem}.device-type-label{color:var(--text-muted);font-size:.8125rem;margin:0}.status-badge{display:inline-block;padding:.375rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:#fff}.device-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.info-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:1rem}.info-label{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500;margin-bottom:.5rem}.info-value{color:var(--text-primary);font-size:1.125rem;font-weight:600}.chart-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.chart-controls h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0}.time-range-buttons{display:flex;gap:.5rem}.time-range-buttons button{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.time-range-buttons button:hover{border-color:var(--primary-color);color:var(--text-primary)}.time-range-buttons button.active{background:var(--primary-color);color:var(--text-primary);border-color:var(--primary-color)}.charts-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.chart-wrapper{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:1.25rem}.chart-wrapper h4{color:var(--text-primary);font-size:.9375rem;font-weight:600;margin:0 0 1rem}.no-device-selected{display:flex;justify-content:center;align-items:center;height:300px;color:var(--text-muted);font-size:1rem}.error-message{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);padding:1rem;color:#ef4444;margin-bottom:1.5rem;font-size:.875rem}.no-data-message{display:flex;justify-content:center;align-items:center;height:200px;color:var(--text-muted);font-size:.9rem}@media (max-width: 1200px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.charts-container{grid-template-columns:1fr}}@media (max-width: 992px){.dashboard-layout{grid-template-columns:1fr}.devices-sidebar{max-height:300px}}@media (max-width: 768px){.dashboard-stats{grid-template-columns:1fr}.dashboard-header{flex-direction:column;align-items:flex-start;gap:1rem}.device-info-grid{grid-template-columns:repeat(2,1fr)}.chart-controls{flex-direction:column;align-items:flex-start;gap:.75rem}}@media (max-width: 480px){.device-info-grid,.charts-container{grid-template-columns:1fr}.chart-wrapper{min-width:0}}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{overflow:visible;text-transform:none;-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar *:before,.rbc-calendar *:after{-webkit-box-sizing:inherit;box-sizing:inherit}.rbc-abs-full,.rbc-row-bg{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.rbc-ellipsis,.rbc-show-more,.rbc-row-segment .rbc-event-content,.rbc-event-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{overflow:hidden;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;text-align:center;vertical-align:middle;font-weight:700;font-size:90%;min-height:0;border-bottom:1px solid #ddd}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{color:inherit;background:none;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.rbc-row-content{position:relative;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{height:100%;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.rbc-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px;font-size:16px}.rbc-toolbar .rbc-toolbar-label{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{color:#373a3c;display:inline-block;margin:0;text-align:center;vertical-align:middle;background:none;background-image:none;border:1px solid #ccc;padding:.375rem 1rem;border-radius:4px;line-height:normal;white-space:nowrap}.rbc-toolbar button:active,.rbc-toolbar button.rbc-active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px #00000020;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button.rbc-active:focus{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.rbc-toolbar button:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:hover{color:#373a3c;cursor:pointer;background-color:#e6e6e6;border-color:#adadad}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:0 4px 4px 0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px 0 0 4px}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (max-width: 767px){.rbc-toolbar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.rbc-event,.rbc-day-slot .rbc-background-event{border:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;margin:0;padding:2px 5px;background-color:#3174ad;border-radius:5px;color:#fff;cursor:pointer;width:100%;text-align:left}.rbc-slot-selecting .rbc-event,.rbc-slot-selecting .rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-slot-selecting .rbc-background-event{cursor:inherit;pointer-events:none}.rbc-event.rbc-selected,.rbc-day-slot .rbc-selected.rbc-background-event{background-color:#265985}.rbc-event:focus,.rbc-day-slot .rbc-background-event:focus{outline:5px auto #3b99fc}.rbc-event-label{font-size:80%}.rbc-event-overlaps{-webkit-box-shadow:-1px 1px 5px 0px rgba(51,51,51,.5);box-shadow:-1px 1px 5px #33333380}.rbc-event-continues-prior{border-top-left-radius:0;border-bottom-left-radius:0}.rbc-event-continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{background-color:#ffffff4d;z-index:4;font-weight:700;font-size:85%;height:auto;line-height:normal;color:#3174ad}.rbc-show-more:hover,.rbc-show-more:focus{color:#265985}.rbc-month-view{position:relative;border:1px solid #ddd;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;height:100%}.rbc-month-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-month-row{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px;overflow:hidden;height:100%}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:hidden;right:1px}.rbc-day-bg{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{position:absolute;z-index:5;border:1px solid #e5e5e5;background-color:#fff;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.25);box-shadow:0 5px 15px #00000040;padding:10px}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{width:100%;border:1px solid #ddd;border-spacing:0;border-collapse:collapse}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{padding:3px 5px;text-align:left;border-bottom:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{-webkit-box-flex:1;-ms-flex:1;flex:1}.rbc-timeslot-group{border-bottom:1px solid #ddd;min-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.rbc-time-gutter,.rbc-header-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{bottom:0;left:0;position:absolute;right:0;margin-right:10px;top:0}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-event,.rbc-day-slot .rbc-background-event{border:1px solid #265985;display:-webkit-box;display:-ms-flexbox;display:flex;max-height:100%;min-height:20px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{-webkit-box-flex:0;-ms-flex:none;flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{width:100%;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;word-wrap:break-word;line-height:1;height:100%;min-height:1em}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{position:sticky;left:0;background-color:#fff;border-right:1px solid #ddd;z-index:10;margin-right:-1px}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{min-width:auto;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-header,.rbc-time-view-resources .rbc-day-bg{width:140px;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;-ms-flex-preferred-size:0 px;flex-basis:0 px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{z-index:10;position:absolute;background-color:#00000080;color:#fff;font-size:75%;width:100%;padding:3px}.rbc-slot-selecting{cursor:move}.rbc-time-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;border:1px solid #ddd;min-height:0}.rbc-time-view .rbc-time-gutter{white-space:nowrap;text-align:right}.rbc-time-view .rbc-allday-cell{-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;height:100%;position:relative}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{-webkit-box-sizing:border-box;box-sizing:border-box;min-height:20px}.rbc-time-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-right-width:0;border-left:1px solid #ddd}.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;min-width:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-left:1px solid #ddd}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;-ms-flex-negative:0;flex-shrink:0}.rbc-time-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:100%;border-top:2px solid #ddd;overflow-y:auto;position:relative}.rbc-time-content>.rbc-time-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.rbc-current-time-indicator{position:absolute;z-index:3;left:0;right:0;height:1px;background-color:#74ad31;pointer-events:none}.rbc-resource-grouping.rbc-time-header-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.calendar-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.calendar-stats-row .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.calendar-stats-row .stat-card:hover{transform:none;box-shadow:none}.calendar-stats-row .stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.calendar-stats-row .stat-content{display:flex;flex-direction:column;gap:.25rem}.calendar-stats-row .stat-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.calendar-stats-row .stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}@media (max-width: 1200px){.calendar-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.calendar-stats-row{grid-template-columns:1fr}}.calendar-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.calendar-wrapper:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.rbc-calendar{background:var(--bg-secondary);color:var(--text-primary);font-family:inherit}.rbc-header{background:var(--bg-tertiary);color:var(--text-primary);border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);padding:.75rem;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.3px}.rbc-header:last-child{border-right:none}.rbc-today{background:#ff6b351a}.rbc-off-range{color:var(--text-muted);opacity:.5}.rbc-off-range-bg{background:var(--bg-primary)}.rbc-event{border-radius:var(--radius-sm);padding:2px 5px;font-size:.75rem;font-weight:500;border:none}.rbc-month-view,.rbc-time-view{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.rbc-day-bg,.rbc-month-row{border-color:var(--border-color)}.rbc-day-bg{transition:background var(--transition-fast)}.rbc-day-bg:hover{background:var(--bg-tertiary)}.rbc-date-cell{padding:.5rem}.rbc-date-cell a{color:var(--text-primary);font-weight:500;font-size:.875rem}.rbc-date-cell.rbc-now a{color:var(--primary-color);font-weight:600}.rbc-toolbar{margin-bottom:1.25rem;padding:0;background:transparent;border:none;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.rbc-toolbar .rbc-toolbar-label{color:var(--text-primary);font-size:1.125rem;font-weight:600;flex-grow:1;text-align:center}.rbc-btn-group{display:flex;gap:.5rem}.rbc-toolbar button{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);padding:.625rem 1rem;border-radius:var(--radius-sm);transition:all var(--transition-fast);font-weight:500;font-size:.875rem;cursor:pointer}.rbc-toolbar button:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--primary-color)}.rbc-toolbar button.rbc-active,.rbc-toolbar button:active{background:var(--primary-color);color:var(--text-primary);border-color:var(--primary-color)}.rbc-toolbar button:focus{outline:none;box-shadow:0 0 0 2px #ff6b3533}.rbc-month-view{min-height:500px}.rbc-month-row{border-top:1px solid var(--border-color);min-height:80px}.rbc-month-row:first-child{border-top:none}.rbc-date-cell{text-align:right}.rbc-event-content{font-size:.75rem;line-height:1.2}.rbc-show-more{background:var(--bg-tertiary);color:var(--primary-color);border-radius:var(--radius-sm);padding:2px 4px;font-size:.7rem;font-weight:600;margin-top:2px;cursor:pointer;transition:all var(--transition-fast)}.rbc-show-more:hover{background:var(--primary-color);color:var(--text-primary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-content h2{color:var(--text-primary);font-size:1.375rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.job-details{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.detail-row strong{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.3px;font-weight:600}.detail-row span:not(strong){color:var(--text-primary);font-size:.9375rem;font-weight:600}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.status-badge.status-scheduled{background:#2196f31a;color:var(--info-color);border:1px solid var(--info-color)}.status-badge.status-in-progress{background:#ff98001a;color:var(--warning-color);border:1px solid var(--warning-color)}.status-badge.status-completed{background:#4caf501a;color:var(--success-color);border:1px solid var(--success-color)}.status-badge.status-cancelled{background:#f443361a;color:var(--error-color);border:1px solid var(--error-color)}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color)}.btn-cancel{padding:.625rem 1.25rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.btn-cancel:hover{background:var(--bg-primary);border-color:var(--primary-color)}.btn-submit{padding:.625rem 1.25rem;background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.btn-submit:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (max-width: 768px){.calendar-wrapper{padding:1rem}.rbc-toolbar{flex-direction:column;align-items:stretch}.rbc-toolbar .rbc-toolbar-label{text-align:left;margin-bottom:.5rem}.rbc-btn-group{justify-content:center}.rbc-toolbar button{font-size:.8125rem;padding:.5rem .75rem}.modal-content{padding:1.25rem}.detail-row{flex-direction:column;align-items:flex-start;gap:.5rem}}@media (max-width: 480px){.calendar-wrapper{padding:.75rem}.rbc-month-row{min-height:60px}.rbc-toolbar button{padding:.5rem;font-size:.75rem}.modal-content{width:95%;padding:1rem}}@media (max-width: 768px){.calendar-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.5rem;padding:1rem .5rem;border-radius:0}.rbc-calendar{min-width:100%}.rbc-toolbar{flex-wrap:wrap;gap:.5rem;padding:0 .5rem}.rbc-toolbar-label{width:100%;text-align:center;order:-1;font-size:1rem;margin-bottom:.5rem}.rbc-btn-group{flex:1;display:flex}.rbc-btn-group button{flex:1;padding:.5rem .25rem;font-size:.75rem;min-height:44px}.rbc-month-view{border:none}.rbc-header{padding:.5rem .25rem;font-size:.7rem;text-transform:uppercase}.rbc-date-cell{padding:.25rem;font-size:.8rem}.rbc-event{padding:.125rem .25rem;font-size:.65rem;border-radius:2px}.rbc-show-more{font-size:.65rem}.rbc-time-view{overflow-x:auto}.rbc-time-header,.rbc-time-content{min-width:400px}}@media (max-width: 480px){.rbc-toolbar-label{font-size:.9rem}.rbc-btn-group button{font-size:.65rem;padding:.4rem .2rem}.rbc-header{font-size:.6rem;padding:.25rem}.rbc-date-cell{font-size:.7rem;padding:.125rem}.rbc-event{font-size:.55rem;padding:.1rem .15rem}.rbc-row-segment{padding:0 1px}}@media (pointer: coarse){.rbc-btn-group button,.rbc-event{min-height:44px}.rbc-date-cell{min-height:60px}}.reports-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.reports-stats-row .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem}.reports-stats-row .stat-card:hover{transform:none;box-shadow:none}.reports-stats-row .stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.reports-stats-row .stat-content{display:flex;flex-direction:column;gap:.25rem}.reports-stats-row .stat-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.reports-stats-row .stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.reports-filter-bar{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap}.reports-filter-bar .filter-group{display:flex;align-items:center;gap:.5rem}.reports-filter-bar label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.reports-filter-bar select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.625rem 1rem;font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.reports-filter-bar select:hover{border-color:var(--primary-color)}.reports-filter-bar select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.reports-filter-bar .btn-generate{background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all var(--transition-fast);margin-left:auto}.reports-filter-bar .btn-generate:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.reports-table-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.reports-table{width:100%;border-collapse:collapse}.reports-table th{background:var(--bg-tertiary);color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--border-color)}.reports-table td{padding:1rem 1.25rem;color:var(--text-primary);font-size:.9rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.reports-table tbody tr{transition:background var(--transition-fast)}.reports-table tbody tr:hover{background:var(--bg-tertiary)}.reports-table tbody tr:last-child td{border-bottom:none}.report-type-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.report-type-badge.type-job-summary{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.report-type-badge.type-site-report{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.report-type-badge.type-device-stats{background:#a855f71a;color:#a855f7;border:1px solid rgba(168,85,247,.3)}.report-type-badge.type-financial{background:#f59e0b1a;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.reports-table .status-badge{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.reports-table .status-badge.status-completed{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.reports-table .status-badge.status-generating{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.reports-table .status-badge.status-failed{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.reports-table .action-buttons{display:flex;gap:.5rem;align-items:center}.reports-table .action-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;font-size:1rem}.reports-table .action-btn:hover{border-color:var(--primary-color);background:var(--bg-secondary)}.reports-table .action-btn.download-pdf,.reports-table .action-btn.download-csv{padding:.5rem .75rem;font-size:.8rem;gap:.25rem}.reports-table .action-btn.download-pdf:hover{border-color:#ef4444;background:#ef44441a;color:#ef4444}.reports-table .action-btn.download-csv:hover{border-color:#22c55e;background:#22c55e1a;color:#22c55e}.reports-table .action-btn.delete:hover{border-color:#ef4444;background:#ef44441a}.reports-empty{text-align:center;padding:3rem;color:var(--text-muted)}.reports-empty .empty-icon{font-size:3rem;margin-bottom:1rem}.reports-empty p{font-size:1rem;margin:0}.reports-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reports-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.reports-modal h2{color:var(--text-primary);font-size:1.375rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.reports-modal .form-group{margin-bottom:1.25rem}.reports-modal .form-group label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.reports-modal .form-group input,.reports-modal .form-group select{width:100%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.9rem;transition:all var(--transition-fast)}.reports-modal .form-group input:focus,.reports-modal .form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.reports-modal .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color);margin-top:1.5rem}.reports-modal .btn-cancel{padding:.625rem 1.25rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.reports-modal .btn-cancel:hover{background:var(--bg-primary);border-color:var(--primary-color)}.reports-modal .btn-submit{padding:.625rem 1.25rem;background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.reports-modal .btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.reports-modal .btn-submit:disabled{opacity:.6;cursor:not-allowed}.reports-modal.reports-modal-large{max-width:900px;max-height:90vh}.job-preview{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.job-preview h4{color:var(--text-primary);font-size:.9rem;font-weight:600;margin:1.25rem 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.job-preview h4:first-child{margin-top:0}.job-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.preview-item{background:var(--bg-tertiary);padding:.75rem;border-radius:var(--radius-sm)}.preview-label{display:block;color:var(--text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.3px;font-weight:600;margin-bottom:.25rem}.preview-value{color:var(--text-primary);font-size:.875rem;font-weight:500}.preview-table{width:100%;border-collapse:collapse;margin-top:.5rem;font-size:.8rem}.preview-table th,.preview-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--border-color)}.preview-table th{background:var(--bg-tertiary);color:var(--text-muted);font-weight:600;text-transform:uppercase;font-size:.7rem}.preview-table td{color:var(--text-primary)}.preview-table tbody tr:hover{background:var(--bg-tertiary)}.no-data{color:var(--text-muted);font-size:.875rem;font-style:italic;margin:.5rem 0}.images-preview{margin-top:.5rem}.images-summary{display:flex;gap:1.5rem;background:var(--bg-tertiary);padding:.75rem 1rem;border-radius:var(--radius-sm)}.images-summary span{color:var(--text-secondary);font-size:.875rem}.report-info{margin-top:1.5rem;padding:1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:var(--radius-sm)}.report-info p{color:var(--text-primary);font-size:.875rem;font-weight:500;margin:0 0 .75rem}.report-info ul{margin:0;padding-left:1.5rem}.report-info li{color:var(--text-secondary);font-size:.8rem;margin-bottom:.25rem}@media (max-width: 1200px){.reports-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.reports-stats-row{grid-template-columns:1fr}.reports-filter-bar{flex-direction:column;align-items:stretch}.reports-filter-bar .btn-generate{margin-left:0;justify-content:center}.reports-table-wrapper{overflow-x:auto}.reports-table{min-width:600px}.job-preview-grid{grid-template-columns:1fr}.images-summary{flex-direction:column;gap:.5rem}.preview-table{font-size:.75rem}.preview-table th,.preview-table td{padding:.375rem}}.roles-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.roles-stats-row .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem}.roles-stats-row .stat-card:hover{transform:none;box-shadow:none}.roles-stats-row .stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.roles-stats-row .stat-content{display:flex;flex-direction:column;gap:.25rem}.roles-stats-row .stat-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.roles-stats-row .stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.roles-filter-bar{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;justify-content:flex-end}.roles-filter-bar .btn-primary{background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all var(--transition-fast)}.roles-filter-bar .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.roles-table-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.roles-table{width:100%;border-collapse:collapse}.roles-table th{background:var(--bg-tertiary);color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--border-color)}.roles-table td{padding:1rem 1.25rem;color:var(--text-primary);font-size:.9rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.roles-table tbody tr{transition:background var(--transition-fast)}.roles-table tbody tr:hover{background:var(--bg-tertiary)}.roles-table tbody tr:last-child td{border-bottom:none}.role-name-link{color:var(--primary-color);cursor:pointer;font-weight:500;transition:opacity var(--transition-fast)}.role-name-link:hover{opacity:.8}.action-buttons{display:flex;gap:.5rem;align-items:center}.action-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;font-size:1rem}.action-btn:hover{border-color:var(--primary-color);background:var(--bg-secondary)}.action-btn.delete:hover{border-color:#ef4444;background:#ef44441a}.roles-empty{text-align:center;padding:3rem;color:var(--text-muted)}.roles-empty .empty-icon{font-size:3rem;margin-bottom:1rem}.roles-empty p{font-size:1rem;margin:0}.roles-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.roles-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.roles-modal h2{color:var(--text-primary);font-size:1.375rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.roles-modal .form-group{margin-bottom:1.25rem}.roles-modal .form-group label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.roles-modal .form-group input,.roles-modal .form-group select,.roles-modal .form-group textarea{width:100%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.9rem;transition:all var(--transition-fast);font-family:inherit}.roles-modal .form-group input:focus,.roles-modal .form-group select:focus,.roles-modal .form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.permissions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;max-height:250px;overflow-y:auto;padding:.5rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.permission-checkbox{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.permission-checkbox:hover{border-color:var(--primary-color)}.permission-checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--primary-color);margin-top:.125rem;flex-shrink:0}.permission-info{display:flex;flex-direction:column;gap:.125rem}.permission-name{color:var(--text-primary);font-size:.8125rem;font-weight:600}.permission-description{color:var(--text-muted);font-size:.75rem}.roles-modal .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color);margin-top:1.5rem}.roles-modal .btn-cancel{padding:.625rem 1.25rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.roles-modal .btn-cancel:hover{background:var(--bg-primary);border-color:var(--primary-color)}.roles-modal .btn-submit{padding:.625rem 1.25rem;background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.roles-modal .btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (max-width: 1200px){.roles-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.roles-stats-row{grid-template-columns:1fr}.roles-table-wrapper{overflow-x:auto}.roles-table{min-width:400px}.permissions-grid{grid-template-columns:1fr}}.email-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.email-stats-row .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem}.email-stats-row .stat-card:hover{transform:none;box-shadow:none}.email-stats-row .stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.email-stats-row .stat-content{display:flex;flex-direction:column;gap:.25rem}.email-stats-row .stat-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.email-stats-row .stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.email-filter-bar{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;justify-content:flex-end}.email-filter-bar .btn-primary{background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all var(--transition-fast)}.email-filter-bar .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.email-templates-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem}.templates-sidebar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;max-height:calc(100vh - 400px);display:flex;flex-direction:column}.templates-sidebar h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.templates-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.5rem}.template-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem;cursor:pointer;transition:all var(--transition-fast);display:flex;justify-content:space-between;align-items:center}.template-item:hover{border-color:var(--primary-color)}.template-item.active{border-color:var(--primary-color);background:#ff6b351a}.template-item-name{color:var(--text-primary);font-size:.875rem;font-weight:500}.template-item-actions{display:flex;gap:.25rem}.action-btn-small{background:transparent;border:none;padding:.25rem;cursor:pointer;font-size:.875rem;opacity:.7;transition:opacity var(--transition-fast)}.action-btn-small:hover{opacity:1}.template-editor{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.editor-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.editor-actions{display:flex;gap:.5rem}.btn-toggle{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-toggle:hover{border-color:var(--primary-color);color:var(--text-primary)}.btn-toggle.active{background:var(--primary-color);color:var(--text-primary);border-color:var(--primary-color)}.editor-content{display:flex;flex-direction:column;gap:1.25rem}.field-group{display:flex;flex-direction:column;gap:.5rem}.field-group label{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.3px;font-weight:600}.field-value{color:var(--text-primary);font-size:.9375rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem 1rem}.field-value.body-content{max-height:300px;overflow-y:auto}.field-value pre{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:inherit;font-size:.875rem;line-height:1.5}.variables-list{display:flex;flex-wrap:wrap;gap:.5rem}.variable-tag{display:inline-block;padding:.25rem .5rem;background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;font-family:monospace}.preview-content{display:flex;flex-direction:column;gap:1rem}.preview-header{color:var(--text-primary);padding:.75rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.preview-body{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:1rem;max-height:400px;overflow-y:auto}.preview-body pre{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:inherit;font-size:.875rem;line-height:1.5;color:var(--text-primary)}.preview-note{color:var(--text-muted);font-size:.75rem;font-style:italic}.no-template-selected{display:flex;flex-direction:column;justify-content:center;align-items:center;height:300px;color:var(--text-muted);text-align:center}.no-template-selected .empty-icon{font-size:3rem;margin-bottom:1rem}.no-template-selected p{font-size:1rem;margin:0}.email-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.email-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;width:90%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.email-modal h2{color:var(--text-primary);font-size:1.375rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.email-modal .form-group{margin-bottom:1.25rem}.email-modal .form-group label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.email-modal .form-group input,.email-modal .form-group textarea{width:100%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.9rem;transition:all var(--transition-fast);font-family:inherit}.email-modal .form-group input:focus,.email-modal .form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.email-modal .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color);margin-top:1.5rem}.email-modal .btn-cancel{padding:.625rem 1.25rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.email-modal .btn-cancel:hover{background:var(--bg-primary);border-color:var(--primary-color)}.email-modal .btn-submit{padding:.625rem 1.25rem;background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.email-modal .btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (max-width: 1200px){.email-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 992px){.email-templates-layout{grid-template-columns:1fr}.templates-sidebar{max-height:250px}}@media (max-width: 768px){.email-stats-row{grid-template-columns:1fr}.editor-header{flex-direction:column;align-items:flex-start;gap:1rem}}.devices-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}.devices-stats-row .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem}.devices-stats-row .stat-card:hover{transform:none;box-shadow:none}.devices-stats-row .stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.devices-stats-row .stat-content{display:flex;flex-direction:column;gap:.25rem}.devices-stats-row .stat-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.devices-stats-row .stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.devices-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:0}.devices-tab{background:transparent;color:var(--text-secondary);border:none;border-bottom:2px solid transparent;padding:.75rem 1.25rem;font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:.5rem}.devices-tab:hover{color:var(--text-primary)}.devices-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.devices-filter-bar{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;justify-content:space-between}.devices-filter-bar .filter-group{display:flex;align-items:center;gap:.5rem}.devices-filter-bar .filter-group label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.devices-filter-bar .filter-group select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem 1rem;font-size:.875rem;cursor:pointer}.devices-filter-bar .btn-primary{background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all var(--transition-fast)}.devices-filter-bar .btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.devices-filter-bar .btn-primary:disabled{opacity:.6;cursor:not-allowed}.scan-info{color:var(--text-muted);font-size:.875rem}.devices-table-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.devices-table{width:100%;border-collapse:collapse}.devices-table thead{background:var(--bg-tertiary)}.devices-table th{text-align:left;padding:1rem;color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.devices-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary);font-size:.875rem}.devices-table tbody tr:last-child td{border-bottom:none}.devices-table tbody tr:hover{background:var(--bg-tertiary)}.device-mac{color:var(--primary-color);font-weight:600;cursor:pointer;font-family:monospace;font-size:.85rem}.device-mac:hover{text-decoration:underline}.device-serial{color:var(--text-muted);font-size:.75rem;margin-top:.25rem;font-family:monospace}.device-manufacturer{color:var(--text-muted);font-size:.75rem}.rssi-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.rssi-badge.good{background:#22c55e1a;color:#22c55e}.rssi-badge.medium{background:#f59e0b1a;color:#f59e0b}.rssi-badge.weak{background:#ef44441a;color:#ef4444}.rssi-badge.unknown{background:var(--bg-tertiary);color:var(--text-muted)}.online-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.online-badge.online{background:#22c55e1a;color:#22c55e}.online-badge.offline{background:var(--bg-tertiary);color:var(--text-muted)}.device-status-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.device-status-badge.status-available{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.device-status-badge.status-in_use{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.device-status-badge.status-maintenance{background:#f59e0b1a;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.device-status-badge.status-defect{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.job-info{display:flex;flex-direction:column;gap:.125rem}.job-number{color:var(--primary-color);font-weight:600;font-size:.8rem}.job-title{color:var(--text-muted);font-size:.7rem}.no-job{color:var(--text-muted)}.action-btn{background:transparent;border:none;padding:.375rem;cursor:pointer;font-size:1rem;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.action-btn:hover{background:var(--bg-tertiary)}.action-btn.delete:hover{background:#ef44441a}.btn-assign{background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);padding:.5rem 1rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-assign:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.devices-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--text-muted)}.devices-empty .empty-icon{font-size:3rem;margin-bottom:1rem}.devices-empty p{font-size:1rem}.devices-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.devices-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;width:90%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.devices-modal h2{color:var(--text-primary);font-size:1.375rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.devices-modal .form-group{margin-bottom:1rem}.devices-modal .form-group label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.devices-modal .form-group input,.devices-modal .form-group select,.devices-modal .form-group textarea{width:100%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.9rem;transition:all var(--transition-fast);font-family:inherit}.devices-modal .form-group input:focus,.devices-modal .form-group select:focus,.devices-modal .form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.devices-modal .form-group input:disabled{opacity:.6;cursor:not-allowed}.devices-modal .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.devices-modal .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color);margin-top:1.5rem}.devices-modal .btn-cancel{padding:.625rem 1.25rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.devices-modal .btn-cancel:hover{background:var(--bg-primary);border-color:var(--primary-color)}.devices-modal .btn-submit{padding:.625rem 1.25rem;background:var(--primary-color);color:var(--text-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-fast)}.devices-modal .btn-submit:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.loading{display:flex;justify-content:center;align-items:center;height:300px;color:var(--text-muted);font-size:1rem}@media (max-width: 1200px){.devices-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 992px){.devices-table-wrapper{overflow-x:auto}.devices-table{min-width:800px}}@media (max-width: 768px){.devices-stats-row{grid-template-columns:1fr}.devices-filter-bar{flex-direction:column;align-items:stretch}.devices-tabs{flex-wrap:wrap}.devices-modal .form-row{grid-template-columns:1fr}}.dashboard-overview{padding:0}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1.25rem 1.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg)}.dashboard-header h2{margin:0;font-size:1.75rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:.75rem}.dashboard-header h2:before{content:"📊";font-size:1.5rem}.last-update{font-size:.8rem;color:var(--text-muted);background:var(--bg-tertiary);padding:.5rem 1rem;border-radius:var(--radius-md);display:flex;align-items:center;gap:.5rem}.last-update:before{content:"🕐";font-size:.9rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--text-muted)}.loading-spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1.5rem}.alarms-banner{background:linear-gradient(135deg,#fee2e2,#fef3c7);border:1px solid #fca5a5;border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:2rem}.alarms-banner-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.alarm-icon{font-size:1.75rem}.alarm-count{font-weight:600;color:#991b1b;font-size:1.2rem}.alarms-list{display:flex;flex-direction:column;gap:.625rem}.alarm-item{display:flex;align-items:center;gap:1rem;background:#fff;padding:1rem 1.25rem;border-radius:var(--radius-md);border-left:4px solid #ef4444;box-shadow:0 1px 3px #0000000d}.alarm-item.severity-critical{border-left-color:#dc2626;background:#fef2f2}.alarm-item.severity-warning{border-left-color:#f59e0b;background:#fffbeb}.alarm-type-icon{font-size:1.5rem}.alarm-details{flex:1;display:flex;flex-direction:column;gap:.25rem}.alarm-device{font-weight:600;color:#1f2937;font-size:.95rem}.alarm-message{color:#6b7280;font-size:.85rem}.alarm-time{color:#9ca3af;font-size:.75rem}.acknowledge-btn{background:#22c55e;color:#fff;border:none;border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.acknowledge-btn:hover{background:#16a34a;transform:scale(1.1)}.alarms-more{text-align:center;color:#6b7280;font-size:.9rem;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #fca5a5}.dashboard-overview .stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2rem;align-items:stretch}.dashboard-overview .stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem}.dashboard-overview .stat-card:hover{transform:none;box-shadow:none;border-color:var(--border-color)}.dashboard-overview .stat-header{display:flex;align-items:center;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.dashboard-overview .stat-header.clickable{cursor:pointer;transition:color .2s ease}.dashboard-overview .stat-header.clickable:hover h3{color:var(--primary-color)}.dashboard-overview .stat-header.clickable:hover .stat-icon{transform:scale(1.1);transition:transform .2s ease}.dashboard-overview .stat-header h3{margin:0;font-size:1.1rem;color:var(--text-primary);font-weight:600}.dashboard-overview .stat-icon{font-size:1.5rem}.dashboard-overview .stat-main{display:flex;align-items:baseline;gap:.5rem;padding:.5rem 0}.dashboard-overview .stat-number{font-size:3rem;font-weight:700;color:var(--primary-color);line-height:1}.dashboard-overview .stat-number.has-alarms{color:#ef4444;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.dashboard-overview .stat-unit{font-size:1rem;color:var(--text-muted)}.dashboard-overview .stat-chart{display:flex;justify-content:center;padding:.75rem 0}.dashboard-overview .donut-chart{position:relative;width:160px;height:160px}.dashboard-overview .donut-chart svg{transform:rotate(-90deg);width:100%;height:100%}.dashboard-overview .donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.dashboard-overview .online-count{display:block;font-size:2rem;font-weight:700;color:var(--text-primary)}.dashboard-overview .online-label{display:block;font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.dashboard-overview .stat-legend{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;padding-top:1rem;border-top:1px solid var(--border-color)}.dashboard-overview .legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary)}.dashboard-overview .legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.dashboard-overview .stat-bars{display:flex;flex-direction:column;gap:1rem}.dashboard-overview .bar-item{display:flex;flex-direction:column;gap:.5rem}.dashboard-overview .bar-label{display:flex;justify-content:space-between;font-size:.875rem;color:var(--text-secondary)}.dashboard-overview .bar-label span:last-child{font-weight:600;color:var(--text-primary)}.dashboard-overview .bar-track{height:10px;background:var(--bg-tertiary);border-radius:var(--radius-sm);overflow:hidden}.dashboard-overview .bar-fill{height:100%;border-radius:var(--radius-sm);transition:width .5s ease}.dashboard-overview .alarm-breakdown{display:flex;flex-direction:column;gap:.5rem}.dashboard-overview .alarm-type-row{display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-secondary);padding:.625rem 0;border-bottom:1px solid var(--border-color)}.dashboard-overview .alarm-type-row:last-child{border-bottom:none}.dashboard-overview .alarm-type-row span:last-child{font-weight:600;color:var(--text-primary)}.dashboard-overview .connection-visual{display:flex;justify-content:center;padding:.75rem 0}.dashboard-overview .connection-ring{position:relative;width:140px;height:140px}.dashboard-overview .connection-ring svg{width:100%;height:100%}.dashboard-overview .connection-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.dashboard-overview .connection-percent{font-size:2rem;font-weight:700;color:var(--text-primary)}.dashboard-overview .connection-details{display:flex;flex-direction:column;gap:.75rem;padding-top:1rem;border-top:1px solid var(--border-color)}.dashboard-overview .connection-row{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:var(--text-secondary)}.dashboard-overview .connection-row span:last-child{margin-left:auto;font-weight:600;font-size:1rem;color:var(--text-primary)}.dashboard-overview .connection-row .status-dot{width:10px;height:10px;border-radius:50%}.dashboard-overview .connection-row.online .status-dot{background:#22c55e;box-shadow:0 0 6px #22c55e80}.dashboard-overview .connection-row.offline .status-dot{background:#ef4444}.week-calendar{margin-bottom:2rem}.card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.calendar-header h3{margin:0;font-size:1.25rem;color:var(--text-primary);font-weight:600}.nav-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.625rem 1.25rem;cursor:pointer;color:var(--text-primary);font-size:1rem;transition:all .2s}.nav-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem}.calendar-grid.two-weeks{grid-template-columns:repeat(7,1fr);gap:.625rem}.calendar-day{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1rem;min-height:350px;display:flex;flex-direction:column;transition:all .2s}.calendar-day:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #0000000d}.calendar-day.today{border-color:var(--primary-color);border-width:2px;background:#3b82f608}.calendar-day.weekend{background:var(--bg-tertiary)}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.day-name{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;font-weight:500;letter-spacing:.5px}.day-date{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.calendar-day.today .day-date{color:var(--primary-color);background:#3b82f61a;padding:.25rem .5rem;border-radius:var(--radius-md)}.day-jobs{display:flex;flex-direction:column;gap:.25rem;flex:1;overflow-y:auto}.job-chip{background:var(--bg-secondary);border-left:3px solid;border-radius:var(--radius-sm);padding:.35rem .5rem;font-size:.7rem;display:flex;align-items:center;justify-content:space-between;gap:.25rem;cursor:pointer;transition:all .2s}.job-chip:hover{background:var(--bg-tertiary);transform:translate(2px)}.job-number{font-weight:600;color:var(--text-primary);font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-title{font-size:.65rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-devices{color:var(--text-muted);font-size:.65rem;display:flex;align-items:center;gap:.15rem;flex-shrink:0}.more-jobs{font-size:.65rem;color:var(--text-muted);text-align:center;padding:.25rem;background:var(--bg-tertiary);border-radius:var(--radius-sm);margin-top:auto}.week-separator{grid-column:1 / -1;display:flex;align-items:center;gap:1rem;padding:.5rem 0;color:var(--text-muted);font-size:.85rem;font-weight:500}.week-separator:before,.week-separator:after{content:"";flex:1;height:1px;background:var(--border-color)}.user-section{margin-top:2rem}.user-section h3{margin:0 0 1.25rem;font-size:1.1rem;color:var(--text-primary);font-weight:600}.user-details{display:flex;align-items:center;gap:1.25rem}.user-avatar{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color) 0%,#6366f1 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:600;box-shadow:0 4px 12px #3b82f64d}.user-info-text{display:flex;flex-direction:column;gap:.25rem}.user-name{font-weight:600;font-size:1.1rem;color:var(--text-primary)}.user-role{font-size:.9rem;color:var(--primary-color);font-weight:500}.user-company{font-size:.85rem;color:var(--text-muted)}@media (max-width: 1600px){.stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1400px){.calendar-grid{grid-template-columns:repeat(7,1fr)}.calendar-day{min-height:280px}}@media (max-width: 1200px){.calendar-grid{grid-template-columns:repeat(4,1fr)}.calendar-day{min-height:250px}}@media (max-width: 768px){.stats-row{grid-template-columns:1fr}.calendar-grid{grid-template-columns:repeat(2,1fr)}.stat-legend{grid-template-columns:1fr}.calendar-day{min-height:200px}.dashboard-header{flex-direction:column;gap:1rem;align-items:flex-start}}.main-monitoring-content{flex:1;padding:2rem;overflow-y:auto}.monitoring-header{margin-bottom:2rem}.page-title{color:var(--text-primary);font-size:2rem;font-weight:700;margin:0 0 .5rem}.page-subtitle{color:var(--text-muted);font-size:1rem;margin:0;font-weight:400}.monitoring-tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--border-color);margin-bottom:2rem}.monitoring-tab{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;font-size:.95rem;font-weight:500;transition:all var(--transition-fast)}.monitoring-tab:hover{color:var(--text-secondary)}.monitoring-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card-title{color:var(--text-primary);margin:0 0 1rem;font-size:1.375rem;font-weight:600}.card-content{color:var(--text-secondary);line-height:1.6}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-md);transition:all var(--transition-base)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary-color)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.stat-content{display:flex;flex-direction:column;gap:4px}.stat-label{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg)}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.status-indicator{width:12px;height:12px;border-radius:50%;box-shadow:0 0 8px currentColor}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.metric-item{background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:.625rem;display:flex;flex-direction:column;gap:.25rem;border:1px solid var(--border-color)}.metric-label{color:var(--text-muted);font-size:.6875rem;text-transform:uppercase;letter-spacing:.3px}.metric-value{color:var(--text-primary);font-size:.9375rem;font-weight:600}.loading{display:flex;justify-content:center;align-items:center;padding:3rem;color:var(--text-muted);font-size:1.125rem}.empty-state-text{font-size:1.125rem;margin-bottom:.5rem}.empty-state-subtext{font-size:.875rem;color:var(--text-muted)}@media (max-width: 1600px){.grid-4{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1200px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.main-monitoring-content{padding:1rem}.grid-2,.grid-3,.grid-4,.stats-row{grid-template-columns:1fr}.page-title{font-size:1.5rem}.page-subtitle{font-size:.875rem}}@media (max-width: 480px){.main-monitoring-content{padding:.75rem}.monitoring-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.monitoring-tab{white-space:nowrap}}@media (max-width: 768px){.users-table-card,.jobs-table-card,.devices-table-card{overflow-x:auto;-webkit-overflow-scrolling:touch}.users-table,.jobs-table,table{min-width:600px;font-size:.85rem}.users-table th,.users-table td,.jobs-table th,.jobs-table td,table th,table td{padding:.5rem;white-space:nowrap}.users-stats-row,.jobs-stats-row,.stats-row,.stat-cards{grid-template-columns:1fr 1fr!important;gap:.75rem!important}.stat-card{padding:.75rem!important}.stat-value{font-size:1.5rem!important}.filter-bar,.jobs-filter-bar,.search-bar{flex-direction:column!important;gap:.5rem!important}.filter-bar input,.filter-bar select,.jobs-filter-bar input,.jobs-filter-bar select{width:100%!important}.btn-primary,.btn-secondary,.btn-cancel,button{min-height:44px;padding:.75rem 1rem}.form-row,.form-row-2,.form-row-3{grid-template-columns:1fr!important;gap:.75rem!important}.modal-content,.jobs-modal-content{width:95%!important;max-width:95vw!important;margin:1rem auto!important;max-height:90vh!important;overflow-y:auto!important}.page-title,h1{font-size:1.25rem!important}.page-subtitle{font-size:.85rem!important}.devices-grid{grid-template-columns:1fr!important}.device-card{padding:1rem!important}.hide-mobile{display:none!important}}@media (max-width: 480px){.users-stats-row,.jobs-stats-row,.stats-row,.stat-cards{grid-template-columns:1fr!important}.stat-card{flex-direction:row!important;align-items:center!important;gap:1rem!important}.stat-icon{width:40px!important;height:40px!important;font-size:1rem!important}.navbar-brand h1{display:none}.navbar-brand .logo{height:32px!important}.navbar-user>span:not(.notification-badge){display:none!important}.btn-group,.action-buttons{flex-direction:column!important;width:100%!important}.btn-group button,.action-buttons button{width:100%!important}}@media (pointer: coarse){button,a,.clickable,input[type=checkbox],input[type=radio],select{min-height:44px;min-width:44px}input[type=checkbox],input[type=radio]{width:20px!important;height:20px!important}.menu-item-header,.submenu-item{padding:1rem 1.5rem!important}table tbody tr{min-height:48px}table tbody td{padding:.75rem .5rem!important}}@media (orientation: landscape) and (max-height: 500px){.navbar{padding:.5rem 1rem!important}.sidebar{padding-top:50px!important}.modal-content{max-height:95vh!important}}@media (display-mode: standalone){.navbar{padding-top:max(.75rem,env(safe-area-inset-top))!important}body{padding-bottom:env(safe-area-inset-bottom)}}html,body{overflow-x:hidden;max-width:100vw}.main-content,.main-monitoring-content{overflow-x:hidden;max-width:100%}*{-webkit-overflow-scrolling:touch}html{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.main-content,.main-monitoring-content,input,textarea,[contenteditable=true]{-webkit-user-select:auto;user-select:auto}#root{min-height:100vh;min-height:-webkit-fill-available}button,[role=button],.btn,a.btn{touch-action:manipulation}input,select,textarea{font-size:16px}@media (prefers-reduced-motion: no-preference){*{scroll-behavior:smooth}}@media (max-width: 768px){::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}}:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (orientation: landscape) and (max-height: 500px){.navbar{padding:.5rem 1rem}.sidebar{padding-top:50px}}@media (prefers-color-scheme: dark){:root{color-scheme:dark}}@media (display-mode: standalone){.navbar{padding-top:env(safe-area-inset-top)}}:root{--primary-color: #FF6B35;--primary-hover: #e05a2a;--primary-light: #ff8555;--bg-primary: #0f1419;--bg-secondary: #1c2128;--bg-tertiary: #2d333b;--bg-hover: #2d333b;--border-color: #30363d;--border-hover: #FF6B35;--text-primary: #f0f6fc;--text-secondary: #c9d1d9;--text-muted: #8b949e;--text-disabled: #6e7681;--status-success: #238636;--status-success-text: #aff5b4;--status-warning: #9a6700;--status-warning-text: #ffc66d;--status-error: #da3633;--status-error-text: #ffb3b3;--status-info: #0969da;--status-info-text: #79c0ff;--shadow-sm: 0 2px 10px rgba(0, 0, 0, .3);--shadow-md: 0 5px 20px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .6);--transition: all .3s ease;--transition-fast: .15s ease;--radius-sm: 0;--radius-md: 0;--radius-lg: 0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary)}#root{min-height:100vh}.btn-primary,.btn-secondary,.btn-danger,.btn-success{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:var(--primary-color);color:var(--text-primary)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-danger{background:var(--error-color);color:var(--text-primary)}.btn-success{background:var(--success-color);color:var(--text-primary)}button:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled,.btn-success:disabled{opacity:.5;cursor:not-allowed;transform:none}.data-table{width:100%;border-collapse:collapse;background:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.data-table thead{background:var(--bg-tertiary)}.data-table th{padding:1rem;text-align:left;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.data-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-tertiary)}.data-table tbody tr:last-child td{border-bottom:none}.card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:1.5rem;border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.card-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.card-content{color:var(--text-secondary)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-weight:500;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:.95rem;transition:all var(--transition-base)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b351a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:var(--bg-primary);cursor:not-allowed;opacity:.6}.form-group textarea{resize:vertical;min-height:100px;font-family:inherit}.badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;gap:.375rem}.badge-success{background:#3fb95026;color:var(--success-color);border:1px solid rgba(63,185,80,.3)}.badge-warning{background:#d2992226;color:var(--warning-color);border:1px solid rgba(210,153,34,.3)}.badge-error{background:#f8514926;color:var(--error-color);border:1px solid rgba(248,81,73,.3)}.badge-info{background:#58a6ff26;color:var(--info-color);border:1px solid rgba(88,166,255,.3)}.badge-neutral{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);width:100%;max-width:600px;max-height:90vh;overflow:auto}.modal-header{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.modal-close{background:transparent;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:1.5rem}.modal-footer{padding:1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:1rem}.loading{display:flex;justify-content:center;align-items:center;padding:3rem;color:var(--text-muted)}.loading-spinner{width:2rem;height:2rem;border:3px solid var(--bg-tertiary);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{background:#f851491a;border:1px solid var(--error-color);color:var(--error-color);padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem}.success-message{background:#3fb9501a;border:1px solid var(--success-color);color:var(--success-color);padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem}.empty-state{text-align:center;padding:3rem;color:var(--text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-state-title{font-size:1.25rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.empty-state-description{font-size:.95rem;margin-bottom:1.5rem}.action-buttons{display:flex;gap:.5rem}.action-btn{padding:.5rem .75rem;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;transition:all var(--transition-fast);background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.action-btn:hover{background:var(--bg-primary);transform:translateY(-1px)}.action-btn.edit{color:var(--info-color);border-color:var(--info-color)}.action-btn.delete{color:var(--error-color);border-color:var(--error-color)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-title{font-size:1.75rem;font-weight:600;color:var(--text-primary);margin:0}.page-subtitle{font-size:1rem;color:var(--text-muted);margin-top:.25rem}.search-bar{display:flex;gap:1rem;margin-bottom:1.5rem}.search-input{flex:1;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:.95rem}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b351a}.tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--border-color);margin-bottom:1.5rem}.tab{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;font-size:.95rem;font-weight:500;transition:all var(--transition-fast)}.tab:hover{color:var(--text-secondary)}.tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.icon-button{padding:0;border:none;background:transparent;cursor:pointer;font-size:1.25rem;transition:all var(--transition-fast);color:var(--success-color)}.icon-button:hover{filter:drop-shadow(0 0 8px var(--success-color)) brightness(1.3)}.icon-button-clean{padding:.25rem .5rem;border:none;background:transparent;cursor:pointer;font-size:1.1rem;transition:filter var(--transition-fast);color:var(--text-secondary)}.icon-button-clean:hover{filter:drop-shadow(0 0 6px currentColor) brightness(1.3)}.text-link{cursor:pointer;color:var(--text-primary);text-decoration:none;transition:text-decoration var(--transition-fast)}.text-link:hover{text-decoration:underline}
