/* Careers Portal — reusable, themeable via the variables below */
.cp-portal{
	--cp-navy:#1e3a5f;
	--cp-blue:#2563eb;
	--cp-blue-light:#eaf1ff;
	--cp-text:#1f2937;
	--cp-muted:#6b7280;
	--cp-border:#e5e7eb;
	--cp-bg:#ffffff;
	--cp-radius:12px;
	--cp-shadow:0 2px 6px rgba(16,24,40,.08),0 14px 40px rgba(16,24,40,.10);
	font-family:inherit;
	color:var(--cp-text);
	max-width:1240px;
	margin:0 auto;
	box-sizing:border-box;
}
.cp-portal *{box-sizing:border-box;}

/* ---- Controls bar ---- */
.cp-controls{
	display:flex;
	gap:12px;
	flex-wrap:wrap;
	align-items:stretch;
	margin-bottom:18px;
}
.cp-search{
	flex:1 1 260px;
	display:flex;
	align-items:center;
	gap:8px;
	background:var(--cp-bg);
	border:1px solid var(--cp-border);
	border-radius:10px;
	padding:0 14px;
	min-height:48px;
}
.cp-search svg{width:18px;height:18px;color:var(--cp-muted);flex:none;}
.cp-search input{
	border:0;outline:0;width:100%;font-size:15px;background:transparent;color:var(--cp-text);
}
.cp-select{position:relative;}
.cp-select select{
	appearance:none;-webkit-appearance:none;
	background:var(--cp-bg);
	border:1px solid var(--cp-border);
	border-radius:10px;
	min-height:48px;
	padding:0 38px 0 14px;
	font-size:15px;color:var(--cp-text);
	cursor:pointer;width:100%;
}
.cp-select::after{
	content:"";position:absolute;right:14px;top:50%;width:9px;height:9px;
	border-right:2px solid var(--cp-muted);border-bottom:2px solid var(--cp-muted);
	transform:translateY(-65%) rotate(45deg);pointer-events:none;
}
.cp-controls .cp-select{flex:0 1 200px;}
.cp-reset{
	display:inline-flex;align-items:center;gap:8px;
	background:var(--cp-blue-light);
	color:var(--cp-blue);
	border:1px solid #d4e2ff;
	border-radius:10px;
	padding:0 18px;min-height:48px;
	font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;
}
.cp-reset svg{width:16px;height:16px;}
.cp-reset:hover{background:#dbe7ff;}

/* ---- Sub bar ---- */
.cp-subbar{
	display:flex;justify-content:space-between;align-items:center;
	margin-bottom:12px;flex-wrap:wrap;gap:10px;
}
.cp-count{font-size:15px;color:var(--cp-text);}
.cp-count strong{color:var(--cp-navy);}
.cp-sort{display:flex;align-items:center;gap:10px;}
.cp-sort label{font-size:14px;color:var(--cp-muted);}
.cp-select--sm select{min-height:40px;font-size:14px;padding:0 34px 0 12px;}

/* ---- List ---- */
.cp-list{
	background:var(--cp-bg);
	border:1px solid var(--cp-border);
	border-radius:var(--cp-radius);
	box-shadow:var(--cp-shadow);
	overflow:hidden;
}
.cp-item{border-bottom:1px solid var(--cp-border);transition:background .15s;}
.cp-item:last-child{border-bottom:0;}
.cp-item.cp-open{background:#fafcff;}

.cp-row{
	display:grid;
	grid-template-columns:minmax(180px,1.7fr) auto 1fr 1fr 1fr auto;
	align-items:center;
	gap:18px;
	padding:18px 24px;
}

.cp-title-col{display:flex;flex-direction:column;gap:3px;min-width:0;}
.cp-title{
	color:var(--cp-navy);font-weight:600;font-size:16px;text-decoration:none;cursor:pointer;line-height:1.3;
	display:inline-block;outline:none;
}
.cp-title:hover{color:#16304f;}
.cp-title:focus-visible{outline:2px solid var(--cp-navy);outline-offset:2px;border-radius:3px;}
.cp-status{display:flex;align-items:center;}
.cp-open-badge{
	display:inline-flex;align-items:center;
	padding:2px 9px;border-radius:20px;
	background:#e7f7ec;color:#15803d;
	font-size:11px;font-weight:600;letter-spacing:.3px;line-height:1.4;
}
.cp-open-badge::before{
	content:"";width:6px;height:6px;border-radius:50%;background:#22c55e;margin-right:5px;
}
.cp-posted{color:var(--cp-muted);font-size:12.5px;}

.cp-meta{display:flex;flex-direction:column;gap:3px;}
.cp-meta-label{font-size:12px;color:var(--cp-muted);}
.cp-meta-val{font-size:14px;color:var(--cp-text);font-weight:500;}

.cp-actions{display:flex;align-items:center;gap:8px;}
.cp-btn{
	background:var(--cp-navy);color:#fff;border:0;border-radius:7px;
	padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;
	transition:background .15s;
}
.cp-btn:hover{background:#16304f;}
.cp-item.cp-open .cp-btn{background:var(--cp-blue);}
.cp-apply-btn{
	display:inline-flex;align-items:center;justify-content:center;
	background:#fff;color:var(--cp-blue);border:1.5px solid var(--cp-blue);
	border-radius:7px;padding:6.5px 16px;font-size:13px;font-weight:600;font-family:inherit;
	text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s;
}
.cp-apply-btn:hover{background:var(--cp-blue);color:#fff;}

/* ---- Slide-down detail ---- */
.cp-detail{overflow:hidden;}
.cp-detail-inner{
	padding:4px 24px 26px 24px;
	font-size:15px;line-height:1.65;color:#374151;
	border-top:1px dashed var(--cp-border);
	margin-top:-2px;
}
.cp-detail-inner h1,.cp-detail-inner h2,.cp-detail-inner h3{margin:18px 0 8px;color:var(--cp-navy);}
.cp-detail-inner ul{padding-left:20px;}
.cp-detail-inner p{margin:0 0 12px;}
.cp-apply-wrap{margin-top:18px;}
.cp-apply{
	display:inline-block;background:var(--cp-blue);color:#fff;text-decoration:none;
	padding:11px 26px;border:0;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;
}
.cp-apply:hover{background:#1d4ed8;}

/* ---- Application modal ---- */
.cp-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px;}
.cp-modal[hidden]{display:none;}
.cp-modal-overlay{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(2px);}
.cp-modal-box{
	position:relative;background:#fff;border-radius:14px;width:100%;max-width:460px;
	padding:28px 26px 24px;box-shadow:0 20px 60px rgba(16,24,40,.25);
	max-height:90vh;overflow-y:auto;
}
.cp-modal-close{
	position:absolute;top:12px;right:14px;border:0;background:transparent;
	font-size:26px;line-height:1;color:var(--cp-muted);cursor:pointer;padding:4px;
}
.cp-modal-close:hover{color:var(--cp-text);}
.cp-modal-box h3{margin:0 0 4px;font-size:20px;color:var(--cp-navy);}
.cp-modal-job{margin:0 0 18px;color:var(--cp-muted);font-size:14px;}
.cp-modal-job strong{color:var(--cp-text);}
.cp-field{margin-bottom:14px;}
.cp-field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:var(--cp-text);}
.cp-field label span{color:#dc2626;}
.cp-field input[type=text],.cp-field input[type=email],.cp-field input[type=tel]{
	width:100%;border:1px solid var(--cp-border);border-radius:8px;padding:10px 12px;font-size:15px;color:var(--cp-text);
}
.cp-field input:focus{outline:none;border-color:var(--cp-blue);box-shadow:0 0 0 3px rgba(37,99,235,.12);}
.cp-field input[type=file]{width:100%;font-size:14px;}
.cp-submit{
	width:100%;background:var(--cp-navy);color:#fff;border:0;border-radius:8px;
	padding:12px;font-size:15px;font-weight:600;cursor:pointer;margin-top:6px;transition:background .15s;
}
.cp-submit:hover{background:#16304f;}
.cp-submit:disabled{opacity:.7;cursor:default;}
.cp-modal-msg{margin:12px 0 4px;padding:10px 12px;border-radius:8px;font-size:14px;}
.cp-msg-ok{background:#e7f7ec;color:#15803d;}
.cp-msg-err{background:#fde8e8;color:#b91c1c;}

/* Honeypot — visually and programmatically hidden from real users,
   positioned off-screen rather than display:none so bots still fill it. */
.cp-hp{position:absolute!important;left:-9999px!important;top:-9999px!important;
	width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none;}

.cp-empty,.cp-noresults{padding:30px;text-align:center;color:var(--cp-muted);}

/* ---- Responsive ---- */

/* Tablet (≤1024px): two-column meta grid under the title, actions full row */
@media (max-width:1024px){
	.cp-row{
		grid-template-columns:1fr auto;
		grid-template-areas:
			"title status"
			"m1    m2"
			"m3    m3"
			"act   act";
		gap:14px 18px;
		padding:18px 20px;
	}
	.cp-title-col{grid-area:title;}
	.cp-status{grid-area:status;align-items:flex-start;}
	.cp-meta{padding-top:10px;border-top:1px solid var(--cp-border);}
	.cp-meta:nth-of-type(1){grid-area:m1;}
	.cp-meta:nth-of-type(2){grid-area:m2;}
	.cp-meta:nth-of-type(3){grid-area:m3;border-top:0;padding-top:0;}
	.cp-actions{grid-area:act;width:100%;}
	.cp-actions .cp-btn,.cp-actions .cp-apply-btn{flex:1;padding:11px 16px;font-size:14px;}
}

/* Mobile (≤640px): everything stacks, meta as label/value rows */
@media (max-width:640px){
	.cp-row{
		grid-template-columns:1fr auto;
		grid-template-areas:
			"title status"
			"m1    m1"
			"m2    m2"
			"m3    m3"
			"act   act";
		gap:10px;
		padding:16px;
	}
	.cp-title-col{grid-area:title;}
	.cp-status{grid-area:status;align-items:flex-start;}
	.cp-meta{grid-column:1 / -1;flex-direction:row;justify-content:space-between;align-items:center;
		border-top:1px solid var(--cp-border);padding-top:9px;}
	.cp-meta:nth-of-type(1){grid-area:m1;}
	.cp-meta:nth-of-type(2){grid-area:m2;}
	.cp-meta:nth-of-type(3){grid-area:m3;}
	.cp-meta-label{font-weight:600;}
	.cp-actions{grid-area:act;flex-direction:column;gap:8px;}
	.cp-actions .cp-btn,.cp-actions .cp-apply-btn{width:100%;padding:12px;font-size:14px;}
	.cp-detail-inner{padding:4px 16px 20px;}

	.cp-controls{flex-direction:column;}
	.cp-controls .cp-select,.cp-reset,.cp-search{flex:1 1 auto;width:100%;}
	.cp-subbar{flex-direction:column;align-items:flex-start;gap:8px;}
}
