:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#2c2c2cf2;padding:2rem;border-radius:8px;width:800px;color:#fff;border:1px solid #404040;font-size:1.2rem}.config-container{display:flex;gap:3rem}.config-column{flex:1}.config-section{margin-bottom:1.5rem}.config-section h3{border-bottom:1px solid #404040;padding-bottom:.5rem;margin-bottom:1.5rem;color:#b08411;font-size:1.5rem}.form-group{margin-bottom:1.5rem;display:flex;flex-direction:column;align-items:stretch}.form-group label{font-size:1.1rem;color:#b3b3b3;margin-bottom:.5rem;display:flex;justify-content:space-between}.input-row{display:flex;align-items:center;gap:1rem}.form-group input[type=number]{background-color:#161616;border:1px solid #404040;color:#fff;padding:.5rem;border-radius:4px;width:100px;text-align:right;font-size:1.1rem}.form-group input[type=range]{flex:1;cursor:pointer;accent-color:#B08411}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.btn-cancel,.btn-save{padding:.75rem 1.5rem;border-radius:4px;border:none;cursor:pointer;font-weight:700;font-size:1.1rem}.btn-cancel{background-color:transparent;color:#b3b3b3;border:1px solid #404040}.btn-save{background-color:#b08411;color:#000}.btn-save:hover{background-color:#d4a017}.btn-save:disabled{background-color:#555;color:#999;cursor:not-allowed}.silent-hours-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #404040}.silent-hours-section h3{display:flex;align-items:baseline;gap:1rem}.silent-hours-window{color:#b3b3b3;font-size:1rem;font-weight:400;letter-spacing:.04em}.silent-hours-help{color:#888;font-size:.9rem;margin:.5rem 0 0}.silent-hours-axis{display:flex;justify-content:space-between;margin-top:.4rem;color:#888;font-size:.8rem;letter-spacing:.04em}.silent-hours-inputs{display:flex;gap:1.5rem;margin-top:.75rem}.silent-hours-inputs label{display:flex;flex-direction:column;gap:.25rem;font-size:.95rem;color:#b3b3b3}.silent-hours-inputs input[type=time]{background-color:#161616;border:1px solid #404040;color:#fff;padding:.4rem .6rem;border-radius:4px;font-size:1rem;font-family:inherit;color-scheme:dark;width:8rem}.dual-range{position:relative;height:30px;margin:1rem 0 .25rem}.dual-range-track,.dual-range-fill{position:absolute;top:50%;height:4px;transform:translateY(-50%);border-radius:2px;pointer-events:none}.dual-range-track{left:0;right:0;background:#3a3a3a}.dual-range-fill{background:#b08411}.dual-range-input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;background:transparent;-webkit-appearance:none;appearance:none;pointer-events:none}.dual-range-input::-webkit-slider-runnable-track{background:transparent;height:4px}.dual-range-input::-moz-range-track{background:transparent;height:4px}.dual-range-input::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#b08411;border:2px solid #161616;cursor:pointer;margin-top:-7px}.dual-range-input::-moz-range-thumb{pointer-events:auto;width:14px;height:14px;border-radius:50%;background:#b08411;border:2px solid #161616;cursor:pointer}.validation-errors{margin-top:1rem;padding:.75rem 1rem;background-color:#b0323226;border:1px solid #b03232;border-radius:4px;color:#ff8080;font-size:.95rem}.validation-errors ul{margin:0;padding-left:1.25rem}.settings-modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.settings-modal-content{background-color:#2c2c2cf2;padding:30px;border-radius:12px;width:500px;max-width:90vw;border:1px solid #444;box-shadow:0 10px 25px #00000080;color:#fff;font-family:IBM Plex Sans,sans-serif}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;border-bottom:1px solid #555;padding-bottom:15px}.settings-header h2{margin:0;font-size:24px;font-weight:500;color:#fff}.close-button{background:none;border:none;color:#888;font-size:28px;cursor:pointer;padding:0;line-height:1;transition:color .2s}.close-button:hover{color:#fff}.settings-section{margin-bottom:25px}.settings-section h3{font-size:18px;margin-bottom:15px;color:#ccc;font-weight:500}.radio-group{display:flex;flex-direction:column;gap:12px}.radio-label{display:flex;align-items:center;cursor:pointer;font-size:16px;color:#eee}.radio-label input{margin-right:10px;accent-color:#24A148;width:18px;height:18px}.file-input-container{display:flex;flex-direction:column;gap:10px}.file-input-wrapper{position:relative;overflow:hidden;display:inline-block}.file-input{width:100%;padding:10px;background-color:#333;border:1px solid #555;border-radius:6px;color:#eee;cursor:pointer}.file-input::-webkit-file-upload-button{background-color:#444;color:#fff;border:none;padding:8px 16px;border-radius:4px;margin-right:10px;cursor:pointer;transition:background-color .2s}.file-input::-webkit-file-upload-button:hover{background-color:#555}.settings-actions{display:flex;justify-content:flex-end;gap:15px;margin-top:30px;border-top:1px solid #555;padding-top:20px}.btn-cancel{background-color:transparent;border:1px solid #666;color:#ccc;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:16px;transition:all .2s}.btn-cancel:hover{border-color:#888;color:#fff}.btn-save{background-color:#24a148;border:none;color:#fff;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:16px;font-weight:500;transition:background-color .2s}.btn-save:hover{background-color:#1f8a3d}.btn-save:disabled{background-color:#1b5e2f;cursor:not-allowed;opacity:.7}.number-input{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:8px 12px;border-radius:4px;width:100px;font-size:14px;margin-left:10px}.input-label{display:flex;align-items:center;color:#eee;font-size:14px;margin-bottom:8px}.help-text{font-size:12px;color:#aaa;margin-top:4px;margin-left:0}.dashboard-container{position:relative;width:100vw;height:100vh;background:#161616;overflow:hidden;font-family:IBM Plex Sans,sans-serif;display:flex;justify-content:center;align-items:center}.dashboard-scaler{position:relative;width:min(100vw,177.78vh);height:min(100vh,56.25vw);aspect-ratio:16/9}.conn-banner{position:fixed;top:0;left:0;right:0;z-index:2000;padding:.5rem 1rem;background-color:#b03232;color:#fff;text-align:center;font-weight:600;font-size:.95rem;letter-spacing:.02em}.conn-toast{position:fixed;top:3rem;right:1rem;z-index:2001;max-width:28rem;padding:.75rem 1rem;border-radius:6px;color:#fff;font-size:.9rem;box-shadow:0 4px 12px #0006}.conn-toast--error{background-color:#b03232}.conn-toast--warning{background-color:#b08411;color:#161616}svg{width:100%;height:100%;display:block}.overlay-text{position:absolute;font-weight:500;pointer-events:none}.controls-overlay{position:absolute;display:flex;gap:20px}.play-btn{background:#404040;color:#fff;border:2px solid #707070;padding:10px 30px;font-size:20px;border-radius:8px;cursor:pointer}.play-btn:hover{background:#505050}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#0f0f0f,#1a1a2e,#16213e)}.login-card{background:#1e1e2ef2;border:1px solid rgba(100,108,255,.2);border-radius:16px;padding:48px 40px;width:100%;max-width:400px;box-shadow:0 20px 60px #00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-header{text-align:center;margin-bottom:36px}.login-header h1{font-size:2rem;font-weight:700;color:#646cff;margin:0 0 8px;letter-spacing:2px}.login-header p{color:#888;font-size:.9rem;margin:0}.login-company{margin-top:6px!important;font-size:.8rem!important;color:#646cff!important;letter-spacing:.5px;font-weight:500}.login-form{display:flex;flex-direction:column;gap:20px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field label{font-size:.85rem;color:#aaa;font-weight:500}.login-field input{padding:12px 16px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:1rem;transition:border-color .2s,box-shadow .2s;outline:none}.login-field input:focus{border-color:#646cff;box-shadow:0 0 0 3px #646cff26}.login-field input::placeholder{color:#555}.login-button{margin-top:8px;padding:14px;background:#646cff;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.login-button:hover:not(:disabled){background:#535bf2;transform:translateY(-1px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-error{background:#ff3b301f;border:1px solid rgba(255,59,48,.3);color:#ff6b6b;padding:10px 14px;border-radius:8px;font-size:.85rem;text-align:center}.admin-page{min-height:100vh;background:#161616;color:#e0e0e0;padding:24px}.admin-container{max-width:900px;margin:0 auto}.admin-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.admin-topbar h1{font-size:1.5rem;color:#646cff;margin:0}.admin-topbar-actions{display:flex;align-items:center;gap:12px}.admin-user-badge{font-size:.85rem;color:#888;padding:6px 12px;background:#ffffff0d;border-radius:6px}.admin-back-btn,.admin-logout-btn{padding:8px 16px;border-radius:6px;font-size:.85rem;cursor:pointer;border:1px solid rgba(255,255,255,.15);transition:all .2s}.admin-back-btn{background:#646cff1a;color:#646cff}.admin-back-btn:hover{background:#646cff33}.admin-logout-btn{background:#ff3b301a;color:#ff6b6b}.admin-logout-btn:hover{background:#ff3b3033}.admin-error{background:#ff3b301f;border:1px solid rgba(255,59,48,.3);color:#ff6b6b;padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.admin-success{background:#34c7591f;border:1px solid rgba(52,199,89,.3);color:#34c759;padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.admin-section{background:#1e1e2ecc;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:24px;margin-bottom:24px}.admin-section h2{margin:0 0 16px;font-size:1.1rem;color:#ccc}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{text-align:left;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.admin-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:#777}.role-badge{padding:4px 10px;border-radius:4px;font-size:.8rem;font-weight:600;text-transform:uppercase}.role-admin{background:#646cff26;color:#646cff}.role-viewer{background:#34c75926;color:#34c759}.admin-delete-btn{padding:6px 14px;background:#ff3b301a;color:#ff6b6b;border:1px solid rgba(255,59,48,.2);border-radius:6px;cursor:pointer;font-size:.8rem;transition:background .2s}.admin-delete-btn:hover{background:#ff3b3040}.admin-protected{font-size:.8rem;color:#555;font-style:italic}.admin-create-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.admin-create-form input,.admin-create-form select{padding:10px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:.9rem;outline:none;transition:border-color .2s}.admin-create-form input:focus,.admin-create-form select:focus{border-color:#646cff}.admin-create-form input::placeholder{color:#555}.admin-create-form select{cursor:pointer}.admin-create-form select option{background:#1e1e2e}.admin-create-form button{padding:10px 20px;background:#646cff;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:background .2s}.admin-create-form button:hover{background:#535bf2}body{margin:0;padding:0;background-color:#161616}.App{width:100vw;height:100vh}
