:root{--bg: #f5f6fa;--surface: #ffffff;--surface-hover: #f9fafc;--border: #e5e7ee;--border-strong: #d3d7e0;--text: #1a1d29;--text-muted: #6b7280;--text-subtle: #9aa1ae;--primary: #4f46e5;--primary-dark: #4338ca;--primary-light: #eef1ff;--primary-contrast: #ffffff;--danger: #dc2626;--danger-light: #fef2f2;--danger-border: #fecdca;--success: #16a34a;--success-light: #f0fdf4;--success-border: #bbf0cf;--warning: #d97706;--warning-light: #fffbeb;--warning-border: #fde8a8;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 4px 14px rgba(16, 24, 40, .08);--shadow-lg: 0 16px 40px rgba(16, 24, 40, .14);--ease: cubic-bezier(.4, 0, .2, 1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark);text-decoration:underline}button{font-family:inherit;cursor:pointer}::selection{background:var(--primary-light);color:var(--primary-dark)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.page-header h1{font-size:23px;font-weight:700;letter-spacing:-.01em;margin:0}.page-header p{color:var(--text-muted);margin:4px 0 0;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card+.card{margin-top:var(--space-4)}table{width:100%;border-collapse:collapse;font-size:13.5px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--border)}th{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700}tr{transition:background .1s var(--ease)}tr:hover td{background:var(--surface-hover)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:13px;font-weight:600;transition:background .12s var(--ease),border-color .12s var(--ease),box-shadow .12s var(--ease),transform .06s var(--ease)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--primary-dark);color:#fff;text-decoration:none;box-shadow:var(--shadow-md)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--text);text-decoration:none}.btn-danger{background:var(--danger-light);color:var(--danger);border-color:var(--danger-border)}.btn-danger:hover{background:#fde3e2;color:var(--danger);text-decoration:none}.btn-sm{padding:5px 11px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}.form-group .hint{font-size:12px;color:var(--text-muted);margin-top:4px}input,select,textarea{width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;background:#fff;color:var(--text);transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}textarea{resize:vertical;min-height:90px}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row input{width:auto}.badge{display:inline-block;padding:3px 10px;border-radius:var(--radius-full);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border:1px solid transparent}.badge-applied{background:#eef1ff;color:#4338ca;border-color:#dde1fb}.badge-screening{background:var(--warning-light);color:#92400e;border-color:var(--warning-border)}.badge-interview{background:#eaf2ff;color:#1d4ed8;border-color:#d3e4fd}.badge-offer{background:#f4effe;color:#6d28d9;border-color:#e4d9fb}.badge-hired{background:var(--success-light);color:#15803d;border-color:var(--success-border)}.badge-rejected{background:var(--danger-light);color:#b91c1c;border-color:var(--danger-border)}.badge-draft{background:var(--surface-hover);color:var(--text-muted);border-color:var(--border)}.badge-sent{background:#eaf2ff;color:#1d4ed8;border-color:#d3e4fd}.badge-signed{background:#f4effe;color:#6d28d9;border-color:#e4d9fb}.badge-approved{background:var(--success-light);color:#15803d;border-color:var(--success-border)}.timeline{position:relative;margin-top:var(--space-3)}.timeline-item{position:relative;padding:0 0 var(--space-5) 26px}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:4px;top:14px;bottom:-4px;width:2px;background:linear-gradient(var(--border),var(--border) 70%,transparent)}.timeline-item:last-child:before{display:none}.timeline-dot{position:absolute;left:0;top:2px;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 3px var(--surface),0 0 0 4px currentColor}.timeline-dot.dot-applied{color:#4338ca;background:#4338ca}.timeline-dot.dot-screening{color:#92400e;background:#92400e}.timeline-dot.dot-interview{color:#1d4ed8;background:#1d4ed8}.timeline-dot.dot-offer{color:#6d28d9;background:#6d28d9}.timeline-dot.dot-hired{color:#15803d;background:#15803d}.timeline-dot.dot-rejected{color:#b91c1c;background:#b91c1c}.timeline-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timeline-meta{font-size:12px;color:var(--text-subtle);margin-top:3px}.timeline-interview-panel{margin-top:10px;padding:10px 12px;background:var(--primary-light);border:1px solid #d3e4fd;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.timeline-interview-panel .interview-info{font-size:12.5px;color:var(--primary-dark);line-height:1.5}.timeline-interview-panel .interview-info b{font-weight:700}.timeline-interview-panel .interview-info a{font-weight:600}.alert{padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:var(--space-4);border:1px solid transparent}.alert-error{background:var(--danger-light);color:var(--danger);border-color:var(--danger-border)}.alert-success{background:var(--success-light);color:var(--success);border-color:var(--success-border)}.alert-info{background:var(--primary-light);color:var(--primary-dark);border-color:#dde1fb}.empty-state{color:var(--text-muted);font-size:13px;padding:var(--space-6) 0;text-align:center}.page-loading{padding:40px;text-align:center;color:var(--text-muted)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 15% 15%,var(--primary-light) 0%,transparent 45%),radial-gradient(circle at 85% 85%,var(--primary-light) 0%,transparent 45%),var(--bg);padding:var(--space-4)}.login-shell{width:100%;max-width:800px;display:grid;grid-template-columns:1fr 1fr;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.login-brand-panel{background:linear-gradient(160deg,var(--primary),var(--primary-dark));color:#fff;padding:var(--space-8);display:flex;flex-direction:column;justify-content:center}.login-brand-mark{display:inline-flex;width:fit-content;padding:4px 12px;border-radius:var(--radius-full);background:#ffffff26;font-weight:800;font-size:12px;letter-spacing:.04em;margin-bottom:var(--space-5)}.login-brand-panel h2{font-size:21px;font-weight:800;letter-spacing:-.01em;margin:0 0 var(--space-3);line-height:1.3}.login-brand-panel p{font-size:13px;line-height:1.6;opacity:.9;margin:0}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;justify-content:center}.login-shell .login-card{max-width:none;border:none;box-shadow:none;border-radius:0}.login-card h1{font-size:21px;font-weight:800;letter-spacing:-.01em;margin:0 0 4px}.login-card p.subtitle{color:var(--text-muted);font-size:13px;margin:0 0 var(--space-6)}.login-toggle{text-align:center;margin-top:var(--space-4);font-size:13px}@media (max-width: 720px){.login-shell{grid-template-columns:1fr;max-width:420px}.login-brand-panel{display:none}}.stage-bar-applied{background:#4338ca}.stage-bar-screening{background:#d97706}.stage-bar-interview{background:#1d4ed8}.stage-bar-offer{background:#6d28d9}.stage-bar-hired{background:#16a34a}.stage-bar-rejected{background:#dc2626}.field-row{display:flex;gap:12px}.field-row>*{flex:1}.portal-shell{min-height:100vh;display:flex;flex-direction:column}.portal-header{background:var(--surface);border-bottom:1px solid var(--border);padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between}.portal-brand{font-weight:800;font-size:17px;letter-spacing:-.01em;background:linear-gradient(135deg,var(--primary),var(--primary-dark));-webkit-background-clip:text;background-clip:text;color:transparent}.portal-brand span{color:var(--text-muted);-webkit-text-fill-color:var(--text-muted);font-weight:600;font-size:13px;margin-left:6px}.portal-nav{display:flex;gap:var(--space-2)}.portal-nav a{padding:7px 13px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;color:var(--text-muted)}.portal-nav a:hover{background:var(--surface-hover);text-decoration:none}.portal-nav a.active{background:var(--primary-light);color:var(--primary-dark)}.portal-main{flex:1;padding:var(--space-8) var(--space-6);max-width:760px;width:100%;margin:0 auto}.stepper{display:flex;align-items:flex-start;margin:var(--space-5) 0}.stepper-step{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}.stepper-dot{width:26px;height:26px;border-radius:50%;background:var(--border);color:var(--text-subtle);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;border:3px solid var(--surface);box-shadow:0 0 0 1px var(--border);z-index:1}.stepper-step.done .stepper-dot{background:var(--success);color:#fff;box-shadow:0 0 0 1px var(--success)}.stepper-step.current .stepper-dot{background:var(--primary);color:#fff;box-shadow:0 0 0 1px var(--primary)}.stepper-step.rejected .stepper-dot{background:var(--danger);color:#fff;box-shadow:0 0 0 1px var(--danger)}.stepper-line{position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--border);z-index:0}.stepper-step:first-child .stepper-line{display:none}.stepper-step.done .stepper-line,.stepper-step.current .stepper-line{background:var(--success)}.stepper-label{font-size:11.5px;font-weight:700;margin-top:8px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.stepper-step.current .stepper-label,.stepper-step.done .stepper-label{color:var(--text)}.otp-code-input{font-size:26px;letter-spacing:.5em;text-align:center;font-weight:700;padding:12px 8px 12px 16px}.signature-pad-wrap{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--bg)}.signature-pad-canvas{width:100%;height:160px;display:block;touch-action:none;cursor:crosshair}.candidate-picker-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-2);background:var(--surface)}
