:root{font-family:Inter,system-ui,Arial;color:#163347;background:#f3f7f8}*{box-sizing:border-box}body{margin:0}header{background:#09273b;color:white;padding:20px max(24px,calc((100vw - 1160px)/2));display:flex;justify-content:space-between;gap:20px;align-items:center}header a{color:white;text-decoration:none}header strong{font-size:21px}nav{display:flex;gap:20px;flex-wrap:wrap}main{width:min(1120px,calc(100% - 36px));margin:40px auto 100px}h1{font-size:clamp(32px,5vw,56px);margin:8px 0}p{line-height:1.7;color:#516b76}.eyebrow{color:#13858a;letter-spacing:.16em;font-size:12px;font-weight:750}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0}input,select,textarea{font:inherit;padding:12px;border:1px solid #cbd9df;border-radius:9px;background:#fff;max-width:100%}input{flex:2;min-width:210px}select{flex:1;min-width:175px}.listing{background:white;border:1px solid #d7e4e8;padding:23px;border-radius:14px;margin-bottom:15px;box-shadow:0 12px 30px #14394b08}.listing h2{font-size:22px;margin:0}.meta{color:#50727c;margin:8px 0;font-size:14px}.detail{font-size:14px;white-space:pre-line}.apply{display:inline-block;background:#087b80;color:white;padding:11px 19px;border-radius:8px;text-decoration:none;font-weight:700}.note{background:#eaf4f4;padding:14px;border-radius:9px}footer{background:#09273b;color:#fff;text-align:center;padding:23px}footer a{color:inherit}@media(max-width:650px){header{display:block}nav{margin-top:12px}}


.toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px;background:#fff;padding:18px;border:1px solid #d5e4e6;border-radius:16px}
.toolbar label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#244b5b}
.toolbar label input,.toolbar label select{width:100%;min-width:0;flex:auto}
.filter-actions{display:flex;align-items:end}.filter-actions button,.secondary{border:1px solid #a7cbcc;background:#e8f3f3;border-radius:9px;padding:12px 16px;cursor:pointer;color:#134353;font-weight:700}
#status{font-weight:700;font-size:16px;color:#24475b}.source-status{font-size:13px;margin:-7px 0 16px}
.source-label{font-size:11px;font-weight:800;color:#087c82;letter-spacing:.12em}
.job-tags,.listing-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:15px 0}
.job-tag{background:#eef5f7;color:#23495a;padding:6px 11px;border-radius:18px;font-size:12px;font-weight:650}
.listing-actions{margin-bottom:0}.listing .detail{color:#455e6a}
.job-dialog{width:min(690px,calc(100% - 20px));max-height:85vh;overflow:auto;border:1px solid #c0d6de;border-radius:18px;padding:26px;box-shadow:0 22px 80px #1235}
.job-dialog::backdrop{background:#082839aa}.job-dialog h2{font-size:26px;margin:13px 0}.job-dialog h3{font-size:15px}.dialog-text{white-space:pre-line}
.job-dialog>.secondary{float:right}.note a{color:#065c6d}
@media(max-width:620px){main{margin-top:24px}.toolbar{grid-template-columns:1fr}.listing{padding:18px}.job-dialog{padding:18px}}

.pagination{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin:28px 0 35px}.pagination button{font:inherit;padding:10px 16px;border-radius:9px;border:1px solid #aacdd0;cursor:pointer;font-weight:700}.pagination button:disabled{opacity:.45;cursor:not-allowed}.source-status{line-height:1.6}.listing:focus-within{border-color:#238b91}button:focus-visible,a:focus-visible{outline:3px solid #0c8b97;outline-offset:3px}


/* Maritime vacancy facts — verified source fields instead of invented labels */
.job-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 13px}
.job-fact{border:1px solid #dce9ea;background:#f5fafa;border-radius:11px;padding:11px 13px;min-width:0;display:flex;flex-direction:column;gap:5px}
.job-fact>span{font-size:10px;letter-spacing:.09em;font-weight:800;text-transform:uppercase;color:#6a8993}
.job-fact>strong{font-size:13px;color:#1e4555;line-height:1.4;overflow-wrap:anywhere}
.job-fact-pay{background:#e9f5ef;border-color:#cae6d5}
.job-fact-pay strong{color:#14614b;font-size:15px}
.salary-caution{grid-column:1/-1;color:#7d5a21;font-size:11px;line-height:1.5;margin:0 2px}
.listing .job-tags{margin-top:11px}
.listing .job-facts{max-width:100%}
.job-dialog .job-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.job-dialog .job-fact{padding:13px}
@media(max-width:520px){
 .job-facts{grid-template-columns:1fr 1fr;gap:8px}
 .job-fact{padding:9px 10px}
 .job-fact>strong{font-size:12px}
 .job-fact-pay strong{font-size:13px}
 .job-dialog .job-facts{grid-template-columns:1fr}
}

.job-quality-badge,.job-partial-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:750;border-radius:999px;padding:5px 10px;margin:5px 8px 11px 0}
.job-quality-badge{color:#155b40;background:#e3f4e8;border:1px solid #b6ddc3}
.job-partial-badge{color:#79561f;background:#fff7e5;border:1px solid #eed49d}
.listing:has(.job-quality-badge){border-left:3px solid #279364}
.listing:has(.job-partial-badge){border-left:3px solid #e1ac4f}
