body{margin:0;min-width:320px;min-height:100vh}:root{--primary: #2563eb;--primary-hover: #1d4ed8;--success: #16a34a;--danger: #dc2626;--warning: #f59e0b;--bg: #f8fafc;--surface: #ffffff;--text: #1e293b;--text-secondary: #64748b;--border: #e2e8f0;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.page{min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:2rem}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.navbar-logo{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;color:var(--primary);text-decoration:none}.navbar-logo-icon{width:32px;height:32px;border-radius:8px}.navbar-right{display:flex;align-items:center;gap:1rem}.navbar-user{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary)}.role-badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:12px;text-transform:uppercase}.role-interviewer{background:#dbeafe;color:#1e40af}.role-hr{background:#dcfce7;color:#166534}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.2rem;border:none;border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-outline{background:transparent;color:var(--primary);border:1px solid var(--primary)}.btn-outline:hover:not(:disabled){background:#eff6ff}.btn-sm{padding:.35rem .8rem;font-size:.8rem}.btn-lg{padding:.8rem 2rem;font-size:1rem}.btn-block{width:100%}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.35rem;font-weight:500;font-size:.9rem;color:var(--text)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-group .error{color:var(--danger);font-size:.8rem;margin-top:.25rem;display:block}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3a5f,#2563eb)}.login-card{background:var(--surface);padding:2.5rem;border-radius:12px;box-shadow:var(--shadow-lg);width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:2rem}.login-logo{width:72px;height:72px;margin-bottom:.75rem;border-radius:16px}.login-header h1{font-size:2rem;color:var(--primary);margin-bottom:.25rem}.login-header p{color:var(--text-secondary)}.login-footer{margin-top:1.5rem;text-align:center;font-size:.9rem;color:var(--text-secondary)}.dashboard-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-top:2rem}.action-card{background:var(--surface);padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow);text-decoration:none;color:var(--text);transition:box-shadow .2s,transform .2s;border:1px solid var(--border)}.action-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.action-icon{font-size:2.5rem;margin-bottom:1rem}.action-card h3{margin-bottom:.5rem}.action-card p{color:var(--text-secondary);font-size:.9rem}.registration-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:1.5rem}.registration-photo,.registration-form{background:var(--surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow)}.registration-photo h2,.registration-form h2{margin-bottom:1rem;font-size:1.2rem}.photo-mode-tabs{display:flex;gap:0;margin-bottom:1rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tab{flex:1;padding:.5rem 1rem;border:none;background:transparent;cursor:pointer;font-size:.85rem;font-weight:500;color:var(--text-secondary);transition:all .2s}.tab-active{background:var(--primary);color:#fff}.photo-hint{color:var(--text-secondary);font-size:.85rem;margin-top:1rem;text-align:center}.webcam-container,.webcam-preview{display:flex;flex-direction:column;align-items:center;gap:1rem}.webcam-container video,.webcam-preview img{border-radius:var(--radius);border:2px solid var(--border)}.webcam-error{padding:2rem;text-align:center;color:var(--danger);background:#fef2f2;border-radius:var(--radius)}.file-upload{display:flex;flex-direction:column;align-items:center;gap:1rem}.file-upload input[type=file]{display:none}.upload-label{display:inline-block;padding:1rem 2rem;border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;color:var(--text-secondary);transition:border-color .2s}.upload-label:hover{border-color:var(--primary)}.upload-preview img{border-radius:var(--radius);border:2px solid var(--border)}.success-card{max-width:600px;margin:2rem auto;background:var(--surface);padding:3rem;border-radius:var(--radius);box-shadow:var(--shadow);text-align:center}.success-icon{font-size:4rem;color:var(--success);margin-bottom:1rem}.candidate-id-display{margin:1.5rem 0;padding:1rem;background:#f1f5f9;border-radius:var(--radius)}.id-label{display:block;font-size:.8rem;color:var(--text-secondary);margin-bottom:.25rem}.id-value{font-size:1.5rem;font-weight:700;color:var(--primary);font-family:monospace}.success-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.search-bar{display:flex;gap:.75rem;margin-bottom:2rem;background:var(--surface);padding:1rem;border-radius:var(--radius);box-shadow:var(--shadow)}.search-input{flex:1;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem}.search-input:focus{outline:none;border-color:var(--primary)}.search-type{padding:.6rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem}.results-count{color:var(--text-secondary);margin-bottom:1rem}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1rem}.candidate-card{display:flex;gap:1rem;background:var(--surface);padding:1rem;border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;transition:box-shadow .2s,transform .2s;border:1px solid var(--border)}.candidate-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.candidate-card-photo img{width:80px;height:80px;object-fit:cover;border-radius:var(--radius)}.photo-placeholder{width:80px;height:80px;background:#f1f5f9;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--text-secondary)}.candidate-card-info h3{font-size:1rem;margin-bottom:.15rem}.candidate-email{font-size:.85rem;color:var(--text-secondary)}.candidate-date{font-size:.8rem;color:var(--text-secondary)}.candidate-card-badges{display:flex;gap:.5rem;margin-top:.5rem}.badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:12px;text-transform:uppercase}.status-selected{background:#dcfce7;color:#166534}.status-rejected{background:#fef2f2;color:#991b1b}.status-onhold,.status-on_hold{background:#fef9c3;color:#854d0e}.verification-matched{background:#dcfce7;color:#166534}.verification-mismatched{background:#fef2f2;color:#991b1b}.verification-pending{background:#f1f5f9;color:#64748b}.candidate-details{display:flex;gap:2rem;background:var(--surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow)}.details-photo img{width:200px;height:200px;object-fit:cover;border-radius:var(--radius);border:2px solid var(--border)}.photo-placeholder-lg{width:200px;height:200px;background:#f1f5f9;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.photo-label{text-align:center;font-size:.85rem;color:var(--text-secondary);margin-top:.5rem}.details-info{flex:1}.details-info h2{margin-bottom:1rem}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.detail-item{display:flex;flex-direction:column}.detail-full{grid-column:1 / -1}.detail-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:600}.detail-value{font-size:.9rem}.verification-section{margin-bottom:2rem}.verification-section h2{margin-bottom:.5rem}.verify-btn{margin-top:1rem;width:100%;max-width:400px;display:block;margin-left:auto;margin-right:auto}.verification-result{padding:2rem;border-radius:var(--radius);text-align:center}.result-match{background:#f0fdf4;border:2px solid var(--success)}.result-mismatch{background:#fef2f2;border:2px solid var(--danger)}.result-banner{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:1.5rem}.result-title{font-size:2rem}.result-match .result-title{color:var(--success)}.result-mismatch .result-title{color:var(--danger)}.result-message{color:var(--danger);margin-bottom:1rem}.result-photos{display:flex;align-items:center;justify-content:center;gap:2rem;margin-bottom:1.5rem}.result-photo img{width:200px;height:200px;object-fit:cover;border-radius:var(--radius);border:2px solid var(--border)}.result-photo p{margin-top:.5rem;font-size:.85rem;color:var(--text-secondary)}.result-vs{font-size:1.2rem;font-weight:700;color:var(--text-secondary)}.result-meta{display:flex;justify-content:center;gap:2rem;font-size:.85rem;color:var(--text-secondary)}.confidence-badge{display:inline-flex;flex-direction:column;align-items:center;padding:.5rem 1.5rem;border-radius:var(--radius)}.confidence-score{font-size:1.5rem;font-weight:700}.confidence-label{font-size:.8rem;font-weight:500}.confidence-very-high,.confidence-high{background:#dcfce7;color:#166534}.confidence-low{background:#fef9c3;color:#854d0e}.confidence-mismatch{background:#fef2f2;color:#991b1b}.loading-spinner{display:flex;flex-direction:column;align-items:center;padding:2rem;color:var(--text-secondary)}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-table-wrap{overflow-x:auto}.dashboard-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.dashboard-table th,.dashboard-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border);font-size:.9rem}.dashboard-table th{background:#f8fafc;font-weight:600;color:var(--text-secondary);font-size:.8rem;text-transform:uppercase}.dashboard-table tbody tr:hover{background:#f8fafc}.dashboard-table tbody tr:last-child td{border-bottom:none}@media(max-width:768px){.registration-layout,.form-row{grid-template-columns:1fr}.candidate-details{flex-direction:column}.details-grid{grid-template-columns:1fr}.result-photos,.search-bar{flex-direction:column}.results-grid{grid-template-columns:1fr}}
