*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:#f5f5f5;color:#333}.app{min-height:100vh}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.2rem;color:#666}.error{color:#ef4444;padding:1rem;text-align:center}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.login-card h1{text-align:center;color:#667eea;margin-bottom:.5rem}.login-card h2{text-align:center;color:#666;font-weight:400;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:500}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.form-group input:focus{outline:none;border-color:#667eea}.login-card button{width:100%;padding:.75rem;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer;margin-top:1rem}.login-card button:hover{background:#5568d3}.login-card button:disabled{background:#ccc;cursor:not-allowed}.dashboard{min-height:100vh}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#fff;box-shadow:0 2px 4px #0000001a}.header h1{font-size:1.5rem;color:#333}.logout-btn{padding:.5rem 1rem;background:#ef4444;color:#fff;border:none;border-radius:6px;cursor:pointer}.filters{display:flex;gap:1rem;padding:1rem 2rem;background:#fff;border-bottom:1px solid #eee}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-weight:500;color:#555}.filter-group select{padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem}.content{display:flex;padding:2rem;gap:2rem}.table-container{flex:2;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.candidates-table{width:100%;border-collapse:collapse}.candidates-table th,.candidates-table td{padding:1rem;text-align:left;border-bottom:1px solid #eee}.candidates-table th{background:#f9fafb;font-weight:600;color:#555}.candidates-table tr{cursor:pointer;transition:background .2s}.candidates-table tr:hover{background:#f9fafb}.candidates-table tr.selected{background:#eff6ff}.score{display:inline-block;padding:.25rem .75rem;border-radius:9999px;color:#fff;font-weight:600}.status{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.85rem;text-transform:capitalize}.status.completed{background:#dcfce7;color:#166534}.status.pending{background:#fef3c7;color:#92400e}.status.failed{background:#fee2e2;color:#991b1b}.status.processing{background:#dbeafe;color:#1e40af}.detail-panel{flex:1;background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.detail-header h2{font-size:1.25rem}.detail-header button{padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer}.detail-score{text-align:center;margin-bottom:1.5rem}.big-score{width:100px;height:100px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 auto .5rem;color:#fff}.score-value{font-size:2rem;font-weight:700}.score-label{font-size:.75rem;opacity:.9}.chart-container{margin-bottom:1.5rem}.summary,.strengths,.improvements{margin-bottom:1rem}.summary h3,.strengths h3,.improvements h3{font-size:1rem;margin-bottom:.5rem;color:#333}.summary p{color:#666;line-height:1.5}.strengths ul,.improvements ul{list-style:none}.strengths li{padding:.25rem 0;color:#166534}.strengths li:before{content:"✓ ";color:#22c55e;margin-right:.5rem}.improvements li{padding:.25rem 0;color:#92400e}.improvements li:before{content:"→ ";color:#f59e0b;margin-right:.5rem}.detail-page{min-height:100vh}.detail-page .header{display:flex;align-items:center;gap:1rem}.back-btn{padding:.5rem 1rem;background:#f3f4f6;color:#333;border:none;border-radius:6px;cursor:pointer}.detail-content{max-width:1000px;margin:2rem auto;padding:0 2rem}.candidate-info{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000001a}.candidate-info h2{margin-bottom:1rem}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.info-item label{display:block;font-size:.85rem;color:#666;margin-bottom:.25rem}.info-item span,.info-item a{color:#333}.info-item a{color:#3b82f6;text-decoration:none}.info-item a:hover{text-decoration:underline}.score-section{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000001a;text-align:center}.average-score{margin-top:.5rem;color:#666}.chart-section{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000001a}.chart-section h3{margin-bottom:1rem}.chart{max-width:600px;margin:0 auto}.summary-section,.feedback-section{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000001a}.summary-section h3,.feedback-section h3{margin-bottom:.5rem}.summary-section p{color:#666;line-height:1.6}.feedback-section{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.flagged-row{background-color:#fff5f5!important}.flag-badge{display:inline-block;background-color:#ef4444;color:#fff;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:4px;white-space:nowrap}.flag-alert{background-color:#fef2f2;border:1px solid #fecaca;border-left:4px solid #ef4444;border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem}.flag-alert strong{color:#dc2626;display:block;margin-bottom:.25rem}.flag-alert p{color:#7f1d1d;font-size:.85rem}
