*,:after,:before{box-sizing:border-box;margin:0;padding:0}#root,body,html{min-height:100vh;width:100%}body{background-color:#f8f9fa;color:#212529;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow-x:hidden}.app-container{display:flex;flex-direction:column;min-height:100vh}.user-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #0000001a;flex-wrap:wrap;gap:12px;padding:clamp(10px,2vw,20px)}.user-info{font-size:clamp(13px,1.4vw,16px);gap:4px}.header-actions{display:flex;flex-wrap:wrap;gap:10px}.btn-back,.btn-debug,.btn-logout{border:none;border-radius:8px;cursor:pointer;font-size:clamp(13px,1.3vw,15px);font-weight:600;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.btn-debug{background-color:#6c757d;color:#fff}.btn-debug:hover{background-color:#5a6268}.btn-logout{background-color:#007bff;color:#fff}.btn-logout:hover{background-color:#0069d9}.btn-back{background-color:#28a745;color:#fff}.btn-back:hover{background-color:#218838}.debug-header{align-items:center;background:#343a40;color:#fff;display:flex;flex-wrap:wrap;justify-content:space-between;padding:clamp(10px,2vw,20px)}.debug-header h2{font-size:clamp(18px,2vw,22px)}.station-wrapper{align-items:flex-start;flex:1 1;padding:clamp(10px,2vw,25px)}.no-station,.station-wrapper{display:flex;justify-content:center;width:100%}.no-station{align-items:center;padding:clamp(20px,4vw,40px)}.no-station-card{background:#fff;border-radius:16px;box-shadow:0 8px 25px #0000001f;padding:clamp(20px,4vw,40px);text-align:center;width:min(500px,95vw)}.no-station-card h3{color:#007bff;margin-bottom:15px}.no-station-card p{color:#6c757d;margin:8px 0}@media (max-width:768px){.user-header{align-items:flex-start;flex-direction:column}.header-actions{justify-content:flex-start;width:100%}.debug-header{align-items:flex-start;flex-direction:column;gap:10px}}@media (max-width:480px){.btn-back,.btn-debug,.btn-logout{text-align:center;width:100%}}.login-container{align-items:center;background-color:silver;display:flex;font-family:Arial,sans-serif;justify-content:center;min-height:100vh;padding:20px}.login-card{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;max-width:400px;padding:40px 30px;text-align:center;width:100%}.login-title{color:#333;font-family:Arial,sans-serif;font-size:24px;font-weight:700;margin:0 0 30px}.login-form{gap:20px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{align-items:flex-start}.form-label{color:#333;font-size:14px;font-weight:700;margin-bottom:8px;text-align:left}.form-input,.form-select{border:2px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:14px;font-weight:700;padding:12px 15px;transition:border-color .3s;width:100%}.form-input:focus,.form-select:focus{border-color:#007bff;outline:none}.form-select{cursor:pointer;height:45px}.error-message{background-color:#f8d7da;border-radius:6px;color:#721c24;font-size:14px;font-weight:500;margin-top:10px;padding:12px}.submit-button{align-items:center;background-color:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;gap:10px;justify-content:center;margin-top:20px;padding:14px;transition:background-color .3s}.submit-button:hover:not(:disabled){background-color:#218838}.submit-button:disabled{background-color:#6c757d;cursor:not-allowed}.submit-button.loading{background-color:#218838}.spinner{border:3px solid #ffffff50;border-top-color:#fff;height:18px;width:18px}@media (max-width:480px){.login-card{margin:10px;padding:30px 20px}.login-title{font-size:22px}}.charging-container{background-color:#f8f9fa;box-sizing:border-box;min-height:100vh;padding:5px 10px;width:100%}.charging-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:25px;text-align:center}.charging-content{box-sizing:border-box;padding:0 20px;width:100%}.charging-card{background-color:#fff!important;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin:20px;max-width:800px;overflow:hidden;width:100%}.serial-display{background-color:#e3f2fd;border-left:4px solid #2196f3;border-radius:8px;padding:15px}.serial-display label{color:#1565c0;margin-bottom:5px}.serial-value{background-color:#fff;border:1px solid #bbdefb;border-radius:4px;color:#333;font-family:monospace;font-size:5px;padding:8px}.battery-display{background-color:#f5f5f5;border-left:4px solid #4caf50;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.battery-display label{color:#333;display:block;font-size:small;font-weight:700;margin-bottom:10px}.battery-value{background-color:#fff;border:2px solid #e0e0e0;border-radius:6px;font-size:small;font-weight:700;padding:10px;text-align:center}.battery-value.good{border-color:#4caf50;color:#4caf50}.battery-value.low{border-color:#f44336;color:#f44336}.charging-status{color:#4caf50}.charging-status,.full-status{font-size:small;margin-top:8px;text-align:center}.full-status{color:#2196f3}.info-message{background-color:#e3f2fd;border:1px solid #bbdefb;border-radius:4px;color:#1565c0;padding:12px}.warning-message{border-radius:4px;padding:12px;text-align:center}.instruction-message{background-color:#fff3e0;border:1px solid #ffe0b2;border-radius:4px;color:#ef6c00;font-size:16px;padding:15px;text-align:center}.waiting-message{animation:pulse 2s infinite;background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;font-weight:700;padding:15px;text-align:center}.success-message{border:1px solid #c3e6cb;border-radius:4px;padding:20px;text-align:center}.success-message.fail{background-color:#f8d7da;border-color:#f5c6cb;color:#721c24;font-size:25px}.success-message strong{display:block;font-size:small;margin-bottom:10px}.next-job{font-size:smaller}.reset-button{background-color:#ff6b6b;border:none;border-radius:4px;color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:700;margin:15px auto;padding:10px 20px;transition:background-color .3s}.reset-button:hover{background-color:#ff5252}.reset-button:active{transform:scale(.98)}.error{background-color:#ffebee;border:1px solid #ffcdd2;border-radius:4px;color:#f44336;padding:10px}.controllers-grid{grid-gap:1px;align-items:start;box-sizing:border-box;gap:1px;grid-template-columns:repeat(4,1fr);margin-top:1px;width:100%}@media (max-width:1200px){.controllers-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:900px){.controllers-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:500px){.controllers-grid{grid-template-columns:1fr}}.controller-card{background-color:#fff!important;border:1px solid #e0e0e0;box-shadow:0 4px 12px #0000001a;gap:.6rem;height:380px;min-width:0;overflow:hidden}.controller-card:hover{border-color:#667eea}.controller-card .battery-display,.controller-card .error,.controller-card .success-message,.controller-card .waiting-message,.controller-card .warning-message{display:flex;flex:1 1;flex-direction:column;font-size:small;justify-content:center;margin:0;overflow:hidden}.cadance-container{background:#f8f9fa;border-radius:8px;box-shadow:0 2px 8px #0000001a;color:#000;font-family:Arial,sans-serif;margin:20px 0 auto;padding:auto;position:absolute;right:10px;top:50px;width:20%}.cadance-table{align-items:center;border-collapse:collapse;font-size:16px;width:100%}.cadance-table td,.cadance-table th{border:none;border-radius:4px;padding:10px;text-align:center}.cleaning-container{background-color:#f8f9fa;display:flex;justify-content:center;min-height:100vh;padding:5px 10px}.cleaning-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:25px;text-align:center}.action-buttons{display:flex;gap:30px;justify-content:center;padding:40px 50px}.btn-fail,.btn-pass{border:none;border-radius:12px;box-shadow:0 4px 10px #0000001a;cursor:pointer;flex:1 1;font-size:20px;font-weight:700;max-width:180px;padding:22px;transition:all .3s ease}.btn-pass{background-color:#28a745}.btn-pass:hover:not(:disabled){background-color:#218838;box-shadow:0 8px 16px #28a7454d}.btn-fail{background-color:#dc3545}.btn-fail:hover:not(:disabled){background-color:#c82333;box-shadow:0 8px 16px #dc35454d;transform:translateY(-3px)}.btn-fail:disabled,.btn-pass:disabled{background-color:#6c757d;box-shadow:none;cursor:not-allowed;transform:none}.success-message,.waiting-message,.warning-message{border-left:6px solid;border-radius:10px;font-size:25px;font-weight:500;margin:25px;padding:18px;text-align:center}.success-message{background-color:#d4edda;border-left-color:#28a745;color:#155724;font-size:25px}.next-job{font-size:18px;font-weight:700}.controllers-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:1.5rem}.controller-card{background:#1e1e2e;border:1px solid #313244;border-radius:12px;box-shadow:0 4px 16px #0000004d;display:flex;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;transition:border-color .2s}.controller-card:hover{border-color:#7f849c}.grading-container{align-items:flex-start;background-color:#f8f9fa;display:flex;flex-direction:column;justify-content:flex-start;min-height:100vh;padding:5px 10px}.grading-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:25px;text-align:center}.connected-section,.connection-section{margin-top:20px}.disconnected{padding:40px 20px}.serial-display{gap:16px}.serial-row{gap:20px;justify-content:center}.serial-row label{font-size:18px;letter-spacing:1px;min-width:160px;text-align:right;text-transform:uppercase}.color-value,.serial-value{border-radius:8px;box-shadow:0 2px 4px #0000000d;font-size:24px;letter-spacing:1.5px;min-width:260px;padding:12px 16px}.grade-buttons-row{align-items:center;margin-bottom:30px;margin-top:50px}.btn-grade:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.btn-grade.selected{border-width:4px;transform:scale(1.05)}.grade-a{border-color:#28a745;color:#28a745}.grade-a.selected{background:#d4edda;border-color:#28a745}.grade-b{border-color:#ffc107;color:#ffc107}.grade-b.selected{background:#fff3cd;border-color:#ffc107}.grade-c{border-color:#fd7e14;color:#fd7e14}.grade-c.selected{background:#ffe5d0;border-color:#fd7e14}.action-buttons-row{gap:0;margin-bottom:30px}.btn-ber,.btn-validate{border:none;border-radius:8px;cursor:pointer;flex:0 0 auto;font-size:18px;font-weight:700;min-width:150px;padding:20px 16px;text-align:center;transition:all .3s}.btn-validate{background:#28a745;color:#fff}.btn-validate:hover:not(:disabled){background:#218838;box-shadow:0 4px 8px #28a7454d;transform:translateY(-2px)}.btn-validate:disabled{background:#6c757d;cursor:not-allowed;transform:none}.btn-ber{background:#dc3545;color:#fff}.btn-ber:hover:not(:disabled){background:#c82333;box-shadow:0 4px 8px #dc35454d;transform:translateY(-2px)}.btn-ber:disabled{cursor:not-allowed;opacity:.6;transform:none}.grading-info{background:#fff;border-left:4px solid #007bff;border-radius:8px;padding:20px}.grade-description{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;gap:12px;margin-bottom:8px;padding:10px}.grade-description.fail{background:#f8d7da}.grade-badge{align-items:center;border-radius:6px;display:flex;font-size:14px;height:30px;justify-content:center;width:30px}.grade-badge.grade-a{background:#007bff}.grade-badge.grade-b{background:#6f42c1}.grade-badge.grade-c{background:#fd7e14}.grade-badge.ber{background:#dc3545}.message{border-radius:8px;margin:16px 0;padding:16px;text-align:center}.warning-message{background:#fff3cd;border:1px solid #ffeaa7}.waiting-message{background:#cce7ff;border:1px solid #b3d9ff;color:#004085}.info-message{background:#d1ecf1;border:1px solid #bee5eb;border-radius:8px;color:#0c5460;margin:20px 0;padding:20px;text-align:center}.success-message.permanent{animation:pulse 2s infinite;border:3px solid}.success-message.permanent.pass{background:#d4edda;border-color:#28a745}.success-message.permanent.fail{background:#f8d7da;border-color:#dc3545}.success-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.success-badge{background:#6c757d;border-radius:12px;color:#fff;font-size:12px;font-weight:600;padding:4px 8px}.success-details{background:#ffffffb3;border-left:4px solid #007bff;border-radius:6px;font-size:14px;margin-top:12px;padding:16px;text-align:left}.success-details div{margin-bottom:6px;padding:4px 0}.success-details strong{color:#495057;display:inline-block;min-width:100px}.grade-value{color:#28a745;font-size:18px;font-weight:700}.next-job{color:#007bff;font-weight:600;text-transform:uppercase}@keyframes pulse{0%{box-shadow:0 0 0 0 #28a74566}70%{box-shadow:0 0 0 10px #28a74500}to{box-shadow:0 0 0 0 #28a74500}}.movement-debug{background:#e9ecef;border-radius:4px;margin-top:12px;padding:12px}.movement-debug h4{color:#495057;margin:0 0 8px}.not-supported,.wrong-station{border-radius:8px;margin:20px 0;padding:40px;text-align:center}.wrong-station{background:#f8f9fa;border:2px solid #dee2e6}.not-supported{background:#f8d7da;border:2px solid #f5c6cb}.not-supported h2{color:#721c24;margin-bottom:16px}@media (max-width:768px){.grading-container{padding:10px}.grading-card{padding:16px}.grade-buttons-row{gap:10px;justify-content:center}.btn-grade{font-size:24px;height:60px;width:60px}.action-buttons-row{flex-direction:column;gap:15px}.btn-ber,.btn-validate{width:100%}.data-row{align-items:flex-start;flex-direction:column;gap:8px}.data-row label{min-width:auto}}.Packaging-container{background-color:#f8f9fa;display:flex;gap:2px;justify-content:start;min-height:-webkit-fit-content;min-height:fit-content;padding:2px;width:-webkit-max-content;width:max-content}.Packaging-card{gap:0;left:0}.cadence-palette-wrapper{background:#fff;border:0;border-radius:12px;box-sizing:border-box;height:-webkit-fit-content;height:fit-content;margin-left:150px;margin-top:120px;max-width:-webkit-max-content;max-width:max-content;overflow:hidden;padding:15px;position:static;width:70%}@media (max-width:768px){.cadence-palette-wrapper{margin-top:15px;padding:10px;width:95%}}@media (max-width:480px){.cadence-palette-wrapper{border-radius:8px;margin-top:10px;padding:8px;width:50%}}.palette-section{margin-left:200px;margin-top:70px;width:100%}.palette-popup-overlay{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.palette-confirmation-dialog{animation:slideIn .3s ease-out;background-color:#fff;border:3px solid #ff9800;border-radius:12px;box-shadow:0 4px 12px #ff98004d;margin:20px 0;padding:25px}.status-1{background-color:#d1e7dd;color:#0f5132}.status-2{background-color:#fff3cd;color:#664d03}.status-3{background-color:#f8d7da;color:#842029}.status-4{background-color:#cff4fc;color:#055160}.status-5{background-color:#e2e3e5;color:#41464b}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.confirmation-header{margin-bottom:20px;text-align:center}.confirmation-header h3{color:#ff9800;font-size:1.4em;font-weight:600;margin:0}.confirmation-details{background-color:#fff3e0;margin-bottom:20px}.confirmation-details p{color:#333;font-size:1.05em;margin:8px 0}.confirmation-details strong{color:#e65100;display:inline-block;min-width:80px}.confirmation-note{border-top:1px solid #ffcc80;color:#666;font-style:italic;margin-top:15px;padding-top:15px}.confirmation-buttons{display:flex;gap:15px;justify-content:center}.btn-confirm-no,.btn-confirm-yes{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:1.1em;font-weight:600;letter-spacing:.5px;max-width:200px;padding:12px 24px;text-transform:uppercase;transition:all .3s ease}.btn-confirm-yes{background-color:#4caf50;color:#fff}.btn-confirm-yes:hover:not(:disabled){background-color:#45a049;box-shadow:0 4px 8px #4caf504d;transform:translateY(-2px)}.btn-confirm-no{background-color:#f44336;color:#fff}.btn-confirm-no:hover:not(:disabled){background-color:#da190b;box-shadow:0 4px 8px #f443364d;transform:translateY(-2px)}.btn-confirm-no:disabled,.btn-confirm-yes:disabled{cursor:not-allowed;opacity:.5}.btn-confirm-no:active:not(:disabled),.btn-confirm-yes:active:not(:disabled){transform:translateY(0)}.palette-selector-card{background:#fff;border:0;border-radius:12px;display:flex;overflow:hidden}.palette-dropdown-wrapper{margin-bottom:20px}.palette-dropdown-wrapper label{color:#495057;display:block;font-size:16px;font-weight:700;margin-bottom:8px}.palette-select{background-color:#fff;border:2px solid #ced4da;border-radius:8px;cursor:pointer;font-size:15px;padding:12px 15px;transition:all .3s ease;width:100%}.palette-select:hover:not(:disabled){border-color:#28a745}.palette-select:focus{border-color:#28a745;box-shadow:0 0 0 3px #28a7451a;outline:none}.palette-select:disabled{background-color:#e9ecef;cursor:not-allowed;opacity:.6}.palette-table{width:100%}.grade-badge{border-radius:12px;color:#fff;display:inline-block;font-size:13px;font-weight:700;padding:4px 10px}.grade-badge.grade-a{background-color:#007bff}.grade-badge.grade-b{background-color:#6f42c1}.grade-badge.grade-c{background-color:#fd7e14}.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:700;padding:4px 10px}.status-badge.status-full{background-color:#dc3545;color:#fff}.status-badge.status-available{background-color:#28a745;color:#fff}.Packaging-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;text-align:center}.Packaging-header h1{font-size:2em;margin:0}.serial-display{flex-direction:column;gap:15px;margin-bottom:20px;padding:20px}.serial-row{align-items:center;display:flex;justify-content:space-between}.serial-row label{color:#6c757d;font-size:16px;font-weight:700}.color-value,.serial-value{background:#fff;border:2px solid #ced4da;border-radius:6px;font-family:Courier New,monospace;font-size:20px;font-weight:900;padding:8px 15px;text-align:center}.buttons-section{align-items:center;display:flex;flex-direction:column;gap:20px;padding:20px 0}.grade-buttons-row{gap:20px;width:100%}.action-buttons-row,.grade-buttons-row{justify-content:center}.btn-grade{border:4px solid #ddd;border-radius:50%;box-shadow:0 2px 8px #0000001a;font-size:1.8em;height:70px;transition:all .3s ease;width:70px}.btn-grade:hover:not(:disabled){box-shadow:0 4px 12px #0003;transform:scale(1.05)}.btn-grade.selected{border-color:#212529;box-shadow:0 6px 16px #0000004d;transform:scale(1.15)}.btn-grade:disabled{cursor:not-allowed;opacity:.5}.btn-validate-grade{background:linear-gradient(135deg,#28a745,#20c997);box-shadow:0 4px 12px #28a7454d;font-size:1.2em;min-width:250px;padding:15px 40px;transition:all .3s ease}.btn-validate-grade:hover:not(:disabled){box-shadow:0 6px 16px #28a74566;transform:translateY(-2px)}.btn-validate-grade:disabled{background:linear-gradient(135deg,#6c757d,#5a6268);box-shadow:none;opacity:.6}@media (max-width:1200px){.Packaging-container{align-items:stretch;flex-direction:column}.Packaging-card,.cadence-palette-wrapper{max-width:100%;width:100%}.cadence-palette-wrapper{flex-direction:column;gap:15px}}@media (max-width:768px){.Packaging-card{min-width:90%}.serial-row{flex-direction:column;gap:8px}.color-value,.serial-value{width:100%}.grade-buttons-row{gap:15px}.btn-grade{font-size:1.5em;height:60px;width:60px}.palette-table{font-size:12px}.palette-table td,.palette-table th{padding:8px 4px}}.QualityControl-container{background-color:#f8f9fa;display:flex;gap:2px;justify-content:space-between;min-height:-webkit-fit-content;min-height:fit-content;padding:2px;width:-webkit-max-content;width:max-content}.main-content{flex:1 1;gap:20px}.palette-section{background:#fff;border:0;border-radius:12px;box-sizing:border-box;height:-webkit-fit-content;height:fit-content;margin:2px auto 0;max-width:-webkit-max-content;max-width:max-content;overflow:hidden;padding:15px;width:90%}@media (max-width:768px){.palette-section{margin-top:15px;padding:10px;width:95%}}@media (max-width:480px){.palette-section{border-radius:8px;margin-top:10px;padding:8px;width:100%}}.palette-header{background:linear-gradient(135deg,#28a745,#20c997);border-radius:8px 8px 0 0;color:#fff;padding:15px;text-align:center}.palette-header h2{font-size:20px;margin:0}.palette-content{display:flex;flex-direction:column;gap:15px}.palette-field label{color:#495057;display:block;font-weight:600;margin-bottom:8px}.palette-field select{background-color:#fff;border:2px solid #ced4da;border-radius:6px;cursor:pointer;font-size:14px;padding:10px;transition:border-color .3s;width:100%}.palette-field select:focus{border-color:#28a745;outline:none}.palette-field select:disabled{background-color:#e9ecef;cursor:not-allowed}.palette-buttons{display:flex;gap:10px;margin-top:10px}.btn-palette-fail,.btn-palette-pass,.btn-palette-return{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:16px;font-weight:700;padding:12px;text-transform:uppercase;transition:all .3s}.btn-palette-return{background-color:#284aa7;color:#fff}.btn-palette-pass{background-color:#28a745;color:#fff}.btn-palette-pass:hover:not(:disabled){background-color:#218838;box-shadow:0 4px 8px #28a7454d;transform:translateY(-2px)}.btn-palette-fail{background-color:#dc3545;color:#fff}.btn-palette-fail:hover:not(:disabled){background-color:#c82333;box-shadow:0 4px 8px #dc35454d;transform:translateY(-2px)}.btn-palette-fail:disabled,.btn-palette-pass:disabled,.btn-palette-return:disabled{background-color:#ccc;cursor:not-allowed;transform:none}.palette-message{border-radius:6px;font-size:14px;margin:10px 0;padding:1px}.QualityControl-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:25px;text-align:center}.buttons-section{width:100%}.grade-buttons-row{display:flex;gap:15px;justify-content:flex-start;margin-bottom:20px}.action-buttons-row{align-items:center;display:flex;gap:2px;justify-content:space-between;width:100%}.btn-grade{border:none;border-radius:8px;cursor:pointer;font-size:24px;font-weight:700;height:80px;transition:all .3s;width:80px}.btn-grade.selected{box-shadow:0 0 15px #0000004d;transform:scale(1.1)}.grade-a{background-color:#007bff;color:#fff}.grade-b{background-color:#6f42c1;color:#fff}.grade-c{background-color:#fd7e14;color:#fff}.grade-a:hover{background-color:#007bff}.grade-b:hover{background-color:#6f42c1}.grade-c:hover{background-color:#fd7e14}.btn-validate-grade{background-color:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;min-width:180px;padding:15px 25px;transition:background-color .3s}.btn-validate-grade:hover:not(:disabled){background-color:#45a049}.btn-validate-grade:disabled{background-color:#ccc;cursor:not-allowed}.btn-fail{background-color:#f44336;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;min-width:120px;padding:15px 25px;transition:background-color .3s}.btn-fail:hover:not(:disabled){background-color:#da190b}.btn-fail:disabled{background-color:#ccc;cursor:not-allowed}.success-message.permanent.pass{background-color:#d4edda;border:2px solid #28a745;color:#155724;font-size:25px}.success-message.permanent.fail{background-color:#f8d7da;border:2px solid #dc3545;color:#721c24;font-size:25px}.grade-value,.next-job{font-size:18px;font-weight:700}.fail-modal-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.fail-modal-content{background:#fff;border-radius:8px;box-shadow:0 10px 30px #0000004d;max-width:500px;padding:30px;width:90%}.fail-modal-content h2{color:#333;margin:0 0 20px;text-align:center}.modal-field{margin-bottom:20px}.modal-field label{display:block;font-weight:600;margin-bottom:8px}.modal-field input,.modal-field select,.modal-field textarea{border:1px solid #ccc;border-radius:4px;font-size:16px;padding:10px;width:100%}.modal-buttons{display:flex;gap:15px;justify-content:center;margin-top:30px}.btn-confirm{background:#1a8132}.btn-cancel,.btn-confirm{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:12px 30px}.btn-cancel{background:#666}.confirmation-modal{max-width:500px}.confirmation-details{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:15px 0;padding:15px}.confirmation-item{border-bottom:1px solid #dee2e6;margin:8px 0;padding:5px 0}.confirmation-item:last-child{border-bottom:none}.confirmation-item strong{color:#495057;display:inline-block;min-width:100px}.confirmation-warning{background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;font-weight:700;margin:15px 0;padding:10px;text-align:center}.panne-info-display{background:#e7f3ff;border:1px solid #b3d9ff;border-radius:6px;margin:15px 0;padding:12px}.info-item{color:#004085;margin:5px 0}.info-item strong{color:#002752}.palette-table{border-collapse:collapse;font-size:14px;width:-webkit-fit-content;width:fit-content}.palette-table thead{background-color:#f8f9fa;position:-webkit-sticky;position:sticky;top:0;z-index:10}.palette-table th{border-bottom:2px solid #dee2e6;color:#495057;font-weight:700;padding:10px 8px;text-align:left}.palette-table td{border-bottom:1px solid #e9ecef;padding:12px 8px;vertical-align:middle}.palette-table tbody tr{transition:background-color .2s ease}.palette-table tbody tr:hover{background-color:#f8f9fa}.palette-table tbody tr.selected-row{background-color:#d4edda;border-left:4px solid #28a745}.repair-container{display:grid}.connection-section{padding:10px}.repair-buttons-section{padding:10px 30px}.btn-repair{height:100px;padding:10px}.btn-battery{background-color:#ffc107}.btn-joystick{background-color:#17a2b8}.btn-depanage{background-color:#1cb817}.singlepass-container{background-color:#f8f9fa;display:flex;justify-content:center;min-height:100vh;padding:5px 10px}.singlepass-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:25px;text-align:center}.connection-section{padding:30px}.action-section{padding:50px 30px}.btn-pass,.single-button-row{align-items:center;display:flex;justify-content:center}.btn-pass{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:14px;box-shadow:0 6px 15px #28a7454d;color:#fff;cursor:pointer;font-size:22px;font-weight:700;height:100px;transition:all .3s ease;width:220px}.btn-pass:hover:not(:disabled){box-shadow:0 8px 20px #28a74566;transform:translateY(-3px)}.btn-pass:disabled{background:#6c757d;cursor:not-allowed;transform:none}.success-message.permanent{font-size:25px}.next-job,.status-value{font-size:25px;font-weight:700}.serial-display{align-items:center;display:flex;gap:20px;justify-content:center;margin:20px;padding:30px 25px}.serial-display label{font-size:20px}.scanner-container{background-color:#f8f9fa;display:flex;justify-content:center;min-height:100vh;padding:40px 20px}.scanner-card{background:#fff;border-radius:16px;box-shadow:0 8px 25px #0000001f;max-width:520px;overflow:hidden;width:100%}.scanner-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:25px;text-align:center}.scanner-header h3{font-size:26px;font-weight:700;margin:0}.serial-display{padding:50px 30px;text-align:center}.serial-display label{color:#495057;display:block;font-size:16px;margin-bottom:15px}.serial-value{background-color:#f1f3f5;border:2px dashed #ced4da;color:#212529;font-size:28px;font-weight:700;letter-spacing:2px;word-break:break-all}.disconnected,.not-supported{color:#6c757d;padding:60px 30px;text-align:center}.disconnected h3,.not-supported h2{font-size:20px;margin-bottom:20px}.spinner{animation:spin 1s linear infinite;border:5px solid #e9ecef;border-radius:50%;border-top-color:#667eea;height:50px;margin:0 auto 20px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.error{color:#dc3545;font-weight:500;margin-top:20px}.repair-container{align-items:flex-start;background-color:#f8f9fa;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-start;max-width:100%;min-height:100vh;overflow-x:hidden;padding:5px 10px;width:100%}.repair-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:5px;text-align:center}.connection-section{padding:5px}.repair-buttons-section{padding:0 10px}.repair-buttons-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.btn-repair{align-items:center;border:none;border-radius:14px;box-shadow:0 6px 15px #0000001f;color:#fff;cursor:pointer;display:flex;flex:1 1;font-size:18px;font-weight:700;height:80px;justify-content:center;padding:15px;text-align:center;transition:all .3s ease}.btn-repared{background-color:#04a319}.btn-retest{background-color:#17a2b8}.btn-notrepared{background-color:#b81717}.btn-dismount{background-color:#adb817}.btn-repair.selected{box-shadow:0 0 0 4px #007bff,0 8px 20px #0003;transform:scale(1.05)}.btn-repair:hover:not(:disabled){transform:translateY(-3px)}.btn-repair:disabled{cursor:not-allowed;opacity:.6}.success-message.permanent{background-color:#d4edda;border:2px solid #28a745;border-radius:10px;color:#155724;font-size:16px;margin:20px;padding:20px;text-align:center}.success-details{line-height:1.6}.next-job,.repair-type{font-size:25px;font-weight:700}.serial-display{background-color:#f8f9fa;border:2px solid #e9ecef;border-radius:10px;flex:1 1;gap:10px;padding:0 5px}.serial-display label{color:#6c757d;display:flex;font-size:15px;font-weight:700;letter-spacing:1px;margin:0;text-transform:uppercase}.serial-value{background:#fff;border:2px solid #ced4da;border-radius:8px;box-shadow:0 2px 4px #0000000d;color:#000;font-family:Courier New,monospace;font-size:18px;font-weight:900;letter-spacing:1.5px;min-width:300px;padding:15px;text-align:center}.waiting-message,.warning-message{border-left:6px solid;border-radius:10px;font-size:16px;font-weight:500;margin:25px;padding:18px;text-align:center}.warning-message{background-color:#fff3cd;border-left-color:#ffc107;color:#856404}.waiting-message{background-color:#fff8e1;border-left-color:#ffc107;color:#fd7e14}.disconnected{color:#6c757d;padding:50px 30px;text-align:center}.boardModel{background:#507cceb3;border-radius:6px;color:#fff;font-family:sans-serif;font-size:16px;left:10px;padding:8px 12px;position:fixed;top:70px;z-index:9999}.overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.popup{background-color:#fff;border-radius:10px;box-shadow:0 5px 20px #0000004d;max-height:80vh;overflow-y:auto;padding:20px;width:450px}.checkboxList{margin-bottom:15px;margin-top:10px;max-height:400px;overflow-y:auto;padding-right:5px}.checkboxItem{border-radius:4px;display:block;font-size:14px;margin-bottom:5px}.checkboxItem:hover{background-color:#1a71ce}.buttonContainer{display:flex;gap:8px;justify-content:flex-end;justify-content:space-between}.confirmBtn{background-color:#4caf50}.cancelBtn,.confirmBtn{border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 14px}.cancelBtn{background-color:#f44336}.panne-container{background:#f8f9fa;border-radius:8px;box-shadow:0 2px 8px #0000001a;color:#000;font-family:Arial,sans-serif;margin:20px auto;max-width:600px;padding:16px;width:90%}.panne-table{border:none;font-size:16px;width:100%}.panne-table td,.panne-table th{border:none;border-radius:4px;padding:10px 14px;text-align:center}.panne-table th{background:#0000000d;font-weight:700}.app-container{background-color:#f8f9fa;height:inherit;min-height:100%}.user-header{align-items:center;background-color:#343a40;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;font-family:Arial,sans-serif;justify-content:space-between;padding:12px 20px}.user-info{display:flex;flex-direction:column;font-size:14px}.user-name,.user-position{font-weight:700}.user-position{font-size:13px;opacity:.9}.version-center{left:50%;position:absolute;transform:translateX(-50%)}.app-version{background-color:#ffffff1a;border-radius:12px;color:#ecf0f1;font-size:24px;font-style:italic;font-weight:700;padding:4px 5px}.logout-button{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;padding:8px 16px;transition:background-color .3s}.logout-button,.logout-button:hover{background-color:#007bff}.version-info{color:#fff;font-size:20px;font-style:italic;font-weight:700;margin-top:2px;text-align:center}
/*# sourceMappingURL=main.5e0aa053.css.map*/