: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}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#2c3e50;color:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a}.app-header h1{font-size:1.5rem;font-weight:600}.app-container{display:flex;flex:1;overflow:hidden}.sidebar{width:320px;background:#fff;border-right:1px solid #e0e0e0;overflow-y:auto;display:flex;flex-direction:column}.connection-panel{padding:1.5rem;border-bottom:1px solid #e0e0e0}.connection-panel h2{font-size:1.1rem;margin-bottom:1rem;color:#2c3e50}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.9rem;color:#555;font-weight:500}.form-group input{width:100%;padding:.6rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.form-group input:focus{outline:none;border-color:#3498db}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.status{margin-top:1rem;padding:.5rem;border-radius:4px;font-size:.9rem;text-align:center}.status.connected{background:#d4edda;color:#155724}.status.disconnected{background:#f8d7da;color:#721c24}button{cursor:pointer;border:none;border-radius:4px;padding:.6rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s}.btn-primary{background:#3498db;color:#fff}.btn-primary:hover:not(:disabled){background:#2980b9}.btn-primary:disabled{background:#bdc3c7;cursor:not-allowed}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover:not(:disabled){background:#7f8c8d}.btn-small{padding:.3rem .6rem;font-size:.8rem;margin:0 .2rem}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.device-list{padding:1.5rem;flex:1}.device-list h2{font-size:1.1rem;margin-bottom:1rem;color:#2c3e50}.no-devices{text-align:center;color:#7f8c8d;padding:2rem 1rem}.devices{display:flex;flex-direction:column;gap:.8rem}.device-card{padding:1rem;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:.5rem;position:relative}.device-card:hover{border-color:#3498db;background:#f8f9fa}.device-card.selected{border-color:#3498db;background:#e3f2fd}.client-badge{background:linear-gradient(145deg,#3498db,#2980b9);color:#fff;padding:6px 12px;border-radius:6px;font-size:.75rem;font-weight:700;display:inline-block;align-self:flex-start;box-shadow:0 2px 6px #3498db4d;margin-bottom:.5rem}.hotel-id-badge{background:linear-gradient(145deg,#e67e22,#d35400);color:#fff;padding:4px 10px;border-radius:12px;font-size:.7rem;font-weight:600;margin-left:10px;display:inline-block;box-shadow:0 2px 4px #e67e224d;font-family:Courier New,monospace}.device-card-content{display:flex;justify-content:space-between;align-items:center;width:100%}.device-info h3{font-size:1rem;margin-bottom:.5rem;color:#2c3e50}.device-info p{font-size:.8rem;color:#7f8c8d;margin:.2rem 0}.status-indicator{color:#27ae60;font-size:1.5rem}.main-content{flex:1;background:#fff;display:flex;flex-direction:column;overflow:hidden}.no-device{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#7f8c8d}.no-device h2{margin-bottom:.5rem}.tabs{display:flex;border-bottom:2px solid #e0e0e0;background:#f8f9fa;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#3498db transparent}.tabs::-webkit-scrollbar{height:4px}.tabs::-webkit-scrollbar-track{background:transparent}.tabs::-webkit-scrollbar-thumb{background:#3498db;border-radius:2px}.tabs::-webkit-scrollbar-thumb:hover{background:#2980b9}.tabs button{padding:1rem 2rem;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-weight:500;color:#7f8c8d;transition:all .2s;flex-shrink:0}.tabs button:hover{background:#e9ecef}.tabs button.active{color:#3498db;border-bottom-color:#3498db;background:#fff}.tab-content{flex:1;overflow-y:auto;padding:1.5rem}.screen-viewer{height:100%;display:flex;flex-direction:column}.viewer-header{margin-bottom:1.5rem}.viewer-header h2{margin-bottom:1rem;color:#2c3e50}.controls{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.control-group{display:flex;align-items:center;gap:.5rem}.control-group label{font-size:.9rem;color:#555}.control-group input[type=range]{width:150px}.control-group input[type=number]{padding:.4rem;border:1px solid #ddd;border-radius:4px;width:80px}.viewer-content{flex:1;display:flex;justify-content:center;align-items:center;background:#f8f9fa;border-radius:8px;overflow:auto;min-height:400px}.screenshot{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 4px 6px #0000001a}.no-screenshot{text-align:center;color:#7f8c8d}.no-screenshot p{margin:.5rem 0}.command-terminal{height:100%;display:flex;flex-direction:column}.command-terminal h2{margin-bottom:1rem;color:#2c3e50}.terminal-output{flex:1;background:#2c3e50;color:#ecf0f1;padding:1rem;border-radius:8px;overflow-y:auto;font-family:Courier New,monospace;font-size:.9rem;margin-bottom:1rem;min-height:300px}.terminal-empty{color:#95a5a6;text-align:center;padding:2rem}.terminal-entry{margin-bottom:1rem}.terminal-command{color:#3498db;margin-bottom:.5rem}.terminal-result pre{white-space:pre-wrap;word-wrap:break-word;margin:0}.terminal-result.success{color:#2ecc71}.terminal-result.error,.error-text{color:#e74c3c}.terminal-input{display:flex;gap:.5rem;align-items:center}.prompt{color:#3498db;font-weight:700;font-family:Courier New,monospace}.terminal-input input{flex:1;padding:.6rem;border:1px solid #ddd;border-radius:4px;font-family:Courier New,monospace}.file-browser{height:100%;display:flex;flex-direction:column}.browser-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.browser-header h2{color:#2c3e50}.browser-controls{display:flex;gap:.5rem}.current-path{padding:.8rem;background:#f8f9fa;border-radius:4px;margin-bottom:1rem;font-family:Courier New,monospace;font-size:.9rem}.file-list{flex:1;overflow-y:auto;border:1px solid #e0e0e0;border-radius:8px}.file-list table{width:100%;border-collapse:collapse}.file-list thead{background:#f8f9fa;position:sticky;top:0}.file-list th{padding:.8rem;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #e0e0e0}.file-list td{padding:.8rem;border-bottom:1px solid #f0f0f0}.file-list tr:hover{background:#f8f9fa}.file-list tr.directory{font-weight:500}.file-name{font-family:Courier New,monospace}.file-actions{text-align:right}.no-files{text-align:center;color:#7f8c8d;padding:2rem}@media(max-width:768px){.app-container{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid #e0e0e0}.controls{flex-direction:column;align-items:stretch}}.video-panel{width:400px;min-width:350px;max-width:600px;background:#fff;border-left:1px solid #e0e0e0;display:flex;flex-direction:column;overflow:hidden}.video-panel-content{flex:1;display:flex;flex-direction:column;overflow:hidden}@media(max-width:1200px){.video-panel{width:350px;min-width:300px}}@media(max-width:768px){.video-panel{width:100%;border-left:none;border-top:1px solid #e0e0e0;height:400px;max-width:none}}.app-manager{display:flex;flex-direction:column;gap:30px;padding:20px;max-width:900px;margin:0 auto}.device-selector-section{background:#fff;padding:15px 20px;border-radius:10px;box-shadow:0 2px 8px #0000001a}.upload-section h2,.installed-apps-section h2{color:#2c3e50;margin-bottom:15px;font-size:20px}.drop-zone{border:3px dashed #3498db;border-radius:15px;padding:50px 30px;text-align:center;background:#ecf0f1;cursor:pointer;transition:all .3s;min-height:250px;display:flex;flex-direction:column;justify-content:center;align-items:center}.drop-zone:hover{border-color:#2980b9;background:#d5dbdb}.drop-zone.dragging{border-color:#27ae60;background:#d5f4e6;transform:scale(1.02)}.drop-icon{font-size:60px;margin-bottom:15px}.drop-text{font-size:20px;color:#2c3e50;font-weight:700;margin:0 0 10px}.drop-subtext{font-size:16px;color:#7f8c8d;margin:0 0 10px}.drop-limit{font-size:14px;color:#95a5a6;margin:0}.file-info{display:flex;align-items:center;gap:20px;background:#fff;padding:20px;border-radius:10px;margin-bottom:20px;box-shadow:0 2px 8px #0000001a}.file-icon{font-size:50px}.file-details{flex:1;text-align:left}.file-name{font-size:18px;font-weight:700;color:#2c3e50;margin:0 0 5px;word-break:break-all}.file-size{font-size:14px;color:#7f8c8d;margin:0}.delete-option{margin:15px 0;text-align:center}.delete-option label{display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;font-size:14px;color:#2c3e50}.delete-option input[type=checkbox]{width:18px;height:18px;cursor:pointer}.delete-option span{-webkit-user-select:none;user-select:none}.progress-container{width:100%;margin-bottom:20px}.progress-bar{width:100%;height:25px;background:#ecf0f1;border-radius:12px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.progress-fill{height:100%;background:linear-gradient(90deg,#3498db,#2ecc71);transition:width .3s ease;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;color:#fff;font-weight:700;font-size:12px}.progress-text{margin-top:10px;font-size:14px;color:#2c3e50;font-weight:700}.button-group{display:flex;gap:15px;justify-content:center}.btn-install,.btn-cancel{padding:12px 30px;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s}.btn-install{background:linear-gradient(145deg,#2ecc71,#27ae60);color:#fff;box-shadow:0 4px 10px #2ecc7166}.btn-install:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 15px #2ecc7199}.btn-install:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{background:linear-gradient(145deg,#e74c3c,#c0392b);color:#fff;box-shadow:0 4px 10px #e74c3c66}.btn-cancel:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 15px #e74c3c99}.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.installation-log{background:#fff;border-radius:10px;padding:20px;margin-top:20px;box-shadow:0 2px 8px #0000001a}.installation-log h3{margin:0 0 15px;color:#2c3e50;font-size:18px}.log-container{background:#1e1e1e;border-radius:8px;padding:15px;max-height:300px;overflow-y:auto;font-family:Courier New,monospace;font-size:13px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-header h2{margin:0}.btn-refresh-apps{padding:10px 20px;background:linear-gradient(145deg,#3498db,#2980b9);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 2px 6px #3498db4d}.btn-refresh-apps:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 10px #3498db80}.btn-refresh-apps:disabled{opacity:.5;cursor:not-allowed}.no-apps-card{text-align:center;padding:60px 40px;background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000001a}.no-apps-icon{font-size:64px;margin-bottom:20px}.no-apps-text{color:#2c3e50;font-size:18px;font-weight:700;margin:0 0 10px}.no-apps-hint{color:#95a5a6;font-size:14px;margin:0}.apps-list{display:flex;flex-direction:column;gap:10px}.app-item{display:flex;align-items:center;gap:15px;background:#fff;padding:15px 20px;border-radius:10px;box-shadow:0 2px 8px #0000001a;transition:all .3s}.app-item:hover{transform:translate(5px);box-shadow:0 4px 12px #00000026}.app-icon{font-size:30px}.app-info{flex:1}.app-package{font-size:14px;font-weight:700;color:#2c3e50;margin:0 0 5px;font-family:monospace;word-break:break-all}.app-version{font-size:12px;color:#7f8c8d;margin:0 0 3px}.app-count{font-size:11px;color:#95a5a6;margin:0;font-style:italic}.btn-uninstall{background:linear-gradient(145deg,#e74c3c,#c0392b);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 2px 6px #e74c3c4d;white-space:nowrap}.btn-uninstall:hover{transform:translateY(-2px);box-shadow:0 4px 10px #e74c3c80}@media(max-width:768px){.app-manager{padding:10px}.drop-zone{padding:30px 20px;min-height:200px}.drop-icon{font-size:40px}.drop-text{font-size:18px}.file-info{flex-direction:column;text-align:center}.button-group{flex-direction:column;width:100%}.btn-install,.btn-cancel{width:100%}}.script-automation{padding:20px;max-width:1200px;margin:0 auto}.device-selector-section{background:#fff;padding:15px 20px;border-radius:10px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px}.device-selector-section label{display:block;font-weight:700;color:#2c3e50;margin-bottom:10px;font-size:14px}.device-select-row{display:flex;gap:10px;align-items:center}.adb-device-select{flex:1;padding:10px;border:2px solid #3498db;border-radius:8px;font-size:14px;background:#fff;cursor:pointer}.btn-refresh{padding:10px 15px;background:linear-gradient(145deg,#3498db,#2980b9);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:16px;transition:all .3s}.btn-refresh:hover{transform:scale(1.1);box-shadow:0 4px 10px #3498db66}.script-automation h2{color:#2c3e50;margin-bottom:20px;font-size:22px}.scripts-section{margin-bottom:40px}.scripts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.script-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 12px #0000001a;transition:all .3s;border:2px solid transparent}.script-card:hover{transform:translateY(-5px);box-shadow:0 6px 20px #00000026;border-color:#3498db}.script-header h3{margin:0 0 10px;color:#2c3e50;font-size:18px}.script-description{color:#7f8c8d;font-size:14px;margin:0 0 15px}.script-commands{margin-bottom:15px}.commands-label{font-size:13px;font-weight:700;color:#95a5a6;margin:0 0 8px}.commands-preview{list-style:none;margin:0;background:#ecf0f1;border-radius:8px;padding:10px 15px;max-height:120px;overflow-y:auto}.commands-preview li{font-size:12px;font-family:Courier New,monospace;color:#2c3e50;padding:4px 0;border-bottom:1px solid #d5dbdb}.commands-preview li:last-child{border-bottom:none}.btn-execute{width:100%;padding:12px;background:linear-gradient(145deg,#3498db,#2980b9);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 4px 10px #3498db4d}.btn-execute:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 15px #3498db80}.btn-execute:disabled{opacity:.5;cursor:not-allowed}.predefined-script-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:15px}.btn-load-predefined,.btn-save-as-predefined{padding:10px;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:all .3s}.btn-load-predefined{background:linear-gradient(145deg,#f39c12,#e67e22);color:#fff;box-shadow:0 2px 6px #f39c124d}.btn-load-predefined:hover{transform:translateY(-2px);box-shadow:0 4px 10px #f39c1280}.btn-save-as-predefined{background:linear-gradient(145deg,#9b59b6,#8e44ad);color:#fff;box-shadow:0 2px 6px #9b59b64d}.btn-save-as-predefined:hover{transform:translateY(-2px);box-shadow:0 4px 10px #9b59b680}.predefined-script-actions .btn-execute{margin-top:0}.execution-log-section{margin-bottom:40px;background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 12px #0000001a}.execution-log-section h2{margin:0 0 15px}.log-container{background:#1e1e1e;border-radius:8px;padding:15px;max-height:300px;overflow-y:auto;font-family:Courier New,monospace;font-size:13px;margin-bottom:15px}.log-entry{padding:5px 0;display:flex;gap:10px}.log-time{color:#95a5a6;white-space:nowrap}.log-message{color:#ecf0f1}.log-entry.log-success .log-message{color:#2ecc71}.log-entry.log-error .log-message{color:#e74c3c}.progress-bar-container{margin-top:15px}.progress-info{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px;color:#2c3e50;font-weight:700}.progress-bar{height:20px;background:#ecf0f1;border-radius:10px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.progress-fill{height:100%;background:linear-gradient(90deg,#3498db,#2ecc71);transition:width .3s ease}.custom-script-section{margin-bottom:40px}.section-header-custom{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-header-custom h2{margin:0}.editing-badge{background:linear-gradient(145deg,#f39c12,#e67e22);color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:700;box-shadow:0 2px 8px #f39c124d;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.custom-script-input{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 12px #0000001a}.script-name-input{margin-bottom:15px}.script-name-field{width:100%;padding:12px;border:2px solid #d5dbdb;border-radius:8px;font-size:14px;transition:border-color .3s}.script-name-field:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.button-group-script{display:flex;gap:15px;margin-top:15px}.btn-save-script{flex:1;padding:15px;background:linear-gradient(145deg,#9b59b6,#8e44ad);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 4px 10px #9b59b64d}.btn-save-script:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 15px #9b59b680}.btn-save-script:disabled{opacity:.5;cursor:not-allowed}.btn-update-script{flex:1;padding:15px;background:linear-gradient(145deg,#f39c12,#e67e22);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 4px 10px #f39c124d}.btn-update-script:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 15px #f39c1280}.btn-update-script:disabled{opacity:.5;cursor:not-allowed}.btn-cancel-edit{flex:1;padding:15px;background:linear-gradient(145deg,#95a5a6,#7f8c8d);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 4px 10px #95a5a64d}.btn-cancel-edit:hover{transform:translateY(-2px);box-shadow:0 6px 15px #95a5a680}.script-textarea{width:100%;padding:15px;border:2px solid #d5dbdb;border-radius:8px;font-family:Courier New,monospace;font-size:14px;resize:vertical;margin-bottom:15px;background:#ecf0f1;color:#2c3e50;transition:border-color .3s}.script-textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.script-textarea::placeholder{color:#95a5a6}.btn-execute-custom{flex:2;padding:15px;background:linear-gradient(145deg,#2ecc71,#27ae60);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 4px 10px #2ecc714d}.btn-execute-custom:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 15px #2ecc7180}.btn-execute-custom:disabled{opacity:.5;cursor:not-allowed}.saved-scripts-section{margin-bottom:40px}.saved-scripts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.saved-script-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 12px #0000001a;transition:all .3s;border:2px solid transparent}.saved-script-card:hover{transform:translateY(-5px);box-shadow:0 6px 20px #00000026;border-color:#9b59b6}.saved-script-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.saved-script-header h3{margin:0;color:#2c3e50;font-size:16px}.saved-script-date{font-size:12px;color:#95a5a6}.saved-script-preview{margin-bottom:15px}.commands-count{font-size:13px;color:#7f8c8d;margin:0 0 10px}.command-preview{background:#ecf0f1;border-radius:6px;padding:10px;font-size:12px;font-family:Courier New,monospace;color:#2c3e50;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:pre-wrap;max-height:60px}.saved-script-actions{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px}.btn-pin-script,.btn-edit-script,.btn-load-script,.btn-delete-script{padding:10px;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:all .3s}.btn-pin-script{background:linear-gradient(145deg,#e67e22,#d35400);color:#fff;box-shadow:0 2px 6px #e67e224d}.btn-pin-script:hover{transform:translateY(-2px);box-shadow:0 4px 10px #e67e2280}.btn-edit-script{background:linear-gradient(145deg,#f39c12,#e67e22);color:#fff;box-shadow:0 2px 6px #f39c124d}.btn-edit-script:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 10px #f39c1280}.btn-edit-script:disabled{opacity:.5;cursor:not-allowed}.btn-load-script{background:linear-gradient(145deg,#3498db,#2980b9);color:#fff;box-shadow:0 2px 6px #3498db4d}.btn-load-script:hover{transform:translateY(-2px);box-shadow:0 4px 10px #3498db80}.btn-delete-script{background:linear-gradient(145deg,#e74c3c,#c0392b);color:#fff;box-shadow:0 2px 6px #e74c3c4d}.btn-delete-script:hover{transform:translateY(-2px);box-shadow:0 4px 10px #e74c3c80}.history-section{margin-bottom:40px}.no-history{text-align:center;color:#95a5a6;font-size:16px;padding:40px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a}.history-list{display:flex;flex-direction:column;gap:10px}.history-item{background:#fff;border-radius:10px;padding:15px 20px;box-shadow:0 2px 8px #0000001a;border-left:4px solid transparent;transition:all .3s}.history-item.success{border-left-color:#2ecc71}.history-item.error{border-left-color:#e74c3c}.history-item:hover{transform:translate(5px);box-shadow:0 4px 12px #00000026}.history-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.history-icon{font-size:20px}.history-name{flex:1;font-weight:700;color:#2c3e50;font-size:15px}.history-time{font-size:12px;color:#95a5a6}.history-details{margin-left:32px}.history-command{font-size:13px;color:#7f8c8d;margin:0 0 5px}.history-error{font-size:13px;color:#e74c3c;margin:0;font-family:Courier New,monospace}@media(max-width:768px){.scripts-grid{grid-template-columns:1fr}.script-automation{padding:10px}.script-card{padding:15px}.btn-execute,.btn-execute-custom{padding:10px;font-size:14px}}.remote-control{display:flex;flex-direction:column;gap:20px;max-width:400px;margin:0 auto}.device-selector-top{background:#2c3e50;padding:15px;border-radius:10px;box-shadow:0 2px 10px #0003}.device-selector-top label{display:block;color:#ecf0f1;font-weight:700;margin-bottom:8px;font-size:14px}.device-select-row{display:flex;gap:8px;margin-bottom:10px}.adb-device-select{flex:1;padding:10px;border:2px solid #34495e;border-radius:6px;background:#34495e;color:#ecf0f1;font-size:14px;cursor:pointer;transition:all .3s}.btn-refresh{background:linear-gradient(145deg,#3498db,#2980b9);color:#fff;border:none;border-radius:6px;padding:10px 15px;font-size:18px;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #3498db66}.btn-refresh:hover{transform:scale(1.05);box-shadow:0 3px 12px #3498db99}.device-connect-row{display:flex;gap:8px}.device-ip-input{flex:1;padding:10px;border:2px solid #34495e;border-radius:6px;background:#2c3e50;color:#ecf0f1;font-size:14px;transition:all .3s}.device-ip-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.device-ip-input::placeholder{color:#7f8c8d}.btn-connect{background:linear-gradient(145deg,#2ecc71,#27ae60);color:#fff;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #2ecc7166}.btn-connect:hover{transform:translateY(-2px);box-shadow:0 3px 12px #2ecc7199}.btn-connect:active{transform:translateY(0)}.adb-device-select:hover{border-color:#3498db;background:#2c3e50}.adb-device-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.remote-body{background:linear-gradient(145deg,#2c3e50,#34495e);border-radius:20px;padding:30px 20px;box-shadow:0 10px 30px #0000004d}.remote-header{text-align:center;margin-bottom:25px}.remote-header h3{color:#ecf0f1;font-size:18px;margin:0;font-weight:600}.button-row{display:flex;justify-content:center;gap:10px;margin-bottom:15px}.btn-power{background:linear-gradient(145deg,#e74c3c,#c0392b);color:#fff;border:none;border-radius:50%;width:60px;height:60px;font-size:28px;cursor:pointer;box-shadow:0 4px 10px #e74c3c66;transition:all .2s}.btn-power:hover{transform:translateY(-2px);box-shadow:0 6px 15px #e74c3c99}.btn-power:active{transform:translateY(0);box-shadow:0 2px 5px #e74c3c66}.dpad-container{display:flex;justify-content:center;margin:25px 0}.dpad{position:relative;width:200px;height:200px;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:5px}.btn-dpad{background:linear-gradient(145deg,#3498db,#2980b9);color:#fff;border:none;font-size:24px;cursor:pointer;box-shadow:0 3px 8px #3498db66;transition:all .2s;font-weight:700}.btn-dpad:hover{transform:scale(1.05);box-shadow:0 4px 12px #3498db99}.btn-dpad:active{transform:scale(.98);box-shadow:0 2px 5px #3498db66}.btn-up{grid-column:2;grid-row:1;border-radius:10px 10px 5px 5px}.btn-left{grid-column:1;grid-row:2;border-radius:10px 5px 5px 10px}.btn-center{grid-column:2;grid-row:2;border-radius:50%;background:linear-gradient(145deg,#2ecc71,#27ae60);font-size:16px;font-weight:700}.btn-center:hover{background:linear-gradient(145deg,#27ae60,#229954)}.btn-right{grid-column:3;grid-row:2;border-radius:5px 10px 10px 5px}.btn-down{grid-column:2;grid-row:3;border-radius:5px 5px 10px 10px}.btn-nav{background:linear-gradient(145deg,#95a5a6,#7f8c8d);color:#fff;border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 3px 8px #7f8c8d66;transition:all .2s;flex:1}.btn-nav:hover{transform:translateY(-2px);box-shadow:0 4px 12px #7f8c8d99}.btn-nav:active{transform:translateY(0);box-shadow:0 2px 5px #7f8c8d66}.btn-source,.btn-philips{background:linear-gradient(145deg,#9b59b6,#8e44ad);color:#fff;border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 3px 8px #9b59b666;transition:all .2s;flex:1}.btn-philips{background:linear-gradient(145deg,#e67e22,#d35400);box-shadow:0 3px 8px #e67e2266}.btn-source:hover,.btn-philips:hover{transform:translateY(-2px);box-shadow:0 4px 12px #9b59b699}.btn-philips:hover{box-shadow:0 4px 12px #e67e2299}.btn-source:active,.btn-philips:active{transform:translateY(0)}.btn-volume{background:linear-gradient(145deg,#16a085,#138d75);color:#fff;border:none;border-radius:10px;padding:12px 15px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 3px 8px #16a08566;transition:all .2s;flex:1}.btn-volume:hover{transform:translateY(-2px);box-shadow:0 4px 12px #16a08599}.btn-volume:active{transform:translateY(0)}.btn-channel{background:linear-gradient(145deg,#f39c12,#e67e22);color:#fff;border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 3px 8px #f39c1266;transition:all .2s;flex:1}.btn-channel:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f39c1299}.btn-channel:active{transform:translateY(0)}.btn-media{background:linear-gradient(145deg,#34495e,#2c3e50);color:#fff;border:none;border-radius:10px;padding:12px 15px;font-size:18px;cursor:pointer;box-shadow:0 3px 8px #34495e66;transition:all .2s;flex:1}.btn-media:hover{transform:translateY(-2px);box-shadow:0 4px 12px #34495e99}.btn-media:active{transform:translateY(0)}@media(max-width:600px){.remote-control{max-width:100%;padding:10px}.dpad{width:180px;height:180px}.btn-dpad{font-size:20px}.btn-center{font-size:14px}button{font-size:12px!important;padding:10px 15px!important}}.tv-scanner{padding:20px;background:#1e1e1e;border-radius:8px;color:#e0e0e0}.tv-scanner h2{margin-bottom:10px;color:#4fc3f7}.scanner-description{margin-bottom:20px;color:#b0b0b0;font-size:14px;line-height:1.5}.scanner-controls{display:flex;gap:15px;align-items:flex-end;margin-bottom:20px;flex-wrap:wrap}.input-group{display:flex;flex-direction:column;gap:5px}.input-group label{font-size:14px;color:#b0b0b0}.input-group input{padding:10px;background:#2d2d2d;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:14px;min-width:150px}.input-group input:focus{outline:none;border-color:#4fc3f7}.input-hint{font-size:12px;color:#888;margin-left:10px}.scan-button{padding:10px 20px;background:#4fc3f7;color:#1e1e1e;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:700;transition:background .3s}.scan-button:hover:not(:disabled){background:#29b6f6}.scan-button:disabled{background:#555;cursor:not-allowed;color:#888}.scanning-indicator{display:flex;align-items:center;gap:15px;padding:15px;background:#2d2d2d;border-radius:4px;margin-bottom:20px}.spinner{width:24px;height:24px;border:3px solid #555;border-top-color:#4fc3f7;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scanning-indicator p{margin:0;color:#b0b0b0}.scanned-tvs h3{margin-bottom:15px;color:#4fc3f7}.tv-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:15px}.tv-card{background:#2d2d2d;border:1px solid #444;border-radius:8px;padding:15px;transition:border-color .3s,box-shadow .3s}.tv-card:hover{border-color:#4fc3f7;box-shadow:0 4px 12px #4fc3f733}.tv-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #444}.tv-header h4{margin:0;color:#e0e0e0;font-size:16px}.tv-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:700}.tv-badge.philips{background:#4fc3f7;color:#1e1e1e}.tv-details{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.tv-info{display:flex;justify-content:space-between;font-size:13px}.tv-info .label{color:#888;font-weight:500}.tv-info .value{color:#e0e0e0;text-align:right}.tv-info .value.uuid{font-family:monospace;font-size:11px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.tv-info .value.status{font-weight:700}.tv-info .value.status.connected{color:#66bb6a}.tv-info .value.status.disconnected{color:#ef5350}.tv-actions{display:flex;gap:10px}.connect-button{flex:1;padding:8px 15px;background:#66bb6a;color:#1e1e1e;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:700;transition:background .3s}.connect-button:hover{background:#4caf50}.no-tvs{padding:30px;text-align:center;background:#2d2d2d;border-radius:4px;border:1px dashed #444}.no-tvs p{margin:5px 0;color:#b0b0b0}.no-tvs .hint{font-size:13px;color:#888}.jedi-control{padding:20px;max-width:1200px;margin:0 auto}.jedi-card{background:#fff;border-radius:12px;padding:24px;margin-bottom:20px;box-shadow:0 2px 8px #0000001a}.jedi-card h2{margin-bottom:16px;color:#667eea;font-size:1.5rem}.jedi-card h3{font-size:1.1rem;margin-bottom:8px;color:#333}.alert{padding:12px;border-radius:8px;margin-bottom:16px}.alert-error{background:#fee;color:#c00;border:1px solid #fcc}.alert-success{background:#efe;color:#060;border:1px solid #cfc}.alert-info{background:#e7f3ff;color:#0056b3;border:1px solid #b3d7ff}.alert-warning{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.connection-status{display:flex;flex-direction:column;gap:12px}.status-row{display:flex;align-items:center;gap:8px;font-weight:500}.status-dot{display:inline-block;width:12px;height:12px;border-radius:50%}.status-dot.connected{background:#28a745}.status-dot.disconnected{background:#dc3545}.status-dot.connecting{background:#ffc107;animation:pulse 1s infinite}.connection-form{display:flex;flex-direction:column;gap:12px}.connection-form label{display:flex;flex-direction:column;gap:4px;font-weight:500}.connection-form input{padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s}.connection-form input:focus{outline:none;border-color:#667eea}.connection-form button,.jedi-card button{background:#667eea;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;cursor:pointer;transition:all .2s;font-weight:500}.connection-form button:hover,.jedi-card button:hover{background:#5568d3;transform:translateY(-1px);box-shadow:0 4px 8px #667eea4d}.connection-form button:disabled,.jedi-card button:disabled{background:#ccc;cursor:not-allowed;transform:none}.btn-secondary{background:#6c757d!important}.btn-secondary:hover{background:#5a6268!important}.btn-success{background:#28a745!important}.btn-success:hover{background:#218838!important}.btn-warning{background:#ffc107!important;color:#000!important}.btn-warning:hover{background:#e0a800!important}.btn-danger{background:#dc3545!important}.btn-danger:hover{background:#c82333!important}.btn-active{background:#28a745!important}.btn-primary{background:#007bff!important}.btn-primary:hover{background:#0056b3!important}.volume-display{text-align:center;font-size:2rem;font-weight:700;color:#667eea;margin:16px 0}.slider-container{margin:20px 0}.volume-slider{width:100%;height:8px;border-radius:4px;background:#e0e0e0;outline:none;-webkit-appearance:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#667eea;cursor:pointer}.volume-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#667eea;cursor:pointer;border:none}.button-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.power-status{margin-bottom:16px;font-size:1.1rem}.power-status strong{color:#667eea}.source-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.source-grid button{padding:16px;text-align:center;font-size:.9rem}.quick-actions{margin-bottom:20px;padding:16px;background:linear-gradient(135deg,#34d3991a,#3b82f61a);border:1px solid rgba(52,211,153,.3);border-radius:8px}.quick-actions h3{font-size:1rem;margin-top:0;margin-bottom:8px;color:#34d399}.quick-action-btn{padding:16px 20px;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;text-align:center}.quick-action-btn:disabled{background:#6464644d!important;color:#666!important;cursor:not-allowed;box-shadow:none!important;transform:none!important}.quick-action-backup{background:linear-gradient(135deg,#34d399,#10b981);color:#000;box-shadow:0 4px 12px #34d3994d}.quick-action-backup:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #34d39966}.quick-action-restore{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f64d}.quick-action-restore:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.clone-state-indicator{display:flex;gap:12px;margin-bottom:12px;padding:8px 12px;background:#34d39926;border:1px solid rgba(52,211,153,.4);border-radius:6px;font-size:.8rem}.clone-state-indicator div{flex:1}.clone-state-indicator span{opacity:.7}.state-ready{color:#34d399}.state-waiting{color:#fbbf24}.clone-progress{margin-bottom:16px;padding:16px;background:#34d39933;border:1px solid rgba(52,211,153,.5);border-radius:8px}.progress-bar{width:100%;height:8px;background:#fff3;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#34d399,#10b981,#34d399);background-size:200% 100%;transition:width .3s ease;animation:shimmer 2s infinite;display:flex;align-items:center;justify-content:center}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:100% 0}}.clone-items-selection{background:#667eea1a;padding:12px;border-radius:8px;margin-bottom:12px}.clone-item-label{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px;border-radius:4px;background:transparent;transition:all .2s}.clone-item-label:hover{background:#667eea26}.clone-item-label.selected{background:#34d39933}.clone-item-label.large-item{border:1px solid rgba(251,191,36,.3)}.clone-item-label input[type=checkbox]{cursor:pointer}.time-estimate{font-size:.7rem;opacity:.7}.clone-item-label.large-item .time-estimate{color:#fbbf24}.upload-area{border:2px dashed #ccc;border-radius:8px;padding:16px;text-align:center;margin-bottom:8px}.upload-progress{background:linear-gradient(135deg,#667eea33,#764ba233);border:2px solid #667eea;padding:20px;border-radius:12px;margin-bottom:20px;box-shadow:0 8px 32px #667eea66}.backup-sessions-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.backup-session-item{background:#667eea1a;padding:12px;border-radius:8px;border:1px solid rgba(102,126,234,.2)}.session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.session-header h4{font-size:.95rem;font-weight:600;margin:0 0 4px}.session-id{font-size:.75rem;opacity:.7}.session-status{padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:600}.status-completed{background:#22c55e33;color:#22c55e}.status-in_progress{background:#fbbf2433;color:#fbbf24}.status-partial{background:#f9731633;color:#f97316}.status-failed{background:#ef444433;color:#ef4444}.session-items{background:#0003;padding:8px;border-radius:4px;margin-bottom:8px}.session-item{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;padding:4px 0}.item-completed{opacity:1;flex:1}.item-failed{opacity:.6;flex:1}.item-size{opacity:.7;font-size:.75rem}.session-actions{display:flex;gap:6px;flex-wrap:wrap}.session-actions button{flex:1 1 auto;padding:6px 10px;font-size:.75rem;white-space:nowrap}.clone-versions{padding:8px;background:#667eea1a;border-radius:4px;font-size:.85rem}.professional-input{padding:8px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#667eea1a;color:#000;font-size:16px;transition:border-color .2s}.professional-input:focus{outline:none;border-color:#667eea}.professional-toggle{display:flex;justify-content:space-between;align-items:center;padding:8px;background:#667eea1a;border-radius:4px}.professional-toggle button{min-width:80px}.current-setting{margin-top:8px;font-size:.9rem;color:#000000b3}.remote-control-info{padding:12px;background:#667eea1a;border-radius:4px;font-size:.9rem}.remote-control-info div{margin-bottom:4px}.remote-control-info div:last-child{margin-bottom:0}.automation-hub{padding:20px;max-width:1400px;margin:0 auto;background:#f5f5f5;min-height:100vh}.hub-header{text-align:center;margin-bottom:30px;padding:30px 20px;background:#fff;border-radius:15px;box-shadow:0 4px 15px #0000001a}.hub-header h1{color:#2c3e50;font-size:36px;margin-bottom:10px;font-weight:700}.hub-description{color:#7f8c8d;font-size:16px;font-style:italic}.config-section{background:#fff;border-radius:15px;padding:30px;box-shadow:0 4px 15px #0000001a;margin-bottom:30px}.config-section>h2{color:#2c3e50;font-size:28px;margin-bottom:25px;border-bottom:3px solid #3498db;padding-bottom:10px;font-weight:700}.config-block{margin-bottom:30px;padding:20px;background:#f8f9fa;border-radius:10px;border:2px solid #e0e0e0}.config-block h3{color:#34495e;font-size:20px;margin-bottom:15px;font-weight:700}.ip-address-list{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.ip-input-row{display:flex;gap:10px;align-items:center}.ip-input{flex:1;padding:12px;border:2px solid #d5dbdb;border-radius:8px;font-size:15px;transition:all .3s}.ip-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 8px #3498db4d}.ip-input:disabled{background:#ecf0f1;cursor:not-allowed}.btn-remove{padding:10px 15px;background:linear-gradient(145deg,#e74c3c,#c0392b);color:#fff;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:all .3s;font-size:14px}.btn-remove:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 10px #e74c3c66}.btn-remove:disabled{opacity:.6;cursor:not-allowed}.btn-add{padding:10px 20px;background:linear-gradient(145deg,#2ecc71,#27ae60);color:#fff;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:all .3s;font-size:14px}.btn-add:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 10px #2ecc7166}.btn-add:disabled{opacity:.6;cursor:not-allowed}.clone-files-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.file-upload-row{display:flex;align-items:center;gap:15px;padding:12px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;transition:all .3s}.file-upload-row:hover{border-color:#3498db;background:#f8f9fa}.file-checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;min-width:150px}.file-checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.file-name{font-weight:700;color:#2c3e50;font-size:14px}.file-input{flex:1;padding:8px;border:1px solid #d5dbdb;border-radius:6px;font-size:13px;cursor:pointer}.file-input:disabled{cursor:not-allowed;opacity:.6}.upload-badge{padding:4px 10px;background:linear-gradient(145deg,#2ecc71,#27ae60);color:#fff;border-radius:5px;font-size:12px;font-weight:700;white-space:nowrap}.file-selected{color:#3498db;font-size:12px;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.upload-target-selector{display:flex;align-items:center;gap:20px;padding:15px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;margin-top:10px}.upload-target-label{font-weight:700;color:#2c3e50;font-size:14px}.radio-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#34495e}.radio-label input[type=radio]{width:16px;height:16px;cursor:pointer}.radio-label:hover{color:#3498db}.apk-config-row{display:flex;align-items:center;gap:15px;padding:15px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;margin-bottom:12px;flex-wrap:wrap;transition:all .3s}.apk-config-row:hover{border-color:#3498db}.apk-name{min-width:120px;color:#2c3e50;font-size:15px}.pi-path-info{color:#7f8c8d;font-size:12px;font-style:italic;font-family:Courier New,monospace}.connection-status-banner{margin-top:20px;padding:15px 20px;background:linear-gradient(145deg,#f8f9fa,#e9ecef);border:2px solid #d5dbdb;border-radius:10px;display:flex;justify-content:center;align-items:center;gap:30px}.status-item{display:flex;align-items:center;gap:10px}.status-label{font-weight:700;color:#2c3e50;font-size:14px}.status-indicator{padding:6px 12px;border-radius:20px;font-size:13px;font-weight:700}.status-indicator.connected{background:linear-gradient(145deg,#2ecc71,#27ae60);color:#fff}.status-indicator.disconnected{background:linear-gradient(145deg,#e74c3c,#c0392b);color:#fff}.start-button-container{margin-top:30px;padding-top:20px;border-top:3px solid #e0e0e0}.btn-start-automation{width:100%;padding:20px 40px;background:linear-gradient(145deg,#e67e22,#d35400);color:#fff;border:none;border-radius:15px;font-size:22px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 8px 20px #e67e2266;text-transform:uppercase;letter-spacing:1px}.btn-start-automation:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 12px 30px #e67e2299;background:linear-gradient(145deg,#f39c12,#e67e22)}.btn-start-automation:disabled{opacity:.6;cursor:not-allowed;transform:none}.execution-section{background:#fff;border-radius:15px;padding:30px;box-shadow:0 4px 15px #0000001a;margin-bottom:30px;animation:slideIn .5s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.execution-section>h2{color:#2c3e50;font-size:26px;margin-bottom:25px;border-bottom:3px solid #f39c12;padding-bottom:10px;font-weight:700}.overall-progress{margin-bottom:30px}.progress-info{display:flex;justify-content:space-between;margin-bottom:10px;font-size:16px;font-weight:700;color:#2c3e50}.progress-bar{height:28px;background:#ecf0f1;border-radius:14px;overflow:hidden;box-shadow:inset 0 3px 6px #0000001a}.progress-fill{height:100%;background:linear-gradient(90deg,#f39c12,#e67e22,#d35400);transition:width .5s ease;box-shadow:0 2px 10px #f39c1299;position:relative;overflow:hidden}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.tv-status-list{display:flex;flex-direction:column;gap:15px}.tv-status-card{padding:20px;border-radius:12px;border:3px solid;transition:all .3s;box-shadow:0 4px 12px #0000001a}.tv-status-card.status-pending{background:#f8f9fa;border-color:#95a5a6}.tv-status-card.status-in_progress{background:#fff9e6;border-color:#f39c12;box-shadow:0 6px 18px #f39c124d;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 6px 18px #f39c124d}50%{transform:scale(1.02);box-shadow:0 8px 24px #f39c1280}}.tv-status-card.status-completed{background:#d4edda;border-color:#2ecc71}.tv-status-card.status-failed{background:#f8d7da;border-color:#e74c3c}.tv-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:10px}.tv-status-header strong{font-size:18px;color:#2c3e50;font-family:Courier New,monospace}.status-badge{padding:6px 14px;border-radius:20px;font-size:13px;font-weight:700;display:inline-block;white-space:nowrap}.status-badge.status-pending{background:#95a5a6;color:#fff}.status-badge.status-in_progress{background:linear-gradient(145deg,#f39c12,#e67e22);color:#fff;animation:pulse-badge 1.5s infinite}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.8}}.status-badge.status-completed{background:linear-gradient(145deg,#2ecc71,#27ae60);color:#fff}.status-badge.status-failed{background:linear-gradient(145deg,#e74c3c,#c0392b);color:#fff}.tv-progress-detail{margin-top:15px}.step-indicator{font-size:14px;color:#34495e;margin-bottom:8px;font-weight:700}.step-progress-bar{height:20px;background:#ecf0f1;border-radius:10px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.step-progress-fill{height:100%;background:linear-gradient(90deg,#3498db,#2ecc71);transition:width .4s ease;position:relative;overflow:hidden}.step-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff0,#fff6,#fff0);animation:shimmer 1.5s infinite}.tv-completion-time{margin-top:10px;font-size:14px;color:#27ae60;font-weight:700}.tv-error-message{margin-top:10px;padding:10px;background:#f8d7da;border:1px solid #e74c3c;border-radius:6px;color:#721c24;font-size:13px;font-weight:700}.execution-log-section{background:#fff;border-radius:15px;padding:30px;box-shadow:0 4px 15px #0000001a;animation:slideIn .5s ease}.execution-log-section>h2{color:#2c3e50;font-size:26px;margin-bottom:20px;border-bottom:3px solid #3498db;padding-bottom:10px;font-weight:700}.execution-log{background:#1e1e1e;border-radius:10px;padding:20px;max-height:500px;overflow-y:auto;font-family:Courier New,monospace;font-size:14px;box-shadow:inset 0 4px 8px #0000004d}.execution-log::-webkit-scrollbar{width:10px}.execution-log::-webkit-scrollbar-track{background:#2c3e50;border-radius:5px}.execution-log::-webkit-scrollbar-thumb{background:#3498db;border-radius:5px}.execution-log::-webkit-scrollbar-thumb:hover{background:#2980b9}.log-entry{padding:6px 0;display:flex;gap:12px;line-height:1.6;border-bottom:1px solid rgba(255,255,255,.05)}.log-time{color:#95a5a6;white-space:nowrap;font-size:13px}.log-message{color:#ecf0f1;flex:1;word-wrap:break-word}.log-entry.log-info .log-message{color:#3498db}.log-entry.log-success .log-message{color:#2ecc71;font-weight:700}.log-entry.log-error .log-message{color:#e74c3c;font-weight:700}@media(max-width:1024px){.automation-hub{padding:15px}.hub-header h1{font-size:28px}.config-section,.execution-section,.execution-log-section{padding:20px}.btn-start-automation{font-size:18px;padding:16px 30px}}@media(max-width:768px){.automation-hub{padding:10px}.hub-header{padding:20px 15px}.hub-header h1{font-size:24px}.hub-description{font-size:14px}.config-section>h2,.execution-section>h2,.execution-log-section>h2{font-size:22px}.config-block h3{font-size:18px}.ip-input-row{flex-direction:column}.btn-remove,.btn-add{width:100%}.file-upload-row{flex-direction:column;align-items:stretch}.upload-target-selector{flex-direction:column;align-items:stretch;gap:10px}.apk-config-row{flex-direction:column;align-items:stretch}.btn-start-automation{font-size:16px;padding:14px 20px}.tv-status-header{flex-direction:column;align-items:flex-start}.execution-log{max-height:300px;font-size:12px}}@media(max-width:480px){.automation-hub{padding:8px}.hub-header h1{font-size:20px}.config-section,.execution-section,.execution-log-section{padding:15px}.config-section>h2{font-size:20px}.btn-start-automation{font-size:14px;padding:12px 16px;letter-spacing:.5px}}.queue-section{background:#fff;border-radius:15px;padding:30px;box-shadow:0 4px 15px #0000001a;margin-bottom:30px}.queue-section>h2{color:#2c3e50;font-size:28px;margin-bottom:25px;border-bottom:3px solid #9b59b6;padding-bottom:10px;font-weight:700}.add-to-queue-row{display:flex;gap:15px;margin-bottom:25px}.add-to-queue-row .ip-input{flex:1;max-width:300px}.btn-add-queue{padding:12px 25px;background:linear-gradient(145deg,#9b59b6,#8e44ad);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s;white-space:nowrap}.btn-add-queue:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 15px #9b59b666;background:linear-gradient(145deg,#a569bd,#9b59b6)}.btn-add-queue:disabled{opacity:.6;cursor:not-allowed}.current-processing{margin-bottom:25px;padding:20px;background:linear-gradient(145deg,#fff9e6,#fff3cd);border:3px solid #f39c12;border-radius:12px;animation:pulse 2s infinite}.current-processing h3{color:#d35400;margin-bottom:15px;font-size:18px}.processing-card{background:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.processing-ip{font-size:22px;font-weight:700;color:#2c3e50;font-family:Courier New,monospace;margin-bottom:10px}.processing-step{font-size:14px;color:#34495e;margin-bottom:10px;font-weight:500}.waiting-queue{margin-bottom:25px;padding:20px;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:12px}.waiting-queue h3{color:#34495e;margin-bottom:15px;font-size:18px}.queue-list{display:flex;flex-direction:column;gap:10px}.queue-item{display:flex;align-items:center;gap:15px;padding:12px 15px;background:#fff;border:2px solid #d5dbdb;border-radius:8px;transition:all .3s}.queue-item:hover{border-color:#9b59b6;background:#f8f4fc}.queue-position{font-size:14px;font-weight:700;color:#9b59b6;min-width:30px}.queue-ip{flex:1;font-size:16px;font-family:Courier New,monospace;color:#2c3e50}.btn-remove-queue{width:28px;height:28px;background:linear-gradient(145deg,#e74c3c,#c0392b);color:#fff;border:none;border-radius:50%;font-size:14px;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center}.btn-remove-queue:hover{transform:scale(1.1);box-shadow:0 3px 8px #e74c3c66}.completed-tvs{padding:20px;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:12px}.completed-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.completed-header h3{color:#34495e;font-size:18px;margin:0}.btn-clear{padding:6px 12px;background:#95a5a6;color:#fff;border:none;border-radius:5px;font-size:12px;cursor:pointer;transition:all .3s}.btn-clear:hover{background:#7f8c8d}.completed-list{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.completed-item{display:flex;align-items:center;gap:12px;padding:10px 15px;border-radius:8px;transition:all .3s}.completed-item.status-success{background:#d4edda;border:2px solid #2ecc71}.completed-item.status-failed{background:#f8d7da;border:2px solid #e74c3c}.completed-icon{font-size:18px}.completed-ip{flex:1;font-family:Courier New,monospace;font-size:15px;color:#2c3e50}.completed-duration{font-size:13px;color:#7f8c8d;font-weight:700}.completed-error{font-size:12px;color:#e74c3c;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.completed-summary{padding:10px;background:#fff;border-radius:6px;text-align:center;font-weight:700;color:#34495e;font-size:14px}.empty-queue-message{text-align:center;padding:40px 20px;color:#7f8c8d;font-size:16px;font-style:italic}@media(max-width:768px){.add-to-queue-row{flex-direction:column}.add-to-queue-row .ip-input{max-width:none}.btn-add-queue{width:100%}.queue-item,.completed-item{flex-wrap:wrap}.completed-error{max-width:100%;flex-basis:100%;margin-top:5px}}.installation-manager{padding:20px;max-width:1400px;margin:0 auto}.manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.manager-header h2{margin:0;color:#333}.tab-buttons{display:flex;gap:10px}.tab-buttons button{padding:10px 20px;border:none;background:#f0f0f0;border-radius:5px;cursor:pointer;font-size:14px;transition:all .3s}.tab-buttons button.active{background:#007bff;color:#fff}.tab-buttons button:hover:not(.active){background:#e0e0e0}.error-message{background:#ffebee;color:#c62828;padding:15px;border-radius:5px;margin-bottom:20px}.loading{text-align:center;padding:40px;color:#666}.scripts-tab,.hotels-tab,.jobs-tab{min-height:400px}.tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.tab-header h3{margin:0;color:#333}.empty-state{text-align:center;padding:60px 20px;color:#999}.empty-state p{margin:10px 0}.help-text{font-size:12px;color:#666;margin-top:5px}.help-text.error{color:#c62828}.scripts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.script-card{background:#fff;border:1px solid #ddd;border-radius:8px;padding:20px;transition:box-shadow .3s}.script-card:hover{box-shadow:0 4px 12px #0000001a}.script-header h4{margin:0 0 10px;color:#333}.script-meta{font-size:12px;color:#666}.script-body{margin:15px 0}.script-info{display:flex;justify-content:space-between;margin-bottom:10px}.script-info .label{color:#666;font-size:14px}.script-info .value{font-weight:700;color:#333}.script-description{font-size:13px;color:#666;margin-top:10px;line-height:1.4}.script-actions{display:flex;gap:10px;margin-top:15px}.hotels-table,.jobs-table{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #ddd}.hotels-table table,.jobs-table table{width:100%;border-collapse:collapse}.hotels-table th,.hotels-table td,.jobs-table th,.jobs-table td{padding:12px 15px;text-align:left;border-bottom:1px solid #f0f0f0}.hotels-table th,.jobs-table th{background:#f8f9fa;font-weight:600;color:#333}.hotels-table td,.jobs-table td{color:#666}.hotels-table code,.jobs-table code{background:#f0f0f0;padding:2px 6px;border-radius:3px;font-size:12px;font-family:Courier New,monospace}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase}.status-pending{background:#fff9e6;color:#f57c00}.status-in_progress{background:#e3f2fd;color:#1976d2}.status-completed{background:#e8f5e9;color:#388e3c}.status-failed{background:#ffebee;color:#c62828}.btn-primary,.btn-secondary,.btn-danger,.btn-sm,.btn-xs{padding:8px 16px;border:none;border-radius:5px;cursor:pointer;font-size:14px;transition:all .3s}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background:#0056b3}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background:#545b62}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background:#c82333}.btn-sm{padding:6px 12px;font-size:13px}.btn-xs{padding:4px 8px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-content.large{max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #ddd}.modal-header h3{margin:0;color:#333}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#999;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:#333}.modal-tabs{display:flex;border-bottom:1px solid #ddd;background:#f8f9fa;padding:0 20px}.modal-tabs button{padding:12px 20px;border:none;background:none;border-bottom:2px solid transparent;cursor:pointer;font-size:14px;color:#666;transition:all .3s}.modal-tabs button.active{color:#007bff;border-bottom-color:#007bff}.modal-tabs button:disabled{color:#ccc;cursor:not-allowed}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-footer{padding:20px;border-top:1px solid #ddd;display:flex;justify-content:flex-end;gap:10px}.form-group{display:flex;flex-direction:column;gap:15px}.form-group label{font-weight:600;color:#333;font-size:14px;margin-bottom:-10px}.form-group input,.form-group textarea,.form-group select{padding:10px;border:1px solid #ddd;border-radius:5px;font-size:14px;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#007bff}.actions-tab{min-height:400px}.actions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.actions-header h4{margin:0;color:#333}.actions-list{display:flex;flex-direction:column;gap:10px}.action-item{display:flex;align-items:center;gap:15px;padding:15px;background:#f8f9fa;border-radius:5px;border:1px solid #e0e0e0}.action-number{background:#007bff;color:#fff;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.action-details{flex:1}.action-type{font-weight:600;color:#333;margin-bottom:5px}.action-name{font-size:13px;color:#666}.action-buttons{display:flex;gap:5px}.files-tab{min-height:400px}.files-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.files-header h4{margin:0;color:#333}.file-upload-label{display:inline-block}.upload-progress{margin-bottom:20px}.progress-bar{width:100%;height:30px;background:#f0f0f0;border-radius:15px;overflow:hidden;margin-bottom:5px}.progress-fill{height:100%;background:linear-gradient(90deg,#007bff,#0056b3);transition:width .3s}.progress-text{text-align:center;font-size:13px;color:#666}.files-list{display:flex;flex-direction:column;gap:10px}.file-item{display:flex;align-items:center;gap:15px;padding:15px;background:#f8f9fa;border-radius:5px;border:1px solid #e0e0e0}.file-icon{font-size:32px}.file-details{flex:1}.file-name{font-weight:600;color:#333;margin-bottom:5px}.file-meta{font-size:12px;color:#666}.file-actions{display:flex;gap:10px}.apk-id-field,.clone-id-field{margin-top:10px;padding:10px;background:#fff;border:1px solid #ddd;border-radius:5px}.apk-id-field label,.clone-id-field label{display:block;font-size:11px;font-weight:600;color:#666;text-transform:uppercase;margin-bottom:5px}.apk-id-field input,.clone-id-field input{width:100%;padding:8px;border:1px solid #ddd;border-radius:3px;font-size:14px;transition:border-color .3s}.apk-id-field input:focus,.clone-id-field input:focus{outline:none;border-color:#007bff}.apk-id-field .help-text,.clone-id-field .help-text{display:block;margin-top:5px}.script-hotels-tab{min-height:400px}.hotels-header h4{margin:0 0 20px;color:#333}.hotels-list{display:flex;flex-direction:column;gap:10px}.hotel-item{display:flex;align-items:center;gap:15px;padding:15px;background:#f8f9fa;border-radius:5px;border:1px solid #e0e0e0}.hotel-icon{font-size:32px}.hotel-details{flex:1}.hotel-name{font-weight:600;color:#333;margin-bottom:5px}.hotel-meta{font-size:12px;color:#666}.script-preview{margin-top:20px;padding:15px;background:#f8f9fa;border-radius:5px}.script-preview h4{margin:0 0 10px;font-size:14px;color:#333}.script-preview ul{margin:0;padding-left:20px}.script-preview li{font-size:13px;color:#666;margin-bottom:5px}.job-info{background:#f8f9fa;padding:15px;border-radius:5px;margin-bottom:20px}.info-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e0e0e0}.info-row:last-child{border-bottom:none}.info-row .label{font-weight:600;color:#666}.progress-section{margin-bottom:20px}.progress-section .progress-text{margin-top:10px;font-weight:600;color:#333}.logs-section h4{margin:0 0 10px;color:#333}.logs-container{background:#1e1e1e;color:#d4d4d4;padding:15px;border-radius:5px;max-height:300px;overflow-y:auto;font-family:Courier New,monospace;font-size:12px}.log-entry{margin-bottom:8px;line-height:1.5}.log-time{color:#858585;margin-right:10px}.log-message{color:#d4d4d4}.pi-hotel-selector{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.pi-hotel-option{border:2px solid #ddd;border-radius:8px;padding:15px;cursor:pointer;transition:all .3s;background:#f8f9fa}.pi-hotel-option:hover{border-color:#007bff;background:#e7f3ff}.pi-hotel-option.selected{border-color:#007bff;background:#e7f3ff;box-shadow:0 0 0 3px #007bff1a}.option-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.option-name{display:flex;flex-direction:column;gap:5px}.option-name strong{font-size:16px;color:#333}.hotel-id{font-size:12px;color:#666;font-family:Courier New,monospace}.status-indicator{display:flex;align-items:center;gap:5px;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.status-indicator.online{background:#e8f5e9;color:#388e3c}.status-indicator.offline{background:#ffebee;color:#c62828}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-indicator.online .status-dot{background:#4caf50;animation:pulse 2s infinite}.status-indicator.offline .status-dot{background:#f44336}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.option-location{font-size:13px;color:#666;margin-bottom:5px}.option-pi-name{font-size:12px;color:#888;font-family:Courier New,monospace}.warning-badge{margin-top:10px;padding:8px 12px;background:#fff3e0;border:1px solid #ff9800;border-radius:5px;font-size:12px;color:#e65100}.script-preview .more-actions{color:#666;font-style:italic}.btn-pin{background:#6c757d;color:#fff}.btn-pin:hover:not(:disabled){background:#5a6268}.btn-pinned{background:#fd7e14;color:#fff}.btn-pinned:hover:not(:disabled){background:#e8590c}.btn-duplicate{background:#17a2b8;color:#fff}.btn-duplicate:hover:not(:disabled){background:#138496}.script-card.pinned{border:2px solid #fd7e14;box-shadow:0 2px 8px #fd7e1433}.tab-header-actions{display:flex;gap:8px;align-items:center}.status-cancelled{background:#6c757d;color:#fff}.jobs-log-overlay{position:fixed;inset:0;background:#1a1a2e;z-index:1000;overflow-y:auto}.jobs-log-container{max-width:1200px;margin:0 auto;padding:20px}.jobs-log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #333}.jobs-log-header h2{color:#e0e0e0;margin:0}.jobs-log-header-actions{display:flex;gap:10px;align-items:center}.auto-refresh-toggle{color:#aaa;font-size:13px;display:flex;align-items:center;gap:5px;cursor:pointer}.btn-close-log{background:#dc3545;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer}.btn-close-log:hover{background:#c82333}.jobs-log-filters{margin-bottom:15px}.jobs-log-search{width:100%;padding:10px 14px;background:#16213e;border:1px solid #333;border-radius:6px;color:#e0e0e0;font-size:14px;margin-bottom:10px;box-sizing:border-box}.jobs-log-search::placeholder{color:#666}.jobs-log-filter-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.status-filters{display:flex;gap:6px;flex-wrap:wrap}.filter-btn{padding:6px 12px;border:1px solid #444;background:#16213e;color:#aaa;border-radius:4px;cursor:pointer;font-size:12px}.filter-btn:hover{border-color:#666;color:#e0e0e0}.filter-btn.active{color:#fff;border-color:transparent}.filter-btn.active.filter-all{background:#6c757d}.filter-btn.active.filter-pending{background:#ffc107;color:#000}.filter-btn.active.filter-in_progress{background:#17a2b8}.filter-btn.active.filter-completed{background:#28a745}.filter-btn.active.filter-failed{background:#dc3545}.sort-select{padding:6px 10px;background:#16213e;border:1px solid #444;color:#e0e0e0;border-radius:4px;font-size:13px}.jobs-log-summary{color:#888;font-size:13px;margin-bottom:12px}.jobs-log-loading,.jobs-log-empty{text-align:center;color:#888;padding:40px;font-size:15px}.jobs-log-list{display:flex;flex-direction:column;gap:8px}.job-log-card{background:#16213e;border:1px solid #2a2a4a;border-radius:6px;overflow:hidden;border-left:4px solid #444}.job-log-card.status-pending{border-left-color:#ffc107}.job-log-card.status-in_progress{border-left-color:#17a2b8}.job-log-card.status-completed{border-left-color:#28a745}.job-log-card.status-failed{border-left-color:#dc3545}.job-log-card-header{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px}.job-log-card-header:hover{background:#1e2a4a}.job-log-card-main{display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex:1}.job-id{background:#0d1117;padding:2px 8px;border-radius:3px;font-size:12px;color:#79c0ff}.job-script{color:#e0e0e0;font-weight:500}.job-hotel{color:#aaa}.job-ip{color:#888;font-family:monospace;font-size:13px}.job-log-card-meta{display:flex;align-items:center;gap:16px;color:#888;font-size:13px;white-space:nowrap}.job-progress{font-weight:500;color:#aaa}.job-duration{color:#666}.expand-icon{color:#666;font-size:11px}.job-log-card-details{padding:16px;border-top:1px solid #2a2a4a;background:#0f1629}.job-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-label{font-size:11px;text-transform:uppercase;color:#666;letter-spacing:.5px}.detail-item code{font-size:12px;color:#79c0ff}.detail-item span:not(.detail-label):not(.status-badge){color:#e0e0e0;font-size:14px}.detail-error span:not(.detail-label){color:#f85149!important}.detail-progress-bar{height:6px;background:#2a2a4a;border-radius:3px;margin-bottom:16px;overflow:hidden}.detail-progress-bar .progress-fill{height:100%;background:#28a745;border-radius:3px;transition:width .3s}.detail-logs h4{color:#aaa;margin:0 0 8px;font-size:14px}.detail-logs-container{background:#0d1117;border:1px solid #222;border-radius:4px;max-height:300px;overflow-y:auto;padding:8px}.log-entry{display:flex;gap:10px;padding:4px 8px;font-size:12px;font-family:monospace;border-bottom:1px solid #1a1a2e}.log-entry:last-child{border-bottom:none}.log-time{color:#666;white-space:nowrap}.log-msg{color:#c9d1d9}.log-entry.log-error .log-msg{color:#f85149}.log-entry.log-success .log-msg{color:#3fb950}.log-entry.log-warning .log-msg{color:#d29922}.no-logs{color:#666;text-align:center;padding:20px;font-size:13px}.loading-details{color:#888;text-align:center;padding:20px}.stream-viewer{background-color:#1a1d23;border-radius:8px;overflow:hidden;height:100%}.stream-container{display:flex;justify-content:center;align-items:center;min-height:400px;height:100%;background-color:#000}.stream-message{text-align:center;padding:40px}.stream-message p{font-size:1.1rem;color:#a0a0a0}.stream-canvas{max-width:100%;max-height:100%;object-fit:contain;display:block}@media(max-width:768px){.stream-container{min-height:300px}.stream-message p{font-size:1rem}}.stream-status{padding:1rem;background:#fff;border-bottom:1px solid #e0e0e0}.stream-status h3{font-size:1.1rem;margin-bottom:1rem;color:#2c3e50}.stream-status-items{display:flex;flex-direction:column;gap:.8rem}.stream-status-item{display:flex;align-items:center;justify-content:space-between;gap:10px}.stream-status-label{font-weight:500;color:#555;font-size:.9rem}.stream-status-indicator{font-weight:700;padding:4px 10px;border-radius:4px;font-size:.85rem}.stream-status-indicator.connected{color:#27ae60;background-color:#27ae601a}.stream-status-indicator.disconnected{color:#95a5a6;background-color:#95a5a61a}
