:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#dbeafe;--color-primary-lighter:#eff6ff;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--color-bg:#f8fafc;--color-bg-secondary:#f1f5f9;--color-surface:#fff;--color-surface-hover:#f8fafc;--color-surface-raised:#fff;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-tertiary:#94a3b8;--color-text-inverse:#fff;--color-border:#e2e8f0;--color-border-hover:#cbd5e1;--color-overlay:#0f172a80;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono:"SF Mono", "Fira Code", "Consolas", monospace;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease}[data-theme=dark]{--color-bg:#0f172a;--color-bg-secondary:#1e293b;--color-surface:#1e293b;--color-surface-hover:#334155;--color-surface-raised:#1e293b;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-tertiary:#64748b;--color-text-inverse:#0f172a;--color-border:#334155;--color-border-hover:#475569;--color-overlay:#0009;--color-primary-light:#1e3a5f;--color-primary-lighter:#172554;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006;--shadow-lg:0 10px 15px -3px #0006;--shadow-xl:0 20px 25px -5px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh;transition:background var(--transition-normal), color var(--transition-normal);line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none}input,select{font-family:inherit;font-size:inherit}::selection{background:var(--color-primary);color:#fff}.layout-header{z-index:100;background:var(--color-surface);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background var(--transition-normal), border-color var(--transition-normal);background:#ffffffe6;position:sticky;top:0}[data-theme=dark] .layout-header{background:#1e293be6}.layout-header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1200px;height:64px;margin:0 auto;padding:0 24px;display:flex}.layout-logo{color:var(--color-text);white-space:nowrap;align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.layout-logo-icon{background:var(--color-primary);border-radius:var(--radius-sm);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.layout-header-actions{align-items:center;gap:8px;display:flex}.layout-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px}.layout-footer{text-align:center;color:var(--color-text-tertiary);border-top:1px solid var(--color-border);margin-top:auto;padding:24px;font-size:13px}.stats-bar{background:var(--color-primary-lighter);border-radius:var(--radius-lg);flex-wrap:wrap;gap:24px;margin-bottom:24px;padding:16px 20px;display:flex}.stat-item{color:var(--color-text-secondary);align-items:center;gap:8px;font-size:14px;display:flex}.stat-value{color:var(--color-primary);font-size:18px;font-weight:700}.stat-label{font-size:13px}.search-bar{margin-bottom:20px;position:relative}.search-bar-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;height:48px;color:var(--color-text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:0 48px 0 16px;font-size:15px}.search-bar-input::placeholder{color:var(--color-text-tertiary)}.search-bar-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.search-bar-icon{color:var(--color-text-tertiary);pointer-events:none;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.search-bar-clear{color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast);border-radius:50%;padding:4px;display:flex;position:absolute;top:50%;right:48px;transform:translateY(-50%)}.search-bar-clear:hover{color:var(--color-text)}.filter-panel{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.filter-select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);height:40px;color:var(--color-text);cursor:pointer;appearance:none;min-width:140px;transition:border-color var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;outline:none;padding:0 36px 0 12px;font-size:14px}.filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.filter-chip-group{flex-wrap:wrap;gap:8px;display:flex}.filter-chip{background:var(--color-surface);border:1px solid var(--color-border);height:32px;color:var(--color-text-secondary);transition:all var(--transition-fast);white-space:nowrap;border-radius:16px;padding:0 14px;font-size:13px}.filter-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.filter-reset{border-radius:var(--radius-md);height:40px;color:var(--color-text-tertiary);transition:color var(--transition-fast);align-items:center;gap:4px;padding:0 16px;font-size:13px;display:flex}.filter-reset:hover{color:var(--color-danger)}.sort-bar{justify-content:space-between;align-items:center;margin-bottom:16px;padding:0 4px;display:flex}.sort-bar-count{color:var(--color-text-secondary);font-size:14px}.sort-bar-count strong{color:var(--color-text);font-weight:600}.sort-buttons{gap:4px;display:flex}.sort-btn{border-radius:var(--radius-sm);height:32px;color:var(--color-text-tertiary);transition:all var(--transition-fast);align-items:center;gap:4px;padding:0 12px;font-size:13px;display:flex}.sort-btn:hover{color:var(--color-text);background:var(--color-bg-secondary)}.sort-btn.active{color:var(--color-primary);background:var(--color-primary-light);font-weight:500}.job-list{flex-direction:column;gap:12px;display:flex}.job-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);align-items:flex-start;gap:16px;padding:20px;display:flex;position:relative}.job-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.job-card.featured{border-left:3px solid var(--color-primary)}.job-card-company-logo{border-radius:var(--radius-md);background:var(--color-bg-secondary);width:48px;height:48px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex;overflow:hidden}.job-card-company-logo img{object-fit:contain;width:100%;height:100%}.job-card-content{flex:1;min-width:0}.job-card-title{color:var(--color-text);margin-bottom:4px;font-size:16px;font-weight:600;line-height:1.4}.job-card-company{color:var(--color-text-secondary);margin-bottom:8px;font-size:14px}.job-card-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.job-card-tag{background:var(--color-bg-secondary);color:var(--color-text-secondary);white-space:nowrap;border-radius:12px;align-items:center;gap:4px;padding:2px 10px;font-size:12px;display:inline-flex}.job-card-tag.salary{background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.job-card-tag.date{color:var(--color-text-tertiary);background:0 0;padding:2px 4px}.job-card-side{text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.job-card-featured-badge{color:#92400e;background:#fef3c7;border-radius:12px;align-items:center;gap:4px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-flex}[data-theme=dark] .job-card-featured-badge{color:#fde68a;background:#78350f}.job-card-source-badge{background:var(--color-bg-secondary);color:var(--color-text-tertiary);border:1px solid var(--color-border);white-space:nowrap;border-radius:10px;align-items:center;padding:1px 8px;font-size:10px;font-weight:500;display:inline-flex}[data-theme=dark] .job-card-source-badge{border-color:var(--color-border)}.empty-state{text-align:center;padding:80px 24px}.empty-state-icon{opacity:.3;margin-bottom:16px;font-size:48px}.empty-state-title{color:var(--color-text);margin-bottom:8px;font-size:18px;font-weight:600}.empty-state-desc{color:var(--color-text-tertiary);margin-bottom:24px;font-size:14px}.pagination{justify-content:center;align-items:center;gap:4px;margin-top:32px;padding-bottom:32px;display:flex}.pagination-btn{border-radius:var(--radius-md);min-width:36px;height:36px;color:var(--color-text-secondary);border:1px solid var(--color-border);background:var(--color-surface);transition:all var(--transition-fast);justify-content:center;align-items:center;padding:0 8px;font-size:14px;display:flex}.pagination-btn:hover:not(:disabled):not(.active){border-color:var(--color-primary);color:var(--color-primary)}.pagination-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-ellipsis{color:var(--color-text-tertiary);padding:0 4px}.modal-overlay{background:var(--color-overlay);z-index:200;justify-content:center;align-items:flex-start;padding:48px 24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content{background:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:720px;box-shadow:var(--shadow-xl);margin-top:24px;animation:.3s slideUp;position:relative}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 24px 0;display:flex}.modal-header-info{flex:1}.modal-title{color:var(--color-text);margin-bottom:4px;font-size:22px;font-weight:700;line-height:1.3}.modal-company{color:var(--color-text-secondary);margin-bottom:12px;font-size:15px}.modal-close{width:36px;height:36px;color:var(--color-text-tertiary);transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.modal-close:hover{background:var(--color-bg-secondary);color:var(--color-text)}.modal-body{padding:20px 24px 24px}.modal-meta{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.modal-meta-item{color:var(--color-text-secondary);background:var(--color-bg-secondary);border-radius:var(--radius-md);align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:flex}.modal-section{margin-bottom:20px}.modal-section-title{color:var(--color-text);border-bottom:1px solid var(--color-border);margin-bottom:8px;padding-bottom:8px;font-size:15px;font-weight:600}.modal-section-text{color:var(--color-text-secondary);white-space:pre-line;font-size:14px;line-height:1.8}.modal-requirement-list{padding:0;list-style:none}.modal-requirement-list li{color:var(--color-text-secondary);margin-bottom:8px;padding-left:20px;font-size:14px;line-height:1.6;position:relative}.modal-requirement-list li:before{content:"";background:var(--color-primary);opacity:.6;border-radius:50%;width:6px;height:6px;position:absolute;top:10px;left:4px}.modal-actions{border-top:1px solid var(--color-border);gap:12px;margin-top:24px;padding-top:20px;display:flex}.btn{border-radius:var(--radius-md);height:40px;transition:all var(--transition-fast);justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:14px;font-weight:500;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-outline{border:1px solid var(--color-border);color:var(--color-text-secondary);background:0 0}.btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-sm{height:32px;padding:0 14px;font-size:13px}.icon-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--color-bg-secondary);color:var(--color-text)}.subscription-form{flex-direction:column;gap:16px;display:flex}.subscription-form-group{flex-direction:column;gap:6px;display:flex}.subscription-form-label{color:var(--color-text-secondary);font-size:13px;font-weight:500}.subscription-form-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);height:42px;color:var(--color-text);transition:border-color var(--transition-fast);outline:none;padding:0 14px;font-size:14px}.subscription-form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.subscription-form-hint{color:var(--color-text-tertiary);font-size:12px}.loading-state{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 24px;display:flex}.loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.loading-text{color:var(--color-text-tertiary);font-size:14px}.error-state{text-align:center;padding:80px 24px}.error-state-title{color:var(--color-danger);margin-bottom:8px;font-size:18px;font-weight:600}.error-state-desc{color:var(--color-text-tertiary);margin-bottom:16px;font-size:14px}.tag-group-label{color:var(--color-text-tertiary);margin-right:4px;font-size:13px}@media (width<=768px){.layout-header-inner{height:56px;padding:0 16px}.layout-logo{font-size:17px}.layout-main{padding:16px}.stats-bar{gap:12px;padding:12px 16px}.stat-item{font-size:13px}.stat-value{font-size:16px}.filter-panel{gap:8px}.filter-select{flex:1;min-width:120px}.job-card{gap:12px;padding:14px}.job-card-company-logo{width:40px;height:40px;font-size:16px}.job-card-title{font-size:15px}.job-card-side{display:none}.modal-content{border-radius:var(--radius-lg)}.modal-overlay{align-items:center;padding:16px}.modal-header{padding:16px 16px 0}.modal-title{font-size:18px}.modal-body{padding:16px}.modal-actions{flex-direction:column}.sort-bar{flex-direction:column;align-items:flex-start;gap:8px}.pagination{gap:2px}.pagination-btn{min-width:32px;height:32px;font-size:13px}}@media (width<=480px){.filter-select{flex:none;width:100%}.filter-chip-group{width:100%}.layout-header-actions .icon-btn-label{display:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}
