:root{--bg: #faf8f5;--surface: #ffffff;--surface-hover: #f5f2ee;--border: #e8e2da;--text: #2a2520;--text-muted: #8a8278;--text-light: #b5ada3;--accent: #c75b39;--accent-light: #f0e0d8;--success: #5a7d5a;--warning: #b8953a;--radius: 12px;--shadow: 0 1px 3px rgba(42, 37, 32, .06), 0 4px 12px rgba(42, 37, 32, .04);--shadow-hover: 0 2px 6px rgba(42, 37, 32, .08), 0 8px 24px rgba(42, 37, 32, .06)}*{box-sizing:border-box;margin:0;padding:0}html{font-size:15px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}.dashboard{max-width:1200px;margin:0 auto;padding:32px 24px 64px}header{margin-bottom:32px}header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}header .subtitle{color:var(--text-muted);font-size:.9rem}header .refresh{margin-top:12px;display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-light)}header .refresh button{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 12px;font-size:.75rem;color:var(--text-muted);cursor:pointer;transition:all .2s}header .refresh button:hover{background:var(--surface-hover);border-color:var(--text-light)}.loading{text-align:center;padding:80px 0;color:var(--text-muted)}.loading .spinner{width:32px;height:32px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px;margin-bottom:32px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 16px;box-shadow:var(--shadow);transition:all .2s;cursor:default}.stat-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.stat-card .source-name{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.stat-card .total{font-size:2rem;font-weight:700;letter-spacing:-.03em;line-height:1.1}.stat-card .meta{margin-top:8px;display:flex;gap:10px;font-size:.78rem;color:var(--text-light)}.stat-card .meta span.new{color:var(--success);font-weight:600}.stat-card .accent-bar{height:3px;border-radius:2px;margin-top:12px}.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:24px;box-shadow:var(--shadow)}.section h2{font-size:1.05rem;font-weight:600;margin-bottom:20px;letter-spacing:-.01em}.bar-chart{display:flex;align-items:flex-end;gap:12px;height:180px;padding-bottom:28px;position:relative}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.bar-col .bar-group{width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px;height:140px}.bar-col .bar{width:100%;border-radius:3px 3px 0 0;min-height:2px;transition:opacity .2s;position:relative}.bar-col .bar:hover{opacity:.8}.bar-col .bar .tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--text);color:#fff;font-size:.7rem;padding:4px 8px;border-radius:5px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:10}.bar-col .bar:hover .tooltip{opacity:1}.bar-col .label{font-size:.72rem;color:var(--text-light);white-space:nowrap}.bar-col .total-label{font-size:.72rem;font-weight:600;color:var(--text-muted)}.pie-row{display:flex;align-items:center;gap:32px;flex-wrap:wrap}.pie-chart{width:160px;height:160px;border-radius:50%;position:relative;flex-shrink:0}.pie-legend{display:flex;flex-direction:column;gap:10px}.pie-legend-item{display:flex;align-items:center;gap:8px;font-size:.85rem}.pie-legend-item .dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.pie-legend-item .name{color:var(--text)}.pie-legend-item .count{color:var(--text-muted);margin-left:auto;font-variant-numeric:tabular-nums}.pie-legend-item .pct{color:var(--text-light);font-size:.78rem;width:40px;text-align:right;font-variant-numeric:tabular-nums}.timeline{display:flex;flex-direction:column;gap:0}.timeline-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.timeline-row:last-child{border-bottom:none}.timeline-row .time{font-size:.78rem;font-weight:600;color:var(--text-muted);width:100px;flex-shrink:0}.timeline-row .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.timeline-row .info{flex:1;min-width:0}.timeline-row .info .name{font-weight:500;font-size:.88rem}.timeline-row .info .desc{font-size:.78rem;color:var(--text-muted)}.timeline-row .status{font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:20px;flex-shrink:0}.status-active{background:#e8f0e8;color:#3a6b3a}.status-manual{background:#f0ece0;color:#8a7a3a}.jobs-table-wrap{overflow-x:auto}.jobs-table{width:100%;border-collapse:collapse;font-size:.85rem}.jobs-table th{text-align:left;padding:10px 12px;font-weight:600;color:var(--text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);white-space:nowrap}.jobs-table td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.jobs-table tr:last-child td{border-bottom:none}.jobs-table tr:hover td{background:var(--surface-hover)}.jobs-table .title-cell{font-weight:500;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jobs-table .title-cell a{color:var(--text);text-decoration:none}.jobs-table .title-cell a:hover{color:var(--accent);text-decoration:underline}.jobs-table .company-cell{color:var(--text-muted)}.jobs-table .source-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.jobs-table .new-badge{display:inline-block;font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:10px;background:var(--accent-light);color:var(--accent);margin-left:6px;vertical-align:middle}.jobs-table .time-cell{color:var(--text-light);font-size:.78rem;white-space:nowrap}.summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 18px;text-align:center;box-shadow:var(--shadow)}.summary-card .value{font-size:2.2rem;font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--accent)}.summary-card .label{font-size:.8rem;color:var(--text-muted);margin-top:6px}@media(max-width:640px){.dashboard{padding:20px 16px 40px}header h1{font-size:1.4rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.summary-row{grid-template-columns:1fr}.bar-chart{gap:6px}.pie-row{justify-content:center}}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow)}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.filter-group input,.filter-group select{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:.9rem;outline:none}.filter-group input:focus,.filter-group select:focus{border-color:var(--accent)}.filter-search{flex:1 1 220px;min-width:180px}.filter-search input{width:100%}.filter-location input{width:140px}.filter-company select{width:190px}.segmented{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.segmented button{padding:8px 14px;border:none;background:var(--bg);color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:all .15s}.segmented button:not(:last-child){border-right:1px solid var(--border)}.segmented button.active{background:var(--text);color:#fff}.toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.85rem;color:var(--text);-webkit-user-select:none;user-select:none}.toggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.results-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;font-size:.85rem;color:var(--text-muted)}.results-bar strong{color:var(--text)}.results-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.managed-summary{color:var(--text-light)}.manage-toggle{padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text-muted);font-size:.78rem;cursor:pointer}.manage-toggle:hover{border-color:var(--text-light);color:var(--text)}.retry-btn{margin-top:20px;padding:8px 20px;border-radius:6px;border:1px solid var(--border);background:var(--surface);cursor:pointer}.job-list{display:flex;flex-direction:column;gap:14px}.job-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:all .2s}.job-card:hover{box-shadow:var(--shadow-hover)}.job-card.status-done{border-color:#b9d7bd}.job-card.status-dismissed{border-color:#dbc9bd}.job-card-main{padding:18px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.job-card-header{flex:1 1 320px;min-width:0}.job-title-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.job-title{font-size:1.05rem;font-weight:600;color:var(--text);text-decoration:none}.job-title:hover{color:var(--accent);text-decoration:underline}.job-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:.82rem;color:var(--text-muted)}.job-meta .company{font-weight:600;color:var(--text)}.remote-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.03em}.remote-remote{background:#e8f0e8;color:#3a6b3a}.remote-hybrid{background:#f0ece0;color:#8a7a3a}.remote-on-site,.remote-onsite{background:#f0e8e8;color:#8a3a3a}.job-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}.badge{font-size:.7rem;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap}.badge.positive{background:#e8f0e8;color:#3a6b3a}.badge.neutral{background:var(--surface-hover);color:var(--text-muted)}.source-dot{width:8px;height:8px;border-radius:50%;margin-left:4px}.source-label{font-size:.72rem;color:var(--text-light)}.job-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex-shrink:0}.job-manage-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.manage-btn{padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text);font-size:.76rem;font-weight:600;cursor:pointer}.manage-btn:hover{border-color:var(--accent);color:var(--accent)}.manage-btn.subtle{color:var(--text-muted)}.status-pill{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}.status-pill.status-done{background:#e8f0e8;color:#3a6b3a}.status-pill.status-dismissed{background:#f4ece7;color:#8a5c3a}.apply-btn{padding:8px 16px;border-radius:8px;background:var(--accent);color:#fff;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s}.apply-btn:hover{background:#a84a2e}.apply-btn.disabled{background:var(--border);color:var(--text-light);cursor:default}.expand-btn{padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text-muted);font-size:.78rem;cursor:pointer}.expand-btn:hover{border-color:var(--text-light);color:var(--text)}.job-description{border-top:1px solid var(--border);padding:18px 20px;background:var(--bg);font-size:.88rem;color:var(--text);line-height:1.7}.job-description p{white-space:pre-line;margin-bottom:12px}.job-footer{display:flex;gap:20px;font-size:.75rem;color:var(--text-light)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.empty-state p{font-weight:600;color:var(--text);margin-bottom:6px}.empty-state span{font-size:.85rem}@media(max-width:720px){.results-bar{flex-direction:column;align-items:flex-start}.filter-bar{flex-direction:column;align-items:stretch}.filter-group input,.filter-group select,.segmented{width:100%}.segmented button{flex:1}.job-card-main{flex-direction:column;align-items:stretch}.job-actions{flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap}}
