/* Job-site edition: public listing + worker job discovery */
:root{
  --jobs-navy:#071a2f;
  --jobs-blue:#1769ff;
  --jobs-blue-dark:#0e4fcb;
  --jobs-blue-soft:#eaf2ff;
  --jobs-yellow:#ffc928;
  --jobs-text:#111827;
  --jobs-muted:#64748b;
  --jobs-line:#e1e7ef;
  --jobs-bg:#f5f7fb;
  --jobs-white:#fff;
  --jobs-green:#087a55;
  --jobs-red:#c1273d;
  --jobs-shadow:0 12px 32px rgba(15,23,42,.08);
}
.jobsite-page{color:var(--jobs-text)}
.jobsite-hero{position:relative;overflow:hidden;background:linear-gradient(130deg,var(--jobs-navy),#0d3158 72%,#145095);border-radius:28px;color:#fff;padding:52px 56px;margin-bottom:24px;box-shadow:0 22px 55px rgba(7,26,47,.18)}
.jobsite-hero:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-170px;top:-230px;background:rgba(23,105,255,.24)}
.jobsite-hero:before{content:"";position:absolute;width:250px;height:250px;border-radius:50%;right:120px;bottom:-210px;background:rgba(255,201,40,.16)}
.jobsite-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:38px;align-items:center}
.jobsite-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:900;letter-spacing:.15em;color:#a8c5e2;text-transform:uppercase}
.jobsite-hero h1{font-size:clamp(38px,5.3vw,66px);line-height:1.04;margin:14px 0 18px;letter-spacing:-.04em}
.jobsite-hero p{max-width:670px;color:#c8d8e8;line-height:1.85;font-size:16px;margin:0}
.jobsite-hero-metric{position:relative;z-index:1;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:26px;backdrop-filter:blur(8px)}
.jobsite-hero-metric strong{display:block;font-size:52px;color:var(--jobs-yellow);line-height:1}
.jobsite-hero-metric span{display:block;margin-top:8px;font-weight:800}
.jobsite-hero-metric p{font-size:12px;line-height:1.7;margin-top:18px;color:#b7cbe0}
.jobsite-search-box{background:#fff;border:1px solid var(--jobs-line);border-radius:20px;padding:18px;box-shadow:var(--jobs-shadow);margin:-1px 0 24px;position:relative;z-index:3}
.jobsite-search-title{font-size:17px;font-weight:950;margin-bottom:12px}
.jobsite-search-grid{display:grid;grid-template-columns:minmax(180px,2fr) minmax(130px,1.2fr) minmax(130px,1.2fr) minmax(130px,1.1fr) auto;gap:10px}
.jobsite-input,.jobsite-select{width:100%;height:48px;padding:0 14px;border:1px solid #ccd6e2;border-radius:12px;background:#fff;color:var(--jobs-text);font-size:14px;outline:none}
.jobsite-input:focus,.jobsite-select:focus{border-color:var(--jobs-blue);box-shadow:0 0 0 3px rgba(23,105,255,.12)}
.jobsite-search-button{height:48px;border:0;border-radius:12px;background:var(--jobs-blue);color:#fff;font-weight:900;padding:0 22px;cursor:pointer;box-shadow:0 8px 18px rgba(23,105,255,.22)}
.jobsite-search-button:hover{background:var(--jobs-blue-dark)}
.jobsite-section{margin:34px 0}
.jobsite-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}
.jobsite-section-head h2{font-size:26px;margin:0;letter-spacing:-.025em}
.jobsite-section-head p{margin:5px 0 0;color:var(--jobs-muted);font-size:13px}
.jobsite-more{color:var(--jobs-blue);font-weight:850;font-size:13px}
.jobsite-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.jobsite-category{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px 18px;background:#fff;border:1px solid var(--jobs-line);border-radius:15px;font-weight:850;transition:.18s ease}
.jobsite-category:hover{border-color:#aac6ff;transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,23,42,.06)}
.jobsite-category small{color:var(--jobs-muted);font-weight:700}
.jobsite-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:22px;align-items:start}
.jobsite-sidebar{position:sticky;top:88px;background:#fff;border:1px solid var(--jobs-line);border-radius:18px;padding:19px;box-shadow:0 3px 10px rgba(15,23,42,.025)}
.jobsite-sidebar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.jobsite-sidebar h3{margin:0;font-size:18px}
.jobsite-clear{font-size:12px;color:var(--jobs-blue);font-weight:800}
.jobsite-filter-group{padding:16px 0;border-top:1px solid #edf1f5}
.jobsite-filter-group:first-of-type{border-top:0;padding-top:5px}
.jobsite-filter-label{display:block;font-size:12px;color:var(--jobs-muted);font-weight:900;margin-bottom:8px}
.jobsite-check{display:flex;align-items:center;gap:8px;font-size:13px;margin:9px 0;cursor:pointer}
.jobsite-check input{width:17px!important;height:17px;accent-color:var(--jobs-blue)}
.jobsite-apply{width:100%;height:43px;border:0;border-radius:11px;background:var(--jobs-blue);color:#fff;font-weight:900;cursor:pointer}
.jobsite-results-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.jobsite-result-count{font-size:24px;font-weight:950}
.jobsite-result-count small{font-size:12px;color:var(--jobs-muted);font-weight:700;margin-left:6px}
.jobsite-sort{height:42px;padding:0 12px;border:1px solid #ccd6e2;border-radius:11px;background:#fff;font-size:13px}
.jobsite-active-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.jobsite-filter-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:var(--jobs-blue-soft);color:#1555bd;font-size:12px;font-weight:800}
.jobsite-filter-chip b{font-size:15px;line-height:1}
.jobsite-list{display:grid;gap:14px}
.jobsite-card{position:relative;background:#fff;border:1px solid var(--jobs-line);border-radius:18px;padding:21px;box-shadow:0 3px 12px rgba(15,23,42,.035);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.jobsite-card:hover{transform:translateY(-2px);border-color:#b9cdf2;box-shadow:0 12px 28px rgba(15,23,42,.075)}
.jobsite-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.jobsite-card-main{min-width:0;flex:1}
.jobsite-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}
.jobsite-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:950;letter-spacing:.02em}
.jobsite-badge.new{background:#dbeafe;color:#1d4ed8}.jobsite-badge.urgent{background:#ffe4e8;color:#b4233a}.jobsite-badge.transport{background:#dcfce7;color:#166534}.jobsite-badge.qualification{background:#fff2bf;color:#805700}.jobsite-badge.beginner{background:#ede9fe;color:#5b21b6}.jobsite-badge.one-day{background:#e0f2fe;color:#075985}
.jobsite-facility{font-size:12px;color:var(--jobs-muted);font-weight:800;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jobsite-card h3{font-size:22px;line-height:1.35;margin:0 0 12px;letter-spacing:-.02em}
.jobsite-card h3 a:hover{color:var(--jobs-blue)}
.jobsite-card-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:10px 18px;margin:12px 0 13px}
.jobsite-fact{min-width:0}
.jobsite-fact span{display:block;color:var(--jobs-muted);font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px}
.jobsite-fact b{font-size:13px;line-height:1.45}
.jobsite-wage{font-size:28px!important;color:var(--jobs-navy);font-weight:950!important;white-space:nowrap}
.jobsite-summary{font-size:13px;color:#475569;line-height:1.75;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jobsite-card-footer{display:flex;align-items:center;justify-content:space-between;gap:13px;border-top:1px solid #edf1f5;padding-top:14px}
.jobsite-slots{font-size:12px;color:var(--jobs-muted);font-weight:750}
.jobsite-slots strong{color:var(--jobs-red)}
.jobsite-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.jobsite-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border:1px solid var(--jobs-line);border-radius:10px;background:#fff;color:var(--jobs-text);font-weight:900;font-size:12px;cursor:pointer}
.jobsite-button.primary{border-color:var(--jobs-blue);background:var(--jobs-blue);color:#fff}.jobsite-button.primary:hover{background:var(--jobs-blue-dark)}
.jobsite-button.favorite{width:40px;padding:0;font-size:19px;color:#8a94a3}.jobsite-button.favorite.on{background:#fff8d9;color:#d18a00;border-color:#f3d777}
.jobsite-button[disabled]{opacity:.5;cursor:not-allowed}
.jobsite-state{font-size:12px;font-weight:900;color:var(--jobs-green);background:#e8fff5;padding:8px 10px;border-radius:10px}
.jobsite-pagination{display:flex;justify-content:center;align-items:center;gap:7px;margin:24px 0 0}
.jobsite-page-link{display:grid;place-items:center;min-width:40px;height:40px;border:1px solid var(--jobs-line);border-radius:10px;background:#fff;font-weight:850;font-size:13px}
.jobsite-page-link.current{background:var(--jobs-blue);color:#fff;border-color:var(--jobs-blue)}
.jobsite-empty{background:#fff;border:1px dashed #c9d3df;border-radius:18px;padding:58px 24px;text-align:center;color:var(--jobs-muted)}
.jobsite-empty strong{display:block;color:var(--jobs-text);font-size:20px;margin-bottom:7px}
.jobsite-save-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--jobs-line);border-radius:14px;padding:12px 14px;margin-bottom:14px}
.jobsite-save-panel form{display:flex;gap:8px;flex:1;justify-content:flex-end}.jobsite-save-panel input{max-width:240px;height:40px}
.jobsite-saved{display:flex;gap:7px;overflow:auto;margin-bottom:14px;padding-bottom:3px}.jobsite-saved-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;background:#fff;border:1px solid var(--jobs-line);border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800}.jobsite-saved-item button{border:0;background:transparent;color:#94a3b8;cursor:pointer}
.jobsite-recent{margin-top:28px}.jobsite-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.jobsite-mini-card{background:#fff;border:1px solid var(--jobs-line);border-radius:14px;padding:15px}.jobsite-mini-card span{display:block;color:var(--jobs-muted);font-size:10px}.jobsite-mini-card strong{display:block;margin:6px 0;font-size:14px}.jobsite-mini-card b{font-size:15px;color:var(--jobs-blue)}
.jobsite-detail-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.65fr);gap:22px;align-items:start}
.jobsite-detail-main,.jobsite-detail-side{display:grid;gap:16px}
.jobsite-detail-card{background:#fff;border:1px solid var(--jobs-line);border-radius:19px;padding:24px;box-shadow:0 4px 15px rgba(15,23,42,.04)}
.jobsite-detail-card h1{font-size:34px;line-height:1.25;margin:9px 0 13px;letter-spacing:-.035em}
.jobsite-detail-card h2{font-size:20px;margin:0 0 15px}.jobsite-detail-card h3{font-size:16px;margin:22px 0 8px}
.jobsite-detail-lead{line-height:1.9;color:#3d4b5e}
.jobsite-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.jobsite-detail-fact{padding:13px;background:#f7f9fc;border-radius:12px}.jobsite-detail-fact span{display:block;color:var(--jobs-muted);font-size:10px;font-weight:900;margin-bottom:5px}.jobsite-detail-fact b{font-size:14px}
.jobsite-sticky{position:sticky;top:88px}.jobsite-apply-card .jobsite-wage{font-size:36px!important;margin-bottom:5px}.jobsite-apply-card textarea{min-height:92px;margin:10px 0}.jobsite-apply-card .jobsite-button{width:100%;min-height:48px;font-size:14px}.jobsite-application-note{padding:12px;border-radius:11px;background:#eff6ff;color:#1e4e94;font-size:13px;margin:12px 0}
.jobsite-facility-box{display:grid;gap:7px;font-size:13px}.jobsite-facility-box strong{font-size:17px}.jobsite-back{display:inline-flex;margin-bottom:13px;color:var(--jobs-blue);font-size:13px;font-weight:850}
.jobsite-top-search{display:grid;grid-template-columns:2fr 1.3fr 1.2fr auto;gap:9px}
.jobsite-mobile-filter{display:none}

@media(max-width:980px){
 .jobsite-hero{padding:42px}.jobsite-hero-inner{grid-template-columns:1fr}.jobsite-hero-metric{display:none}
 .jobsite-search-grid{grid-template-columns:1fr 1fr}.jobsite-search-button{grid-column:span 2}
 .jobsite-layout{grid-template-columns:220px minmax(0,1fr)}
 .jobsite-card-grid{grid-template-columns:1fr 1fr}.jobsite-mini-grid{grid-template-columns:repeat(2,1fr)}
 .jobsite-category-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
 .jobsite-hero{padding:30px 24px;border-radius:20px}.jobsite-hero h1{font-size:38px}.jobsite-hero p{font-size:14px}
 .jobsite-search-box{padding:13px}.jobsite-search-grid,.jobsite-top-search{grid-template-columns:1fr}.jobsite-search-button{grid-column:auto}
 .jobsite-layout{grid-template-columns:1fr}.jobsite-sidebar{display:none;position:static}.jobsite-sidebar.open{display:block}
 .jobsite-mobile-filter{display:inline-flex}
 .jobsite-results-head{align-items:flex-start}.jobsite-result-count{font-size:21px}
 .jobsite-card{padding:17px}.jobsite-card h3{font-size:19px;padding-right:26px}.jobsite-card-grid{grid-template-columns:1fr 1fr;gap:10px}.jobsite-fact:first-child{grid-column:span 2}
 .jobsite-card-footer{align-items:flex-start;flex-direction:column}.jobsite-actions{width:100%;display:grid;grid-template-columns:40px 1fr 1fr}.jobsite-actions form{display:contents}.jobsite-actions .jobsite-button{width:100%}
 .jobsite-save-panel{align-items:flex-start;flex-direction:column}.jobsite-save-panel form{width:100%;display:grid;grid-template-columns:1fr auto}.jobsite-save-panel input{max-width:none}
 .jobsite-detail-layout{grid-template-columns:1fr}.jobsite-sticky{position:static}.jobsite-detail-card{padding:19px}.jobsite-detail-card h1{font-size:27px}.jobsite-detail-facts{grid-template-columns:1fr}
 .jobsite-category-grid,.jobsite-mini-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
 .jobsite-category-grid,.jobsite-mini-grid{grid-template-columns:1fr}.jobsite-card-grid{grid-template-columns:1fr}.jobsite-fact:first-child{grid-column:auto}.jobsite-actions{grid-template-columns:40px 1fr}.jobsite-actions .primary{grid-column:span 2}.jobsite-section-head{align-items:flex-start;flex-direction:column}.jobsite-search-title{font-size:15px}
}
