body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background-color:#f7f9fc;color:#333;display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;text-align:center}.App-header{background-color:#3f51b5;box-shadow:0 4px 6px #0000001a;color:#fff;padding:1.2rem}.App-header h1{font-size:2rem;font-weight:600;margin:0}.App-header p{font-size:1rem;margin:.5rem 0 0;opacity:.9}.App-main{grid-gap:2rem;display:grid;flex:1 1;gap:2rem;grid-template-columns:1fr;margin:0 auto;max-width:1200px;padding:2rem;width:100%}@media (min-width:992px){.App-main{grid-template-columns:1fr 1fr}.notification-section{grid-column:1/-1}}.authentication-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:1.5rem}.face-auth h2{color:#3f51b5;margin-top:0}.webcam-container{border-radius:8px;box-shadow:0 2px 12px #0000001a;margin:1rem 0;max-width:100%;overflow:hidden}.loading-indicator{align-items:center;background:#00000080;border-radius:8px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.spinner{animation:spin 1s ease-in-out infinite;border:5px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.webcam-error{background-color:#ffebee;border:1px solid #ffcdd2;border-radius:8px;color:#c62828;margin:1rem 0;padding:1rem}.error-message{color:#c62828;font-weight:500}.browser-warning{background-color:#fff8e1;border:1px solid #ffe082;border-radius:8px;color:#ff8f00;margin:1rem 0;padding:1rem}.auth-buttons{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.auth-buttons button{background-color:#3f51b5;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.8rem 1.5rem;transition:background-color .2s}.auth-buttons button:hover{background-color:#303f9f}.auth-buttons button:disabled{background-color:#bdbdbd;cursor:not-allowed}.retry-button{background-color:#ff9800;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;margin-bottom:1rem;padding:.8rem 1.5rem;transition:background-color .2s;width:100%}.retry-button:hover{background-color:#f57c00}.voice-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:1.5rem}.voice-control h2{color:#3f51b5;margin-top:0}.voice-control .status{background:#f0f2fd;border-radius:6px;font-weight:500;padding:.8rem}.voice-control .transcript{color:#555;font-style:italic;margin:1rem 0}.voice-buttons{margin:1.5rem 0}.voice-buttons button{align-items:center;background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-weight:500;justify-content:center;padding:.8rem 1.5rem;transition:all .3s}.voice-buttons button.listening{animation:pulse 1.5s infinite;background-color:#f44336}.voice-buttons button:hover{opacity:.9}.voice-buttons button:disabled{animation:none;background-color:#bdbdbd;cursor:not-allowed}.voice-instructions{background:#f5f7ff;border-radius:8px;margin-top:1.5rem;padding:1rem;text-align:left}.voice-instructions h3{color:#3f51b5;font-size:1rem;margin-top:0}.voice-instructions ul{margin-bottom:0;padding-left:1.5rem}.voice-instructions li{font-size:.9rem;margin-bottom:.5rem}.voice-instructions ul li{margin-bottom:10px}.voice-instructions ul li ul{margin-top:5px;padding-left:20px}.voice-instructions ul li ul li{color:#555;font-size:.85rem;margin-bottom:2px}.notification-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:1.5rem}.notification-section h2{color:#3f51b5;margin-top:0}.notification-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.notification-header h2{margin:0}.clear-notifications{background-color:#e0e0e0;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;padding:.4rem .8rem;transition:background-color .2s}.clear-notifications:hover{background-color:#d5d5d5}.notification-list{border:1px solid #e0e0e0;border-radius:8px;max-height:300px;overflow-y:auto;padding:.5rem}.notification-item{border-bottom:1px solid #f0f0f0;display:flex;padding:.8rem;text-align:left}.notification-item:last-child{border-bottom:none}.notification-time{color:#757575;flex:0 0 85px;font-size:.85rem}.notification-message{flex:1 1}.no-notifications{color:#9e9e9e;font-style:italic;padding:1rem}.App-footer{background-color:#e8eaf6;color:#555;margin-top:2rem;padding:1rem}.small{font-size:.8rem;margin-top:.5rem;opacity:.8}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@media (max-width:768px){.App-main{padding:1rem}.webcam-container{height:auto}.auth-buttons,.voice-buttons{flex-direction:column}.auth-buttons button,.voice-buttons button{margin-bottom:.5rem}}.diagnostic-tool{bottom:20px;position:fixed;right:20px;z-index:1000}.diagnostic-button{background-color:#e0e0e0;border:none;border-radius:4px;box-shadow:0 2px 5px #0000001a;cursor:pointer;font-size:.85rem;padding:8px 12px;transition:background-color .2s}.diagnostic-button:hover{background-color:#d0d0d0}.diagnostic-panel{background-color:#fff;border-radius:8px;bottom:40px;box-shadow:0 4px 12px #00000026;max-height:80vh;overflow-y:auto;padding:15px;position:absolute;right:0;width:350px}.diagnostic-panel h3{color:#333;font-size:1.1rem;margin-top:0}.diagnostic-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:15px}.diagnostic-actions button{background-color:#f0f0f0;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.85rem;padding:8px 12px}.diagnostic-actions button:hover{background-color:#e8e8e8}.diagnostic-results{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;font-size:.85rem;padding:10px}.diagnostic-results h4{align-items:center;display:flex;font-size:.95rem;justify-content:space-between;margin-bottom:8px;margin-top:0}.copy-button{background-color:initial;border:1px solid #ccc;border-radius:3px;cursor:pointer;font-size:.7rem;padding:2px 6px}.copy-button:hover,.diagnostic-results pre{background-color:#f0f0f0}.diagnostic-results pre{border-radius:4px;font-size:.75rem;margin:0 0 10px;max-height:200px;overflow-x:auto;overflow-y:auto;padding:8px}.recommendations ul{margin:0;padding-left:20px}.recommendations li{margin-bottom:5px}.recommendations li.error{color:#d32f2f}.recommendations li.warning{color:#f57c00}@media (max-width:768px){.diagnostic-panel{width:280px}}.logout-button{background-color:#d9534f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:700;margin-top:10px;padding:8px 16px;transition:background-color .3s}.logout-button:hover{background-color:#c9302c}.clear-registration-button{background-color:#f0ad4e;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.8rem 1.5rem;transition:background-color .3s}.clear-registration-button:hover{background-color:#ec971f;box-shadow:0 2px 6px #0003}.clear-registration-button:disabled{background-color:#ccc;box-shadow:none;cursor:not-allowed}.username-input-container{margin:15px 0}.username-input{border:1px solid #ccc;border-radius:4px;font-size:16px;max-width:300px;padding:10px;width:100%}.username-input:focus{border-color:#3f51b5;box-shadow:0 0 0 2px #3f51b540;outline:none}.authenticated-user{background-color:#e8f5e9;border:1px solid #c8e6c9;border-radius:20px;display:inline-block;margin:10px 0;padding:8px 12px}.user-badge{color:#2e7d32;font-size:14px}.current-user-header{background-color:#fff3;border-radius:20px;display:inline-block;font-size:14px;margin-top:8px;padding:5px 12px}.password-input-container{align-items:center;display:flex;flex-direction:column;margin:15px 0}.password-input{border:1px solid #ccc;border-radius:4px;font-size:16px;margin-bottom:10px;max-width:300px;padding:10px;width:100%}.password-input:focus{border-color:#f44336;box-shadow:0 0 0 2px #f4433640;outline:none}.password-actions{display:flex;gap:10px}.password-submit-button{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:700;padding:8px 16px}.password-submit-button:hover{background-color:#3d8b40}.password-submit-button:disabled{background-color:#a5d6a7;cursor:not-allowed}.password-cancel-button{background-color:#9e9e9e;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:700;padding:8px 16px}.password-cancel-button:hover{background-color:#757575}.admin-button{background-color:#673ab7;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.8rem 1.5rem;transition:background-color .2s}.admin-button:hover{background-color:#5e35b1}.admin-button:disabled{background-color:#b39ddb;cursor:not-allowed}.cancel-button{background-color:#9e9e9e;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.8rem 1.5rem;transition:background-color .2s}.cancel-button:hover{background-color:#757575}.cancel-button:disabled{background-color:#e0e0e0;cursor:not-allowed}.authenticate-button{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.8rem 1.5rem;transition:background-color .2s}.authenticate-button:hover{background-color:#46a049;box-shadow:0 2px 6px #0003}.authenticate-button:disabled{background-color:#a5d6a7;box-shadow:none;cursor:not-allowed}
/*# sourceMappingURL=main.baf6f23f.css.map*/