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{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.dashboard-root{background:#f0f2f5;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;padding:32px 0}.header{background:#fff;border:1px solid #e3e6f0;border-radius:12px;box-shadow:0 2px 8px #e3e6f0;margin-bottom:32px;padding:28px 24px 18px;text-align:center}.status-bar{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin-top:12px}.status-item{background:#f1f3f6;border:1px solid #e3e6f0;border-radius:18px;color:#333;font-size:1em;font-weight:500;padding:8px 18px}.main-content{grid-gap:32px;display:grid;gap:32px;grid-template-columns:2fr 1fr;margin-bottom:32px}.section{background:#fff;border:1px solid #e3e6f0;border-radius:10px;box-shadow:0 2px 8px #e3e6f0;padding:24px 18px 18px}.stations-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.station-card{border:2.5px solid #bfc9d8;border-radius:8px;box-shadow:0 1px 4px #e3e6f0;margin-bottom:0;padding:18px 14px 14px;position:relative;transition:box-shadow .15s,border .15s,transform .18s ease-out,background-color .25s ease-out}.station-card.occupied{border-left:6px solid #e74c3c}.station-card.available{border-left:6px solid #28a745}.station-card:hover{border-color:#bfc9d8;box-shadow:0 4px 16px #bfc9d8}.station-number{align-items:center;background:#667eea;border-radius:50%;box-shadow:0 2px 8px #667eea33;color:#fff;display:flex;font-size:1em;height:32px;justify-content:center;position:absolute;right:-10px;top:-10px;width:32px}.station-name{color:#2c3e50;font-size:1.08em;font-weight:600;margin-bottom:8px}.company-info{color:#495057;font-size:1em;margin-bottom:5px}.station-actions{display:flex;gap:8px;margin:10px 0 0}.btn{background:#f6f8fa;border:1.5px solid #bfc9d8;border-radius:16px;box-shadow:0 1px 4px #e3e6f0;color:#333;font-size:.98em;margin:0;padding:7px 16px;transition:background .15s,border .15s,color .15s}.btn.pass{border-color:#28a745;color:#28a745}.btn.fail{border-color:#e74c3c;color:#e74c3c}.btn:hover{background:#e3e6f0;color:#222}.btn:active{box-shadow:0 0 0 #0000}.btn.pass:active{background:#e6f8ec;border-color:#1e7e34}.btn.fail:active{background:#fdecea;border-color:#c0392b}.timer{color:#888;font-size:.97em;font-weight:500;margin-top:8px}.staging-area{display:flex;flex-direction:column;gap:10px;max-height:600px;overflow-y:auto}.company-card{background:#fff;border:2.5px solid #bfc9d8;border-radius:7px;box-shadow:0 1px 4px #e3e6f0;margin:0 auto 0 0;max-width:200px;min-width:0;padding:8px 10px;transition:box-shadow .15s,border .15s}.company-card:hover{border-color:#1976d2;box-shadow:0 4px 16px #bfc9d8}.company-header{margin-bottom:4px}.company-name{color:#1976d2;font-size:.98em;font-weight:600}.progress-badge{background:#4caf50;border-radius:12px;color:#fff;font-size:.93em;font-weight:600;padding:2px 8px}.company-details,.company-stats{color:#555;font-size:.93em;margin-bottom:2px}.login-root{background:#f7f7f7;justify-content:center;min-height:100vh}.login-box,.login-root{align-items:center;display:flex}.login-box{background:#fff;border-radius:8px;box-shadow:0 2px 16px #00000014;flex-direction:column;min-width:320px;padding:32px 28px 24px}.login-box h2{color:#222;font-weight:700;margin-bottom:18px}@media (max-width:900px){.main-content,.stations-grid{grid-template-columns:1fr}.company-card{max-width:100%}}@media (max-width:600px){.header,.section{padding:12px 4px 10px}.company-card{padding:6px 2px}.station-card{padding:8px 2px}}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-light:#eff6ff;--success:#16a34a;--success-light:#dcfce7;--danger:#dc2626;--danger-light:#fee2e2;--warning:#f59e0b;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--touch-min:56px;--nav-height:72px;--header-height:72px;--font-base:16px;--font-label:14px;--radius-card:16px;--radius-btn:12px;--gap-section:16px}*{-webkit-tap-highlight-color:transparent;box-sizing:border-box}.proctor-app{background:#f9fafb;background:var(--gray-50);display:flex;flex-direction:column;min-height:100vh;padding-bottom:72px;padding-bottom:var(--nav-height)}.proctor-content{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto}.install-banner{align-items:center;background:#2563eb;background:var(--primary);color:#fff;display:flex;font-size:14px;font-size:var(--font-label);gap:10px;padding:10px 16px}.install-banner-icon{flex-shrink:0;font-size:20px}.install-banner-text{flex:1 1;line-height:1.3}.install-banner-actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.install-banner-btn{background:#fff;border:none;border-radius:12px;border-radius:var(--radius-btn);color:#2563eb;color:var(--primary);cursor:pointer;font-size:14px;font-size:var(--font-label);font-weight:600;min-height:36px;padding:6px 14px}.install-banner-dismiss{background:#0000;border:none;color:#fffc;cursor:pointer;font-size:18px;line-height:1;min-height:36px;padding:4px 8px}.connection-banner{align-items:center;background:#f59e0b;background:var(--warning);color:#fff;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:8px 16px}.bottom-nav{align-items:stretch;background:#fff;border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);bottom:0;display:flex;height:72px;height:var(--nav-height);justify-content:space-around;left:0;padding-bottom:env(safe-area-inset-bottom,0);position:fixed;right:0;z-index:100}.bottom-nav button{-webkit-tap-highlight-color:transparent;align-items:center;background:#0000;border:none;border-top:3px solid #0000;color:#6b7280;color:var(--gray-500);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:14px;font-size:var(--font-label);font-weight:500;justify-content:center;min-height:72px;min-height:var(--nav-height);padding:8px 4px;transition:color .15s,border-color .15s,background .15s}.bottom-nav button:active{background:#f3f4f6;background:var(--gray-100)}.bottom-nav button.active{background:#eff6ff;background:var(--primary-light);border-top-color:#2563eb;border-top-color:var(--primary);color:#2563eb;color:var(--primary)}.nav-item{align-items:center;border-radius:8px;color:#6b7280;color:var(--gray-500);display:flex;flex-direction:column;font-size:14px;font-size:var(--font-label);justify-content:center;min-height:56px;min-height:var(--touch-min);min-width:64px;padding:8px 16px;text-decoration:none;transition:background .2s}.nav-item:active{background:#f3f4f6;background:var(--gray-100)}.nav-item.active{color:#2563eb;color:var(--primary)}.nav-icon{font-size:28px;margin-bottom:3px}.nav-label{font-size:14px;font-size:var(--font-label)}.proctor-header{background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);justify-content:space-between;min-height:72px;min-height:var(--header-height);padding:12px 16px}.header-right,.proctor-header{align-items:center;display:flex;gap:8px}.header-right{flex-shrink:0}.header-left{align-items:center;display:flex;gap:12px}.header-left h1{color:#111827;color:var(--gray-900);font-size:22px;font-weight:700;margin:0}.session-company-name,.station-name{color:#4b5563;color:var(--gray-600);font-size:14px;font-size:var(--font-label)}.session-timer{border-radius:8px;color:#374151;color:var(--gray-700);font-family:monospace;font-size:18px;font-weight:700;min-height:44px;padding:8px 12px}.refresh-btn,.session-timer{align-items:center;background:#f3f4f6;background:var(--gray-100);display:flex}.refresh-btn{border:none;border-radius:50%;cursor:pointer;flex-shrink:0;font-size:20px;height:48px;justify-content:center;width:48px}.refresh-btn:disabled{opacity:.5}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:48px 24px;text-align:center}.empty-icon{font-size:64px;margin-bottom:16px}.empty-state h2{color:#1f2937;color:var(--gray-800);font-size:20px;margin:0 0 8px}.empty-state p{color:#4b5563;color:var(--gray-600);margin:0 0 24px}.empty-state button{background:#2563eb;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;min-height:48px;padding:12px 24px}.loading-spinner{align-items:center;color:#6b7280;color:var(--gray-500);display:flex;font-size:16px;height:200px;justify-content:center}.proctor-login{background:#0d0f14;display:flex;min-height:100vh}.login-hero{flex:1 1;min-height:220px;overflow:hidden;position:relative}.login-hero-img{display:block;height:100%;object-fit:cover;object-position:center top;width:100%}.login-hero-overlay{background:linear-gradient(90deg,#0000 60%,#0d0f14);inset:0;position:absolute}.login-panel{background:#0d0f14;display:flex;flex-direction:column;flex-shrink:0;justify-content:center;max-width:420px;padding:48px 36px;width:100%}.login-panel-inner{width:100%}.login-brand{display:flex;flex-direction:column;margin-bottom:40px}.login-brand-name{color:#fff;font-size:2.4rem;font-weight:800;letter-spacing:.12em;line-height:1}.login-brand-sub{color:#f97316;font-size:.75rem;font-weight:500;letter-spacing:.18em;margin-top:6px;text-transform:uppercase}.login-form{gap:20px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:8px}.login-field label{color:#9ca3af;font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.login-field input{background:#1c2030;border:1px solid #2d3348;border-radius:8px;color:#fff;font-size:1rem;min-height:50px;padding:14px 16px;transition:border-color .2s,box-shadow .2s}.login-field input::placeholder{color:#4b5563}.login-field input:focus{border-color:#f97316;box-shadow:0 0 0 3px #f9731626;outline:none}.login-error{background:#f871711a;border:1px solid #f8717133;color:#f87171;font-size:.875rem;padding:10px 14px}.login-submit{background:#f97316;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;letter-spacing:.06em;margin-top:4px;min-height:52px;padding:15px;transition:background .2s,transform .1s}.login-submit:hover:not(:disabled){background:#ea6c0a}.login-submit:active:not(:disabled){transform:scale(.98)}.login-submit:disabled{cursor:not-allowed;opacity:.6}@media (min-width:768px){.proctor-login{flex-direction:row}.login-hero{min-height:100vh}.login-panel{padding:64px 48px}}@media (max-width:767px){.proctor-login{flex-direction:column}.login-hero{flex:none;height:260px}.login-hero-overlay{background:linear-gradient(180deg,#0000 50%,#0d0f14)}.login-panel{max-width:100%;padding:32px 24px 48px}.login-brand-name{font-size:2rem}}.login-btn{background:#2563eb;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:8px;min-height:52px;padding:14px;width:100%}.login-btn:disabled{cursor:not-allowed;opacity:.7}.login-error{background:#fee2e2;background:var(--danger-light);border-radius:8px;color:#dc2626;color:var(--danger);font-size:14px;margin-bottom:16px;padding:12px}.station-select{padding-bottom:24px}.station-select-header{background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);padding:16px}.station-select-header h1{font-size:20px;margin:0 0 4px}.station-select-header p{color:#4b5563;color:var(--gray-600);font-size:14px;margin:0}.event-selector{padding:16px}.event-selector label{color:#374151;color:var(--gray-700);display:block;font-size:14px;font-weight:500;margin-bottom:8px}.event-selector select{background:#fff;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:8px;font-size:16px;min-height:48px;padding:12px 16px;width:100%}.station-list{display:flex;flex-direction:column;gap:12px;padding:0 16px}.station-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;cursor:pointer;display:flex;justify-content:space-between;min-height:72px;padding:16px;transition:transform .2s,box-shadow .2s}.station-card:active{transform:scale(.98)}.station-card.active{border:2px solid #2563eb;border:2px solid var(--primary)}.station-info{flex:1 1}.station-number{color:#111827;color:var(--gray-900);font-size:20px;font-weight:700}.station-card-name{color:#4b5563;color:var(--gray-600);font-size:14px;margin-top:2px}.station-meta{text-align:right}.skill-count{color:#4b5563;color:var(--gray-600);font-size:14px}.station-status{border-radius:4px;display:inline-block;font-size:12px;margin-top:4px;padding:4px 8px}.station-status.active{background:#dcfce7;background:var(--success-light);color:#16a34a;color:var(--success)}.station-status.available{background:#f3f4f6;background:var(--gray-100);color:#4b5563;color:var(--gray-600)}.station-view{min-height:calc(100vh - 72px);min-height:calc(100vh - var(--nav-height))}.current-session-banner{align-items:center;background:#2563eb;background:var(--primary);color:#fff;display:flex;justify-content:space-between;padding:16px}.session-company .company-name{font-size:18px;font-weight:600}.session-company .session-status{background:#fff3;border-radius:4px;font-size:12px;margin-left:8px;padding:4px 8px;text-transform:uppercase}.session-actions .btn-primary{background:#fff;border:none;border-radius:12px;border-radius:var(--radius-btn);color:#2563eb;color:var(--primary);cursor:pointer;font-size:16px;font-weight:700;min-height:56px;min-height:var(--touch-min);padding:10px 20px}.queue-section{padding:16px}.queue-section h2{color:#374151;color:var(--gray-700);font-size:16px;margin:0 0 12px}.empty-queue{color:#6b7280;color:var(--gray-500);padding:32px;text-align:center}.company-queue{display:flex;flex-direction:column;gap:8px}.queue-card{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;display:flex;justify-content:space-between;padding:12px 16px}.queue-info .company-name{color:#111827;color:var(--gray-900);font-weight:600}.queue-info .company-meta{color:#6b7280;color:var(--gray-500);font-size:13px}.queue-status{background:#f3f4f6;background:var(--gray-100);border-radius:4px;color:#4b5563;color:var(--gray-600);font-size:12px;padding:4px 8px}.queue-status.checked_in{background:#dcfce7;background:var(--success-light);color:#16a34a;color:var(--success)}.testing-section{padding:16px}.testing-section h2{color:#374151;color:var(--gray-700);font-size:16px;margin:0 0 12px}.candidate-list{display:flex;flex-direction:column;gap:12px}.queue-candidates{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}.candidate-chip{background:#fff3;border:1px solid #fff6;border-radius:16px;font-size:.85rem;font-weight:500;padding:3px 10px}.candidate-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:16px}.candidate-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.candidate-name{color:#111827;color:var(--gray-900);font-size:16px;font-weight:600}.candidate-id{color:#6b7280;color:var(--gray-500);font-family:monospace;font-size:13px}.candidate-skills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.skill-chip{align-items:center;background:#f3f4f6;background:var(--gray-100);border-radius:20px;display:flex;font-size:14px;gap:6px;padding:8px 12px}.skill-chip.in-progress{animation:pulse 2s infinite;background:#fef3c7}.skill-chip.pass{background:#dcfce7;background:var(--success-light)}.skill-chip.fail{background:#fee2e2;background:var(--danger-light)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.skill-action{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:14px;height:28px;justify-content:center;width:28px}.skill-action.start{background:#2563eb;background:var(--primary);color:#fff}.skill-action.checklist{background:#e5e7eb;background:var(--gray-200)}.skill-action.pass{background:#16a34a;background:var(--success);color:#fff}.skill-action.fail{background:#dc2626;background:var(--danger);color:#fff}.add-skill-select{background:#0000;border:2px dashed #d1d5db;border:2px dashed var(--gray-300);border-radius:8px;color:#4b5563;color:var(--gray-600);cursor:pointer;font-size:14px;min-height:44px;padding:10px;width:100%}.session-actions-bar{background:#fff;border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);bottom:72px;bottom:var(--nav-height);display:flex;flex-direction:column;gap:10px;padding:12px 16px;position:-webkit-sticky;position:sticky;z-index:10}.session-progress-summary{display:flex;font-size:16px;font-size:var(--font-base);font-weight:500;gap:16px;justify-content:center}.summary-done{color:#16a34a;color:var(--success)}.summary-pending{color:#6b7280;color:var(--gray-500)}.session-actions-bar-buttons{display:flex;gap:10px}.session-actions-bar-buttons button{border:none;border-radius:12px;border-radius:var(--radius-btn);cursor:pointer;flex:1 1;font-size:16px;font-size:var(--font-base);font-weight:700;min-height:56px;min-height:var(--touch-min);padding:14px}.results-summary{display:flex;gap:12px;padding:16px}.summary-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;flex:1 1;padding:16px;text-align:center}.summary-number{font-size:32px;font-weight:700}.summary-label{color:#4b5563;color:var(--gray-600);font-size:12px;margin-top:4px;text-transform:uppercase}.summary-card.pass .summary-number{color:#16a34a;color:var(--success)}.summary-card.fail .summary-number{color:#dc2626;color:var(--danger)}.results-section{padding:16px}.results-section h2{color:#374151;color:var(--gray-700);font-size:16px;margin:0 0 12px}.results-list{display:flex;flex-direction:column;gap:8px}.result-item{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;display:flex;gap:12px;padding:12px 16px}.result-icon{font-size:20px}.result-info{flex:1 1}.result-skill{color:#111827;color:var(--gray-900);font-weight:600}.result-candidate,.result-time{color:#6b7280;color:var(--gray-500);font-size:13px}.skill-checklist{background:#f9fafb;background:var(--gray-50);display:flex;flex-direction:column;min-height:100vh}.checklist-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);display:flex;gap:12px;padding:12px 16px}.back-btn{background:none;border:none;color:#2563eb;color:var(--primary);cursor:pointer;font-size:16px;min-height:44px;min-width:44px;padding:8px}.skill-info{flex:1 1}.skill-info h1{color:#111827;color:var(--gray-900);font-size:18px;margin:0}.skill-info .candidate-name{color:#4b5563;color:var(--gray-600);font-size:13px}.timer{background:#f3f4f6;background:var(--gray-100);border-radius:8px;color:#374151;color:var(--gray-700);font-family:monospace;font-size:20px;font-weight:700;padding:8px 12px}.progress-bar{background:#e5e7eb;background:var(--gray-200);display:flex;height:8px}.progress-pass{background:#16a34a;background:var(--success);transition:width .3s}.progress-fail{background:#dc2626;background:var(--danger);transition:width .3s}.progress-labels{background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);display:flex;font-size:13px;justify-content:space-between;padding:8px 16px}.pass-label{color:#16a34a;color:var(--success);font-weight:600}.fail-label{color:#dc2626;color:var(--danger);font-weight:600}.swipe-hint,.unmarked-label{color:#6b7280;color:var(--gray-500)}.swipe-hint{background:#f3f4f6;background:var(--gray-100);display:flex;font-size:12px;justify-content:space-between;padding:8px 16px}.checklist-items{flex:1 1;overflow-y:auto;padding-bottom:100px}.checklist-category{margin-bottom:8px}.category-header{background:#f3f4f6;background:var(--gray-100);color:#4b5563;color:var(--gray-600);font-size:13px;font-weight:600;margin:0;padding:12px 16px 8px;text-transform:uppercase}.checklist-item.passed{background:#dcfce7;background:var(--success-light)}.checklist-item.failed{background:#fee2e2;background:var(--danger-light)}.checklist-item.swiping-pass{background:#dcfce7;background:var(--success-light)}.checklist-item.swiping-fail{background:#fee2e2;background:var(--danger-light)}.item-content{flex:1 1;padding-right:12px}.item-text{color:#111827;color:var(--gray-900);font-size:15px;line-height:1.4}.critical-badge{background:#f59e0b;background:var(--warning);border-radius:4px;color:#fff;display:inline-block;font-size:11px;font-weight:600;margin-top:4px;padding:2px 6px;text-transform:uppercase}.item-actions{display:flex;gap:8px}.action-btn{border-radius:50%;font-size:18px;height:44px;transition:all .2s;width:44px}.action-btn.clear{border-color:#9ca3af;border-color:var(--gray-400);font-size:14px;height:36px;width:36px}.complete-actions{bottom:0;box-shadow:0 -2px 10px #0000001a;left:0;padding:16px;position:fixed;right:0}.complete-btn{font-size:16px;font-weight:600;min-height:56px;padding:16px}.complete-btn:disabled{opacity:.7}.proctor-settings{padding:16px}.proctor-settings h1{font-size:24px;margin:0 0 24px}.settings-section{background:#fff;border-radius:12px;margin-bottom:16px;overflow:hidden}.settings-section h2{background:#f9fafb;background:var(--gray-50);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);color:#4b5563;color:var(--gray-600);font-size:14px;font-weight:600;margin:0;padding:16px;text-transform:uppercase}.settings-item{align-items:center;border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;padding:16px}.settings-item:last-child{border-bottom:none}.settings-label{color:#111827;color:var(--gray-900);font-size:15px}.settings-value{color:#6b7280;color:var(--gray-500);font-size:15px}.logout-btn{background:#dc2626;background:var(--danger);color:#fff;font-weight:700;margin-top:24px;padding:16px;width:100%}.btn,.logout-btn{border:none;border-radius:12px;border-radius:var(--radius-btn);font-size:16px;font-size:var(--font-base);min-height:56px;min-height:var(--touch-min)}.btn{-webkit-tap-highlight-color:transparent;align-items:center;display:inline-flex;font-weight:600;justify-content:center;transition:opacity .15s,transform .1s}.btn:active{transform:scale(.97)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#2563eb;background:var(--primary)}.btn-primary:hover:not(:disabled){background:#1d4ed8;background:var(--primary-dark)}.btn-secondary{background:#e5e7eb;background:var(--gray-200);color:#374151;color:var(--gray-700)}.btn-success{background:#16a34a;background:var(--success);color:#fff}.btn-danger{background:#dc2626;background:var(--danger)}.btn-block{padding:0 20px;width:100%}.primary-button{background:#2563eb;background:var(--primary);border:none;border-radius:12px;border-radius:var(--radius-btn);color:#fff;cursor:pointer;font-size:18px;font-weight:700;margin-top:4px;min-height:60px;padding:18px;transition:background .15s;width:100%}.primary-button:hover:not(:disabled){background:#1d4ed8;background:var(--primary-dark)}.primary-button:disabled{cursor:not-allowed;opacity:.6}.secondary-button{background:#0000;border:2px solid #2563eb;border:2px solid var(--primary);border-radius:12px;border-radius:var(--radius-btn);font-size:16px;margin-top:8px;min-height:56px;min-height:var(--touch-min);padding:14px;width:100%}.secondary-button,.text-button{color:#2563eb;color:var(--primary);cursor:pointer;font-weight:600}.text-button{background:none;border:none;font-size:15px;min-height:44px;padding:10px 4px}.settings-hint{color:#6b7280;color:var(--gray-500);font-size:14px;font-size:var(--font-label);margin:0 0 12px}.settings-button{background:#f3f4f6;background:var(--gray-100);color:#1f2937;color:var(--gray-800);font-weight:600;margin-top:8px;text-align:left}.logout-button,.settings-button{border:none;border-radius:12px;border-radius:var(--radius-btn);cursor:pointer;font-size:16px;font-size:var(--font-base);min-height:56px;min-height:var(--touch-min);padding:16px;width:100%}.logout-button{background:#dc2626;background:var(--danger);color:#fff;font-weight:700;margin-top:24px}.btn-primary.large{border-radius:12px;border-radius:var(--radius-btn);font-size:18px;font-weight:700;min-height:64px;padding:18px;width:100%}.btn-secondary.small{border-radius:8px;font-size:14px;min-height:44px;padding:10px 16px}.set-choice-btn{-webkit-tap-highlight-color:transparent;align-items:flex-start;background:#fff;border:2px solid #e5e7eb;border:2px solid var(--gray-200);border-radius:12px;border-radius:var(--radius-btn);cursor:pointer;display:flex;flex-direction:column;font-size:16px;font-size:var(--font-base);gap:4px;margin-bottom:10px;min-height:72px;padding:16px 18px;text-align:left;transition:border-color .15s,background .15s;width:100%}.set-choice-btn:active{transform:scale(.98)}.set-choice-btn.selected{background:#eff6ff;background:var(--primary-light);border-color:#2563eb;border-color:var(--primary)}.set-choice-name{color:#111827;color:var(--gray-900);font-size:16px;font-size:var(--font-base);font-weight:700}.set-skills-preview{color:#6b7280;color:var(--gray-500);font-size:14px;font-size:var(--font-label)}.touch-select-trigger{-webkit-tap-highlight-color:transparent;align-items:center;background:#fff;border:1.5px solid #d1d5db;border:1.5px solid var(--gray-300);border-radius:12px;border-radius:var(--radius-btn);color:#111827;color:var(--gray-900);cursor:pointer;display:flex;font-size:16px;font-size:var(--font-base);justify-content:space-between;min-height:56px;min-height:var(--touch-min);padding:14px 16px;text-align:left;width:100%}.touch-select-trigger.open{border-color:#2563eb;border-color:var(--primary)}.touch-select-trigger.disabled{cursor:not-allowed;opacity:.5}.touch-select-label.placeholder{color:#9ca3af;color:var(--gray-400)}.touch-select-chevron{color:#6b7280;color:var(--gray-500);flex-shrink:0;font-size:18px}.touch-select-overlay{align-items:flex-end;background:#00000073;display:flex;inset:0;position:fixed;z-index:500}.touch-select-sheet{-webkit-overflow-scrolling:touch;background:#fff;border-radius:20px 20px 0 0;max-height:70vh;overflow-y:auto;padding:12px 0 env(safe-area-inset-bottom,16px);width:100%}.touch-select-sheet-handle{background:#d1d5db;background:var(--gray-300);border-radius:2px;height:4px;margin:0 auto 16px;width:40px}.touch-select-option{-webkit-tap-highlight-color:transparent;align-items:center;background:#0000;border:none;border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100);cursor:pointer;display:flex;font-size:16px;font-size:var(--font-base);justify-content:space-between;min-height:56px;min-height:var(--touch-min);padding:16px 20px;text-align:left;width:100%}.touch-select-option:active{background:#f9fafb;background:var(--gray-50)}.touch-select-option.selected{background:#eff6ff;background:var(--primary-light);color:#2563eb;color:var(--primary);font-weight:600}.touch-select-option-label{flex:1 1}.touch-select-option-sublabel{color:#6b7280;color:var(--gray-500);font-size:14px;font-size:var(--font-label);margin-right:8px}.touch-select-check{color:#2563eb;color:var(--primary);font-weight:700}.inline-confirm{background:#fee2e2;background:var(--danger-light);border:1.5px solid #dc2626;border:1.5px solid var(--danger);border-radius:16px;border-radius:var(--radius-card);margin:12px 0;padding:16px}.inline-confirm p{color:#dc2626;color:var(--danger);font-size:16px;font-size:var(--font-base);font-weight:600;margin:0 0 12px}.inline-confirm-actions{display:flex;gap:10px}.inline-confirm-actions button{border:none;border-radius:12px;border-radius:var(--radius-btn);flex:1 1;font-weight:700}.candidate-toggle-btn,.inline-confirm-actions button{cursor:pointer;font-size:16px;font-size:var(--font-base);min-height:56px;min-height:var(--touch-min)}.candidate-toggle-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:#fff;border:2px solid #e5e7eb;border:2px solid var(--gray-200);border-radius:12px;border-radius:var(--radius-btn);display:flex;gap:10px;margin-bottom:8px;padding:13px 16px;width:100%}.candidate-toggle-btn.selected{background:#eff6ff;background:var(--primary-light);border-color:#2563eb;border-color:var(--primary);color:#2563eb;color:var(--primary);font-weight:600}.checklist-card{background:#fff;border-radius:16px;border-radius:var(--radius-card);box-shadow:0 1px 4px #00000014;margin:0 0 10px;overflow:hidden}.checklist-card.completed.pass{border-left:5px solid #16a34a;border-left:5px solid var(--success)}.checklist-card.completed.fail{border-left:5px solid #dc2626;border-left:5px solid var(--danger)}.checklist-card-header{align-items:center;cursor:pointer;display:flex;gap:10px;min-height:68px;padding:0 16px;-webkit-user-select:none;user-select:none}.card-header-left{display:flex;flex:1 1;flex-direction:column;gap:3px;justify-content:center;min-height:68px;padding:12px 0}.card-skill-name{color:#111827;color:var(--gray-900);font-size:16px;font-size:var(--font-base);font-weight:700}.card-candidate{color:#6b7280;color:var(--gray-500);font-size:14px;font-size:var(--font-label)}.card-header-right{align-items:center;display:flex;flex-shrink:0;gap:8px}.card-progress{color:#6b7280;color:var(--gray-500);font-size:14px;font-size:var(--font-label);font-weight:600}.approve-all-btn{-webkit-tap-highlight-color:transparent;background:#f3f4f6;background:var(--gray-100);border:1.5px solid #d1d5db;border:1.5px solid var(--gray-300);border-radius:10px;color:#374151;color:var(--gray-700);cursor:pointer;flex-shrink:0;font-size:15px;font-weight:700;min-height:48px;min-width:72px;padding:0 14px;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.approve-all-btn.active{background:#16a34a;background:var(--success);border-color:#16a34a;border-color:var(--success);color:#fff}.approve-all-btn:disabled{cursor:not-allowed;opacity:.5}.expand-toggle-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:none;border:none;border-radius:8px;color:#9ca3af;color:var(--gray-400);cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:44px;justify-content:center;width:44px}.expand-toggle-btn:active{background:#f3f4f6;background:var(--gray-100)}.result-badge{border-radius:6px;font-size:12px;font-weight:700;padding:3px 8px}.result-badge.fail{background:#fee2e2;background:var(--danger-light);color:#dc2626;color:var(--danger)}.checklist-item{border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100);justify-content:space-between;min-height:64px;padding:14px 16px;transition:transform .1s,opacity .1s,background .2s}.action-btn,.checklist-item{align-items:center;background:#fff;display:flex}.action-btn{-webkit-tap-highlight-color:transparent;border:2px solid #d1d5db;border:2px solid var(--gray-300);border-radius:12px;cursor:pointer;font-size:20px;font-weight:700;height:52px;justify-content:center;transition:all .15s;width:52px}.action-btn.pass{border-color:#16a34a;border-color:var(--success);color:#16a34a;color:var(--success)}.action-btn.pass.active{background:#16a34a;background:var(--success);color:#fff}.action-btn.fail{border-color:#dc2626;border-color:var(--danger);color:#dc2626;color:var(--danger)}.action-btn.fail.active{background:#dc2626;background:var(--danger);color:#fff}.action-btn.clear{border-color:#d1d5db;border-color:var(--gray-300);border-radius:10px;color:#9ca3af;color:var(--gray-400);font-size:16px;height:44px;width:44px}.complete-actions{background:#fff;border-top:1px solid #e5e7eb;border-top:1px solid var(--gray-200);box-shadow:0 -2px 10px #00000014;display:flex;gap:12px;padding:14px 16px}.complete-btn{-webkit-tap-highlight-color:transparent;border:none;border-radius:12px;border-radius:var(--radius-btn);cursor:pointer;flex:1 1;font-size:18px;font-weight:700;min-height:64px;padding:18px}.complete-btn.pass{background:#16a34a;background:var(--success);color:#fff}.complete-btn.fail{background:#dc2626;background:var(--danger);color:#fff}.complete-btn:disabled{cursor:not-allowed;opacity:.6}.state-display-section{padding:16px;padding:var(--gap-section)}.state-card{background:#fff;border-radius:16px;border-radius:var(--radius-card);box-shadow:0 2px 8px #00000014;padding:20px}.state-badge{background:#f3f4f6;background:var(--gray-100);border-radius:6px;color:#4b5563;color:var(--gray-600);display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;margin-bottom:10px;padding:4px 10px;text-transform:uppercase}.state-badge.active{background:#dcfce7;background:var(--success-light);color:#16a34a;color:var(--success)}.skill-selection-block{margin-top:16px}.skill-selection-block h3{color:#374151;color:var(--gray-700);font-size:15px;font-weight:700;margin:0 0 12px}.skill-group-block{margin-bottom:16px}.skill-group-header{margin-bottom:8px}.skill-group-name{color:#4b5563;color:var(--gray-600);font-size:14px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.set-confirmed{background:#f9fafb;background:var(--gray-50);border-radius:10px;padding:12px 14px}.set-auto-label{color:#6b7280;color:var(--gray-500);font-size:13px;margin-bottom:8px}.skill-confirmed-row{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);display:flex;font-size:15px;justify-content:space-between;min-height:44px;padding:8px 0}.skill-confirmed-row:last-child{border-bottom:none}.skill-mode-badge{background:#e5e7eb;background:var(--gray-200);border-radius:4px;color:#4b5563;color:var(--gray-600);font-size:12px;padding:2px 8px}.skill-assignment-panel{background:#f9fafb;background:var(--gray-50);border-radius:10px;margin-top:12px;padding:14px}.skill-assignment-panel h4{color:#374151;color:var(--gray-700);font-size:14px;font-weight:700;margin:0 0 10px}.assignment-group{margin-bottom:12px}.assignment-group-label{color:#4b5563;color:var(--gray-600);font-size:13px;font-weight:600;letter-spacing:.04em;margin-bottom:8px;text-transform:uppercase}.individual-skill-row{margin-bottom:12px}.individual-skill-name{color:#1f2937;color:var(--gray-800);display:block;font-size:15px;font-weight:600;margin-bottom:6px}.session-actions{margin-top:16px}.candidate-section{margin:0 0 10px}.candidate-section-header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);border-radius:8px 8px 0 0;display:flex;justify-content:space-between;min-height:48px;padding:10px 16px}.candidate-section-header,.station-info-box{background:#f9fafb;background:var(--gray-50)}.station-info-box{border:1.5px solid #e5e7eb;border:1.5px solid var(--gray-200);border-radius:12px;border-radius:var(--radius-btn);margin:12px 0;padding:14px 16px}.station-info-box .label{color:#6b7280;color:var(--gray-500);font-size:14px;font-size:var(--font-label);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.station-info-box .value{color:#111827;color:var(--gray-900);font-size:18px;font-weight:700;margin-top:4px}.pin-input{background:#fff;border:2px solid #d1d5db;border:2px solid var(--gray-300);border-radius:12px;border-radius:var(--radius-btn);font-family:monospace;font-size:32px;font-weight:700;letter-spacing:.5em;min-height:72px;outline:none;padding:18px;text-align:center;transition:border-color .2s;width:100%}.pin-input:focus{border-color:#2563eb;border-color:var(--primary)}.instruction{color:#4b5563;color:var(--gray-600);font-size:15px;line-height:1.5;margin:0 0 16px}.error-message{background:#fee2e2;background:var(--danger-light);border:1px solid #dc2626;border:1px solid var(--danger);border-radius:8px;color:#dc2626;color:var(--danger);font-size:15px;margin:10px 0;padding:12px 14px}.qr-fallback{align-items:center;color:#6b7280;color:var(--gray-500);display:flex;flex-wrap:wrap;font-size:14px;font-size:var(--font-label);gap:8px;justify-content:center;margin-top:16px}.briefing-text-block{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;margin:12px 0;padding:14px 16px}.briefing-text-block h3{color:#92400e;font-size:14px;font-weight:700;letter-spacing:.05em;margin:0 0 8px;text-transform:uppercase}.briefing-text-block p{color:#78350f;font-size:15px;line-height:1.6;margin:0}.toggle-switch{height:32px;position:relative;width:52px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#d1d5db;background-color:var(--gray-300);border-radius:34px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:"";height:24px;left:4px;position:absolute;transition:.3s;width:24px}input:checked+.toggle-slider{background-color:#2563eb;background-color:var(--primary)}input:checked+.toggle-slider:before{transform:translateX(20px)}@media (max-width:380px){.proctor-header .header-left h1{font-size:20px}.skill-chip{font-size:13px;padding:6px 10px}.action-btn{height:40px;width:40px}}@media (max-height:500px) and (orientation:landscape){.bottom-nav{height:48px}.proctor-app{padding-bottom:48px}.complete-actions{padding:8px 16px}.complete-btn{min-height:44px;padding:10px}}@media (min-width:768px){.complete-actions,.proctor-app,.session-actions-bar{max-width:100%}.candidate-list{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}.admin-landing-container{font-family:Inter,system-ui,-apple-system,sans-serif;margin:0 auto;max-width:1200px;padding:2rem}.admin-header{align-items:center;border-bottom:2px solid #eee;display:flex;justify-content:space-between;margin-bottom:3rem;padding-bottom:1rem}.admin-header h1{color:#1a202c;font-size:2rem;margin:0}.admin-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.admin-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;padding:2rem;transition:transform .2s}.admin-card:hover{box-shadow:0 10px 15px -3px #0000001a;transform:translateY(-2px)}.admin-card h2{color:#2d3748;font-size:1.5rem;margin-top:0}.admin-card p{color:#718096;margin-bottom:1.5rem}.card-actions{display:flex;flex-direction:column;gap:.75rem}.btn{border-radius:6px;cursor:pointer;display:inline-block;font-weight:500;padding:.75rem 1rem;text-align:center;text-decoration:none;transition:background-color .2s}.btn-primary{background-color:#3182ce;color:#fff}.btn-primary:hover{background-color:#2c5282}.btn-secondary{background-color:#edf2f7;color:#2d3748}.btn-secondary:hover{background-color:#e2e8f0}.logout-btn{background:none;border:1px solid #e2e8f0;border-radius:4px;color:#e53e3e;cursor:pointer;padding:.5rem 1rem}.logout-btn:hover{background-color:#fff5f5}.admin-hero-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;margin-bottom:2rem;padding:2rem}.hero-content{flex:1 1;min-width:250px}.hero-content h2{color:#2d3748;font-size:1.5rem;margin:0 0 .5rem}.hero-content p{color:#718096;margin:0 0 1rem}.status-badge{border-radius:9999px;display:inline-block;font-size:.875rem;font-weight:600;padding:.25rem .75rem}.status-badge.active{background-color:#f0fff4;border:1px solid #c6f6d5;color:#38a169}.status-badge.inactive{background-color:#edf2f7;border:1px solid #e2e8f0;color:#718096}.status-badge.loading{background-color:#ebf8ff;border:1px solid #bee3f8;color:#4299e1}.hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.btn-danger{background-color:#e53e3e;color:#fff}.btn-danger:hover{background-color:#c53030}.active-tests-list{display:flex;flex-direction:column;gap:.75rem;width:100%}.active-test-row{align-items:center;background-color:#f8fafc;border:1px solid #edf2f7;border-radius:6px;display:flex;justify-content:space-between;padding:.75rem 1rem;transition:background-color .2s}.active-test-row:hover{background-color:#f1f5f9}.test-info{display:flex;flex-direction:column}.test-name{color:#2d3748;font-size:1rem;font-weight:600}.test-date{color:#718096;font-size:.85rem}.test-actions{gap:.5rem}.modal-overlay,.test-actions{align-items:center;display:flex}.modal-overlay{background-color:#00000080;bottom:0;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.wizard-modal{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;max-height:90vh;max-width:500px;overflow-y:auto;padding:2rem;position:relative;width:100%}.wizard-modal h3{border-bottom:2px solid #edf2f7;color:#2d3748;margin-bottom:1.5rem;margin-top:0;padding-bottom:.5rem}.modal-actions{border-top:1px solid #edf2f7;display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1rem}.form-group{margin-bottom:1rem}.form-group label{color:#4a5568;display:block;font-weight:500;margin-bottom:.5rem}.form-input{border:1px solid #cbd5e0;border-radius:4px;font-size:1rem;padding:.5rem;width:100%}.form-input:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.edit-event-container{margin:0 auto;max-width:1200px;padding:2rem}.edit-event-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.edit-event-header h2{color:#2d3748;font-size:1.8rem;margin:0}.edit-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr}.edit-card{background:#fff;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;padding:1.5rem}.edit-card h3{border-bottom:2px solid #edf2f7;color:#2d3748;margin-bottom:.5rem;margin-top:0;padding-bottom:.75rem}.add-form{align-items:center;display:flex;gap:.5rem}.add-form.multi{background:#f7fafc;border:1px dashed #cbd5e0;border-radius:6px;flex-wrap:wrap;padding:1rem}.input{border:1px solid #cbd5e0;border-radius:4px;flex:1 1;font-size:.95rem;padding:.6rem}.input:focus{border-color:#3182ce;box-shadow:0 0 0 1px #3182ce;outline:none}.input-sm{font-size:.85rem;padding:.4rem .5rem}.item-list{list-style:none;margin:0;padding:0}.item-row{align-items:center;background:#f8fafc;border-left:4px solid #4a5568;border-radius:6px;box-shadow:0 1px 3px #0000000d;display:flex;justify-content:space-between;margin-bottom:.75rem;padding:1rem}.company-list{margin-top:1.5rem}.company-block{background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 1px 2px #0000000d;margin-bottom:1.5rem;padding:1rem}.company-header{align-items:center;border-bottom:1px solid #edf2f7;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem}.student-list{list-style:none;margin:0 0 1rem;padding:0}.student-row{border-bottom:1px solid #edf2f7;color:#4a5568;display:flex;font-size:.95rem;justify-content:space-between;padding:.6rem .5rem}.student-row:last-child{border-bottom:none}.add-student-form{background:#ebf8ff;border:1px solid #bee3f8;border-radius:6px;display:flex;gap:.5rem;margin-top:.75rem;padding:.75rem}.text-muted{color:#718096;font-size:.9rem}.text-danger{color:#e53e3e}.mt-2{margin-top:.5rem}
/*# sourceMappingURL=main.32c553c6.css.map*/