html,body{margin:0;padding:0}#app{min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}body{color:#1f2329;background:#f5f6f8;font-family:-apple-system,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif}.container{max-width:1120px;margin:0 auto;padding:0 20px}.navbar{z-index:100;background:#fff;position:sticky;top:0;box-shadow:0 1px 4px #0000000f}.nav-inner{align-items:center;gap:32px;height:60px;display:flex}.logo{align-items:center;gap:8px;display:flex}.logo-mark{color:#fff;background:#2563eb;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;font-weight:700;display:flex}.logo-text{color:#1f2329;font-size:18px;font-weight:700}.nav-links{flex:1;gap:24px;display:flex}.nav-spacer{flex:1}.nav-actions{align-items:center;gap:12px;display:flex}.user-name{color:#1f2329;font-size:14px;font-weight:500}.btn{cursor:pointer;border:none;border-radius:6px;padding:8px 18px;font-size:14px;transition:opacity .15s}.btn:hover{opacity:.85}.btn-primary{color:#fff;background:#2563eb}.btn-ghost{color:#2563eb;background:0 0;border:1px solid #2563eb}.btn-block{width:100%;margin-top:4px;padding:10px}.btn:disabled{opacity:.5;cursor:not-allowed}.hero{color:#fff;text-align:center;background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 100%);padding:72px 0 64px}.hero h1{margin-bottom:16px;font-size:36px;font-weight:700}.hero-sub{opacity:.85;max-width:640px;margin:0 auto;font-size:16px;line-height:1.7}.jobs-section{padding:40px 0}.section-title{margin-bottom:20px;font-size:22px;font-weight:700}.filter-bar{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.filter-input{border:1px solid #d1d5db;border-radius:6px;flex:1;min-width:200px;padding:8px 12px;font-size:14px}.filter-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;min-width:130px;padding:8px 12px;font-size:14px}.job-count{color:#6b7280;margin-bottom:14px;font-size:13px}.job-list{flex-direction:column;gap:12px;display:flex}.job-card{background:#fff;border-radius:10px;justify-content:space-between;gap:16px;padding:20px 24px;transition:box-shadow .15s;display:flex;box-shadow:0 1px 3px #0000000d}.job-card:hover{box-shadow:0 4px 12px #00000014}.job-company{margin-bottom:6px;font-size:17px;font-weight:600}.job-positions{color:#4b5563;margin-bottom:10px;font-size:14px}.job-meta{flex-wrap:wrap;gap:8px;display:flex}.job-side{flex-direction:column;justify-content:center;align-items:flex-end;gap:12px;min-width:110px;display:flex}.tag{color:#4b5563;background:#f3f4f6;border-radius:4px;padding:3px 10px;font-size:12px;display:inline-block}.tag-blue{color:#2563eb;background:#eff6ff}.tag-green{color:#059669;background:#ecfdf5}.tag-red{color:#dc2626;background:#fef2f2}.tag-gray{color:#9ca3af;background:#f3f4f6}.pagination{justify-content:center;gap:8px;margin-top:28px;display:flex}.page-btn{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;min-width:36px;height:36px;font-size:14px}.page-btn.active{color:#fff;background:#2563eb;border-color:#2563eb}.page-btn:disabled{opacity:.4;cursor:not-allowed}.footer{color:#9ca3af;text-align:center;background:#1f2329;margin-top:20px;padding:32px 0}.footer p{font-size:14px}.footer-sub{opacity:.7;margin-top:8px;font-size:12px}.modal-mask{z-index:200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:380px;padding:28px;position:relative}.modal-title{text-align:center;margin-bottom:16px;font-size:18px;font-weight:700}.modal-tabs{border-bottom:1px solid #e5e7eb;margin-bottom:18px;display:flex}.modal-tabs button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;font-size:14px}.modal-tabs button.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.modal-form{flex-direction:column;gap:12px;display:flex}.modal-input{border:1px solid #d1d5db;border-radius:6px;padding:10px 12px;font-size:14px}.modal-input:focus{border-color:#2563eb;outline:none}.modal-error{color:#dc2626;font-size:13px}.modal-tip{color:#9ca3af;text-align:center;margin-top:10px;font-size:12px}.modal-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;font-size:16px;position:absolute;top:12px;right:16px}@media (width<=768px){.hero h1{font-size:26px}.job-card{flex-direction:column}.job-side{align-items:flex-start}}
