:root{--bg:#f3f2ef;--bg-card:#fff;--bg-hover:#fafafa;--border:#d4d2d0;--border-light:#e8e6e3;--text:#2d2d2d;--text-secondary:#595959;--text-tertiary:#767676;--link:#2557a7;--link-visited:#4b3695;--accent:#2557a7;--accent-dark:#164081;--badge-blue-bg:#e8f0fe;--badge-blue:#1a73e8;--badge-green-bg:#e6f4ea;--badge-green:#137333;--radius:8px;--shadow-card:0 1px 2px #0000001a;--shadow-card-hover:0 2px 8px #00000026;--shadow-card-active:0 0 0 2px #2557a7;--font:"Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--transition:.1s ease}[data-theme=dark]{--bg:#1b1b1b;--bg-card:#282828;--bg-hover:#333;--border:#404040;--border-light:#353535;--text:#e8e8e8;--text-secondary:#bbb;--text-tertiary:#888;--link:#8ab4f8;--link-visited:#c58af9;--accent:#8ab4f8;--accent-dark:#aecbfa;--badge-blue-bg:#1d3557;--badge-blue:#8ab4f8;--badge-green-bg:#1a3a2a;--badge-green:#81c995;--shadow-card:0 1px 3px #0006;--shadow-card-hover:0 2px 8px #00000080;--shadow-card-active:0 0 0 2px #8ab4f8}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;height:100%;font-size:14px;line-height:1.5}.app-shell{flex-direction:column;max-width:1200px;height:100vh;margin:0 auto;padding:0 32px;display:flex;overflow:hidden}.header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;min-height:52px;padding:12px 0;display:flex}.header-logo{cursor:pointer;align-items:center;text-decoration:none;display:flex}.header-logo span{letter-spacing:-.5px;color:var(--accent);font-size:18px;font-weight:700}.header-logo:hover span{text-decoration:underline}.header-actions{align-items:center;gap:8px;display:flex}.header-btn{cursor:pointer;transition:background var(--transition);background:0 0;border:none;border-radius:50%;padding:8px;font-size:18px}.header-btn:hover{background:var(--bg-hover)}.search-bar{flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:14px 0;display:flex}.search-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);width:100%;max-width:500px;color:var(--text);transition:all var(--transition);outline:none;padding:10px 16px;font-size:14px}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2557a71a}.search-input::placeholder{color:var(--text-tertiary)}.search-btn{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;transition:background var(--transition);white-space:nowrap;border:none;padding:10px 24px;font-size:14px;font-weight:600}.search-btn:hover{background:var(--accent-dark)}.toolbar{flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.toolbar-left{flex-direction:column;gap:2px;display:flex}.site-title{color:var(--text);font-size:18px;font-weight:700}.toolbar-count{color:var(--text-tertiary);font-size:13px}.controls{flex-shrink:0;padding:0 0 12px}.controls-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.last-updated{color:var(--text-tertiary);white-space:nowrap;margin-right:16px;font-size:12px}@media (max-width:768px){.last-updated{margin-top:8px;margin-right:0;display:block}.controls-top{flex-wrap:wrap}}.filter-pills{flex-wrap:wrap;gap:8px;display:flex}.filter-pill{border:1px solid var(--border);color:var(--text-secondary);background:var(--bg-card);cursor:pointer;transition:all var(--transition);white-space:nowrap;border-radius:20px;padding:6px 14px;font-size:13px;font-weight:500}.filter-pill:hover{border-color:var(--text-tertiary);background:var(--bg-hover)}.filter-pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}.split-panel{flex:1;display:flex;overflow:hidden}.panel-left{flex-direction:column;gap:12px;width:380px;min-width:390px;padding:0 12px 12px;display:flex;overflow-y:auto}.panel-right{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-card);flex:1;max-width:750px;margin:1px 12px 12px;padding:2px 28px;overflow-y:auto}.detail-empty{height:200px;color:var(--text-tertiary);justify-content:center;align-items:center;font-size:14px;display:flex}.job-list{flex-direction:column;flex:1;gap:10px;display:flex}.job-item{background:var(--bg-card);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-card);border:1px solid #0000;flex-direction:column;gap:8px;padding:10px 20px;display:flex;position:relative}.job-item:hover{box-shadow:var(--shadow-card-hover)}.job-item.active{border-color:var(--accent);box-shadow:var(--shadow-card-active)}.job-badge{color:var(--badge-blue);background:var(--badge-blue-bg);border-radius:4px;align-items:center;gap:4px;width:fit-content;padding:3px 8px;font-size:12px;font-weight:600;display:inline-flex}.job-title{color:var(--link);transition:color var(--transition);font-size:16px;font-weight:700;line-height:1.3}.job-item:hover .job-title{color:var(--accent-dark);text-decoration:underline}.job-company{color:var(--text);font-size:14px;font-weight:500}.job-location{color:var(--text-secondary);font-size:13px}.job-tags{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.job-tag{color:var(--text-secondary);align-items:center;gap:4px;padding:3px 0;font-size:12px;display:inline-flex}.job-tag-check{color:var(--badge-green);font-weight:700}.job-category-badge{border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-block}.job-category-badge[data-cat=Software]{color:#1565c0;background:#e3f2fd}.job-category-badge[data-cat=Data\/AI]{color:#2e7d32;background:#e8f5e9}.job-category-badge[data-cat=Design]{color:#c62828;background:#fce4ec}.job-category-badge[data-cat=Marketing]{color:#e65100;background:#fff3e0}.job-category-badge[data-cat=Healthcare]{color:#00695c;background:#e0f7fa}.job-category-badge[data-cat=Business]{color:#6a1b9a;background:#f3e5f5}[data-theme=dark] .job-category-badge[data-cat=Software]{color:#64b5f6;background:#1a2744}[data-theme=dark] .job-category-badge[data-cat=Data\/AI]{color:#81c784;background:#1a2e1a}[data-theme=dark] .job-category-badge[data-cat=Design]{color:#f48fb1;background:#2e1a1a}[data-theme=dark] .job-category-badge[data-cat=Marketing]{color:#ffb74d;background:#2e2a1a}[data-theme=dark] .job-category-badge[data-cat=Healthcare]{color:#4dd0e1;background:#1a2e2e}[data-theme=dark] .job-category-badge[data-cat=Business]{color:#ce93d8;background:#2a1a2e}.detail-content{flex-direction:column;display:flex}.detail-header{background:var(--bg-card);border-bottom:1px solid var(--border-light);flex-shrink:0;margin-bottom:20px;padding:8px 0 10px}.detail-title{color:var(--text);margin-bottom:8px;font-size:26px;font-weight:700;line-height:1.3}.detail-title-link{color:inherit;text-decoration:none}.detail-title-link:hover .detail-title{color:var(--link);text-decoration:underline}.detail-company{color:var(--text-secondary);margin-bottom:6px;font-size:16px}.detail-meta{color:var(--text-secondary);margin-bottom:12px;font-size:15px}.detail-date{color:var(--text-tertiary);margin-bottom:10px;font-size:13px}.detail-apply-btn{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;transition:background var(--transition);border:none;align-items:center;gap:6px;padding:12px 28px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.detail-apply-btn:hover{background:var(--accent-dark)}.detail-actions{align-items:center;gap:12px;display:flex}.share-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);background:var(--bg-card);cursor:pointer;transition:all var(--transition);padding:10px 18px;font-size:14px;font-weight:600}.share-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--badge-blue-bg)}.detail-body{flex-shrink:1;max-height:450px;overflow-y:auto}.detail-divider{background:var(--border-light);height:1px;margin:20px 0}.detail-section{margin-bottom:24px}.detail-section-title{color:var(--text);margin-bottom:12px;font-size:18px;font-weight:700}.detail-section p{color:var(--text-secondary);white-space:pre-line;font-size:14px;line-height:1.8}.detail-info-row{color:var(--text-secondary);align-items:center;gap:10px;margin-bottom:10px;font-size:14px;display:flex}.detail-info-icon{text-align:center;width:20px;font-size:16px}.detail-tags{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.detail-tag{background:var(--badge-green-bg);color:var(--badge-green);border-radius:20px;padding:5px 12px;font-size:13px;font-weight:500}.detail-skills{flex-wrap:wrap;gap:8px;display:flex}.detail-skill{background:var(--badge-blue-bg);color:var(--badge-blue);border-radius:20px;padding:5px 12px;font-size:13px;font-weight:500}.pagination{justify-content:center;align-items:center;gap:8px;padding:16px 0;display:flex}.pagination-btn{border:1px solid var(--border);color:var(--link);background:var(--bg-card);cursor:pointer;transition:all var(--transition);border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600}.pagination-btn:hover:not(:disabled){background:var(--badge-blue-bg)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed;color:var(--text-tertiary)}.pagination-info{color:var(--text-secondary);padding:0 8px;font-size:13px}.empty-state{text-align:center;padding:60px 20px}.empty-state h3{margin-bottom:6px;font-size:16px;font-weight:600}.empty-state p{color:var(--text-secondary);margin-bottom:16px;font-size:14px}.empty-state button{border:1px solid var(--accent);background:var(--bg-card);color:var(--link);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600}.role-page{background:var(--bg);min-height:100vh}.role-page-header{background:var(--bg-card);border-bottom:1px solid var(--border);padding:14px 24px}.role-back-link{color:var(--link);font-size:14px;font-weight:500;text-decoration:none}.role-back-link:hover{text-decoration:underline}.role-page-content{flex-direction:column;gap:16px;max-width:700px;margin:24px auto;padding:0 24px;display:flex}.role-card-main{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:28px}.role-card-details{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:24px 28px}.role-page-title{color:var(--text);margin-bottom:8px;font-size:24px;font-weight:700;line-height:1.3}.role-page-company{color:var(--text-secondary);margin-bottom:10px;font-size:16px;font-weight:500}.role-page-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;display:flex}.role-page-date{color:var(--text-tertiary);margin-bottom:20px;font-size:13px}.role-apply-btn{background:var(--accent);color:#fff;border-radius:var(--radius);transition:background var(--transition);border:none;align-items:center;gap:6px;padding:12px 28px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.role-apply-btn:hover{background:var(--accent-dark)}.role-section-title{color:var(--text);margin-bottom:16px;font-size:18px;font-weight:700}.role-info-grid{flex-direction:column;gap:14px;display:flex}.role-info-item{align-items:center;gap:16px;display:flex}.role-info-label{color:var(--text-tertiary);min-width:100px;font-size:13px;font-weight:500}.role-info-value{color:var(--text);font-size:14px}.role-skills-list{flex-wrap:wrap;gap:8px;display:flex}.role-description-text{color:var(--text-secondary);white-space:pre-line;font-size:14px;line-height:1.8}.role-bottom-cta{text-align:center}.role-bottom-cta .detail-actions{justify-content:center}.role-cta-text{color:var(--text-secondary);margin-bottom:16px;font-size:15px}.footer{text-align:center;color:var(--text-tertiary);flex-shrink:0;padding:12px 24px;font-size:12px}.detail-page{max-width:700px;margin:0 auto;padding:40px 24px}.detail-back{color:var(--link);align-items:center;gap:6px;margin-bottom:24px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.detail-back:hover{text-decoration:underline}@media (max-width:768px){.app-shell{padding:0 12px}.split-panel{flex-direction:column}.panel-left{width:100%;min-width:unset;flex:1;max-height:none;padding:8px 0}.panel-right{display:none}.search-bar{padding:10px 0}.search-input{max-width:none}.toolbar{padding:10px 0}.controls{padding:0 0 10px}.filter-pills{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:6px;padding-bottom:4px;overflow-x:auto}.filter-pill{flex-shrink:0}.job-item{padding:14px 12px}.header{padding:10px 0}.footer{padding:12px 0}}
