:root{--bg-primary: #0a0e17;--bg-secondary: #111827;--bg-card: #1a2235;--bg-card-hover: #1f2a40;--bg-input: #0f1629;--border: #2a3650;--border-focus: #3b82f6;--text-primary: #e8ecf4;--text-secondary: #8896b3;--text-muted: #5a6a8a;--accent: #3b82f6;--accent-hover: #2563eb;--accent-glow: rgba(59, 130, 246, .15);--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--danger-hover: #dc2626;--font-body: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--radius: 8px;--radius-lg: 12px;--shadow: 0 4px 24px rgba(0, 0, 0, .4)}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased}.app-container{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:0 32px;height:64px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-header .logo{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:600;letter-spacing:-.02em}.app-header .logo-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--accent),#7c3aed);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff}.app-header .user-area{display:flex;align-items:center;gap:16px}.app-header .user-name{color:var(--text-secondary);font-size:14px}.main-content{flex:1;padding:32px;max-width:1400px;width:100%;margin:0 auto}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);background-image:radial-gradient(ellipse at 20% 50%,rgba(59,130,246,.06) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(124,58,237,.04) 0%,transparent 60%)}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:48px 40px;width:100%;max-width:420px;box-shadow:var(--shadow)}.login-card h1{font-size:24px;font-weight:700;margin-bottom:4px;letter-spacing:-.03em}.login-card .subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:32px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.form-group input,.form-group select{width:100%;padding:12px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-body);font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%238896b3' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-family:var(--font-body);font-size:14px;font-weight:600;border:none;border-radius:var(--radius);cursor:pointer;transition:all .2s;text-decoration:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 16px #3b82f64d}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--text-muted)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-sm{padding:8px 16px;font-size:13px}.btn-full{width:100%}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.card-header h2{font-size:18px;font-weight:600;letter-spacing:-.02em}.search-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;margin-bottom:28px;box-shadow:var(--shadow)}.search-panel h2{font-size:20px;font-weight:700;margin-bottom:24px;letter-spacing:-.02em}.search-actions{display:flex;align-items:center;gap:16px;margin-top:24px}.results-table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border)}.results-table{width:100%;border-collapse:collapse;font-size:13px}.results-table th{background:var(--bg-secondary);color:var(--text-secondary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:14px 16px;text-align:left;border-bottom:1px solid var(--border);position:sticky;top:0;white-space:nowrap}.results-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:top;max-width:250px;overflow:hidden;text-overflow:ellipsis}.results-table tr:hover td{background:var(--bg-card-hover)}.results-table tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge-success{background:#10b9811f;color:var(--success)}.badge-warning{background:#f59e0b1f;color:var(--warning)}.badge-danger{background:#ef44441f;color:var(--danger)}.badge-info{background:#3b82f61f;color:var(--accent)}.jobs-list{display:flex;flex-direction:column;gap:8px}.job-row{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr 120px;align-items:center;padding:14px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s;text-decoration:none;color:inherit}.job-row:hover{background:var(--bg-card-hover);border-color:var(--text-muted);transform:translate(2px)}.job-city{font-weight:600;font-size:14px}.job-date{color:var(--text-secondary);font-size:13px;font-family:var(--font-mono)}.job-count{color:var(--text-secondary);font-size:13px}.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:20px}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);font-size:14px}.progress-steps{display:flex;flex-direction:column;gap:12px;padding:20px 0}.progress-step{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--text-muted)}.progress-step.active{color:var(--accent)}.progress-step.done{color:var(--success)}.step-indicator{width:24px;height:24px;border-radius:50%;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.step-indicator.active{border-color:var(--accent);background:var(--accent-glow)}.step-indicator.done{border-color:var(--success);background:#10b9811f}.error-message{background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);padding:14px 18px;color:var(--danger);font-size:14px;margin-bottom:16px}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state h3{font-size:18px;color:var(--text-secondary);margin-bottom:8px}.empty-state p{font-size:14px}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:28px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.stat-value{font-size:28px;font-weight:700;letter-spacing:-.03em;font-family:var(--font-mono)}.stat-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px}@media (max-width: 768px){.main-content{padding:16px}.app-header{padding:0 16px}.form-row{grid-template-columns:1fr}.search-panel{padding:20px}.job-row{grid-template-columns:1fr;gap:6px}.stats-row{grid-template-columns:1fr 1fr}}
