/* Frontend */
.jpm-filter-bar{background:#f8f9fa;border:1px solid #e8eaed;border-radius:10px;padding:16px 20px;margin-bottom:24px}
.jpm-filter-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.jpm-filter-field{flex:1 1 140px;min-width:120px}
.jpm-filter-search{flex:2 1 220px}
.jpm-filter-field input,.jpm-filter-field select{width:100%;padding:10px 12px;border:1px solid #dadce0;border-radius:6px;font-size:.95rem;box-sizing:border-box}
.jpm-filter-submit{flex:0 0 auto;display:flex;gap:8px}
.jpm-btn-secondary{background:#fff;color:#3c4043;border:1px solid #dadce0;padding:10px 16px;border-radius:6px;text-decoration:none;font-weight:600}
.jpm-btn-secondary:hover{background:#f1f3f4;color:#202124}
.jpm-job-listings{display:flex;flex-direction:column;gap:16px;margin:0 0 24px}
.jpm-job-card{border:1px solid #e0e0e0;border-radius:8px;background:#fff;transition:box-shadow .2s,border-color .2s}
.jpm-job-card:hover{border-color:#1967d2;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.jpm-job-card-inner{display:flex;align-items:center;gap:20px;padding:20px 24px;flex-wrap:wrap}
.jpm-job-logo img{width:64px;height:64px;object-fit:contain;border-radius:6px}
.jpm-job-info{flex:1 1 280px}
.jpm-job-title{margin:0 0 6px;font-size:1.25rem;line-height:1.3}
.jpm-job-title a{color:#202124;text-decoration:none}
.jpm-job-title a:hover{color:#1967d2}
.jpm-job-org{color:#5f6368;font-size:.95rem;margin-bottom:8px}
.jpm-job-meta{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:.875rem;color:#5f6368}
.jpm-meta-item::before{content:"•";margin-right:6px;color:#dadce0}
.jpm-meta-item:first-child::before{content:none;margin:0}
.jpm-job-actions{flex-shrink:0}
.jpm-btn{display:inline-block;padding:10px 20px;border-radius:6px;font-weight:600;font-size:.95rem;text-decoration:none;border:none;cursor:pointer}
.jpm-btn-primary{background:#1967d2;color:#fff}
.jpm-btn-primary:hover{background:#1557b0;color:#fff}
.jpm-btn-lg{padding:14px 28px;font-size:1.05rem}
.jpm-single-job{max-width:820px;margin:0 auto}
.jpm-single-header{text-align:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e8eaed}
.jpm-single-title{margin:0;font-size:1.75rem;line-height:1.3;color:#202124}
.jpm-job-header-meta{background:#f8f9fa;border:1px solid #e8eaed;border-radius:8px;padding:16px 20px;margin-bottom:28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 24px}
.jpm-meta-row{font-size:.95rem;color:#3c4043}
.jpm-meta-row strong{color:#202124;margin-right:4px}
.jpm-job-description{margin-bottom:32px;line-height:1.7}
.jpm-section{margin-bottom:28px}
.jpm-section h3{margin:0 0 12px;font-size:1.2rem;border-bottom:2px solid #e8eaed;padding-bottom:8px}
.jpm-apply-form-wrapper{margin-top:40px;padding:28px;background:#f8f9fa;border:1px solid #e8eaed;border-radius:10px}
.jpm-apply-form-wrapper h3{margin:0 0 20px;font-size:1.3rem}
.jpm-form-row{margin-bottom:16px}
.jpm-form-row label{display:block;font-weight:600;margin-bottom:6px;font-size:.95rem}
.jpm-form-row .required{color:#c5221f}
.jpm-form-row input[type=text],.jpm-form-row input[type=email],.jpm-form-row input[type=tel],.jpm-form-row textarea,.jpm-form-row select{width:100%;max-width:100%;padding:10px 12px;border:1px solid #dadce0;border-radius:6px;font-size:1rem;box-sizing:border-box}
.jpm-phone-row{display:flex;gap:8px}
.jpm-phone-row select{width:160px;flex-shrink:0}
.jpm-phone-row input{flex:1}
.jpm-form-row input:focus,.jpm-form-row textarea:focus,.jpm-form-row select:focus{outline:none;border-color:#1967d2;box-shadow:0 0 0 2px rgba(25,103,210,.2)}
.jpm-form-message{margin-top:16px;padding:12px 16px;border-radius:6px}
.jpm-form-message.success{background:#e6f4ea;color:#137333;border:1px solid #ceead6}
.jpm-form-message.error{background:#fce8e6;color:#c5221f;border:1px solid #f5c2c0}
.jpm-apply-external{margin-top:32px;text-align:center}
.jpm-no-jobs{padding:40px;text-align:center;color:#5f6368;background:#f8f9fa;border-radius:8px}
@media(max-width:600px){.jpm-job-card-inner{flex-direction:column;align-items:flex-start}.jpm-job-actions{width:100%}.jpm-job-actions .jpm-btn{display:block;text-align:center}.jpm-filter-row{flex-direction:column}.jpm-filter-field{width:100%}.jpm-phone-row{flex-direction:column}.jpm-phone-row select{width:100%}}
