@charset "UTF-8";*{box-sizing:border-box}:root{--color-surface:#f8f9fa;--color-surface-alt:#fff;--color-border:#e9ecef;--color-border-focus:#c23a2b;--color-text:#212529;--color-text-muted:#6c757d;--color-success-bg:#d4edda;--color-success-border:#c3e6cb;--color-success-text:#155724;--color-error-bg:#f8d7da;--color-error-border:#f5c6cb;--color-error-text:#721c24;--color-info-bg:#d1ecf1;--color-info-border:#bee5eb;--color-info-text:#0c5460;--color-warning:#ffc107;--color-text-light:#868e96;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);--shadow-lg:0 10px 15px rgba(0,0,0,.1),0 4px 6px rgba(0,0,0,.05)}[data-theme=dark]{--color-surface:#1a1a1a;--color-surface-alt:#2d2d2d;--color-border:#404040;--color-border-focus:#c23a2b;--color-text:#fff;--color-text-muted:#b0b0b0;--color-success-bg:#1e3a2e;--color-success-border:#2d5a3d;--color-success-text:#75d99f;--color-error-bg:#3a1e1e;--color-error-border:#5a2d2d;--color-error-text:#f87171;--color-info-bg:#1e2a3a;--color-info-border:#2d3f5a;--color-info-text:#60a5fa;--color-warning:#fbbf24;--color-text-light:#888;--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow:0 1px 3px rgba(0,0,0,.4),0 1px 2px rgba(0,0,0,.2);--shadow-lg:0 10px 15px rgba(0,0,0,.4),0 4px 6px rgba(0,0,0,.2)}body{background:var(--color-surface);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5;margin:0;padding:0;transition:background-color .3s ease,color .3s ease}.container{margin:0 auto;max-width:1200px;padding:16px}.container[role=main]{min-height:calc(100vh - 206px)}.form-group{margin-bottom:24px}.form-group--checkbox{margin-bottom:16px}.form-label{color:var(--color-text);display:block;font-size:16px;font-weight:500;margin-bottom:8px}.form-input,.form-select,select.form-input,select.form-select{background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:8px;color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;padding:16px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.form-input::placeholder,.form-select::placeholder{color:var(--color-text-light)}.form-input:focus,.form-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #c23a2b1a;outline:none}.form-submitted .form-input:invalid,.form-submitted .form-select:invalid{border-color:#dc3545}.form-input[readonly],[readonly].form-select{background:var(--color-surface);cursor:not-allowed;opacity:.8}.form-input[readonly]:focus,[readonly].form-select:focus{border-color:var(--color-border);box-shadow:none}.form-select,select.form-input,select.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px 16px;cursor:pointer;padding-right:40px}.form-select:focus,select.form-input:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23c23a2b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}.form-submitted select.form-input:invalid,.form-submitted select.form-select:invalid{border-color:#dc3545}.form-textarea{background-color:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:4px;color:var(--color-text);font-family:monospace;font-size:14px;padding:8px 16px;resize:vertical;transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out;width:100%}.form-textarea:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #c23a2b1a;outline:none}.form-submitted .form-textarea:invalid{border-color:#dc3545}.form-textarea::placeholder{color:var(--color-text-light)}.table-container{margin-bottom:32px;overflow-x:auto}.data-table{border-collapse:collapse;font-size:14px;width:100%}.data-table td,.data-table th{border-bottom:1px solid var(--color-border);padding:16px;text-align:left}.data-table th{background-color:var(--color-surface);font-size:14px;font-weight:600}.data-table td,.data-table th{color:var(--color-text)}.data-table tbody tr{cursor:pointer;transition:background-color .2s ease}.data-table tbody tr:hover{background-color:#c23a2b0d}.data-table .mac-address{font-family:monospace;font-size:14px}.detail-value,.mac-address,.property-value,code,pre{background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:3px;font-family:monospace;padding:2px 4px}.content-section{background-color:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow);margin-bottom:24px;padding:32px}.content-section h3{margin:0 0 16px}.content-section .controls-right{flex-wrap:wrap;gap:24px!important}.section-title{color:var(--color-text);font-size:18px;font-weight:600;margin:0 0 24px}.role-badge{border-radius:4px;font-size:14px;font-weight:500;padding:4px 8px}.role-badge.role-admin{background-color:#c23a2b1a;color:#c23a2b}.role-badge.role-user{background-color:var(--color-surface);color:var(--color-text-muted)}.status-badge{font-size:14px;font-weight:500}.status-badge.online{background-color:#d4edda;color:#155724}.status-badge.offline{background-color:#f8d7da;color:#721c24}.page-status{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:8px;bottom:24px;box-shadow:var(--shadow-lg);display:none;font-size:14px;left:50%;max-width:500px;min-width:200px;padding:8px 24px;position:fixed;text-align:center;transform:translate(-50%);z-index:1000}.page-status.info{background-color:#f8f9faf2;color:#495057}.page-status.success{background-color:#d4eddaf2;color:#155724}.page-status.error{background-color:#f8d7daf2;color:#721c24}.page-status.warning{background-color:#fff3cdf2;color:#856404}.form-static-text{align-items:center;display:flex;font-size:16px;min-height:48px}.code-block,.form-static-text{background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:8px;color:var(--color-text);padding:16px}.code-block{font-family:Courier New,Courier,monospace;font-size:14px;margin:0;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.form-help-text{color:var(--color-text-light);font-size:14px;margin-top:4px}.password-strength-container{margin-top:8px}.password-strength-indicator{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;margin-top:8px;padding:16px}.password-strength-indicator .strength-requirement{align-items:center;display:flex;font-size:14px;margin-bottom:4px;text-align:left;transition:color .2s ease}.password-strength-indicator .strength-requirement:last-child{margin-bottom:0}.password-strength-indicator .strength-requirement .icon{flex-shrink:0;height:16px;margin-right:8px;min-width:16px;stroke-width:2.5;width:16px}.password-strength-indicator .strength-requirement.valid{color:#28a745}.password-strength-indicator .strength-requirement.valid .icon{stroke:#28a745}.password-strength-indicator .strength-requirement.invalid{color:#dc3545}.password-strength-indicator .strength-requirement.invalid .icon{stroke:#dc3545}.login-subtitle{color:var(--color-text-light);font-size:14px;margin-top:4px;text-align:center}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.header{background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:16px 24px}.header .header-content{align-items:center;display:flex;gap:16px;justify-content:center;margin:0 auto;max-width:1200px}.header .logo{height:32px;max-width:120px;object-fit:contain;width:auto}.header .title{color:var(--color-text);font-size:18px;font-weight:600;margin:0}.dashboard-header{background-color:var(--color-surface-alt);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:16px 24px;position:sticky;top:0;z-index:1000}.dashboard-header .header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px}.dashboard-header .header-left{align-items:center;display:flex;gap:16px}.dashboard-header .header-left h1{font-size:18px;margin:0}.dashboard-header .header-right{align-items:center;display:flex;gap:24px}.dashboard-header .user-info{align-items:flex-end;display:flex;flex-direction:column}.dashboard-header .user-info .user-name{color:var(--color-text);font-weight:600}.dashboard-header .user-info .user-role{color:var(--color-text-muted);font-size:14px}.mobile-nav-toggle{background:none;border:none;color:var(--color-text);cursor:pointer;display:none;font-size:18px;padding:8px}@media (max-width:768px){.mobile-nav-toggle{display:block}.dashboard-header .header-content{flex-wrap:wrap;gap:8px}.dashboard-header .header-right{align-items:flex-end;flex-direction:column;gap:8px}}.footer{background:var(--color-text);color:var(--color-surface-alt);margin-top:auto;padding:24px 0}.footer .footer-text{color:var(--color-text-muted);font-size:14px;margin:0 0 8px;text-align:center}.footer .footer-reset{margin:0;text-align:center}.footer .footer-reset .reset-link{color:#c23a2b;font-size:14px;font-weight:500;text-decoration:none}.footer .footer-reset .reset-link:hover{text-decoration:underline}[data-theme=dark] .footer{background:#0d0d0d;border-top:1px solid var(--color-border)}.sidebar{background-color:var(--color-surface-alt);border-right:1px solid var(--color-border);padding:8px 0;position:relative;top:0;width:250px}.sidebar .sticky-wrapper{display:flex;flex-direction:column;position:sticky;top:102px}.sidebar .nav-menu{list-style:none;margin:0;padding:0}.sidebar .nav-item{margin-bottom:4px}.sidebar .nav-link{align-items:center;color:var(--color-text);display:flex;gap:16px;padding:8px 24px;text-decoration:none;transition:background-color .2s ease-in-out}.sidebar .nav-link:hover{background-color:var(--color-surface)}.sidebar .nav-link.active{background-color:#c23a2b1a;color:#c23a2b;font-weight:600}.sidebar .nav-link .nav-icon{font-size:18px}.sidebar .nav-link .nav-text{font-size:14px}.admin-menu-section{border-top:1px solid var(--color-border);margin-top:8px;padding-top:8px}.admin-menu-section .admin-section-header{color:var(--color-text-muted);font-size:14px;font-weight:600;letter-spacing:.05em;margin:0 0 16px 24px;text-transform:uppercase}.admin-menu-section .nav-menu{margin-top:0}.nav-item-submenu .nav-toggle{align-items:center;display:flex;justify-content:space-between;transition:all .2s ease}.nav-item-submenu .nav-toggle .nav-arrow{height:16px;transition:transform .2s ease;width:16px}.nav-item-submenu .nav-toggle .nav-arrow svg{color:var(--color-text-muted);height:100%;width:100%}.nav-item-submenu .nav-toggle:hover{background:var(--color-surface);color:var(--color-primary)}.nav-item-submenu .nav-toggle:hover .nav-arrow svg{color:var(--color-primary)}.nav-item-submenu .nav-toggle.expanded .nav-arrow{transform:rotate(180deg)}.nav-item-submenu .nav-toggle.has-active-child{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.nav-item-submenu .nav-toggle.has-active-child .nav-arrow svg{color:var(--color-primary)}.nav-item-submenu .nav-submenu{background:var(--color-surface);border-radius:0 4px 4px 0;box-shadow:inset 0 2px 4px #0000000d;display:none;margin:0;overflow:hidden;padding-left:0}.nav-item-submenu .nav-submenu.expanded{animation:slideDown .3s ease-out;display:block}.nav-item-submenu .nav-submenu .nav-subitem{border-bottom:1px solid var(--color-border);list-style:none;margin:0;padding:0}.nav-item-submenu .nav-submenu .nav-subitem:last-child{border-bottom:none}.nav-item-submenu .nav-submenu .nav-subitem .nav-link{color:var(--color-text-muted);font-size:12px;padding:8px 24px;position:relative;transition:all .2s ease}.nav-item-submenu .nav-submenu .nav-subitem .nav-link:before{background:transparent;bottom:0;content:"";left:0;position:absolute;top:0;transition:background .2s ease;width:3px}.nav-item-submenu .nav-submenu .nav-subitem .nav-link:hover{background:var(--color-surface);color:var(--color-text);transform:translate(4px)}.nav-item-submenu .nav-submenu .nav-subitem .nav-link:hover:before{background:var(--color-primary)}.nav-item-submenu .nav-submenu .nav-subitem .nav-link.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.nav-item-submenu .nav-submenu .nav-subitem .nav-link.active:before{background:var(--color-primary)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dashboard-container{align-items:stretch;display:flex;flex:1;margin:0 auto;max-width:1400px;width:100%}.dashboard-body{background-color:var(--color-surface);display:flex;flex-direction:column;margin:0;min-height:100vh}.main-content{flex:1;overflow-y:auto;padding:32px}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:32px}.page-header .page-header-content{align-items:flex-start;display:flex;flex-direction:column;gap:16px}.page-header .page-title{color:var(--color-text);font-size:32px;margin:0}.page-header .page-actions{display:flex;gap:16px}@media (max-width:768px){.dashboard-container{flex-direction:column}.sidebar{border-bottom:1px solid var(--color-border);border-right:none;height:auto;padding:16px 0;position:static;width:100%}.sidebar .nav-menu{display:grid;gap:4px;grid-template-columns:repeat(2,1fr);padding:0 16px}.sidebar .nav-item{margin-bottom:0}.sidebar .nav-link{border:1px solid var(--color-border);border-radius:8px;padding:16px;text-align:center}.sidebar .nav-link .nav-icon{display:block;font-size:24px;margin-bottom:4px}.sidebar .nav-link .nav-text{font-size:14px}.main-content{padding:24px}.page-header{align-items:flex-start;flex-direction:column;gap:16px}.page-header .page-actions{flex-direction:column;gap:8px;width:100%}}.login-wrapper{align-items:flex-start;display:flex;justify-content:center;padding:32px 0}.login-card{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-lg);max-width:480px;padding:32px;width:100%}.login-header{margin-bottom:32px;text-align:center}.login-header .login-title{color:var(--color-text);font-size:24px;font-weight:600;margin:0 0 8px}.login-header .login-subtitle{color:var(--color-text-muted);font-size:16px;margin:0}.login-form{margin-bottom:24px}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper .form-input{padding-right:3rem}.password-input-wrapper .password-toggle{align-items:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;display:flex;justify-content:center;padding:.25rem;position:absolute;right:.75rem;transition:color .2s ease}.password-input-wrapper .password-toggle:hover{color:#c23a2b}.password-input-wrapper .password-toggle:focus{border-radius:.25rem;outline:2px solid #c23a2b;outline-offset:2px}.password-input-wrapper .password-toggle-icon{height:20px;stroke-width:2;width:20px}.checkbox-label{color:var(--color-text-muted);font-size:14px}.checkbox-input{accent-color:#c23a2b}.checkbox-text{-webkit-user-select:none;user-select:none}.login-status{border-radius:8px;font-size:14px;margin:16px 0;padding:16px;text-align:center}.login-status:empty{display:none}.login-status.error{background:#dc35451a;border:1px solid rgba(220,53,69,.2);color:#dc3545}.login-status.success{background:#28a7451a;border:1px solid rgba(40,167,69,.2);color:#28a745}.login-promise{border-top:1px solid var(--color-border);margin-top:24px;padding-top:24px}.login-promise .promise-title{color:var(--color-text);font-size:18px;font-weight:600;margin:0 0 16px}.login-promise .promise-text{color:var(--color-text-muted);line-height:1.6;margin:0 0 16px}.login-promise .promise-list{display:grid;gap:8px}.login-promise .promise-item{color:#28a745;font-size:14px;font-weight:500}.login-promise .promise-item:before{content:"";margin-right:8px}@media (max-width:768px){.login-card{margin:16px;padding:24px}.login-wrapper{padding:24px 0}}.toast-notification{background:var(--color-surface)!important;border:1px solid var(--color-border)!important;border-radius:8px!important;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003!important;left:50%!important;max-width:500px!important;min-width:300px!important;padding:12px 20px!important;position:fixed!important;top:-150px!important;transform:translate(-50%)!important;transition:top .5s cubic-bezier(.34,1.56,.64,1)!important;z-index:9999!important}.toast-notification.show{top:20px!important}.toast-notification .toast-content{align-items:center;display:flex;gap:16px}.toast-notification .toast-icon{flex-shrink:0;height:20px;width:20px}.toast-notification .toast-icon svg{height:100%;width:100%}.toast-notification .toast-message{color:var(--color-text);font-size:16px;font-weight:500}.toast-notification.toast-loading .toast-icon{animation:spin 1s linear infinite}.toast-notification.toast-success{border-color:#28a745}.toast-notification.toast-success .toast-icon{color:#28a745}.toast-notification.toast-error{border-color:#dc3545}.toast-notification.toast-error .toast-icon{color:#dc3545}.load-more-container{display:flex;justify-content:center;padding:32px 0}.devices-stats,.displays-stats{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:32px}.stat-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:24px;text-align:center}.stat-card .stat-value{color:var(--color-text);font-size:2rem;font-weight:700;margin-bottom:4px}.stat-card .stat-value.online{color:#28a745}.stat-card .stat-value.offline{color:#dc3545}.stat-card .stat-label{color:var(--color-text-muted);font-size:14px;font-weight:500}#toggle-logs-filters{align-items:center;display:flex;gap:4px;position:relative}#toggle-logs-filters .filter-icon{transition:color .2s ease}#toggle-logs-filters.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}[data-theme=light] #toggle-logs-filters.active{background:#c23a2b1a;border-color:#c23a2b;color:#c23a2b}[data-theme=light] #toggle-logs-filters.active .filter-icon{color:#c23a2b}#toggle-logs-filters.active .filter-icon{color:#fff}#toggle-logs-filters.has-filters{background:var(--color-warning);border-color:var(--color-warning);color:#000}#toggle-logs-filters.has-filters .filter-icon{color:#000}#toggle-logs-filters.has-filters:hover{background:var(--color-warning);border-color:var(--color-warning)}[data-theme=light] #toggle-logs-filters.has-filters{background:#c23a2b1a;border-color:#c23a2b;color:#c23a2b}[data-theme=light] #toggle-logs-filters.has-filters .filter-icon{color:#c23a2b}.logs-filters-actions{gap:8px;margin-top:16px}.logs-actions,.logs-filters-actions{display:flex;justify-content:flex-end}.logs-actions{align-items:center;gap:16px;margin-bottom:16px}.logs-actions .refresh-interval-group{align-items:center;display:flex;gap:8px;margin-right:auto}.logs-actions .refresh-interval-group .form-label{color:var(--color-text);font-size:14px;margin:0;white-space:nowrap}.logs-actions .refresh-interval-group .form-select{min-width:120px}[data-theme=dark] .content-section.logs-filters-section{background:none}[data-theme=light] .logs-filters-section .filter-input,[data-theme=light] .logs-filters-section .sort-select{background:var(--color-surface);border:2px solid var(--color-border)}[data-theme=light] .logs-filters-section .filter-input:hover,[data-theme=light] .logs-filters-section .sort-select:hover{border-color:var(--color-text-muted)}[data-theme=light] .logs-filters-section .filter-input:focus,[data-theme=light] .logs-filters-section .sort-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #c23a2b26}.logs-filters-grid{display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:16px}.logs-filters-grid .filter-group{align-items:flex-start;display:flex;flex-direction:column;gap:4px}.logs-filters-grid .filter-group label{color:var(--color-text);font-size:14px;font-weight:500;text-align:left}.logs-filters-grid .filter-input{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:14px;padding:4px 8px;width:100%}.logs-filters-grid .filter-input:focus{border-color:#c23a2b;box-shadow:0 0 0 2px #c23a2b1a;outline:none}.logs-filters-grid .filter-input::placeholder{color:var(--color-text-muted)}.logs-filters-grid .sort-select{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);cursor:pointer;font-size:14px;padding:4px 8px;width:100%}.logs-filters-grid .sort-select:focus{border-color:#c23a2b;box-shadow:0 0 0 2px #c23a2b1a;outline:none}@media (max-width:992px){.logs-filters-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:576px){.logs-filters-grid{grid-template-columns:1fr}}.device-controls,.display-controls,.logs-controls{align-items:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px;padding:16px}.device-controls .controls-left,.display-controls .controls-left,.logs-controls .controls-left{align-items:center;display:flex;flex-wrap:wrap;gap:24px}.device-controls .controls-right,.display-controls .controls-right,.logs-controls .controls-right{align-items:center;display:flex;flex-shrink:0;gap:8px}.device-controls .filter-group,.device-controls .sort-group,.display-controls .filter-group,.display-controls .sort-group,.logs-controls .filter-group,.logs-controls .sort-group{align-items:center;display:flex;gap:8px}.device-controls .filter-group label,.device-controls .sort-group label,.display-controls .filter-group label,.display-controls .sort-group label,.logs-controls .filter-group label,.logs-controls .sort-group label{color:var(--color-text);font-weight:500;white-space:nowrap}.device-controls .filter-input,.display-controls .filter-input,.logs-controls .filter-input{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:14px;padding:4px 8px;width:200px}.device-controls .filter-input:focus,.display-controls .filter-input:focus,.logs-controls .filter-input:focus{border-color:#c23a2b;box-shadow:0 0 0 2px #c23a2b1a;outline:none}.device-controls .filter-input::placeholder,.display-controls .filter-input::placeholder,.logs-controls .filter-input::placeholder{color:var(--color-text-muted)}.device-controls .sort-select,.display-controls .sort-select,.logs-controls .sort-select{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);cursor:pointer;font-size:14px;padding:4px 8px}.device-controls .sort-select:focus,.display-controls .sort-select:focus,.logs-controls .sort-select:focus{border-color:#c23a2b;box-shadow:0 0 0 2px #c23a2b1a;outline:none}.devices-table td,.displays-table td{padding:8px 16px;vertical-align:middle}.devices-table .device-name,.devices-table .display-name,.displays-table .device-name,.displays-table .display-name{color:var(--color-text);font-weight:500}.devices-table .device-name .editable-name-wrapper,.devices-table .display-name .editable-name-wrapper,.displays-table .device-name .editable-name-wrapper,.displays-table .display-name .editable-name-wrapper{align-items:center;display:inline-flex;gap:4px}.devices-table .name-display-wrapper,.displays-table .name-display-wrapper{align-items:center;display:inline-flex;gap:8px}.devices-table .resolution-text,.displays-table .resolution-text{color:var(--color-text-muted,#888);font-size:14px;font-weight:400}.devices-table .device-status,.devices-table .display-status,.displays-table .device-status,.displays-table .display-status{text-align:center}.devices-table .device-status .status-indicator,.devices-table .display-status .status-indicator,.displays-table .device-status .status-indicator,.displays-table .display-status .status-indicator{align-items:center;display:inline-flex;gap:4px}.devices-table .device-status .status-indicator .status-dot,.devices-table .display-status .status-indicator .status-dot,.displays-table .device-status .status-indicator .status-dot,.displays-table .display-status .status-indicator .status-dot{border-radius:50%;flex-shrink:0;height:12px;width:12px}.devices-table .device-status .status-indicator .status-dot.online,.devices-table .display-status .status-indicator .status-dot.online,.displays-table .device-status .status-indicator .status-dot.online,.displays-table .display-status .status-indicator .status-dot.online{background-color:#28a745}.devices-table .device-status .status-indicator .status-dot.offline,.devices-table .display-status .status-indicator .status-dot.offline,.displays-table .device-status .status-indicator .status-dot.offline,.displays-table .display-status .status-indicator .status-dot.offline{background-color:#dc3545}.devices-table .device-status .status-indicator .temp-text,.devices-table .display-status .status-indicator .temp-text,.displays-table .device-status .status-indicator .temp-text,.displays-table .display-status .status-indicator .temp-text{color:var(--color-text-muted,#888);font-size:14px}.devices-table .device-actions,.devices-table .display-actions,.displays-table .device-actions,.displays-table .display-actions{text-align:center}.pinned-row{background-color:#c23a2b0d;border-left:3px solid #c23a2b}.pinned-row:hover{background-color:#c23a2b1a}.pinned-card{background-color:#c23a2b0d;border-left:3px solid #c23a2b}.devices-help{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;margin-bottom:24px;padding:24px}.devices-help p{color:var(--color-text);font-size:14px;margin:8px 0}.devices-help p:last-child{margin-bottom:0}.devices-help p strong{color:#c23a2b}.port-input-group{align-items:center;display:flex;gap:8px}.port-input-group label{color:var(--color-text);font-size:14px;font-weight:500}.port-input-group .port-input{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:14px;padding:4px 8px;text-align:center;width:80px}.port-input-group .port-input:focus{border-color:#c23a2b;box-shadow:0 0 0 2px #c23a2b1a;outline:none}.table-note{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;margin-top:16px;padding:8px}.table-note p{color:var(--color-text-muted);font-size:14px;margin:0;text-align:center}.properties-grid{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.property-group .group-title{border-bottom:2px solid #c23a2b;color:var(--color-text);font-size:18px;font-weight:600;margin:0 0 24px;padding-bottom:8px}.property-item{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:16px 0}.property-item:last-child{border-bottom:none}.property-item .property-label{color:var(--color-text);font-weight:500}.property-item .property-value{color:var(--color-text-muted);font-family:monospace}.form-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:24px}.form-grid.form-grid-2col{grid-template-columns:1fr 1fr}.form-actions,.form-grid.form-grid-2col .form-actions-full{grid-column:1/-1}.form-actions{align-items:center;gap:8px;justify-content:flex-start}.inline-success-message{align-items:center;color:#28a745;display:flex;font-size:.9rem;font-weight:500;gap:4px;opacity:0;transform:translate(-10px);transition:all .3s ease}.inline-success-message.show{opacity:1;transform:translate(0)}.inline-success-message .success-icon{height:20px;stroke:#28a745;width:20px}.inline-success-message .success-text{white-space:nowrap}.add-user-section{border-top:1px solid var(--color-border);margin-top:32px;padding-top:32px}.mqtt-form .form-section{margin-bottom:48px}.mqtt-form .form-section:last-child{margin-bottom:0}.mqtt-form .cert-grid{display:grid;gap:24px;grid-template-columns:1fr}@media (min-width:768px){.mqtt-form .cert-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}.info-banner{background-color:#e3f2fd;border:1px solid #bbdefb;border-radius:8px;margin:16px 0;padding:16px}.info-banner,.info-banner .info-content{align-items:center;display:flex;gap:8px}.info-banner .info-content svg{color:#1976d2;flex-shrink:0;height:20px;width:20px}.info-banner .info-content span{color:#1565c0;font-size:14px;font-weight:500}@media (max-width:768px){.devices-stats,.displays-stats,.form-grid,.properties-grid{grid-template-columns:1fr}.devices-help p{font-size:14px}.page-actions .port-input-group{justify-content:center}}#network-config-page .device-badge{align-items:center;display:flex;gap:24px;margin-top:16px}#network-config-page .device-badge .device-firmware,#network-config-page .device-badge .device-mac{background:var(--color-background);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;padding:4px 8px}.network-config-tabs{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;margin-bottom:24px;overflow:hidden}.network-tab-nav{background:var(--color-background);display:flex}.network-tab-nav .network-tab-button{background:var(--color-background);border:none;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;flex:1;font-size:14px;font-weight:500;padding:24px 32px;position:relative;transition:all .3s ease}.network-tab-nav .network-tab-button span{display:inline-flex;transition:all .3s ease}.network-tab-nav .network-tab-button:last-child{border-right:none}.network-tab-nav .network-tab-button:hover{background:var(--color-surface);color:var(--color-text)}.network-tab-nav .network-tab-button:hover span{transform:translateY(2px)}.network-tab-nav .network-tab-button.active{background:var(--color-surface);border-bottom:3px solid var(--color-primary);box-shadow:0 2px 8px #0000001a;color:var(--color-primary);font-weight:700;z-index:10}.network-tab-content{background:var(--color-surface);padding:32px}.network-tab-panel{display:none}.network-tab-panel.active{animation:fadeIn .3s ease-in;display:block}.network-tab-panel .config-grid{display:block;gap:0}.network-tab-panel .config-grid .config-section{margin-bottom:24px;max-width:none;width:100%}.network-tab-panel .config-grid .config-section:last-child{margin-bottom:0}.page-subtitle{margin:8px 0 0}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.section-header h3{color:var(--color-text);font-size:18px;font-weight:600;margin:0}.templates-section .data-table th:nth-child(3){min-width:120px}.templates-section .data-table th:nth-child(4){width:280px}.field-note{line-height:1.3}.form-actions{border-top:1px solid var(--color-border);display:flex;gap:16px;justify-content:flex-end;margin-top:32px;padding-top:24px}.config-tabs{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px #00000014;overflow:visible}.tab-nav{background:#f0f2f5;border-bottom:2px solid var(--color-border);border-radius:8px 8px 0 0;display:flex;position:relative}.tab-nav .tab-button{background:var(--color-surface);border:none;border-right:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;flex:1;font-size:16px;font-weight:500;padding:24px 32px;position:relative;transition:all .3s ease}.tab-nav .tab-button:last-child{border-right:none}.tab-nav .tab-button:hover{background:#fff;color:var(--color-text);transform:translateY(-1px)}.tab-nav .tab-button.active{background:#fff;border-bottom:4px solid var(--color-primary-hover);transform:translateY(-2px);z-index:10}.tab-content{background:var(--color-surface);min-height:600px;padding:32px}.tab-panel{animation:fadeOut .2s ease-out;display:none}.tab-panel.active{animation:fadeIn .3s ease-in;display:block}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.config-description{background:var(--color-info-bg);border:1px solid var(--color-info-border);border-radius:4px;color:var(--color-info-text);margin-bottom:24px;padding:16px}.config-description p{font-size:14px;margin:0}.config-description a{color:#5dade2;text-decoration:underline}.config-description a:hover{color:#85c1e9}.config-grid{display:grid;gap:24px;grid-template-columns:1fr 1fr;margin-bottom:24px}@media (max-width:768px){.config-grid{grid-template-columns:1fr}}.config-section{background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:8px;box-shadow:0 2px 8px #0000000d;padding:32px;transition:all .2s ease}.config-section .section-title{border-bottom:2px solid var(--color-primary);color:var(--color-text);display:inline-block;font-size:24px;font-weight:700;margin:0;padding-bottom:8px}.config-section .section-description{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:14px;font-style:italic;line-height:1.6;margin:0 0 32px;padding-bottom:8px}.form-row{display:grid;grid-template-columns:1fr 1fr}@media (max-width:480px){.form-row{grid-template-columns:1fr}}.field-note{margin:4px 0 0}.port-mode{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;display:flex;justify-content:space-between;margin-top:24px;padding:8px 16px}.port-mode .port-label{color:var(--color-text);font-weight:600}.port-mode .mode-label{color:var(--color-text-muted);font-size:14px;font-style:italic}.validation-status{margin-bottom:24px}.validation-status .status-message{align-items:center;border-radius:4px;display:flex;font-size:14px;gap:8px;padding:16px}.validation-status .status-message.success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text)}.validation-status .status-message.error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text)}.validation-status .status-message .status-icon{flex-shrink:0;height:20px;width:20px}.action-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.diagnostics-row{align-items:end;display:flex;gap:8px;margin-bottom:16px}.diagnostics-row .form-group{flex:1;margin-bottom:0}.diagnostics-row .btn{flex-shrink:0}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-border);border-radius:4px;cursor:pointer;height:8px;margin-right:8px;outline:none;width:100%}.form-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:3px solid var(--color-primary);border-radius:50%;box-shadow:0 2px 6px #0000004d;cursor:pointer;height:20px;transition:all .15s ease;width:20px}.form-range::-webkit-slider-thumb:hover{box-shadow:0 3px 8px #0006;transform:scale(1.1)}.form-range::-webkit-slider-thumb:active{transform:scale(1)}.form-range::-moz-range-thumb{background:#fff;border:3px solid var(--color-primary);border-radius:50%;box-shadow:0 2px 6px #0000004d;cursor:pointer;height:20px;transition:all .15s ease;width:20px}.form-range::-moz-range-thumb:hover{box-shadow:0 3px 8px #0006;transform:scale(1.1)}.form-range::-moz-range-thumb:active{transform:scale(1)}.form-range::-moz-range-track{background:var(--color-border);border:none;border-radius:4px;height:8px}.form-range::-moz-range-progress{background:var(--color-primary);border-radius:4px 0 0 4px;height:8px}.form-range:focus{outline:none}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--color-primary-alpha),0 2px 6px #0000004d}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 3px var(--color-primary-alpha),0 2px 6px #0000004d}.range-value{color:var(--color-text-muted);font-size:14px;font-weight:500;min-width:40px;text-align:right}.discovery-progress{padding:32px;text-align:center}.discovery-progress .discovery-spinner{margin-bottom:24px}.discovery-progress .discovery-spinner .discovery-icon{animation:spin 2s linear infinite;color:#c23a2b;height:64px;width:64px}.discovery-progress p{color:var(--color-text);font-size:18px;margin-bottom:32px}.discovery-progress .discovery-timer .timer-bar{background:var(--color-border);border-radius:4px;height:8px;margin-bottom:16px;overflow:hidden;width:100%}.discovery-progress .discovery-timer .timer-bar .timer-progress{background:linear-gradient(90deg,#c23a2b,#a22f23);border-radius:4px;height:100%;transition:width 1s linear;width:100%}.discovery-progress .discovery-timer .timer-text{color:var(--color-text-muted);font-size:14px}.discovery-progress .discovery-timer .timer-text #discovery-countdown{color:#c23a2b;font-weight:600}.logs-record-count{align-items:center;color:var(--color-text-muted);display:flex;font-size:14px;font-weight:500}.logs-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;margin-bottom:24px;padding:24px}.logs-panel h3{color:var(--color-text);font-size:18px;font-weight:600;margin:0 0 8px}.logs-panel .logs-description{color:var(--color-text-muted);font-size:14px}.logs-header{align-items:flex-start;display:flex;gap:24px;justify-content:space-between;margin-bottom:24px}.logs-header .logs-header-content{flex:1}.logs-header .logs-header-content h3{margin:0 0 4px}.logs-header .logs-header-content .logs-description{margin:0}.logs-header .logs-actions{display:flex;flex-shrink:0;gap:16px}.logs-table th:first-child{width:100px}.logs-table th:nth-child(2){width:180px}.logs-table th:nth-child(3){width:auto}.logs-table td{vertical-align:top}.logs-table td:first-child{color:var(--color-text-muted)}.logs-table td:first-child,.logs-table td:nth-child(2){font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px}.logs-table td:nth-child(2){white-space:nowrap}.logs-table td:nth-child(3){line-height:1.4;word-break:break-word}.page-subtitle{color:var(--color-text-muted);font-size:14px;line-height:1.4;margin-bottom:16px}.variables-list{display:flex;flex-wrap:wrap;gap:4px}.variables-list .variable-tag{background:var(--color-primary);border-radius:4px;color:#fff;display:inline-block;font-size:12px;font-weight:500;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.no-data-message{color:var(--color-text-muted);font-style:italic;padding:32px;text-align:center}.no-data-message p{font-size:14px;margin:0}.variable-value{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;color:var(--color-primary);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;font-weight:500;padding:4px 8px}.task-name{color:var(--color-text);font-weight:600}.task-action-type,.task-description,.task-event-type{color:var(--color-text-muted);font-size:14px}.task-action-type,.task-event-type{font-family:Monaco,Menlo,Ubuntu Mono,monospace}.task-actions,.user-actions,td.text-right{vertical-align:middle}.task-actions .action-buttons,.user-actions .action-buttons,td.text-right .action-buttons{align-items:center;display:flex;gap:4px;justify-content:flex-end;margin-bottom:0}.pinned-badge{align-items:center;background:#ffc10726;border-radius:4px;color:#ffc107;display:inline-flex;justify-content:center;margin-right:4px;padding:3px}.pinned-badge svg{flex-shrink:0}.editable-field{border-radius:4px;cursor:text;padding:4px 8px;transition:background-color .2s}.editable-field:hover{background-color:#c23a2b1a}.editable-field:focus{background-color:#c23a2b0d;outline:2px solid #c23a2b;outline-offset:2px}.info-help-text{color:var(--color-text-muted);font-size:.875rem;font-style:italic;margin-bottom:16px}.editable-name-wrapper{align-items:center;display:flex;gap:8px}.editable-name-wrapper .name-display{border-radius:4px;padding:4px 0}.editable-name-wrapper .name-input{background:var(--color-bg);border:2px solid #c23a2b;border-radius:4px;color:var(--color-text);font-family:inherit;font-size:inherit;min-width:200px;outline:none;padding:4px 8px}.editable-name-wrapper .name-input:focus{border-color:#c23a2b;box-shadow:0 0 0 3px #c23a2b1a}.editable-name-wrapper .name-actions{display:inline-flex;gap:4px}.btn-icon-sm{align-items:center;border:none;border-radius:4px;cursor:pointer!important;display:inline-flex;height:28px;justify-content:center;padding:0;transition:all .2s;width:28px}.btn-icon-sm.btn-success{background:#28a745;color:#fff}.btn-icon-sm.btn-success:hover{background:#24963e;transform:scale(1.05)}.btn-icon-sm.btn-danger{background:#dc3545;color:#fff}.btn-icon-sm.btn-danger:hover{background:#d12435;transform:scale(1.05)}.btn-icon-sm svg{display:block}.status-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.status-badge.status-enabled{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text)}.status-badge.status-disabled{background:var(--color-muted-bg);border:1px solid var(--color-border);color:var(--color-text-muted)}.form-section{margin-bottom:32px}.form-section h3{border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:18px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.checkbox-label{align-items:center;cursor:pointer;display:flex;gap:16px;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{flex-shrink:0;margin:0}.checkbox-label .checkbox-text,.checkbox-label span{color:var(--color-text);font-size:16px;line-height:1.5}.checkbox-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:4px}.checkbox-group .checkbox-label{align-items:center;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;display:flex;gap:8px;padding:8px;transition:all .2s ease}.checkbox-group .checkbox-label:hover{background:var(--color-surface);border-color:var(--color-primary)}.checkbox-group .checkbox-label input[type=checkbox]{flex-shrink:0;margin:0}.checkbox-group .checkbox-label span{color:var(--color-text);font-size:14px;font-weight:500;transition:color .2s ease}.checkbox-group .checkbox-label:has(input[type=checkbox]:checked){background:#c23a2b0d;border-color:#c23a2b}.checkbox-group .checkbox-label:has(input[type=checkbox]:checked) span{color:#c23a2b;font-weight:600}.field-note{color:var(--color-text-muted);display:block;font-size:12px;font-style:italic;margin-top:4px}.empty-state{padding:48px;text-align:center;vertical-align:middle}.empty-state .empty-icon{color:var(--color-text-muted);height:48px;margin-bottom:16px;opacity:.5;width:48px}.empty-state .empty-hint{color:var(--color-text-muted);font-size:14px;margin-top:4px}.empty-state .empty-state-content{align-items:center;display:flex;flex-direction:column;justify-content:center}.empty-state .empty-state-content svg{color:var(--color-text-muted);height:48px;margin-bottom:16px;width:48px}.empty-state .empty-state-content h3{color:var(--color-text);font-size:18px;margin:0 0 8px;text-align:center}.empty-state .empty-state-content p{color:var(--color-text-muted);font-size:14px;margin:0;text-align:center}.task-tabs-header{display:flex;gap:4px}.task-tab-btn{background:var(--color-background);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);cursor:pointer;font-size:14px;font-weight:500;padding:4px 16px;transition:all .2s ease;white-space:nowrap}.task-tab-btn:hover{background:var(--color-surface);border-color:var(--color-primary);color:var(--color-text)}.task-tab-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.task-tab-content{display:none}.task-tab-content.active{display:block}.form-row-split{display:grid;gap:24px;grid-template-columns:1fr 1fr;margin-bottom:24px}@media (max-width:768px){.form-row-split{grid-template-columns:1fr}}.form-column{display:flex;flex-direction:column;gap:16px}.form-column.full-width{grid-column:1/-1}.form-column .form-row-split{display:grid;gap:24px;grid-template-columns:1fr 1fr}@media (max-width:768px){.form-column .form-row-split{grid-template-columns:1fr}}.checkbox-group{background:var(--color-background);border:1px solid var(--color-border);flex-direction:column;max-height:200px;overflow-y:auto;padding:8px}.checkbox-group,.checkbox-option{border-radius:4px;display:flex;gap:8px}.checkbox-option{align-items:center;cursor:pointer;max-width:fit-content;padding:4px 8px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.checkbox-option:hover{background:var(--color-surface)}.checkbox-option input[type=checkbox]{cursor:pointer;flex-shrink:0;margin:0}.checkbox-option span{color:var(--color-text);font-size:14px;line-height:1.5;transition:background .2s ease}.checkbox-option:has(input[type=checkbox]:checked){background:#c23a2b80}.combobox-container{overflow:visible;position:relative}.combobox-input{cursor:text;width:100%}.combobox-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;box-shadow:0 4px 12px #00000026;left:0;margin-top:4px;max-height:200px;overflow-y:auto;overscroll-behavior:contain;position:absolute;right:0;top:100%;z-index:1000}.combobox-options{padding:4px}.combobox-option{border-radius:4px;cursor:pointer;padding:8px 16px;transition:background .2s ease}.combobox-option:hover:not(.no-results){background:var(--color-background)}.combobox-option.no-results{color:var(--color-text-muted);cursor:default;padding:16px;text-align:center}.combobox-option-name{color:var(--color-text);font-weight:500;margin-bottom:2px}.combobox-option-type{color:var(--color-text-muted);font-size:14px}.multiselect-container{overflow:visible;position:relative}.multiselect-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px;min-height:0}.multiselect-tags:empty{margin-bottom:0}.multiselect-tag{align-items:center;background:#c23a2b1a;border-radius:4px;color:#c23a2b;display:inline-flex;font-size:14px;font-weight:500;gap:4px;padding:4px 8px}.multiselect-tag .tag-remove{align-items:center;cursor:pointer;display:flex;opacity:.7;transition:opacity .2s ease}.multiselect-tag .tag-remove:hover{opacity:1}.multiselect-input-wrapper{align-items:center;background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:8px;cursor:text;display:flex;padding:16px;transition:border-color .2s ease,box-shadow .2s ease}.multiselect-input-wrapper:focus-within{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #c23a2b1a}.multiselect-search{background:transparent;border:none;color:var(--color-text);flex:1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;outline:none;padding:0;width:100%}.multiselect-search::placeholder{color:var(--color-text-light)}.multiselect-clear{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--color-text-muted);cursor:pointer;display:flex;justify-content:center;margin-left:4px;padding:4px;transition:all .2s ease}.multiselect-clear:hover{background:var(--color-background);color:var(--color-text)}.multiselect-clear svg{display:block}.multiselect-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;box-shadow:0 4px 12px #00000026;left:0;margin-top:4px;max-height:200px;overflow-y:auto;overscroll-behavior:contain;position:absolute;right:0;top:100%;z-index:1000}.multiselect-options{padding:4px}.multiselect-option{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:8px;padding:8px 16px;transition:background .2s ease}.multiselect-option:hover{background:var(--color-background)}.multiselect-option.selected{background:#c23a2b1a;color:#c23a2b;font-weight:500}.multiselect-option .option-checkbox{align-items:center;border:2px solid var(--color-border);border-radius:3px;display:flex;height:16px;justify-content:center;transition:all .2s ease;width:16px}.multiselect-option.selected .option-checkbox{background:#c23a2b;border-color:#c23a2b}.multiselect-option.selected .option-checkbox:after{color:#fff;content:"✓";font-size:12px;font-weight:700}.multiselect-option-empty{color:var(--color-text-muted);font-size:14px;padding:16px;text-align:center}.form-row{display:flex;gap:16px;margin-bottom:16px}.form-row .form-group{flex:1;max-width:400px}.checkbox-inline{margin-bottom:16px}.checkbox-inline .checkbox-inline-label{align-items:center;cursor:pointer;display:flex;font-weight:500;gap:8px;transition:color .2s ease;-webkit-user-select:none;user-select:none}.checkbox-inline .checkbox-inline-label input[type=checkbox]{flex-shrink:0;margin:0}.checkbox-inline .checkbox-inline-label:hover{color:#c23a2b}.logic-interface-selector{margin-bottom:32px}.logic-interface-selector h4{color:var(--color-text);font-size:16px;font-weight:600;margin:0 0 16px}.logic-interface-selector .interface-options{display:flex;gap:24px;margin-bottom:16px}.logic-interface-selector .interface-option{align-items:center;cursor:pointer;display:flex;font-weight:500;gap:4px}.logic-interface-selector .interface-option input[type=radio]{margin:0}.logic-interface-selector .interface-option span{color:var(--color-text)}.logic-interface-selector .interface-description{background:var(--color-info-bg);border:1px solid var(--color-info-border);border-radius:4px;padding:16px}.logic-interface-selector .interface-description p{color:var(--color-info-text);font-size:14px;margin:0}.logic-content .interface-panels{position:relative}.logic-content .interface-panel{display:none}.logic-content .interface-panel.active{display:block}.logic-content .panel-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:8px}.logic-content .panel-header h5{color:var(--color-primary);font-size:18px;font-weight:600;margin:0}.logic-content .panel-header .panel-subtitle{color:var(--color-text-muted);font-size:14px;font-weight:500}.logic-content .code-preview .code-block{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.5;margin-bottom:16px;padding:24px}.logic-content .code-preview .code-block p{color:var(--color-text);margin:0 0 4px}.logic-content .code-preview .code-block p:last-child{margin-bottom:0}.image-upload-container{width:100%}.image-description-textarea{height:auto;min-height:60px;resize:vertical}.image-dropzone{align-items:center;background:var(--color-background);border:2px dashed var(--color-border);border-radius:8px;box-sizing:border-box;cursor:pointer;display:flex;height:250px;justify-content:center;padding:32px;text-align:center;transition:all .3s ease}.image-dropzone.dragover,.image-dropzone:hover{background:var(--color-surface);border-color:var(--color-primary)}.image-dropzone.dragover{border-style:solid}.dropzone-content{align-items:center;display:flex;flex-direction:column;gap:8px}.dropzone-icon{color:var(--color-text-muted);margin-bottom:8px}.dropzone-text{color:var(--color-text);font-size:16px;font-weight:500;margin:0}.dropzone-or{font-size:14px;margin:4px 0}.dropzone-note,.dropzone-or{color:var(--color-text-muted)}.dropzone-note{display:block;font-size:12px;margin-top:8px}.image-preview-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:flex;flex-direction:column;gap:16px;padding:16px}.image-preview{background:var(--color-background);border-radius:4px;max-height:200px;object-fit:contain;width:100%}.image-preview-info{align-items:center;display:flex;gap:16px;justify-content:space-between}.image-preview-name{color:var(--color-text);flex:1;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#remove-image-btn{align-items:center;display:flex;gap:4px;white-space:nowrap}#remove-image-btn svg{flex-shrink:0}.notification-thumbnail{align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;display:flex;height:36px;justify-content:center;transition:border-color .15s ease;width:48px}.notification-thumbnail:hover{border-color:#c23a2b}.notification-thumbnail img{border-radius:4px;display:block;height:100%;object-fit:cover;width:100%}.notification-thumbnail svg{color:var(--color-text-secondary);height:18px;width:18px}.thumbnail-lightbox{align-items:center;background:#000000d9;display:none;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:10000}.thumbnail-lightbox.open{display:flex}.thumbnail-lightbox .lightbox-content{max-height:90%;max-width:90%;position:relative}.thumbnail-lightbox .lightbox-content img{border-radius:8px;box-shadow:0 8px 32px #00000080;max-height:85vh;max-width:100%}.thumbnail-lightbox .lightbox-close{align-items:center;background:var(--color-surface);border:none;border-radius:50%;color:var(--color-text);cursor:pointer;display:flex;height:32px;justify-content:center;position:absolute;right:0;top:-40px;transition:background .15s ease;width:32px}.thumbnail-lightbox .lightbox-close:hover{background:#dc3545;color:#fff}.thumbnail-lightbox .lightbox-close svg{height:18px;width:18px}.thumbnail-lightbox .lightbox-overlay{cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%}#devices-table td:last-child,#devices-table th:last-child,#displays-table td:last-child,#displays-table th:last-child,#notifications-table td:last-child,#notifications-table th:last-child,#templates-table td:last-child,#templates-table th:last-child,#users-table td:last-child,#users-table th:last-child,.tasks-table td:last-child,.tasks-table th:last-child{width:160px}#devices-table th:last-child,#displays-table th:last-child,#notifications-table th:last-child,#templates-table th:last-child,#users-table th:last-child,.tasks-table th:last-child{text-align:center}#devices-table td:last-child .action-buttons,#displays-table td:last-child .action-buttons,#notifications-table td:last-child .action-buttons,#templates-table td:last-child .action-buttons,#users-table td:last-child .action-buttons,.tasks-table td:last-child .action-buttons{align-items:center;display:flex;flex-wrap:nowrap;gap:4px;justify-content:center;margin-bottom:0}#devices-table td:last-child .action-buttons .btn-icon,#displays-table td:last-child .action-buttons .btn-icon,#notifications-table td:last-child .action-buttons .btn-icon,#templates-table td:last-child .action-buttons .btn-icon,#users-table td:last-child .action-buttons .btn-icon,.tasks-table td:last-child .action-buttons .btn-icon{align-items:center;display:flex;height:36px;justify-content:center;min-width:36px;padding:4px;position:relative;width:36px}#devices-table td:last-child .action-buttons .btn-icon svg,#displays-table td:last-child .action-buttons .btn-icon svg,#notifications-table td:last-child .action-buttons .btn-icon svg,#templates-table td:last-child .action-buttons .btn-icon svg,#users-table td:last-child .action-buttons .btn-icon svg,.tasks-table td:last-child .action-buttons .btn-icon svg{flex-shrink:0;height:18px;width:18px}#devices-table td:last-child .action-buttons .btn-icon:hover,#displays-table td:last-child .action-buttons .btn-icon:hover,#notifications-table td:last-child .action-buttons .btn-icon:hover,#templates-table td:last-child .action-buttons .btn-icon:hover,#users-table td:last-child .action-buttons .btn-icon:hover,.tasks-table td:last-child .action-buttons .btn-icon:hover{transform:translateY(-2px)}#devices-table td:last-child .action-buttons .btn-icon:active,#displays-table td:last-child .action-buttons .btn-icon:active,#notifications-table td:last-child .action-buttons .btn-icon:active,#templates-table td:last-child .action-buttons .btn-icon:active,#users-table td:last-child .action-buttons .btn-icon:active,.tasks-table td:last-child .action-buttons .btn-icon:active{transform:translateY(0)}#devices-table td:last-child .action-buttons .btn-icon[data-tooltip]:before,#displays-table td:last-child .action-buttons .btn-icon[data-tooltip]:before,#notifications-table td:last-child .action-buttons .btn-icon[data-tooltip]:before,#templates-table td:last-child .action-buttons .btn-icon[data-tooltip]:before,#users-table td:last-child .action-buttons .btn-icon[data-tooltip]:before,.tasks-table td:last-child .action-buttons .btn-icon[data-tooltip]:before{background:var(--color-text);border-radius:4px;bottom:calc(100% + 8px);color:var(--color-surface);content:attr(data-tooltip);font-size:12px;font-weight:500;left:50%;opacity:0;padding:6px 10px;pointer-events:none;position:absolute;transform:translate(-50%);visibility:hidden;white-space:nowrap;z-index:1000}#devices-table td:last-child .action-buttons .btn-icon[data-tooltip]:after,#displays-table td:last-child .action-buttons .btn-icon[data-tooltip]:after,#notifications-table td:last-child .action-buttons .btn-icon[data-tooltip]:after,#templates-table td:last-child .action-buttons .btn-icon[data-tooltip]:after,#users-table td:last-child .action-buttons .btn-icon[data-tooltip]:after,.tasks-table td:last-child .action-buttons .btn-icon[data-tooltip]:after{border:6px solid transparent;border-top:6px solid var(--color-text);bottom:calc(100% + 2px);content:"";left:50%;opacity:0;pointer-events:none;position:absolute;transform:translate(-50%);visibility:hidden;z-index:1000}#devices-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:after,#devices-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:before,#displays-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:after,#displays-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:before,#notifications-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:after,#notifications-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:before,#templates-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:after,#templates-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:before,#users-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:after,#users-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:before,.tasks-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:after,.tasks-table td:last-child .action-buttons .btn-icon[data-tooltip]:hover:before{opacity:1;visibility:visible}.preview-toggle-btn{align-items:center;background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:50%;box-shadow:var(--shadow-lg);color:var(--color-text);cursor:pointer;display:flex;height:48px;justify-content:center;position:absolute;right:140px;top:24px;transition:all .3s ease;width:48px;z-index:10001}.preview-toggle-btn svg{height:24px;width:24px}.preview-toggle-btn:hover{transform:translateY(-2px)}.preview-toggle-btn.active,.preview-toggle-btn:hover{background:#c23a2b;border-color:#c23a2b;color:#fff}.editor-main-container{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.visual-editor-container{height:100%;width:100%}.html-editor-container{flex-direction:column;height:100%}.code-editor-section{background:var(--color-surface);border-right:2px solid var(--color-border)}.code-editor-section.full-width{flex:1}.code-editor-section.hidden{display:none}.code-editor-header{background:var(--color-surface-alt);color:var(--color-text);font-size:14px;font-weight:600;padding:16px 24px}#ace-editor-container{line-height:1.5}.code-editor-validation{background:#c23a2b1a;border-top:2px solid #c23a2b;color:#c23a2b;font-size:14px;padding:8px 16px}.code-editor-validation.error{background:#dc35451a;border-color:#dc3545;color:#dc3545}.code-editor-validation.warning{background:#ffc1071a;border-color:#ffc107;color:#856404}.code-preview-section{background:var(--color-surface)}.code-preview-section.full-width{flex:2}.code-preview-header{background:var(--color-surface-alt);color:var(--color-text);font-size:14px;font-weight:600;padding:16px 24px}.code-preview-content{background:#f5f5f5;padding:24px}[data-theme=dark] .code-preview-content{background:#1a1a1a}.info-box{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;margin-bottom:24px;padding:24px}.info-box h3{color:var(--color-text);font-size:18px;margin:0 0 16px}.version-display .version-number{color:#c23a2b;font-size:24px;font-weight:600}.update-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;margin-bottom:24px;padding:32px}.update-section h3{color:var(--color-text);font-size:18px;margin:0 0 16px}.update-section .section-description{color:var(--color-text-muted);margin-bottom:24px}.update-form .field-note{color:var(--color-text-muted);display:block;font-size:14px;margin-top:4px}.update-ready-box{text-align:center}.update-ready-box .update-ready-icon{color:#c23a2b;margin-bottom:16px}.update-ready-box h3{margin-bottom:24px}.version-comparison{align-items:center;background:var(--color-surface-alt);border-radius:8px;display:flex;gap:24px;justify-content:center;margin:24px 0;padding:24px}.version-comparison .version-item{display:flex;flex-direction:column;gap:4px}.version-comparison .version-label{color:var(--color-text-muted);font-size:14px}.version-comparison .version-value{color:var(--color-text);font-size:18px;font-weight:600}.version-comparison .version-value.version-new{color:#28a745}.version-comparison .version-arrow{color:var(--color-text-muted);font-size:24px}.version-comparison-modal{background:var(--color-surface-alt);border-radius:8px;display:flex;flex-direction:column;gap:4px;margin-top:24px;padding:16px}.version-comparison-modal div{color:var(--color-text-muted);font-size:14px}.version-comparison-modal div strong{color:var(--color-text);font-weight:600}.success-box{padding:32px;text-align:center}.success-box .success-icon,.success-box h3{color:#28a745;margin-bottom:16px}.success-box .success-message{color:var(--color-text);font-size:16px}.success-box .success-message strong{color:#28a745;font-weight:600}.warning-content{text-align:center}.warning-content .warning-icon{color:#ffc107;margin-bottom:16px}.warning-content p{color:var(--color-text);margin-bottom:16px}.warning-content p strong{color:#ffc107}.btn-large{font-size:16px;min-width:200px;padding:16px 32px}.dst-config-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.dst-config-row .form-select-small{flex:0 1 auto;min-width:100px}.dst-config-row .dst-of-text{color:var(--color-text-muted);font-size:14px}.connection-icons{gap:4px}.connection-icon,.connection-icons{align-items:center;display:inline-flex}.connection-icon{justify-content:center;opacity:.8;position:relative}.connection-icon.cloud{color:#3498db}.connection-icon.local{color:#27ae60}.connection-icon svg{height:16px;width:16px}.connection-icon:after{background:var(--color-text);border-radius:4px;bottom:100%;color:var(--color-surface);content:attr(data-tooltip);font-size:11px;font-weight:500;left:50%;margin-bottom:4px;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;transform:translate(-50%);transition:opacity .15s ease,visibility .15s ease;visibility:hidden;white-space:nowrap;z-index:100}.connection-icon:hover:after{opacity:1;visibility:visible}.icon-legend{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:8px;display:flex;flex-wrap:wrap;gap:24px;margin-bottom:16px;padding:8px 16px}.icon-legend .legend-group{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.icon-legend .legend-title{color:var(--color-text);font-size:14px;font-weight:600;margin-right:4px}.icon-legend .legend-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);display:inline-flex;font-size:11px;gap:4px;padding:2px 6px}.icon-legend .legend-item svg{color:var(--color-text);flex-shrink:0}.icon-legend .legend-item .legend-label{white-space:nowrap}.icon-legend .legend-item.legend-enabled svg{color:#28a745}.icon-legend .legend-item.legend-disabled svg{color:#dc3545}.tasks-table td{padding:8px 16px;vertical-align:middle}.tasks-table .task-description{color:var(--color-text-muted);font-size:14px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tasks-table .type-icons{align-items:center;display:inline-flex;gap:4px}.tasks-table .type-icon{align-items:center;background:var(--color-surface-alt);border-radius:4px;color:var(--color-text);cursor:help;display:inline-flex;justify-content:center;padding:4px;transition:background .15s ease}.tasks-table .type-icon:hover{background:var(--color-border)}.tasks-table .type-icon svg{flex-shrink:0}.tasks-table .no-type{color:var(--color-text-muted)}.tasks-table .status-icon{align-items:center;cursor:help;display:inline-flex;justify-content:center}.tasks-table .status-icon.status-enabled{color:#28a745}.tasks-table .status-icon.status-disabled{color:#dc3545}.tasks-table .status-icon svg{flex-shrink:0}.tasks-table .action-buttons{display:flex;gap:4px;justify-content:flex-end}.tasks-table .action-buttons .btn-delete{background:#dc3545;border-color:#dc3545;color:#fff}.tasks-table .action-buttons .btn-delete:hover{background:#bd2130;border-color:#bd2130;color:#fff}.priority-selector{display:flex;flex-wrap:nowrap;gap:4px;width:100%}.priority-btn{align-items:center;background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:8px;color:var(--color-text-muted);cursor:pointer;display:flex;flex:1;flex-direction:column;font-size:14px;justify-content:center;min-width:0;padding:8px 4px;transition:all .15s ease}.priority-btn .priority-level{font-size:16px;font-weight:600}.priority-btn .priority-label{font-size:10px;letter-spacing:.5px;text-transform:uppercase}.priority-btn:hover{border-color:var(--color-text-muted)}.priority-btn.active,.priority-btn.selected{font-weight:600}.priority-btn.active .priority-label,.priority-btn.active .priority-level,.priority-btn.selected .priority-label,.priority-btn.selected .priority-level{color:inherit}.priority-btn.active[data-priority="1"],.priority-btn.selected[data-priority="1"]{background:#dc35451a;border-color:#dc3545;color:#e25865}.priority-btn.active[data-priority="2"],.priority-btn.selected[data-priority="2"]{background:#fd7e141a;border-color:#fd7e14;color:#fd9a47}.priority-btn.active[data-priority="3"],.priority-btn.selected[data-priority="3"]{background:#ffc1071f;border-color:#ffc107;color:#ffc107}.priority-btn.active[data-priority="4"],.priority-btn.selected[data-priority="4"]{background:#0d6efd1a;border-color:#0d6efd;color:#599bfe}.priority-btn.active[data-priority="5"],.priority-btn.selected[data-priority="5"]{background:#6d767e26;border-color:#939ba2;color:#afb5ba}.priority-hint{color:var(--color-text-muted);font-size:14px;font-style:italic;margin-top:8px}.priority-badge{align-items:center;border-radius:4px;display:inline-flex;font-size:11px;font-weight:600;justify-content:center;padding:2px 8px;text-transform:uppercase}.priority-badge.priority-1{background:#dc3545;color:#fff}.priority-badge.priority-2{background:#fd7e14;color:#fff}.priority-badge.priority-3{background:#ffc107;color:#000}.priority-badge.priority-4{background:#0d6efd;color:#fff}.priority-badge.priority-5{background:#6c757d;color:#fff}.duration-input-row{align-items:center;display:inline-flex;gap:8px}.duration-input-row input[type=number]{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);font-size:16px;padding:8px 16px;width:80px}.duration-input-row input[type=number]:focus{border-color:#c23a2b;outline:none}.duration-input-row .duration-unit{color:var(--color-text-muted);font-size:16px}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.pushes-panel{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:8px;margin-bottom:24px;overflow:hidden}.pushes-summary{align-items:center;border-bottom:1px solid transparent;cursor:pointer;display:flex;padding:8px 16px;transition:background .15s;-webkit-user-select:none;user-select:none}.pushes-summary:hover{background:var(--color-surface)}.pushes-summary.open{border-bottom-color:var(--color-border)}.summary-left{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:8px}.pulse-dot{animation:pulse-dot 1.5s infinite;background:#dc3545;border-radius:50%;flex-shrink:0;height:8px;width:8px}.pulse-dot.idle{animation:none;background:var(--color-text-muted)}.summary-title{color:var(--color-text);font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.summary-divider{background:var(--color-border);flex-shrink:0;height:14px;width:1px}.pri-counts{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.pri-count-pill{align-items:center;border-radius:99px;cursor:default;display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;gap:5px;padding:2px 9px;white-space:nowrap}.pri-count-pill.pc-1{background:#dc35451a;border:1px solid rgba(220,53,69,.3);color:#dc3545}.pri-count-pill.pc-2{background:#fd7e141a;border:1px solid rgba(253,126,20,.3);color:#fd7e14}.pri-count-pill.pc-3{background:#ffc1071f;border:1px solid rgba(255,193,7,.3);color:#ffc107}.pri-count-pill.pc-4{background:#0d6efd1a;border:1px solid rgba(13,110,253,.3);color:#0d6efd}.pri-count-pill.pc-5{background:#6d767e26;border:1px solid hsla(208,7%,46%,.3);color:#6c757d}.total-count{color:var(--color-text-muted);font-family:IBM Plex Mono,monospace;font-size:11px;white-space:nowrap}.summary-right{align-items:center;display:flex;flex-shrink:0;gap:8px}.dismiss-all-btn{background:#dc35451a;border:1px solid rgba(220,53,69,.3);border-radius:4px;color:#dc3545;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;padding:4px 12px;transition:all .15s;white-space:nowrap}.dismiss-all-btn:hover{background:#dc354533}.chevron{align-items:center;color:var(--color-text-muted);display:flex;flex-shrink:0;font-size:11px;transition:transform .2s}.chevron.open{transform:rotate(180deg)}.pushes-body{display:none}.pushes-body.open{display:block}.push-group{border-bottom:1px solid var(--color-border)}.push-group:last-child{border-bottom:none}.group-header{align-items:center;cursor:pointer;display:flex;gap:8px;padding:8px 16px;transition:background .1s;-webkit-user-select:none;user-select:none}.group-header.open,.group-header:hover{background:var(--color-surface)}.group-chevron{align-items:center;color:var(--color-text-muted);display:flex;flex-shrink:0;font-size:10px;transition:transform .2s;width:14px}.group-chevron.open{transform:rotate(90deg)}.group-slate-name{color:var(--color-text);flex:1;font-size:13px;font-weight:500}.group-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.display-count-pill{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:99px;color:var(--color-text-muted);display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:10px;gap:5px;padding:2px 9px;white-space:nowrap}.display-count-dot{animation:pulse-dot 2s infinite;background:#28a745;border-radius:50%;height:5px;width:5px}.pri-badge{align-items:center;border-radius:4px;display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;padding:2px 8px;white-space:nowrap}.pri-badge.pri-1{background:#dc35451a;border:1px solid rgba(220,53,69,.3);color:#dc3545}.pri-badge.pri-2{background:#fd7e141a;border:1px solid rgba(253,126,20,.3);color:#fd7e14}.pri-badge.pri-3{background:#ffc1071f;border:1px solid rgba(255,193,7,.3);color:#ffc107}.pri-badge.pri-4{background:#0d6efd1a;border:1px solid rgba(13,110,253,.3);color:#0d6efd}.pri-badge.pri-5{background:#6d767e26;border:1px solid hsla(208,7%,46%,.3);color:#6c757d}.source-tag{color:var(--color-text-muted)}.group-dismiss-btn,.source-tag{font-family:IBM Plex Mono,monospace;font-size:10px;white-space:nowrap}.group-dismiss-btn{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-radius:4px;color:#ffc107;cursor:pointer;padding:3px 10px;transition:all .15s}.group-dismiss-btn:hover{background:#ffc10733}.group-displays{background:var(--color-surface);border-top:1px solid var(--color-border);display:none}.group-displays.open{display:block}.group-display-table{border-collapse:collapse;width:100%}.group-display-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:12px;padding:8px 16px 8px 42px;vertical-align:middle}.group-display-table tr:last-child td{border-bottom:none}.group-display-table tr:hover td{background:var(--color-surface-alt)}.disp-name{color:var(--color-text);font-size:12px;font-weight:500}.disp-res{color:var(--color-text-muted);font-family:IBM Plex Mono,monospace;font-size:10px;margin-top:1px}.prog-wrap{align-items:center;display:flex;gap:7px}.prog-bg{background:var(--color-border);border-radius:2px;height:3px;overflow:hidden;width:80px}.prog-fill{background:#28a745;border-radius:2px;height:100%;transition:width .3s ease}.prog-time{color:var(--color-text-muted)}.prog-time,.status-pill{font-family:IBM Plex Mono,monospace;font-size:10px;white-space:nowrap}.status-pill{align-items:center;border-radius:99px;display:inline-flex;font-weight:500;gap:4px;padding:2px 8px}.status-pill.status-playing{background:#28a7451a;border:1px solid rgba(40,167,69,.3);color:#28a745}.status-pill.status-waiting{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted)}.s-dot{background:currentColor;border-radius:50%;height:5px;width:5px}.s-dot.anim{animation:pulse-dot 2s infinite}.act-btn{background:transparent;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:10px;line-height:1;padding:3px 8px;transition:all .12s;white-space:nowrap}.act-btn:hover{background:var(--color-surface-alt);color:var(--color-text)}.act-btn.dis:hover{background:#ffc1071a;border-color:#ffc10780;color:#ffc107}.act-btn.del:hover{background:#dc35451a;border-color:#dc354580;color:#dc3545}.acts{align-items:center;display:flex;gap:4px}.more-displays-row td{font-family:IBM Plex Mono,monospace;font-size:11px;padding:8px 16px 8px 42px}.more-displays-row td,.no-active-pushes{color:var(--color-text-muted);font-style:italic}.no-active-pushes{font-size:14px;padding:16px;text-align:center}.slate-config-section{margin-top:24px}.section-divider{border:none;border-top:1px solid var(--color-border);margin:0 0 24px}.slate-config-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:16px}.slate-config-header .section-title{color:var(--color-text-muted);font-size:14px;font-weight:600;letter-spacing:.05em;margin:0;text-transform:uppercase}.slate-config-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.interruption-toggle{align-items:center;display:flex;gap:8px}.interruption-toggle .toggle-label{color:var(--color-text-muted);font-size:14px;white-space:nowrap}.toggle-switch{flex-shrink:0;height:20px;width:36px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-switch .toggle-slider{border:1px solid var(--color-border);border-radius:10px;top:0;right:0;bottom:0;left:0;transition:background .2s}.toggle-switch .toggle-slider:before{background:var(--color-text-muted);height:14px;left:2px;top:2px;transition:all .2s;width:14px}.toggle-switch input:checked+.toggle-slider{background:#28a74533;border-color:#28a74566}.toggle-switch input:checked+.toggle-slider:before{background:#28a745;transform:translate(16px)}.mode-pills{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:8px;display:flex;gap:3px;padding:3px}.mode-pill{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--color-text-muted);cursor:pointer;font-family:inherit;font-size:14px;padding:6px 14px;transition:all .15s;white-space:nowrap}.mode-pill:hover:not(.active){color:var(--color-text)}.mode-pill.active{background:transparent;border:1px solid #28a745;color:#28a745}.slate-table{border:1px solid var(--color-border);border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}.slate-table thead tr{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.slate-table th{color:var(--color-text-muted);font-size:14px;font-weight:500;padding:8px 16px;text-align:left}.slate-table tbody tr{border-bottom:1px solid var(--color-border);transition:background .1s}.slate-table tbody tr:last-child{border-bottom:none}.slate-table tbody tr:hover{background:var(--color-surface)}.slate-table td{color:var(--color-text);font-size:14px;padding:8px 16px;vertical-align:middle}.slate-table .col-num{width:40px}.slate-table .col-duration{width:100px}.slate-table .col-status{width:130px}.slate-table .col-actions{width:180px}.slate-num-cell{color:var(--color-text-muted);font-size:14px}.slate-name-cell{font-size:14px;font-weight:500}.slate-empty-state{color:var(--color-text-muted);font-size:14px;font-style:italic;padding:24px!important;text-align:center}.built-in-chip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);display:inline-block;font-size:12px;margin-left:8px;padding:2px 8px;vertical-align:middle}.duration-wrap{align-items:center;display:flex;gap:4px}.dur-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-family:inherit;font-size:14px;padding:4px 8px;text-align:center;transition:border-color .15s;width:80px}.dur-input:focus{border-color:var(--color-text-muted);outline:none}.dur-unit{color:var(--color-text-muted);flex-shrink:0;font-size:14px}.playing-badge{align-items:center;background:transparent;border:1px solid #28a745;border-radius:4px;color:#28a745;display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:4px 10px;white-space:nowrap}.playing-dot{animation:pulse-dot 2s infinite;background:#28a745;border-radius:50%;flex-shrink:0;height:6px;width:6px}.default-badge{align-items:center;background:transparent;border:1px solid #17a2b8;border-radius:4px;color:#17a2b8;display:inline-flex;font-size:12px;font-weight:500;padding:4px 10px;white-space:nowrap}.slate-actions-wrap{align-items:center;display:flex;flex-wrap:nowrap;gap:4px}.now-playing-section .now-playing-header{margin-bottom:16px}.now-playing-section .now-playing-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:16px}.now-playing-section .now-playing-empty{color:var(--color-text-muted);font-size:14px;padding:8px 0;text-align:center}.now-playing-section .now-playing-card{align-items:center;animation:fadeIn .5s ease-in-out;background:var(--color-surface-alt);border-radius:8px;display:flex;gap:16px;padding:8px 16px}.now-playing-section .now-playing-card .now-playing-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.now-playing-section .now-playing-card .now-playing-dot.dot-active{animation:pulse-dot 1.5s ease-in-out infinite;background:#28a745;box-shadow:0 0 6px #28a74599}.now-playing-section .now-playing-card .now-playing-dot.dot-idle{background:var(--color-text-muted);opacity:.5}.now-playing-section .now-playing-card .now-playing-info{align-items:center;display:flex;flex:1;gap:4px;min-width:0}.now-playing-section .now-playing-card .now-playing-info .now-playing-name{color:var(--color-text);font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now-playing-section .now-playing-card .now-playing-info .now-playing-separator{color:var(--color-text-muted);opacity:.5}.now-playing-section .now-playing-card .now-playing-info .now-playing-meta{color:var(--color-text-muted);font-size:14px;white-space:nowrap}.now-playing-section .now-playing-card .now-playing-countdown{background:rgba(var(--color-primary-rgb,59,130,246),.1);border-radius:4px;color:var(--color-primary);flex-shrink:0;font-size:14px;font-weight:600;padding:4px 10px;white-space:nowrap}.now-playing-section .now-playing-card .now-playing-badges{display:flex;flex-shrink:0;gap:4px}.now-playing-section .now-playing-card .now-playing-badge{border-radius:4px;font-size:12px;font-weight:500;padding:3px 8px;white-space:nowrap}.now-playing-section .now-playing-card .now-playing-badge.badge-clock{background:rgba(var(--color-text-muted-rgb,128,128,128),.15);color:var(--color-text-muted)}.now-playing-section .now-playing-card .now-playing-badge.badge-queue{background:#28a74526;color:#28a745}.now-playing-section .now-playing-card .now-playing-badge.badge-slideshow{background:rgba(var(--color-primary-rgb,59,130,246),.15);color:var(--color-primary)}.now-playing-section .now-playing-card .now-playing-badge.badge-priority.priority-1{background:#dc354526;color:#dc3545}.now-playing-section .now-playing-card .now-playing-badge.badge-priority.priority-2{background:#fd7e1426;color:#fd7e14}.now-playing-section .now-playing-card .now-playing-badge.badge-priority.priority-3{background:#ffc10726;color:#ffc107}.now-playing-section .now-playing-card .now-playing-badge.badge-priority.priority-4{background:#0d6efd26;color:#0d6efd}.now-playing-section .now-playing-card .now-playing-badge.badge-priority.priority-5{background:#6d767e33;color:#6c757d}.slate-act-btn{background:transparent;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;font-family:inherit;font-size:12px;line-height:1;padding:4px 8px;transition:all .12s;white-space:nowrap}.slate-act-btn:hover{background:var(--color-surface-alt);border-color:var(--color-text-muted);color:var(--color-text)}.slate-act-btn.setdef:hover{background:#17a2b81a;border-color:#17a2b880;color:#17a2b8}.slate-act-btn.del:hover{background:#dc35451a;border-color:#dc354580;color:#dc3545}.slate-act-btn.disabled{opacity:.25;pointer-events:none}.slate-config-actions{align-items:center;display:flex;gap:16px;margin-top:16px}.add-slate-btn{align-items:center;background:transparent;border:1px dashed var(--color-border);border-radius:8px;color:var(--color-text-muted);cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;gap:8px;padding:8px 16px;transition:all .15s}.add-slate-btn:hover{background:var(--color-surface-alt);border-color:var(--color-text-muted);color:var(--color-text)}.clear-slate-btn{align-items:center;background:transparent;border:1px solid rgba(220,53,69,.3);border-radius:8px;color:#dc3545;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;gap:8px;padding:8px 16px;transition:all .15s}.clear-slate-btn svg{stroke:currentColor}.clear-slate-btn:hover{background:#dc35451a;border-color:#dc3545}.slate-config-footer{border-top:1px solid var(--color-border);display:flex;gap:8px;justify-content:flex-end;margin-top:24px;padding-top:24px}.search-select-wrapper{position:relative}.search-select-wrapper .form-input{width:100%}.search-select-wrapper .search-select-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 0 4px 4px;border-top:none;display:none;left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:10}.search-select-wrapper .search-select-dropdown.open{display:block}.search-select-wrapper .search-select-dropdown .search-select-option{border-bottom:1px solid var(--color-border);cursor:pointer;padding:8px 16px}.search-select-wrapper .search-select-dropdown .search-select-option:last-child{border-bottom:none}.search-select-wrapper .search-select-dropdown .search-select-option.selected,.search-select-wrapper .search-select-dropdown .search-select-option:hover{background:var(--color-primary);color:#fff}.search-select-wrapper .search-select-dropdown .search-select-option.no-results{color:var(--color-text-muted);cursor:default}.search-select-wrapper .search-select-dropdown .search-select-option.no-results:hover{background:transparent;color:var(--color-text-muted)}#add-slate-modal,#confirm-remove-slate-modal{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;height:100%!important;justify-content:center;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:100000!important}#add-slate-modal .modal-container,#confirm-remove-slate-modal .modal-container{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 10px 40px #0006;max-width:400px;position:relative;width:90%}#add-slate-modal .modal-header,#confirm-remove-slate-modal .modal-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:16px 24px}#add-slate-modal .modal-header .modal-title,#confirm-remove-slate-modal .modal-header .modal-title{color:var(--color-text);font-size:18px;font-weight:600;margin:0}#add-slate-modal .modal-header .modal-close,#confirm-remove-slate-modal .modal-header .modal-close{background:none;border:none;border-radius:4px;color:var(--color-text-muted);cursor:pointer;padding:4px;transition:all .15s}#add-slate-modal .modal-header .modal-close:hover,#confirm-remove-slate-modal .modal-header .modal-close:hover{background:var(--color-surface);color:var(--color-text)}#add-slate-modal .modal-header .modal-close svg,#confirm-remove-slate-modal .modal-header .modal-close svg{display:block;height:18px;width:18px}#add-slate-modal .modal-body,#confirm-remove-slate-modal .modal-body{padding:24px}#add-slate-modal .modal-body p,#confirm-remove-slate-modal .modal-body p{color:var(--color-text);font-size:16px;margin:0}#add-slate-modal .modal-body .form-group,#confirm-remove-slate-modal .modal-body .form-group{margin-bottom:0}#add-slate-modal .modal-body .form-group .form-label,#confirm-remove-slate-modal .modal-body .form-group .form-label{color:var(--color-text-muted);display:block;font-size:14px;margin-bottom:8px}#add-slate-modal .modal-body .form-group .form-input,#add-slate-modal .modal-body .form-group select,#confirm-remove-slate-modal .modal-body .form-group .form-input,#confirm-remove-slate-modal .modal-body .form-group select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);font-family:inherit;font-size:16px;padding:8px 16px;width:100%}#add-slate-modal .modal-body .form-group .form-input:focus,#add-slate-modal .modal-body .form-group select:focus,#confirm-remove-slate-modal .modal-body .form-group .form-input:focus,#confirm-remove-slate-modal .modal-body .form-group select:focus{border-color:#c23a2b;outline:none}#add-slate-modal .modal-footer,#confirm-remove-slate-modal .modal-footer{border-top:1px solid var(--color-border);display:flex;gap:8px;justify-content:flex-end;padding:16px 24px}.modal-success{max-width:400px;text-align:center}.modal-success .modal-body{padding:48px 32px}.modal-success .success-content{align-items:center;display:flex;flex-direction:column;gap:16px}.modal-success .success-icon{animation:successPulse .6s ease-out;color:#28a745;height:64px;stroke-width:2;width:64px}.modal-success .success-title{color:var(--color-text);font-size:24px;font-weight:600;margin:0}.modal-success .success-message{color:var(--color-text-muted);font-size:16px;margin:0}@keyframes successPulse{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.modal-error{max-width:400px;text-align:center}.modal-error .modal-body{padding:48px 32px}.modal-error .error-content{align-items:center;display:flex;flex-direction:column;gap:16px}.modal-error .error-icon{animation:errorShake .6s ease-out;color:#dc3545;height:64px;stroke-width:2;width:64px}.modal-error .error-title{color:var(--color-text);font-size:24px;font-weight:600;margin:0}.modal-error .error-message{color:var(--color-text-muted);font-size:16px;margin:0;max-width:100%;word-wrap:break-word}@keyframes errorShake{0%,to{opacity:0;transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}to{opacity:1;transform:translate(0)}}.modal{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:3000}.modal#delete-event-modal{z-index:10001}.modal .modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;height:100%;left:0;position:absolute;top:0;width:100%}.modal .modal-content{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-lg);max-height:90vh;max-width:600px;overflow-y:auto;position:relative;width:90%}.modal .modal-header{border-bottom:1px solid var(--color-border);padding:24px 32px;text-align:center}.modal .modal-header .modal-title{color:var(--color-text);font-size:24px;font-weight:600;margin:0}.modal .modal-body{padding:32px;text-align:center}.modal .modal-body .modal-warning{color:var(--color-text);font-size:16px;line-height:1.6;margin:0}.modal .modal-footer{padding-bottom:24px;text-align:center}.modal .modal-actions{border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:16px;padding:24px 32px}.modal .modal-actions .btn{align-items:flex-start;display:flex;flex-direction:column;padding:16px 24px;position:relative;text-align:left;width:100%}.modal-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:24px;line-height:1;padding:4px;position:absolute;right:16px;top:16px}.modal-close:hover{color:var(--color-text)}.access-denied-content{padding:24px;text-align:center}.access-denied-content .access-denied-icon{color:#f44336;display:block;height:64px;margin:0 auto 16px;width:64px}.access-denied-content h4{color:var(--color-text);font-size:18px;font-weight:600;margin:0 0 16px;text-align:center}.access-denied-content p{color:var(--color-text-muted);font-size:16px;line-height:1.5;margin:0 auto;max-width:400px}.slide-panel{height:100%;left:0;position:fixed;top:0;width:100%;z-index:2000}.slide-panel .slide-panel-overlay{background:#00000080;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%}.slide-panel .slide-panel-content{background:var(--color-surface-alt);box-shadow:var(--shadow-lg);height:100%;left:-90%;overflow-y:auto;position:absolute;top:0;transition:left .3s ease;width:90%}.slide-panel.open .slide-panel-overlay{opacity:1}.slide-panel.open .slide-panel-content{left:0}.slide-panel-header{align-items:center;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:24px}.slide-panel-header .slide-panel-title{color:var(--color-text);font-size:24px;font-weight:600;margin:0}.slide-panel-header .slide-panel-header-actions{align-items:center;display:flex;gap:16px}.slide-panel-header .slide-panel-close{align-items:center;background:none;border:none;border-radius:50%;color:var(--color-text-muted);cursor:pointer;display:flex;height:32px;justify-content:center;padding:4px;transition:all .2s ease;width:32px}.slide-panel-header .slide-panel-close svg{height:24px;width:24px}.slide-panel-header .slide-panel-close:hover{background:var(--color-border);color:var(--color-text)}.slide-panel-body{padding:24px}.add-manually-content .warning-notice{align-items:center;background:#f39c121a;border:1px solid rgba(243,156,18,.3);border-radius:4px;color:#f39c12;display:flex;gap:8px;margin-bottom:24px;padding:16px}.add-manually-content .warning-notice svg{flex-shrink:0}.add-manually-content .warning-notice span{font-size:.9rem;line-height:1.4}.add-manually-content .upload-section h3{color:var(--color-text);font-size:1.1rem;font-weight:600;margin:0 0 8px}.add-manually-content .upload-section p{color:var(--color-text-muted);line-height:1.5;margin:0 0 24px}.add-manually-content .upload-form .form-group{margin-bottom:24px}.add-manually-content .upload-form .form-group .form-label{color:var(--color-text);display:block;font-weight:500;margin-bottom:4px}.add-manually-content .upload-form .form-group .form-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:.9rem;padding:8px;transition:border-color .2s ease;width:100%}.add-manually-content .upload-form .form-group .form-input:focus{border-color:#c23a2b;box-shadow:0 0 0 2px #c23a2b1a;outline:none}.add-manually-content .upload-form .form-group .form-input[type=file]{padding:4px 8px}.add-manually-content .upload-form .form-actions{display:flex;gap:8px;margin-top:32px}.add-manually-content .upload-form .form-actions .btn{flex:1}.add-manually-content .upload-form .form-actions .btn:disabled{cursor:not-allowed;opacity:.6}.add-manually-content .upload-form .form-actions .btn:disabled:hover{background:#c23a2b;transform:none}.device-details-content .device-actions-section,.device-details-content .device-data-section,.device-details-content .device-info-section{margin-bottom:32px}.device-details-content .device-actions-section h3,.device-details-content .device-data-section h3,.device-details-content .device-info-section h3{border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:18px;font-weight:600;margin:0 0 24px;padding-bottom:8px}.device-details-content .device-info-grid{display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}.device-details-content .device-info-grid .info-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:flex;flex-direction:column;gap:4px;padding:16px}.device-details-content .device-info-grid .info-item label{color:var(--color-text-muted);font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.device-details-content .device-info-grid .info-item .editable-name-wrapper,.device-details-content .device-info-grid .info-item span{color:var(--color-text);font-size:16px;font-weight:600;word-break:break-word}.device-details-content .device-info-grid .info-item .status-badge{align-self:flex-start;display:inline-block;width:auto}.device-details-content .action-buttons{display:flex;flex-wrap:wrap;gap:16px}.device-details-content .action-buttons .btn{align-items:center;display:flex;gap:4px}.device-details-content .action-buttons .btn svg{height:16px;width:16px}.device-details-content .data-placeholder{background:var(--color-surface);border:2px dashed var(--color-border);border-radius:8px;color:var(--color-text-muted);padding:24px;text-align:center}.device-details-grid{display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:24px}.device-details-grid .detail-item{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:8px}.device-details-grid .detail-item strong{color:var(--color-text);margin-right:8px}.device-data-section{border-top:1px solid var(--color-border);padding-top:24px}.device-data-section h3{color:var(--color-text);margin:0 0 16px}.device-data-section .data-placeholder{background-color:var(--color-surface);border:2px dashed var(--color-border);border-radius:8px;padding:24px;text-align:center}.device-data-section .data-placeholder p{color:var(--color-text-muted);font-size:14px;margin:8px 0}.upload-form .form-group{margin-bottom:24px}.upload-form .form-actions{display:flex;gap:16px;justify-content:flex-end;margin-top:24px}.help-content p{line-height:1.5;margin-bottom:8px}.help-content hr{border:none;border-top:1px solid var(--color-border);margin:24px 0}.help-content strong{color:var(--color-text);font-weight:600}.loading-overlay{align-items:center;background:#000000b3;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:3000}.loading-content{align-items:center;display:flex;flex-direction:column;gap:16px}.loading-content .spinner{animation:spin 1s linear infinite;color:var(--color-primary)}.loading-content .loading-text{color:#fff;font-size:18px;font-weight:500}#validation-error-modal{z-index:100001!important}#validation-error-modal .modal-overlay{z-index:100001}#validation-error-modal .modal-content{z-index:100002}#confirm-close-modal{z-index:100005!important}#confirm-close-modal .modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c}.preview-modal-overlay{background:#001f3f;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:99999}.preview-modal-close,.preview-modal-overlay{align-items:center;display:flex;justify-content:center}.preview-modal-close{background:#0003;border:none;border-radius:50%;cursor:pointer;height:48px;position:absolute;right:24px;top:24px;transition:background .2s ease;width:48px;z-index:100000}.preview-modal-close svg{color:#fff}.preview-modal-close:hover{background:#ffffff4d}.preview-modal-save-btn{bottom:24px;font-size:16px;font-weight:600;padding:16px 32px;position:absolute;right:24px;z-index:100000}.preview-modal-content{display:flex;height:100vh;position:relative;width:100vw}.preview-modal-content img{height:100%;width:100%}.preview-modal-description{bottom:48px;color:#fff;font-size:72px;font-weight:600;left:50%;line-height:1.2;max-width:90vw;position:absolute;text-align:center;text-shadow:0 4px 8px rgba(0,0,0,.5);transform:translate(-50%)}.notification-preview{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-lg);margin:32px auto;max-width:800px;padding:32px}.alert-preview .alert-header{align-items:center;border-bottom:2px solid var(--color-danger);display:flex;gap:16px;margin-bottom:24px;padding-bottom:16px}.alert-preview .alert-header .alert-icon{color:var(--color-danger)}.alert-preview .alert-header h2{color:var(--color-text);font-size:32px;margin:0}.alert-preview .alert-body .alert-message{color:var(--color-text);font-size:18px;line-height:1.6;margin-bottom:16px}.alert-preview .alert-body .alert-priority{border-radius:4px;display:inline-block;font-size:14px;font-weight:600;padding:4px 8px;text-transform:uppercase}.alert-preview .alert-body .alert-priority.priority-high{background:var(--color-danger);color:#fff}.alert-preview .alert-body .alert-priority.priority-medium{background:var(--color-warning);color:var(--color-text)}.alert-preview .alert-body .alert-priority.priority-low{background:var(--color-info);color:#fff}.message-preview .message-header{border-bottom:1px solid var(--color-border);margin-bottom:24px;padding-bottom:16px}.message-preview .message-header h2{color:var(--color-text);font-size:32px;margin:0 0 4px}.message-preview .message-header .message-sender{color:var(--color-text-secondary);font-size:14px}.message-preview .message-body p{color:var(--color-text);font-size:18px;line-height:1.6;margin:0}.message-preview .message-footer{margin-top:24px}.message-preview .message-footer.urgent{background:var(--color-danger);border-radius:4px;color:#fff;display:inline-block;font-size:14px;font-weight:600;padding:4px 8px;text-transform:uppercase}.status-preview .status-header{border-bottom:1px solid var(--color-border);margin-bottom:24px;padding-bottom:16px}.status-preview .status-header h2{color:var(--color-text);font-size:32px;margin:0}.status-preview .status-body{display:flex;flex-direction:column;gap:16px}.status-preview .status-body .status-item{align-items:center;display:flex;justify-content:space-between;padding:8px 0}.status-preview .status-body .status-item .status-label{color:var(--color-text-secondary);font-weight:600}.status-preview .status-body .status-item .status-value{color:var(--color-text);font-family:monospace}.status-preview .status-body .status-item .status-badge{border-radius:4px;font-size:14px;font-weight:600;padding:4px 8px;text-transform:uppercase}.status-preview .status-body .status-item .status-badge.status-online{background:var(--color-success);color:#fff}.status-preview .status-body .status-item .status-badge.status-offline{background:var(--color-danger);color:#fff}.status-preview .status-body .status-item .status-badge.status-warning{background:var(--color-warning);color:var(--color-text)}.preview-text-content{align-items:center;display:flex;font-size:72px;font-weight:600;height:100%;justify-content:center;left:0;line-height:1.3;padding:60px;position:absolute;text-align:center;top:0;width:100%;word-wrap:break-word;overflow-wrap:break-word}.preview-color-controls{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0009;border-radius:50px;bottom:30px;box-shadow:0 4px 20px #00000080;display:flex;flex-direction:row;gap:12px;left:50%;padding:12px 20px;position:fixed;transform:translate(-50%);z-index:10001}.color-trigger{align-items:center;background:#ffffff1a;border:2px solid hsla(0,0%,100%,.3);border-radius:25px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;padding:8px 16px;transition:all .2s ease}.color-trigger:hover{background:#fff3;border-color:#ffffff80;box-shadow:0 4px 12px #0000004d;transform:translateY(-2px)}.color-trigger:active{transform:translateY(0)}.color-trigger.active{background:#ffffff40;border-color:#ffffffb3}.color-trigger .color-preview{border:2px solid #fff;border-radius:50%;box-shadow:0 2px 6px #0000004d;flex-shrink:0;height:24px;width:24px}.color-trigger .color-label{text-shadow:0 1px 2px rgba(0,0,0,.5);white-space:nowrap}.custom-color-picker{animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0009;border-radius:16px;box-shadow:0 8px 32px #00000080;max-width:400px;min-width:320px;padding:16px;position:fixed;-webkit-user-select:none;user-select:none;width:auto;z-index:100003}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.custom-color-picker .color-picker-header{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.2);display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:8px}.custom-color-picker .color-picker-header .color-picker-title{color:#fff;font-size:14px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5)}.custom-color-picker .color-picker-header .color-picker-close{align-items:center;background:none;border:none;border-radius:4px;color:#fffc;cursor:pointer;display:flex;font-size:24px;height:24px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:24px}.custom-color-picker .color-picker-header .color-picker-close:hover{background:#ffffff1a;color:#fff}.custom-color-picker .color-picker-body{display:flex;flex-direction:column;gap:12px}.custom-color-picker .color-canvas-wrapper{position:relative;width:100%}.custom-color-picker .color-canvas-wrapper #color-canvas{border:2px solid hsla(0,0%,100%,.3);border-radius:8px;cursor:crosshair;display:block;height:200px;width:100%}.custom-color-picker .color-canvas-wrapper .color-canvas-cursor{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #00000080,0 2px 4px #0000004d;height:12px;pointer-events:none;position:absolute;transform:translate(-50%,-50%);transition:transform .1s ease;width:12px}.custom-color-picker .hue-slider-wrapper{position:relative;width:100%}.custom-color-picker .hue-slider-wrapper #hue-slider{border:2px solid hsla(0,0%,100%,.3);border-radius:10px;cursor:pointer;display:block;height:20px;width:100%}.custom-color-picker .hue-slider-wrapper .hue-slider-cursor{background:#fff;border-radius:2px;box-shadow:0 0 0 1px #00000080,0 2px 4px #0000004d;height:24px;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:4px}.custom-color-picker .color-info{align-items:center;display:flex;gap:10px;width:100%}.custom-color-picker .color-info .color-preview-box{border:2px solid hsla(0,0%,100%,.3);border-radius:8px;box-shadow:0 2px 6px #0000004d;flex-shrink:0;height:44px;width:44px}.custom-color-picker .color-info .hex-value-input{background:#ffffff1a;border:1px solid hsla(0,0%,100%,.3);border-radius:8px;color:#fff;flex:1;font-family:Courier New,monospace;font-size:14px;padding:10px 12px;text-align:center;text-transform:uppercase}.custom-color-picker .color-info .hex-value-input:focus{background:#ffffff26;border-color:#ffffff80;outline:none}.custom-color-picker .color-info .hex-value-input::placeholder{color:#ffffff80}.custom-color-picker .color-info .btn-apply-color{align-items:center;background:#28a745e6;border:2px solid hsla(0,0%,100%,.3);border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:all .2s ease;width:44px}.custom-color-picker .color-info .btn-apply-color:hover{background:#28a745;border-color:#ffffff80;box-shadow:0 4px 12px #0000004d;transform:translateY(-2px)}.custom-color-picker .color-info .btn-apply-color:active{transform:translateY(0)}.custom-color-picker .color-info .btn-apply-color svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}@media (max-width:768px){.preview-color-controls{bottom:20px;gap:8px;padding:10px 16px}.color-trigger{font-size:12px;padding:6px 12px}.color-trigger .color-preview{height:20px;width:20px}.custom-color-picker{bottom:70px;max-width:calc(100vw - 40px);min-width:280px}.custom-color-picker .color-canvas-wrapper #color-canvas{height:180px}}@media (max-width:480px){.custom-color-picker{min-width:260px}.custom-color-picker .color-canvas-wrapper #color-canvas{height:160px}.custom-color-picker .color-info .btn-apply-color,.custom-color-picker .color-info .color-preview-box{height:40px;width:40px}}#inactivity-modal .modal-content{max-width:500px;text-align:center}#inactivity-modal .modal-header{border-bottom:1px solid var(--color-border);padding:24px 32px}#inactivity-modal .modal-header .modal-title{color:var(--color-text);font-size:24px;font-weight:600;margin:0}#inactivity-modal .modal-body{padding:48px 32px}#inactivity-modal .inactivity-warning-content{align-items:center;display:flex;flex-direction:column;gap:24px}#inactivity-modal .inactivity-icon{animation:pulse 2s ease-in-out infinite;color:#ffc107;height:80px;stroke-width:2;width:80px}#inactivity-modal .inactivity-message{color:var(--color-text);font-size:18px;line-height:1.6;margin:0}#inactivity-modal .inactivity-message strong{color:#ffc107;display:inline-block;font-size:24px;font-weight:700;min-width:3ch;text-align:center}#inactivity-modal .inactivity-action{color:var(--color-text-muted);font-size:16px;font-style:italic;margin:0}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@media (max-width:768px){#inactivity-modal .modal-content{margin:16px;max-width:90%}#inactivity-modal .inactivity-icon{height:64px;width:64px}#inactivity-modal .inactivity-message{font-size:16px}#inactivity-modal .inactivity-message strong{font-size:18px}#inactivity-modal .inactivity-action{font-size:14px}}.timeout-wrapper{align-items:flex-start;display:flex;gap:12px}.timeout-checkbox-label{align-items:center;cursor:pointer;display:flex;gap:8px;margin:0;padding-top:10px}.timeout-checkbox-label input[type=checkbox]{margin:0}.timeout-checkbox-label span{white-space:nowrap}.toggle-switch{display:inline-block;height:30px;margin:8px 0;position:relative;width:56px}.toggle-switch input[type=checkbox]{height:0;opacity:0;width:0}.toggle-switch input[type=checkbox]:checked+.toggle-slider:before{transform:translate(26px)}.toggle-switch input[type=checkbox]:focus+.toggle-slider{box-shadow:0 0 0 2px var(--color-primary-alpha)}.toggle-switch .toggle-slider{background:var(--color-border);border-radius:30px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:all .3s ease}.toggle-switch .toggle-slider:before{background:#fff;border-radius:50%;bottom:4px;box-shadow:0 2px 4px #0003;content:"";height:22px;left:4px;position:absolute;transition:all .3s ease;width:22px}.timeout-input-container{display:none;flex:1;margin-bottom:48px;margin-top:8px;position:relative}.timeout-input-container.active{display:block}.timeout-input-container .field-note{left:0;margin-top:4px;position:absolute;right:0;top:100%;white-space:nowrap}.preview-editor-modal{background:#001f3f;display:none;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:99999}.preview-editor-modal.visible{display:flex}.editor-loading-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#001f3ff2;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:100004}.editor-loading-spinner{color:#fff;text-align:center}.editor-loading-spinner .spinner{animation:spin .8s linear infinite;border:4px solid hsla(0,0%,100%,.1);border-radius:50%;border-top:4px solid var(--color-primary);height:60px;margin:0 auto 16px;width:60px}.editor-loading-spinner p{color:#ffffffe6;font-size:18px;margin:0}@keyframes spin{to{transform:rotate(1turn)}}.editor-action-buttons{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0009;border-radius:28px;box-shadow:0 4px 16px #0006;display:flex;gap:8px;padding:4px 8px;position:fixed;right:20px;top:20px;z-index:100002}.editor-view-toggle,.preview-editor-close,.preview-editor-download,.preview-editor-save,.preview-settings-toggle,.preview-view-toggle,.visual-editor-toggle,.visual-preview-toggle{align-items:center;background:#ffffff26;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;height:48px;justify-content:center;transition:all .2s ease;width:48px}.editor-view-toggle svg,.preview-editor-close svg,.preview-editor-download svg,.preview-editor-save svg,.preview-settings-toggle svg,.preview-view-toggle svg,.visual-editor-toggle svg,.visual-preview-toggle svg{color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.editor-view-toggle:hover,.preview-editor-close:hover,.preview-editor-download:hover,.preview-editor-save:hover,.preview-settings-toggle:hover,.preview-view-toggle:hover,.visual-editor-toggle:hover,.visual-preview-toggle:hover{background:#ffffff40;transform:scale(1.05)}.preview-editor-save:hover{background:#4caf5080}.preview-editor-close:hover{background:#dc354580}.preview-editor-close.active{background:#fff3}.preview-settings-panel{background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;height:100vh;left:0;overflow-y:auto;position:absolute;top:0;transition:transform .3s ease;width:400px;z-index:100000}.preview-settings-panel.collapsed{transform:translate(-100%)}.settings-panel-header{border-bottom:1px solid var(--color-border);padding:32px}.settings-panel-header h3{color:var(--color-text);font-size:24px;font-weight:600;margin:0}.settings-panel-body{flex:1;overflow-y:auto;padding:24px}.settings-panel-body .color-trigger{background:var(--color-input-bg);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);justify-content:flex-start;padding:10px 14px;width:100%}.settings-panel-body .color-trigger:hover{background:var(--color-hover);border-color:var(--color-primary)}.settings-panel-body .color-trigger .color-preview{border:2px solid hsla(0,0%,100%,.3);border-radius:4px;height:24px;width:24px}.settings-panel-body .color-trigger .color-label{flex:1;text-align:left}.preview-editor-content{align-items:center;display:flex;flex:1;height:100vh;justify-content:center;overflow:auto;position:relative;width:100%}.preview-editor-content:has(.device-info-widget-container){align-items:flex-start;justify-content:center}.html-editor-container{display:flex;flex:1;height:100vh;overflow:hidden;width:100%}.html-editor-split-view{display:flex;gap:0;height:100%;width:100%}.code-editor-section{border-right:1px solid var(--color-border);display:flex;flex:1;flex-direction:column;overflow:hidden}.code-editor-header{align-items:center;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:12px 16px}.code-editor-header span{color:var(--color-text);font-weight:500}#ace-editor-container{flex:1;font-size:14px;height:100%;width:100%}#code-editor-validation{background:var(--color-danger);color:#fff;display:none;font-size:13px;padding:8px 16px}.code-preview-section{display:flex;flex:1;flex-direction:column;overflow:hidden}.code-preview-header{align-items:center;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:12px 16px}.code-preview-header span{color:var(--color-text);font-weight:500}.code-preview-content{background:#fff;flex:1;height:100%;overflow:auto;position:relative;width:100%}.code-preview-content iframe{border:none;display:block;height:100%;width:100%}.preview-empty-state{color:#ffffff80;font-size:18px;padding:32px;text-align:center}.editable-preview{font-size:72px;font-weight:600;min-height:200px;outline:none;padding:60px;position:relative;text-align:center;width:100%}.editable-preview:focus{outline:2px dashed hsla(0,0%,100%,.3);outline-offset:-10px}.editable-preview.empty:before{color:#ffffff80;content:attr(data-placeholder);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);white-space:nowrap}.editable-preview.empty:focus:before{content:""}.message-preview-editor{align-items:center;display:flex;flex-direction:column;gap:30px;height:100%;justify-content:center;padding:60px;width:100%}.message-preview-editor .message-title{font-size:72px;font-weight:600;outline:none}.message-preview-editor .message-title:focus{outline:2px dashed hsla(0,0%,100%,.3)}.message-preview-editor .message-content{font-size:54px;font-weight:600;outline:none}.message-preview-editor .message-content:focus{outline:2px dashed hsla(0,0%,100%,.3)}.image-preview-area{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;width:100%}.image-preview-area img{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.status-preview-info{color:#fff9;max-width:600px;padding:32px;text-align:center}.status-preview-info p{font-size:18px;line-height:1.6}.widget-selector-popup{align-items:center;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:100000}.widget-selector-overlay{background:#000000b3;height:100%;left:0;position:absolute;top:0;width:100%}.widget-selector-content{background:var(--color-surface);border-radius:12px;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:80vh;max-width:600px;overflow:hidden;position:relative;width:90%}.widget-selector-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:24px}.widget-selector-header h3{color:var(--color-text);font-size:24px;font-weight:600;margin:0}.widget-selector-close{align-items:center;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:32px;height:32px;justify-content:center;line-height:1;padding:0;transition:color .2s ease;width:32px}.widget-selector-close:hover{color:var(--color-text)}.widget-selector-body{flex:1;overflow-y:auto;padding:24px}.widget-type-list{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-bottom:24px}.widget-type-item{background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;padding:24px;text-align:center;transition:all .2s ease}.widget-type-item:hover{background:var(--color-surface-hover);border-color:var(--color-primary);transform:translateY(-2px)}.widget-type-item .widget-type-icon{font-size:48px;margin-bottom:8px}.widget-type-item .widget-type-name{color:var(--color-text);font-size:16px;font-weight:600}.widget-device-selector{border-top:1px solid var(--color-border);margin-top:24px;padding-top:24px}.widget-device-selector h4{color:var(--color-text);font-size:18px;font-weight:600;margin:0 0 16px}.device-list{display:flex;flex-direction:column;gap:8px}.device-item{align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;padding:16px;transition:all .2s ease}.device-item:hover{background:var(--color-surface-hover);border-color:var(--color-primary)}.device-item .device-name{color:var(--color-text);font-size:16px;font-weight:500}.device-item .device-status{border-radius:4px;font-size:14px;font-weight:600;padding:2px 8px;text-transform:uppercase}.device-item .device-status.online{background:var(--color-success);color:#fff}.device-item .device-status.offline{background:var(--color-danger);color:#fff}.device-item .device-status.unknown{background:var(--color-text-secondary);color:#fff}.error,.loading,.no-devices{color:var(--color-text-secondary);font-size:16px;padding:32px;text-align:center}.device-info-widget-container{width:100%}.device-info-widget-container .preview-widget{margin-bottom:40px}.device-info-widget-container .preview-widget:last-child{margin-bottom:0}.preview-widget{background:transparent;border:none;border-radius:8px;padding:0;position:relative;width:100%}.preview-widget:hover .widget-remove{opacity:1}.widget-toolbar{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;border-radius:8px;box-shadow:0 4px 12px #0000004d;display:none;flex-wrap:wrap;gap:8px;justify-content:center;padding:8px 16px;pointer-events:auto;position:fixed;z-index:10001}.toolbar-label{color:#fffc;flex:1;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.toolbar-btn{background:#0009;border:1px solid hsla(0,0%,100%,.3);border-radius:4px;color:#fffffff2;cursor:pointer;font-size:14px;font-weight:500;padding:4px 8px;transition:all .2s ease}.toolbar-btn:hover{background:#000c;border-color:#ffffff80;color:#fff}.toolbar-btn.color-btn{align-items:center;display:flex;justify-content:center;padding:4px}.color-indicator{border:1px solid hsla(0,0%,100%,.3);border-radius:4px;height:20px;width:20px}.toolbar-input,.toolbar-select{background:#0009;border:1px solid hsla(0,0%,100%,.3);border-radius:4px;color:#fffffff2;cursor:pointer;font-size:14px;font-weight:500;padding:4px 8px}.toolbar-input:hover,.toolbar-select:hover{background:#000c;border-color:#ffffff80;color:#fff}.toolbar-input{text-align:center;width:60px}.toolbar-input:focus{background:#000c;border-color:#fff9;outline:none}.toolbar-input option{background:var(--color-surface);color:var(--color-text)}.widget-editable{color:inherit;min-height:40px;outline:none;padding:8px;position:relative}.widget-editable:focus{background:#ffffff0d;border-radius:4px}.widget-editable:empty:before{color:#ffffff80;content:attr(data-placeholder);display:block;pointer-events:none;text-align:inherit}.widget-editable:focus:before{content:none!important;display:none!important}.device-properties-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.device-property-slot{align-items:center;background:#ffffff08;border:2px dashed hsla(0,0%,100%,.2);border-radius:8px;cursor:pointer;display:flex;justify-content:center;min-height:120px;padding:16px;transition:all .2s ease}.device-property-slot:hover{background:#ffffff14;border-color:#fff6;border-style:solid}.device-property-slot .widget-placeholder{color:#ffffff80;font-size:14px;text-align:center}.preview-editor-content .device-column-actions{display:flex!important;opacity:1}.device-column-edit{align-items:center;background:none;border:none;color:#fff9;cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;transition:all .2s ease;width:24px;z-index:10}.device-column-edit svg{height:16px;width:16px}.device-column-edit:hover{color:var(--color-info);transform:scale(1.1)}.device-column-remove{align-items:center;background:none;border:none;color:#fff9;cursor:pointer;display:flex;font-size:24px;font-weight:400;height:24px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:24px;z-index:10}.device-column-remove:hover{color:#f44;transform:scale(1.2)}.add-widget-btn{background:#ffffff1a;border:2px dashed hsla(0,0%,100%,.3);border-radius:8px;color:#ffffffb3;cursor:pointer;font-size:16px;font-weight:500;padding:24px;transition:all .2s ease;width:100%}.add-widget-btn:hover{background:#ffffff26;border-color:#ffffff80;border-style:solid;color:#fff}.widget-remove{align-items:center;background:#dc354533;border:1px solid rgba(220,53,69,.5);border-radius:4px;color:#ffffffe6;cursor:pointer;display:flex;font-size:18px;font-weight:700;height:28px;justify-content:center;line-height:1;margin-left:auto;padding:0;transition:all .2s ease;width:28px}.widget-remove:hover{background:#dc3545cc;border-color:#dc3545;color:#fff;transform:scale(1.1)}.device-property-selector .widget-selector-content{max-width:600px;min-width:500px}.device-property-selector .device-select-container{margin-bottom:24px}.device-property-selector .device-select-container label{color:var(--color-text);display:block;font-weight:500;margin-bottom:4px}.device-property-selector .device-select-container select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:16px;padding:8px;width:100%}.device-property-selector .device-select-container select:focus{border-color:var(--color-primary);outline:none}.device-property-selector .device-properties-container{margin-bottom:24px}.device-property-selector .device-properties-container label{color:var(--color-text);display:block;font-weight:500;margin-bottom:8px}.device-property-selector .device-properties-checkboxes{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto;padding:8px}.device-property-selector .device-properties-checkboxes .device-property-checkbox{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:8px;padding:4px 8px;transition:background .2s}.device-property-selector .device-properties-checkboxes .device-property-checkbox:hover{background:#ffffff0d}.device-property-selector .device-properties-checkboxes .device-property-checkbox input[type=checkbox]{cursor:pointer;margin:0}.device-property-selector .device-properties-checkboxes .device-property-checkbox span{color:var(--color-text);font-size:14px}.device-property-selector .device-selector-actions{display:flex;gap:16px;justify-content:flex-end;margin-top:24px}.device-property-selector .device-selector-actions button{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 24px;transition:all .2s}.device-property-selector .device-selector-actions button.btn-cancel{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.device-property-selector .device-selector-actions button.btn-cancel:hover{background:#ffffff0d}#send-notification-modal .modal-body{text-align:left}#send-notification-modal .send-slate-fields-row{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}#send-notification-modal .send-slate-displays-col,#send-notification-modal .send-slate-duration-col,#send-notification-modal .send-slate-priority-col{margin-bottom:0;width:100%}#send-notification-modal .send-slate-displays-col{min-width:0}#send-notification-modal .send-slate-displays-col .notification-displays-inline.checkbox-group{align-content:flex-start;background:var(--color-background);border:1px solid var(--color-border);border-radius:4px;display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:4px!important;margin-top:4px;max-height:none!important;overflow-y:visible;padding:8px}#send-notification-modal .send-slate-displays-col .notification-displays-inline.checkbox-group .checkbox-label{display:inline-flex!important;flex:0 0 auto;margin:0;width:auto!important}#send-notification-modal .send-slate-displays-col .field-note{margin-top:4px}#send-notification-modal .send-slate-priority-col,#send-notification-modal .send-slate-priority-col .priority-selector{width:100%}#send-notification-modal .checkbox-group .text-muted{color:var(--color-text-muted);margin:0;padding:16px}.actions-section .section-header,.events-section .section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.actions-section .section-header h4,.events-section .section-header h4{color:var(--color-text);font-size:18px;font-weight:600;margin:0}.events-list{display:flex;flex-direction:column;gap:8px;overflow:visible}.event-logic-toggle{display:flex;gap:0;justify-content:center;margin:4px 0}.event-logic-toggle .logic-btn{background:var(--color-surface-alt);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;font-size:14px;font-weight:500;padding:4px 16px;transition:all .2s ease}.event-logic-toggle .logic-btn:first-child{border-radius:4px 0 0 4px}.event-logic-toggle .logic-btn:last-child{border-left:none;border-radius:0 4px 4px 0}.event-logic-toggle .logic-btn.active{background:#c23a2b;border-color:#c23a2b;color:#fff}.event-logic-toggle .logic-btn:hover:not(.active){background:var(--color-border)}.action-card,.event-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;transition:all .2s ease}.collapsed.action-card .action-card-body,.collapsed.action-card .event-card-body,.event-card.collapsed .action-card-body,.event-card.collapsed .event-card-body{display:none}.collapsed.action-card .icon-collapse,.event-card.collapsed .icon-collapse{transform:rotate(-90deg)}.action-card:hover,.event-card:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #0000001a}.action-card-header,.event-card-header{align-items:center;background:var(--color-background);cursor:pointer;display:flex;gap:8px;padding:16px;-webkit-user-select:none;user-select:none}.action-card-header .btn-collapse,.event-card-header .btn-collapse{align-items:center;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;display:flex;justify-content:center;padding:0;transition:transform .2s ease}.action-card-header .btn-collapse .icon-collapse,.event-card-header .btn-collapse .icon-collapse{transition:transform .2s ease}.action-card-header .btn-collapse:hover,.event-card-header .btn-collapse:hover{color:var(--color-text)}.action-card-header .action-summary,.action-card-header .event-summary,.event-card-header .action-summary,.event-card-header .event-summary{color:var(--color-text);flex:1;font-size:16px;font-weight:500}.action-card-header .btn-delete-action,.action-card-header .btn-delete-event,.event-card-header .btn-delete-action,.event-card-header .btn-delete-event{align-items:center;background:none;border:none;border-radius:4px;color:var(--color-text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px;pointer-events:auto;position:relative;transition:all .2s;z-index:10}.action-card-header .btn-delete-action:hover,.action-card-header .btn-delete-event:hover,.event-card-header .btn-delete-action:hover,.event-card-header .btn-delete-event:hover{background:#ff00001a;color:var(--color-danger)}.action-card-header .btn-delete-action svg,.action-card-header .btn-delete-event svg,.event-card-header .btn-delete-action svg,.event-card-header .btn-delete-event svg{height:20px;width:20px}.action-card,.event-card{overflow:visible}.action-card .combobox-dropdown,.action-card .multiselect-dropdown,.event-card .combobox-dropdown,.event-card .multiselect-dropdown{z-index:1001}.action-card-body,.event-card-body{border-top:1px solid var(--color-border);overflow:visible;padding:16px;position:relative;z-index:1}.action-card-body .event-parameters,.event-card-body .event-parameters{margin-top:16px;overflow:visible}.action-card-body select.form-select,.event-card-body select.form-select{position:relative;z-index:10}.actions-list{display:flex;flex-direction:column;gap:16px;overflow:visible}.action-card-body .action-parameters{margin-top:16px}.action-parameters,.event-parameters{display:grid!important;gap:16px;grid-template-columns:repeat(2,1fr)!important;overflow:visible}.action-parameters>.form-group,.event-parameters>.form-group{margin-bottom:0;overflow:visible}.action-parameters .checkbox-group[data-field=weekdays],.event-parameters .checkbox-group[data-field=weekdays]{background:transparent!important;border:none!important;display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:4px!important;max-height:none!important;overflow:visible!important;padding:0!important}.action-parameters .checkbox-group[data-field=weekdays] .checkbox-label,.event-parameters .checkbox-group[data-field=weekdays] .checkbox-label{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;display:inline-flex!important;flex-direction:row!important;gap:4px;padding:4px 8px;width:auto!important}.action-parameters .checkbox-group[data-field=weekdays] .checkbox-label:hover,.event-parameters .checkbox-group[data-field=weekdays] .checkbox-label:hover{border-color:var(--color-primary)}@media (max-width:768px){.action-parameters,.event-parameters{grid-template-columns:1fr!important}}.action-parameters:has(.notification-action-layout),.event-parameters:has(.notification-action-layout){display:flex!important;flex-direction:column!important;grid-template-columns:unset!important}.action-parameters .notification-action-layout,.event-parameters .notification-action-layout{min-width:0;width:100%}.action-parameters .notification-action-main,.event-parameters .notification-action-main{align-items:start;display:grid;gap:24px;grid-template-columns:1fr 1fr;width:100%}@media (max-width:768px){.action-parameters .notification-action-main,.event-parameters .notification-action-main{grid-template-columns:1fr}}.action-parameters .notification-action-left,.event-parameters .notification-action-left{align-self:start;display:flex;flex-direction:column;gap:8px}.action-parameters .notification-action-left .form-group,.event-parameters .notification-action-left .form-group{margin-bottom:0!important}.action-parameters .notification-action-left .field-note,.event-parameters .notification-action-left .field-note{margin-bottom:0;margin-top:4px}.action-parameters .notification-action-right,.event-parameters .notification-action-right{align-self:start;display:flex;flex-direction:column;min-height:0;width:100%}.action-parameters .notification-action-right .form-group,.event-parameters .notification-action-right .form-group{display:flex;flex-direction:column;margin-bottom:0!important;min-height:0;width:100%}.action-parameters .notification-action-right .form-label,.event-parameters .notification-action-right .form-label{flex-shrink:0}.action-parameters .notification-action-right .notification-displays-list.checkbox-group,.event-parameters .notification-action-right .notification-displays-list.checkbox-group{flex:1 1 auto;margin-top:0;max-height:none!important;min-height:0;overflow-y:auto}.action-parameters .notification-action-right .field-note,.event-parameters .notification-action-right .field-note{flex-shrink:0;margin-bottom:0;margin-top:4px}.action-parameters .notification-displays-inline.checkbox-group,.event-parameters .notification-displays-inline.checkbox-group{align-content:flex-start;display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:4px!important;max-height:none!important}.action-parameters .notification-displays-inline.checkbox-group .checkbox-item,.action-parameters .notification-displays-inline.checkbox-group .checkbox-label,.event-parameters .notification-displays-inline.checkbox-group .checkbox-item,.event-parameters .notification-displays-inline.checkbox-group .checkbox-label{display:inline-flex!important;flex:0 0 auto;margin:0;width:auto!important}.action-parameters .notification-displays-inline.checkbox-group .checkbox-item label,.event-parameters .notification-displays-inline.checkbox-group .checkbox-item label{align-items:center;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;display:inline-flex!important;gap:4px;padding:4px 8px}.action-parameters .notification-action-priority,.event-parameters .notification-action-priority{margin-bottom:0!important;margin-top:8px;width:100%}.action-card{overflow:visible}.action-card .combobox-dropdown,.action-card .multiselect-dropdown{z-index:1001}.btn{align-items:center;border:2px solid transparent;border-radius:4px;cursor:pointer;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;font-weight:500;gap:4px;justify-content:center;min-width:80px;padding:4px 8px;text-align:center;text-decoration:none;transition:all .2s ease}.btn svg{flex-shrink:0}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#c23a2b!important;border-color:#c23a2b!important;color:#fff!important}.btn-primary:hover:not(:disabled){background:#a22f23!important;border-color:#a22f23!important;color:#fff}.btn-primary:active{transform:translateY(0)}.btn-secondary{background-color:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background-color:var(--color-border);border-color:var(--color-border)}.btn-cancel{background-color:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-cancel:hover:not(:disabled){background-color:var(--color-border)}.btn-danger{background-color:#c23a2b;border-color:#c23a2b;color:#fff}.btn-danger:hover:not(:disabled){background-color:#a22f23}.btn-sort-order{align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);cursor:pointer;display:flex;justify-content:center;padding:4px;position:relative;transition:all .2s ease;z-index:10}.btn-sort-order svg{height:16px;pointer-events:none;transition:transform .2s ease;width:16px}.btn-sort-order.desc svg{transform:scaleY(-1)}.btn-sort-order:hover:not(:disabled){background:#c23a2b1a;border-color:#c23a2b;color:#c23a2b}.btn-table-refresh.loading{border-color:#c23a2b;color:#c23a2b}.btn-description{font-size:14px;font-weight:400;line-height:1.4;margin-top:4px;opacity:.8}#confirm-reset-btn{align-items:center;display:flex;flex-direction:row;gap:24px;justify-content:flex-start}#confirm-reset-btn .btn-warning-icon{flex-shrink:0}#confirm-reset-btn .btn-content{align-items:flex-start;display:flex;flex-direction:column;text-align:left}@keyframes pulse-success{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes pulse-error{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.theme-switcher-fixed{align-items:center;background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:50%;bottom:24px;box-shadow:var(--shadow-lg);color:var(--color-text);cursor:pointer;display:flex;height:56px;justify-content:center;position:fixed;right:24px;transition:all .3s ease;width:56px;z-index:99998}.theme-switcher-fixed:hover{background:#c23a2b;border-color:#c23a2b;box-shadow:0 8px 25px #00000026;color:#fff;transform:translateY(-2px)}.theme-switcher-fixed:active{transform:translateY(0)}.theme-switcher-fixed .theme-icon{align-items:center;display:flex;height:24px;justify-content:center;transition:transform .3s ease;width:24px}.theme-switcher-fixed .theme-icon svg{fill:none;height:100%;stroke:currentColor;stroke-width:2;width:100%}.theme-switcher-fixed.switching .theme-icon{transform:rotate(180deg)}.theme-switcher-fixed:before{background:var(--color-text);border-radius:4px;color:var(--color-surface-alt);content:attr(data-tooltip);font-size:14px;margin-right:8px;padding:4px 8px;white-space:nowrap}.theme-switcher-fixed:after,.theme-switcher-fixed:before{opacity:0;pointer-events:none;position:absolute;right:100%;top:50%;transform:translateY(-50%);transition:all .3s ease;visibility:hidden}.theme-switcher-fixed:after{border:6px solid transparent;border-left:6px solid var(--color-text);content:"";margin-right:2px}.theme-switcher-fixed:hover:after,.theme-switcher-fixed:hover:before{opacity:1;visibility:visible}@media (max-width:768px){.theme-switcher-fixed{bottom:16px;height:48px;right:16px;width:48px}.theme-switcher-fixed .theme-icon{height:20px;width:20px}.theme-switcher-fixed:after,.theme-switcher-fixed:before{display:none}}.theme-switcher-fixed:focus{outline:2px solid var(--color-text);outline-offset:2px}@media (prefers-reduced-motion:reduce){.theme-switcher-fixed{transition:none}.theme-switcher-fixed:hover{transform:none}.theme-switcher-fixed .theme-icon{transition:none}.theme-switcher-fixed.switching .theme-icon{transform:none}}[data-theme=dark] .theme-switcher-fixed:before{background:var(--color-surface-alt);color:var(--color-text)}[data-theme=dark] .theme-switcher-fixed:after{border-left-color:var(--color-surface-alt)}[data-theme=dark] .theme-switcher-fixed:focus{outline:2px solid #fff;outline-offset:2px}.btn-icon{align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);cursor:pointer;display:inline-flex;gap:4px;transition:all .2s ease}.btn-icon svg{flex-shrink:0;height:16px;transition:transform .2s ease;width:16px}.btn-icon svg.discovery-icon{fill:none!important}.btn-icon:hover:not(:disabled){background:#c23a2b1a;border-color:#c23a2b;color:#c23a2b}.btn-icon.loading svg{animation:spin 1s linear infinite}.btn-icon.btn-pinned{background:#dc35451a!important;height:34px;min-width:34px;width:34px}.btn-icon.btn-pinned,.btn-icon.btn-pinned:hover{border-color:#dc3545!important;color:#dc3545!important}.btn-icon.btn-pinned:hover{background:#dc354533!important}.btn-icon.btn-unpinned{background:#28a7451a!important;height:34px;min-width:34px;width:34px}.btn-icon.btn-unpinned,.btn-icon.btn-unpinned:hover{border-color:#28a745!important;color:#28a745!important}.btn-icon.btn-unpinned:hover{background:#28a74533!important}.btn-primary.btn-icon svg.discovery-icon{fill:none!important;stroke:currentColor}.btn-info{align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s ease}.btn-info svg{height:20px;width:20px}.btn-info:hover:not(:disabled){background:#c23a2b1a;border-color:#c23a2b;color:#c23a2b}@keyframes discovery-pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes spinPulse{0%{opacity:.8;transform:rotate(0) scale(1)}25%{opacity:1;transform:rotate(90deg) scale(1.1)}50%{opacity:.8;transform:rotate(180deg) scale(1)}75%{opacity:1;transform:rotate(270deg) scale(1.1)}to{opacity:.8;transform:rotate(1turn) scale(1)}}@keyframes textPulse{0%,to{opacity:.7}50%{opacity:1}}.btn-icon.success svg{animation:pulse-success .6s ease-out}.btn-icon.error svg{animation:pulse-error .6s ease-out}#refresh-devices-btn.loading .discovery-icon,#refresh-displays-btn.loading .discovery-icon,#refresh-network-properties-btn.loading .discovery-icon,#refresh-users-btn.loading .discovery-icon{animation:spin 1s linear infinite}#refresh-devices-btn.success .discovery-icon,#refresh-displays-btn.success .discovery-icon,#refresh-network-properties-btn.success .discovery-icon,#refresh-users-btn.success .discovery-icon{animation:pulse-success .6s ease-out}#refresh-devices-btn.error .discovery-icon,#refresh-displays-btn.error .discovery-icon,#refresh-network-properties-btn.error .discovery-icon,#refresh-users-btn.error .discovery-icon{animation:pulse-error .6s ease-out}#refresh-devices-btn .discovery-icon,#refresh-displays-btn .discovery-icon,#refresh-network-properties-btn .discovery-icon,#refresh-users-btn .discovery-icon{fill:none!important}.scroll-loading{align-items:center;display:flex;justify-content:center;padding:24px}.scroll-loading .loading-spinner{align-items:center;color:var(--color-text-muted);display:flex;font-size:14px;gap:8px}.scroll-loading .loading-spinner .spinner-svg{animation:spin 1s linear infinite;color:#c23a2b;height:20px;width:20px}.scroll-loading .loading-spinner .spinner-svg circle{stroke-dasharray:15.708;stroke-dashoffset:15.708;transform-origin:center}.table-header-actions{align-items:center;display:flex;gap:8px;margin-left:auto}input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:4px;cursor:pointer;flex-shrink:0;height:18px;position:relative;transition:all .2s ease;width:18px}input[type=checkbox]:hover{background-color:#c23a2b0d;border-color:#c23a2b}input[type=checkbox]:focus{border-color:#c23a2b;box-shadow:0 0 0 3px #c23a2b1a;outline:none}input[type=checkbox]:checked{background-color:#c23a2b;border-color:#c23a2b}input[type=checkbox]:checked:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-60%) rotate(45deg);width:4px}input[type=checkbox]:checked:hover{background-color:#a22f23;border-color:#a22f23}input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}input[type=checkbox]:disabled:hover{background-color:var(--color-surface-alt);border-color:var(--color-border)}.checkbox-wrapper{align-items:center;cursor:pointer;display:flex;gap:8px}.checkbox-wrapper input[type=checkbox]{margin:0}.checkbox-wrapper label{color:var(--color-text);cursor:pointer;font-size:14px;margin:0;-webkit-user-select:none;user-select:none}.checkbox-input,.form-checkbox{margin:0}@media (max-width:768px){.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive .data-table{font-size:14px;min-width:600px}.table-responsive .data-table td,.table-responsive .data-table th{padding:8px;white-space:nowrap}.table-responsive .data-table th{background-color:var(--color-surface);position:sticky;top:0;z-index:1}.devices-mobile-cards{display:block}.devices-mobile-cards .device-card{background-color:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;margin-bottom:16px;padding:16px;transition:background-color .2s ease,border-color .2s ease}.devices-mobile-cards .device-card:hover{background-color:#c23a2b0d;border-color:#c23a2b33}.devices-mobile-cards .device-card .device-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.devices-mobile-cards .device-card .device-header .device-name{color:var(--color-text);font-weight:600}.devices-mobile-cards .device-card .device-header .device-status-mobile{align-items:center;display:flex;gap:4px}.devices-mobile-cards .device-card .device-header .device-status-mobile .status-indicator{border-radius:50%;height:12px;width:12px}.devices-mobile-cards .device-card .device-header .device-status-mobile .status-indicator.online{background-color:#28a745}.devices-mobile-cards .device-card .device-header .device-status-mobile .status-indicator.offline{background-color:#dc3545}.devices-mobile-cards .device-card .device-header .device-status-mobile .status-text{color:var(--color-text-muted);font-size:14px}.devices-mobile-cards .device-card .device-details .detail-row{display:flex;justify-content:space-between;margin-bottom:4px}.devices-mobile-cards .device-card .device-details .detail-row .detail-label{color:var(--color-text-muted);font-size:14px}.devices-mobile-cards .device-card .device-details .detail-row .detail-value{color:var(--color-text);font-family:monospace;font-size:14px}.devices-mobile-cards .device-card .device-actions-mobile{display:flex;justify-content:center;margin-top:16px}.devices-mobile-cards .device-card .device-actions-mobile .btn-pin{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;padding:8px 16px}.devices-mobile-cards .device-card .device-actions-mobile .btn-pin.pinned{background-color:#c23a2b1a;border-color:#c23a2b;color:#c23a2b}}.display-name-wrapper{align-items:center;display:inline-flex;gap:8px}.display-name-wrapper .display-name-text{display:inline}.display-name-wrapper .display-name-input{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);font-size:14px;min-width:200px;padding:4px 8px}.display-name-wrapper .display-name-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1);outline:none}.display-name-wrapper .btn-cancel-name,.display-name-wrapper .btn-confirm-name,.display-name-wrapper .btn-edit-name{align-items:center;background:transparent;border:none;border-radius:4px;cursor:pointer;display:inline-flex;justify-content:center;padding:4px;transition:all .2s ease}.display-name-wrapper .btn-cancel-name svg,.display-name-wrapper .btn-confirm-name svg,.display-name-wrapper .btn-edit-name svg{display:block}.display-name-wrapper .btn-cancel-name:hover,.display-name-wrapper .btn-confirm-name:hover,.display-name-wrapper .btn-edit-name:hover{background:var(--color-bg-hover)}.display-name-wrapper .btn-cancel-name:active,.display-name-wrapper .btn-confirm-name:active,.display-name-wrapper .btn-edit-name:active{transform:scale(.95)}.display-name-wrapper .btn-cancel-name:disabled,.display-name-wrapper .btn-confirm-name:disabled,.display-name-wrapper .btn-edit-name:disabled{cursor:not-allowed;opacity:.5}.display-name-wrapper .btn-edit-name{color:var(--color-text-secondary)}.display-name-wrapper .btn-edit-name:hover{color:var(--color-primary)}.display-name-wrapper .btn-confirm-name{color:var(--color-success,#28a745)}.display-name-wrapper .btn-confirm-name:hover{background:#28a7451a}.display-name-wrapper .btn-cancel-name{color:var(--color-danger,#dc3545)}.display-name-wrapper .btn-cancel-name:hover{background:#dc35451a}.display-name-cell .display-name-wrapper{width:100%}[data-theme=dark] .status-badge.online{background-color:#28a74533;border:1px solid rgba(76,175,80,.3);color:#4caf50}[data-theme=dark] .status-badge.offline{background-color:#f4433633;border:1px solid rgba(244,67,54,.3);color:#f44336}[data-theme=dark] .info-banner{background-color:#2196f31a;border:1px solid rgba(33,150,243,.3)}[data-theme=dark] .info-banner .info-content svg{color:#2196f3}[data-theme=dark] .info-banner .info-content span{color:#1976d2}[data-theme=dark] .login-status.error{background:#f4433626;border:1px solid rgba(244,67,54,.3);color:#ff5722}[data-theme=dark] .login-status.success{background:#4caf5026;border:1px solid rgba(76,175,80,.3);color:#4caf50}[data-theme=dark] .page-status.info{background-color:#424242f2;border:1px solid hsla(0,0%,62%,.3);color:#e0e0e0}[data-theme=dark] .page-status.success{background-color:#2e7d32f2;border:1px solid rgba(76,175,80,.4);color:#81c784}[data-theme=dark] .page-status.error{background-color:#b71c1cf2;border:1px solid rgba(244,67,54,.4);color:#ef5350}[data-theme=dark] .page-status.warning{background-color:#f57c00f2;border:1px solid rgba(255,152,0,.4);color:#ffb74d}[data-theme=dark] .form-input.error,[data-theme=dark] .form-input:invalid{border-color:#ff5722;box-shadow:0 0 0 3px #ff57221a}[data-theme=dark] .form-input[readonly]{background:#ffffff0d;color:var(--color-text-muted)}[data-theme=dark] select.form-input:invalid{border-color:#ff5722}[data-theme=dark] .data-table tbody tr:hover,[data-theme=dark] .pinned-row{background-color:#c23a2b14}[data-theme=dark] .pinned-row{border-left:3px solid #c23a2b}[data-theme=dark] .pinned-row:hover{background-color:#c23a2b26}[data-theme=dark] .pinned-card{background-color:#c23a2b14;border-left:3px solid #c23a2b}[data-theme=dark] .btn-cancel:hover,[data-theme=dark] .btn-secondary:hover{background-color:#404040;border-color:#555}[data-theme=dark] .btn-icon:hover,[data-theme=dark] .btn-info:hover{background:#c23a2b26}[data-theme=dark] .theme-toggle:hover{background:#404040}[data-theme=dark] .device-card:hover{background-color:#c23a2b14;border-color:#c23a2b4d}[data-theme=dark] .scroll-loading .loading-spinner{color:#b0b0b0}[data-theme=dark] .modal .modal-overlay,[data-theme=dark] .slide-panel .slide-panel-overlay{background:#000000b3}[data-theme=dark] .warning-notice{background:#ff980026!important;border:1px solid rgba(255,152,0,.4)!important;color:#ffb74d!important}[data-theme=dark] .upload-form .form-input[type=file]{background:var(--color-surface)}[data-theme=dark] .upload-form .form-input[type=file]::-webkit-file-upload-button{background:#c23a2b;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-right:8px;padding:4px 8px}[data-theme=dark] .checkbox-input{accent-color:#c23a2b}[data-theme=dark] .checkbox-input:checked{background-color:#c23a2b;border-color:#c23a2b}[data-theme=dark] select.form-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23b0b0b0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}[data-theme=dark] .filter-input:focus,[data-theme=dark] .form-input:focus,[data-theme=dark] .form-textarea:focus,[data-theme=dark] .port-input:focus,[data-theme=dark] .sort-select:focus{box-shadow:0 0 0 3px #c23a2b33}[data-theme=dark] *{transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .2s ease}[data-theme=dark] .detail-value,[data-theme=dark] .mac-address,[data-theme=dark] .property-value,[data-theme=dark] code,[data-theme=dark] pre{background:#ffffff0d;border:1px solid hsla(0,0%,100%,.1)}[data-theme=dark] .modal-title,[data-theme=dark] .page-title,[data-theme=dark] .section-title,[data-theme=dark] .slide-panel-title{color:#fff}[data-theme=dark] .btn-icon.loading{background:#c23a2b1a;border-color:#c23a2b4d}[data-theme=dark] .form-label{color:#fff}[data-theme=dark] .data-table th{background-color:#1f1f1f;border-bottom:2px solid #404040;color:#fff}[data-theme=dark] .nav-link.active{background-color:#c23a2b33;border-left:3px solid #c23a2b;color:#fff}[data-theme=dark] .stat-card{background:linear-gradient(135deg,var(--color-surface-alt) 0,#333 100%);border:1px solid #404040}[data-theme=dark] .stat-card .stat-value{color:#fff}[data-theme=dark] .stat-card .stat-value.online{color:#4caf50;text-shadow:0 0 10px rgba(76,175,80,.3)}[data-theme=dark] .stat-card .stat-value.offline{color:#ff5722;text-shadow:0 0 10px rgba(255,87,34,.3)}[data-theme=dark] .content-section,[data-theme=dark] .modal-content{border:1px solid #404040}[data-theme=dark] .content-section,[data-theme=dark] .modal-content,[data-theme=dark] .slide-panel-content{background:linear-gradient(135deg,var(--color-surface-alt) 0,#333 100%)}@media print{[data-theme=dark] *{background:#fff!important;color:#000!important}}[data-theme=dark] .tab-nav{background:linear-gradient(180deg,var(--color-surface),var(--color-surface-alt))}[data-theme=dark] .tab-nav .tab-button.active{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff}[data-theme=dark] .tab-nav .tab-button.active:before{background:linear-gradient(90deg,#ffffff20,#ffffff40,#ffffff20)}[data-theme=dark] .tab-nav .tab-button:hover{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover))}[data-theme=dark] .logo{content:url(/assets/linortek-logo-dark-CPvaO1wh.png)}[data-theme=dark] .form-select,[data-theme=dark] select.form-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23b0b0b0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}[data-theme=dark] .form-select:focus,[data-theme=dark] select.form-input:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23c23a2b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-surface:#1a1a1a;--color-surface-alt:#2d2d2d;--color-border:#404040;--color-border-focus:#c23a2b;--color-text:#fff;--color-text-muted:#b0b0b0;--color-success-bg:#1e3a2e;--color-success-border:#2d5a3d;--color-success-text:#75d99f;--color-error-bg:#3a1e1e;--color-error-border:#5a2d2d;--color-error-text:#f87171;--color-info-bg:#1e2a3a;--color-info-border:#2d3f5a;--color-info-text:#60a5fa;--color-warning:#fbbf24;--color-text-light:#888;--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow:0 1px 3px rgba(0,0,0,.4),0 1px 2px rgba(0,0,0,.2);--shadow-lg:0 10px 15px rgba(0,0,0,.4),0 4px 6px rgba(0,0,0,.2)}:root:not([data-theme]) .logo{content:url(/assets/linortek-logo-dark-CPvaO1wh.png)}:root:not([data-theme]) .form-select,:root:not([data-theme]) select.form-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23b0b0b0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}:root:not([data-theme]) .form-select:focus,:root:not([data-theme]) select.form-input:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23c23a2b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}}@media (prefers-reduced-motion:reduce){[data-theme=dark] *{animation:none!important;transition:none!important}}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.d-none{display:none!important}.d-block{display:block!important}.d-flex{display:flex!important}.justify-center{justify-content:center}.align-center{align-items:center}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.mt-0{margin-top:0}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mt-lg{margin-top:24px}.mt-xl{margin-top:32px}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}.mb-xl{margin-bottom:32px}.p-0{padding:0}.p-sm{padding:8px}.p-md{padding:16px}.p-lg{padding:24px}.p-xl{padding:32px}.theme-transition{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease!important}@media print{.btn,.footer,.header,.modal,.no-print,.sidebar,.slide-panel{display:none!important}.main-content{margin:0;padding:0}body{background:#fff!important;color:#000!important;font-size:12pt}.data-table{font-size:10pt}.data-table td,.data-table th{border:1pt solid #000;padding:4pt}}
