:root { color-scheme: light; font-family: Tahoma, Arial, sans-serif; background: #f4f7fb; color: #17283c; }
* { box-sizing: border-box; }
body { margin: 0; }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px max(6vw, 20px); background:#10243a; color:#fff; }
.brand { color:#fff; text-decoration:none; font-weight:800; font-size:1.35rem; letter-spacing:.04em; }
.brand span { margin-inline-start:8px; color:#71c6bd; font-size:.8rem; }
nav { display:flex; gap:22px; } nav a { color:#e8f0f7; text-decoration:none; }
main { width:min(1100px, 90%); margin:auto; }
.hero { padding:76px 0 58px; max-width:760px; }
.eyebrow { color:#087f78; font-weight:700; }
h1 { margin:12px 0; font-size:clamp(2rem, 5vw, 3.5rem); line-height:1.25; }
.hero p:last-child { color:#52657a; font-size:1.1rem; line-height:1.9; }
.jobs-section, .about { padding:28px 0 54px; }
.section-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px; }
.section-heading span { color:#617489; font-size:.9rem; }
.jobs-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; margin-top:20px; }
.notice, .job-card, .about { background:#fff; border:1px solid #e1e8ef; border-radius:14px; padding:22px; }
.notice { color:#617489; grid-column:1/-1; }
.job-card h3 { margin-top:0; }
.job-card p { color:#617489; line-height:1.7; }
.job-card a { color:#087f78; font-weight:700; }
.job-card-image { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:10px; margin:0 0 12px; background:#edf2f6; }
.job-image-credit { margin:0 0 10px; font-size:.72rem; line-height:1.5; }
.job-image-credit a { color:#64748b; font-weight:400; }
.job-image-review { display:grid; gap:6px; margin:8px 0 14px; }
.job-image-review img { display:block; width:min(100%,360px); aspect-ratio:16/9; object-fit:cover; border-radius:9px; background:#edf2f6; }
.job-image-review p,.job-image-review a { margin:0; font-size:.78rem; line-height:1.5; }
.job-ad-preview { display:grid; grid-template-columns:minmax(0, 1fr); max-width:620px; overflow:hidden; margin:10px 0; border:1px solid #d9e4ec; border-radius:16px; background:#10243a; color:#fff; box-shadow:0 10px 28px #10243a18; }
.job-ad-preview > img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:#263d52; }
.job-ad-content { padding:20px; }
.job-ad-kicker { color:#71c6bd; font-size:.82rem; font-weight:800; }
.job-ad-title { margin:8px 0 12px; font-size:1.45rem; line-height:1.55; }
.job-ad-meta,.job-ad-summary,.job-ad-placeholder { margin:7px 0; color:#e1eaf2; line-height:1.8; }
.job-ad-summary { font-size:1rem; }
.job-ad-placeholder { color:#b8c7d5; font-size:.85rem; }
.job-ad-cta { display:inline-block; margin-top:12px; padding:10px 16px; border-radius:8px; background:#087f78; color:#fff; font-weight:800; }
.job-ad-source,.job-ad-credit { display:block; margin:12px 0 0; color:#c1d0dc; font-size:.72rem; line-height:1.6; }
.job-ad-credit { color:#9bd8d1; }
.job-ad-actions { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 18px; }
.job-detail { padding:28px 0 54px; scroll-margin-top:18px; }
.job-detail[hidden] { display:none; }
.job-detail-back { display:inline-block; margin-bottom:16px; color:#087f78; font-weight:700; text-decoration:none; }
.job-detail-card { overflow:hidden; max-width:900px; margin:auto; border:1px solid #e1e8ef; border-radius:16px; background:#fff; }
.job-detail-image { display:block; width:100%; max-height:390px; aspect-ratio:16/9; object-fit:cover; background:#edf2f6; }
.job-detail-card > .job-image-credit { display:block; margin:8px 22px 0; }
.job-detail-body { padding:clamp(20px,4vw,38px); }
.job-detail-title { margin:8px 0 12px; font-size:clamp(1.7rem,4vw,2.5rem); line-height:1.45; }
.job-detail-lead { color:#617489; line-height:1.8; }
.job-detail-body h2 { margin:26px 0 12px; font-size:1.2rem; }
.job-detail-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:0 18px; margin:0; }
.job-detail-facts dt { margin-top:12px; color:#617489; font-size:.84rem; }
.job-detail-facts dd { margin:4px 0 0; font-weight:700; line-height:1.7; overflow-wrap:anywhere; }
.job-detail-summary { line-height:2; white-space:pre-line; }
.job-detail-disclaimer { margin-top:20px; padding:13px 15px; border-radius:9px; background:#f2f6f9; color:#52657a; font-size:.88rem; line-height:1.8; }
.job-detail-apply { display:inline-block; margin-top:16px; padding:13px 20px; border-radius:9px; background:#087f78; color:#fff; font-weight:800; text-decoration:none; }
footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:24px 5%; background:#10243a; color:#dce7f0; font-size:.85rem; }
@media (max-width:600px) { .site-header { align-items:flex-start; flex-direction:column; } nav { flex-wrap:wrap; } .hero { padding-top:48px; } }
.admin-main { display:grid; gap:20px; padding:32px 0 60px; }
.admin-main h1 { font-size:2rem; }
.admin-main input, .admin-main textarea, .admin-main select { display:block; width:100%; min-width:0; margin-top:7px; padding:11px; border:1px solid #cbd6e2; border-radius:8px; font:inherit; background:#fff; }
.admin-main label { display:block; font-weight:700; }
.admin-main button { padding:10px 15px; border:0; border-radius:8px; background:#087f78; color:white; font:inherit; cursor:pointer; }
.admin-main button:disabled { opacity:.5; cursor:not-allowed; }
.admin-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:18px; }
.admin-form .wide { grid-column:1/-1; }
.admin-form button { align-self:end; }
.admin-list { display:grid; gap:10px; margin-top:18px; }
.admin-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; padding:13px; border:1px solid #e1e8ef; border-radius:10px; background:#fff; }
#message { min-height:1.5em; color:#087f78; }
