/*!
 * 
 * Copyright © 2025 gongzhaozhiku.com
 *
 * 知识产权声明：
 * 本应用程序已申请外观设计专利和软件著作权。
 * 如发现抄袭我们会保留证据通过法律途径保护权益。
 *
 */
.toast{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.9);min-width:200px;max-width:400px;padding:1rem 1.5rem;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);display:flex;align-items:center;gap:.75rem;z-index:10000;opacity:0;transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.toast.toast-show{opacity:1;transform:translate(-50%, -50%) scale(1)}.toast .toast-icon{flex-shrink:0;font-size:1.25rem;font-weight:600}.toast .toast-message{font-size:.95rem;line-height:1.5;color:#fff}.toast.toast-success{background:linear-gradient(135deg, #10b981 0%, #059669 100%)}.toast.toast-success .toast-icon{color:#d1fae5}.toast.toast-error{background:linear-gradient(135deg, #ef4444 0%, #dc2626 100%)}.toast.toast-error .toast-icon{color:#fecaca}.toast.toast-info{background:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%)}.toast.toast-info .toast-icon{color:#dbeafe}.toast.toast-warning{background:linear-gradient(135deg, #f59e0b 0%, #d97706 100%)}.toast.toast-warning .toast-icon{color:#fef3c7}@media(max-width: 640px){.toast{max-width:90vw;padding:.875rem 1.25rem}.toast .toast-message{font-size:.875rem}}.confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:10001;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.confirm-overlay.confirm-show{opacity:1}.confirm-overlay.confirm-show .confirm-dialog{transform:scale(1)}.confirm-dialog{background:#fff;border-radius:12px;padding:2rem;min-width:320px;max-width:90vw;box-shadow:0 20px 60px rgba(0,0,0,.3);transform:scale(0.9);transition:transform .2s ease}.confirm-message{font-size:1rem;color:#1e293b;line-height:1.6;margin-bottom:1.5rem;text-align:center}.confirm-actions{display:flex;gap:.75rem;justify-content:center}.confirm-button{flex:1;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.confirm-button:active{transform:translateY(0)}.confirm-cancel{background:#f1f5f9;color:#64748b}.confirm-cancel:hover{background:#e2e8f0;color:#475569;transform:translateY(-1px)}.confirm-ok{background:#6366f1;color:#fff}.confirm-ok:hover{background:#4f46e5;transform:translateY(-1px)}@media(max-width: 640px){.confirm-dialog{min-width:280px;padding:1.5rem}.confirm-message{font-size:.95rem}.confirm-button{font-size:.875rem;padding:.625rem 1.25rem}}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,a{text-decoration:none !important}button:hover,button:focus,a:hover,a:focus{text-decoration:none !important}.site-footer{background:#0f172a;color:#fff;padding:32px 16px;margin-top:48px}.site-footer__inner{max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.site-footer__brand{font-size:1.125rem;font-weight:600;letter-spacing:.08em}.site-footer__links{display:flex;flex-wrap:wrap;gap:16px}.site-footer__link{color:inherit;text-decoration:none;font-size:.95rem}.site-footer__link:hover,.site-footer__link:focus{text-decoration:none}.site-footer__copyright{width:100%;display:flex;align-items:center;justify-content:center;gap:32px;margin-top:24px;padding-top:20px;border-top:1px solid hsla(0,0%,100%,.1);font-size:.875rem;color:hsla(0,0%,100%,.7);letter-spacing:.02em}@media(max-width: 640px){.site-footer__copyright{flex-direction:column;gap:12px}}.site-footer__icp{color:hsla(0,0%,100%,.7);text-decoration:none;transition:color .2s ease}.site-footer__icp:hover,.site-footer__icp:focus{color:hsla(0,0%,100%,.9)}*{box-sizing:border-box}body{margin:0;background:#f8fafc;color:#1e293b;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans SC",sans-serif}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem}.loading-container .spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}.loading-container p{font-size:1rem;color:#64748b}@keyframes spin{to{transform:rotate(360deg)}}.jobs-layout{min-height:100vh;padding-bottom:4rem}.jobs-stats{background:#fff;border-bottom:1px solid #e2e8f0;padding:2rem 0;margin-bottom:2rem}.stats-grid{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:-ms-grid;display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:2rem}.stat-item{text-align:center}.stat-item .stat-value{font-size:2.5rem;font-weight:700;color:#6366f1;font-variant-numeric:tabular-nums;line-height:1.2}.stat-item .stat-label{font-size:.875rem;color:#64748b;margin-top:.5rem}.jobs-container{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:-ms-grid;display:grid;-ms-grid-columns:280px 2rem 1fr;grid-template-columns:280px 1fr;gap:2rem;align-items:start}@media(max-width: 768px){.jobs-container{-ms-grid-columns:1fr;grid-template-columns:1fr;padding:0 1rem}}.jobs-filters{background:#fff;border-radius:12px;padding:1.5rem;border:1px solid #e2e8f0;position:-webkit-sticky;position:sticky;top:2rem}@media(max-width: 768px){.jobs-filters{position:static;margin-bottom:1.5rem}}.filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.filters-header h2{font-size:1.125rem;font-weight:600;color:#0f172a;margin:0}.filter-reset{background:none;border:none;color:#6366f1;font-size:.875rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:all .2s}.filter-reset:hover{background:#f1f5f9}.filter-group{margin-bottom:1.5rem}.filter-group:last-child{margin-bottom:0}.filter-title{font-size:.875rem;font-weight:600;color:#475569;margin:0 0 .75rem}.filter-options{display:flex;flex-direction:column;gap:.5rem}.filter-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:6px;transition:background .2s}.filter-option:hover{background:#f8fafc}.filter-option input[type=radio]{accent-color:#6366f1;cursor:pointer}.filter-option .filter-label{font-size:.875rem;color:#475569;flex:1}.filter-option .filter-label small{color:#94a3b8;font-size:.75rem}.filter-select{width:100%;padding:.625rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;color:#475569;background:#fff;cursor:pointer;transition:all .2s}.filter-select:hover{border-color:#94a3b8}.filter-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.1)}.jobs-content{display:flex;flex-direction:column;gap:1.5rem}.search-bar{display:flex;gap:.75rem;background:#fff;padding:1rem;border-radius:12px;border:1px solid #e2e8f0}.search-input{flex:1;padding:.75rem 1rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.95rem;transition:all .2s}.search-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.1)}.search-input::-webkit-input-placeholder{color:#94a3b8}.search-input::-moz-placeholder{color:#94a3b8}.search-input:-ms-input-placeholder{color:#94a3b8}.search-input::placeholder{color:#94a3b8}.search-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg, #6366f1, #4f46e5);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.search-button svg{width:20px;height:20px}.search-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(99,102,241,.3)}.search-button:active{transform:translateY(0)}.jobs-toolbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#fff;border-radius:12px;border:1px solid #e2e8f0}@media(max-width: 640px){.jobs-toolbar{flex-direction:column;gap:1rem;align-items:stretch}}.toolbar-info{font-size:.95rem;color:#64748b}.toolbar-info strong{color:#0f172a;font-weight:600}.toolbar-sort{display:flex;align-items:center;gap:.5rem}.toolbar-sort label{font-size:.875rem;color:#64748b}.sort-select{padding:.5rem .75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;color:#475569;background:#fff;cursor:pointer}.sort-select:focus{outline:none;border-color:#6366f1}.jobs-list{display:flex;flex-direction:column;gap:1rem}.job-card{display:block;background:#fff;border-radius:12px;padding:1.5rem;border:1px solid #e2e8f0;text-decoration:none;transition:all .2s}.job-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.08);border-color:#cbd5e1}.job-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.job-name{font-size:1.125rem;font-weight:600;color:#0f172a;margin:0;flex:1;line-height:1.4}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:4px;font-size:.75rem;font-weight:500;white-space:nowrap}.badge.badge-national{background:linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);color:#1e40af;border:1px solid #93c5fd}.badge.badge-provincial{background:linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);color:#065f46;border:1px solid #6ee7b7}.job-card-meta{display:-ms-grid;display:grid;grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));gap:.75rem;margin-bottom:1rem}.meta-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#64748b}.meta-item svg{flex-shrink:0;width:16px;height:16px;color:#94a3b8}.meta-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-card-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tag{padding:.25rem .75rem;background:#f1f5f9;color:#475569;border-radius:4px;font-size:.8125rem;border:1px solid #e2e8f0}.job-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid #f1f5f9}.status{padding:.375rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:500}.status.status-active{background:linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);color:#065f46;border:1px solid #6ee7b7}.status.status-expired{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}.status.status-upcoming{background:linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);color:#92400e;border:1px solid #fcd34d}.link-arrow{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:#6366f1;font-weight:500}.link-arrow svg{width:16px;height:16px}.jobs-pagination{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 0}.pagination{display:flex;align-items:center;gap:.5rem}.page-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1rem;background:#fff;border:1px solid #cbd5e1;border-radius:8px;font-size:.875rem;font-weight:500;color:#475569;cursor:pointer;transition:all .2s}.page-btn svg{width:16px;height:16px}.page-btn:hover:not(:disabled):not(.disabled){background:#f8fafc;border-color:#94a3b8}.page-btn:disabled,.page-btn.disabled{opacity:.5;cursor:not-allowed}.page-numbers{display:flex;gap:.375rem}.page-num{min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0 .5rem;background:#fff;border:1px solid #cbd5e1;border-radius:8px;font-size:.875rem;font-weight:500;color:#475569;cursor:pointer;transition:all .2s}.page-num:hover{background:#f8fafc;border-color:#94a3b8}.page-num.active{background:linear-gradient(135deg, #6366f1, #4f46e5);color:#fff;border-color:#6366f1}.page-ellipsis{min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-weight:600}.pagination-info{font-size:.875rem;color:#64748b}.empty-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:3rem 2rem;text-align:center;background:#fff;border-radius:12px;border:1px solid #e2e8f0}.empty-state svg,.error-state svg{color:#cbd5e1;margin-bottom:1.5rem}.empty-state h3,.empty-state h2,.error-state h3,.error-state h2{font-size:1.25rem;font-weight:600;color:#0f172a;margin:0 0 .75rem}.empty-state p,.error-state p{font-size:.95rem;color:#64748b;margin:0 0 1.5rem}.button-primary,.button-secondary{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s;border:none;cursor:pointer}.button-primary{background:linear-gradient(135deg, #6366f1, #4f46e5);color:#fff;box-shadow:0 4px 12px rgba(99,102,241,.3)}.button-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(99,102,241,.4)}.button-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.button-secondary{background:#fff;color:#6366f1;border:2px solid #6366f1}.button-secondary:hover{background:#f8fafc}.skeleton{background:linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:8px}.skeleton.job-card{height:200px;border:none}.skeleton-header{height:24px;width:60%;background:#e2e8f0;border-radius:4px;margin-bottom:1rem}.skeleton-line{height:16px;width:100%;background:#e2e8f0;border-radius:4px;margin-bottom:.75rem}.skeleton-line.short{width:70%}.skeleton-tags{display:flex;gap:.5rem}.skeleton-tags::before,.skeleton-tags::after{content:"";height:24px;width:80px;background:#e2e8f0;border-radius:4px}@keyframes skeleton-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}.stats-skeleton .skeleton,.filters-skeleton .skeleton,.toolbar-skeleton .skeleton{height:60px;margin-bottom:1rem}
