: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;padding:0;display:block;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:#2f3ea7;background-color:#fff}a:hover{color:#2f3ea7}button{background-color:#f9f9f9}}.execution-container{padding:20px;background:#f9f9f9;border-radius:8px;border:1px solid #ddd}.execution-container h2{margin-top:0;color:#333;font-size:1.5rem;margin-bottom:20px}.selection-info{background:#fff;padding:16px;border-radius:4px;border:1px solid #ddd;margin-bottom:20px}.selection-info p{margin:0 0 10px;color:#333;font-size:14px}.selected-files-list{list-style:none;margin:10px 0 0;max-height:150px;overflow-y:auto;background:#f5f5f5;border-radius:4px;padding:10px}.selected-files-list li{padding:6px 8px;font-size:13px;font-family:Monaco,Courier New,monospace;color:#666;border-bottom:1px solid #eee}.selected-files-list li:last-child{border-bottom:none}.script-config{background:#fff;padding:20px;border-radius:4px;border:1px solid #ddd;margin-bottom:20px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#333;font-size:14px}.input-field{width:100%;max-width:300px;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.input-field:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.input-field:disabled{background-color:#f5f5f5;color:#999;cursor:not-allowed}.form-group small{display:block;margin-top:4px;color:#999;font-size:12px}.btn-execute{padding:12px 24px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:14px;transition:background-color .2s}.btn-execute:hover:not(:disabled){background-color:#45a049}.btn-execute:disabled{background-color:#ccc;cursor:not-allowed}.progress-bar{width:100%;height:24px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:20px;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#45a049);transition:width .3s ease}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:700;font-size:12px}.execution-log{background:#1e1e1e;color:#d4d4d4;padding:16px;border-radius:4px;margin-bottom:20px;border:1px solid #333;max-height:300px;overflow-y:auto}.execution-log h3{margin-top:0;margin-bottom:10px;color:#4caf50;font-size:14px;font-weight:600}.execution-log pre{margin:0;font-family:Monaco,Courier New,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.info-box{background:#e3f2fd;border-left:4px solid #2196f3;padding:16px;border-radius:4px;font-size:13px;color:#1565c0}.info-box h4{margin-top:0;margin-bottom:10px;font-size:14px;color:#0d47a1}.info-box p{margin:8px 0}.info-box code{background:#0000001a;padding:2px 6px;border-radius:3px;font-family:Monaco,Courier New,monospace;font-size:12px;color:#0d47a1}.execution-machine-area{margin-bottom:20px}.machine-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.machine-header h3{margin:0}.btn-toggle-config{background:none;border:1px solid #ccc;border-radius:4px;padding:6px 14px;cursor:pointer;font-size:13px;color:#555;transition:background .2s}.btn-toggle-config:hover{background:#f0f0f0}.machine-selector{display:flex;align-items:center;gap:10px;margin-bottom:10px}.machine-selector label{font-weight:600;font-size:14px;white-space:nowrap}.machine-selector select{flex:1;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;max-width:400px}.machine-config-panel{margin-top:14px;display:flex;flex-direction:column;gap:14px}.machine-config-card{border:1px solid #ddd;border-radius:6px;padding:14px;background:#fafafa;transition:border-color .2s}.machine-config-card.active{border-color:#667eea;background:#f5f7ff}.machine-config-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.machine-label-input{font-size:15px;font-weight:600;border:none;border-bottom:2px solid transparent;background:transparent;padding:4px 0;outline:none;flex:1}.machine-label-input:focus{border-bottom-color:#667eea}.btn-remove-machine{background:none;border:none;color:#c62828;font-size:18px;cursor:pointer;padding:2px 8px;border-radius:4px;transition:background .2s}.btn-remove-machine:hover{background:#ffebee}.machine-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-row{display:flex;flex-direction:column;gap:4px}.field-row label{font-size:12px;font-weight:600;color:#555}.field-row input{padding:7px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px}.field-row input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea26}.field-row small{font-size:11px;color:#999}.btn-add-machine{align-self:flex-start;background:none;border:1px dashed #aaa;border-radius:4px;padding:8px 18px;cursor:pointer;font-size:13px;color:#555;transition:background .2s,border-color .2s}.btn-add-machine:hover{background:#f0f0f0;border-color:#667eea;color:#667eea}.suivi-container{padding:20px;background:#f9f9f9;border-radius:8px;border:1px solid #ddd}.suivi-container h2{margin-top:0;color:#333;font-size:1.5rem;margin-bottom:20px}.suivi-controls{display:flex;gap:15px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.btn-secondary{padding:10px 16px;background-color:#e0e0e0;color:#333;border:none;border-radius:4px;cursor:pointer;font-weight:500;font-size:14px;transition:background-color .2s}.btn-secondary:hover:not(:disabled){background-color:#d0d0d0}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.batch-actions{background:#fff;padding:16px;border-radius:4px;border:1px solid #ddd;margin-bottom:20px}.batch-actions>p{margin-top:0;margin-bottom:15px;font-weight:500;color:#333;font-size:14px}.file-selection{background:#f5f5f5;padding:12px;border-radius:4px;margin-bottom:15px;max-height:250px;overflow-y:auto;border:1px solid #e0e0e0}.file-checkbox{display:flex;align-items:center;gap:10px;padding:8px;margin-bottom:8px;border-radius:3px;cursor:pointer;transition:background-color .2s;font-size:13px}.file-checkbox:hover{background-color:#fff}.file-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;flex-shrink:0}.file-checkbox span{font-family:Monaco,Courier New,monospace;color:#333;flex:1;word-break:break-all}.file-checkbox input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.btn-primary{padding:10px 16px;background-color:#667eea;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:14px;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:#5568d3}.btn-primary:disabled{background-color:#ccc;cursor:not-allowed}.monitoring-table{background:#fff;border-radius:4px;border:1px solid #ddd;margin-bottom:20px;overflow:hidden}.monitoring-table h3{margin:0;padding:16px;border-bottom:1px solid #ddd;font-size:14px;font-weight:600;background-color:#f5f5f5}.monitoring-table table{width:100%;border-collapse:collapse;font-size:13px}.monitoring-table thead{background-color:#f5f5f5;border-bottom:2px solid #ddd}.monitoring-table th{padding:12px 16px;text-align:left;font-weight:600;color:#333;border-right:1px solid #eee}.monitoring-table th:last-child{border-right:none}.monitoring-table tbody tr{border-bottom:1px solid #eee;transition:background-color .2s}.monitoring-table tbody tr:hover{background-color:#f9f9f9}.monitoring-table tbody tr:last-child{border-bottom:none}.monitoring-table td{padding:12px 16px;border-right:1px solid #eee}.monitoring-table td:last-child{border-right:none}.filename{font-family:Monaco,Courier New,monospace;color:#333;word-break:break-all}.date{font-size:12px;color:#666;white-space:nowrap}.status{text-align:center}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap}.status-badge.status-en-attente{background-color:#e3f2fd;color:#1565c0}.status-badge.status-en-cours{background-color:#fff3e0;color:#e65100}.status-badge.status-terminu{background-color:#e8f5e9;color:#2e7d32}.status-badge.status-erreur{background-color:#ffebee;color:#c62828}.details{font-size:12px;color:#666}.error-text{color:#c62828}.status-legend{background:#fff;padding:16px;border-radius:4px;border:1px solid #ddd}.status-legend h4{margin-top:0;margin-bottom:15px;font-size:14px;font-weight:600;color:#333}.legend-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.legend-item{display:flex;align-items:center;gap:10px;font-size:13px;color:#666}.legend-color{width:16px;height:16px;border-radius:3px;flex-shrink:0}.empty-state{text-align:center;padding:60px 20px;color:#999}.empty-state p:first-child{font-size:18px;font-weight:500;margin-bottom:10px}.empty-state p:last-child{font-size:12px;margin-bottom:0}.loading{text-align:center;padding:40px;color:#999;font-size:16px}.error-message{background-color:#ffebee;color:#c62828;padding:12px 16px;border-radius:4px;margin-bottom:15px;border-left:4px solid #c62828}:root{--primary: #4c63d2;--primary-hover: #3a4eb1;--bg-main: #eef4f8;--bg-card: #ffffff;--text-dark: #1e2b3c;--text-light: #4a5d73;--border: #d2deeb;--danger: #ff7675;--success: #55efc4}body{margin:0;overflow-x:hidden;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-main);color:var(--text-dark)}.app-container{display:flex;flex-direction:column;height:100vh}.main-layout{display:flex;flex:1;overflow:hidden}.sidebar{width:320px;background-color:var(--bg-card);border-right:1px solid var(--border);padding:20px;display:flex;flex-direction:column;gap:15px;overflow-y:auto}.sidebar h3{font-size:1.1rem;margin-top:0;color:var(--primary);display:flex;align-items:center;gap:8px}.ssh-form{display:flex;flex-direction:column;gap:8px}.ssh-form label{font-size:.85rem;font-weight:600;color:var(--text-light)}.ssh-form input{padding:10px;border:1px solid var(--border);border-radius:6px;background:#f9f9f9;color:var(--text-dark)}.ssh-form input:focus{outline:2px solid var(--primary);background:#fff}.hint{font-size:.75rem;color:var(--text-light);font-style:italic}.content{flex:1;padding:25px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.tabs-header{display:flex;gap:10px;border-bottom:2px solid var(--border);margin-bottom:10px}.tabs-header button{padding:12px 24px;border:none;background:none;cursor:pointer;font-weight:600;color:var(--text-light);transition:all .3s;border-bottom:3px solid transparent;margin-bottom:-2px}.tabs-header button:hover{color:var(--primary)}.tabs-header button.active{color:var(--primary);border-bottom:3px solid var(--primary)}.tab-body{background:var(--bg-card);border-radius:12px;padding:20px;box-shadow:0 4px 6px #0000000d}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh}.login-card{background:#fff;padding:40px;border-radius:15px;box-shadow:0 10px 25px #0000001a;width:100%;max-width:400px;text-align:center}.login-card input{width:100%;padding:12px;margin:10px 0;border:1px solid var(--border);border-radius:8px;box-sizing:border-box}.btn-login{width:100%;padding:12px;background-color:var(--primary);color:#fff;border:none;border-radius:8px;font-weight:700;cursor:pointer;margin-top:10px}.btn-login:hover{background-color:var(--primary-hover)}.error-text{color:var(--danger);background:#fff5f5;padding:10px;border-radius:6px;font-size:.9rem}.yargla-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.yargla-modal{background:#fff;padding:30px;border-radius:12px;box-shadow:0 10px 30px #0003;width:100%;max-width:420px}.yargla-modal h3{margin-top:0;color:var(--primary);font-size:1.2rem}.yargla-modal p{color:var(--text-light);font-size:.9rem;margin-bottom:15px}.yargla-modal form{display:flex;flex-direction:column;gap:8px}.yargla-modal label{font-size:.85rem;font-weight:600;color:var(--text-light)}.yargla-modal input{padding:10px;border:1px solid var(--border);border-radius:6px;background:#f9f9f9;color:var(--text-dark)}.yargla-modal input:focus{outline:2px solid var(--primary);background:#fff}.yargla-modal input:disabled{opacity:.6;cursor:not-allowed}.yargla-modal-buttons{display:flex;gap:10px;margin-top:15px}.yargla-modal-buttons .btn-login{flex:1}.yargla-modal-buttons .btn-cancel{flex:1;padding:12px;background-color:#e0e0e0;color:#333;border:none;border-radius:8px;font-weight:700;cursor:pointer}.yargla-modal-buttons .btn-cancel:hover{background-color:#d0d0d0}.navbar{display:flex;justify-content:space-between;align-items:center;padding:0 20px;background-color:var(--primary);height:60px;width:100%;box-sizing:border-box;color:#fff;box-shadow:0 2px 4px #0000001a;z-index:1000}.navbar-brand{font-size:1.1rem;font-weight:700;color:#fff!important}.navbar-logout{padding:6px 12px;background-color:#d63031;color:#fff;border:none;border-radius:4px;font-weight:700;cursor:pointer;transition:background-color .2s}.navbar-logout:hover{background-color:#ff7675}
