/* BAMS Job Portal - Frontend Styles */
.bjp-wrapper, .bjp-single-wrapper { --bjp-primary:#0d9488; --bjp-primary-dark:#0f766e; --bjp-green:#15803d; --bjp-orange:#c2410c; --bjp-red:#b91c1c; --bjp-bg:#f0fdfa; --bjp-border:#e2e8f0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }

/* Filter bar */
.bjp-filter-bar { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; padding:16px; background:linear-gradient(135deg,#f0fdfa,#f8fafc); border:1px solid var(--bjp-border); border-radius:12px; }
.bjp-filter-bar input, .bjp-filter-bar select { padding:10px 12px; border:1px solid var(--bjp-border); border-radius:8px; font-size:14px; background:#fff; flex:1; min-width:160px; }
.bjp-filter-bar input:focus, .bjp-filter-bar select:focus { outline:none; border-color:var(--bjp-primary); box-shadow:0 0 0 3px rgba(13,148,136,.15); }

/* Grid */
.bjp-jobs-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; }
.bjp-loading { text-align:center; padding:20px; color:#64748b; font-weight:600; }

/* Card */
.bjp-job-card { background:#fff; border:1px solid var(--bjp-border); border-left:4px solid var(--bjp-primary); border-radius:14px; padding:18px; box-shadow:0 1px 3px rgba(0,0,0,.04); transition:transform .18s ease, box-shadow .18s ease; display:flex; flex-direction:column; }
.bjp-job-card:hover { transform:translateY(-4px); box-shadow:0 12px 24px rgba(15,23,42,.10); }
.bjp-card-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; flex-wrap:wrap; gap:6px; }
.bjp-last-date { font-size:12px; color:#64748b; font-weight:600; }
.bjp-card-title { margin:6px 0 8px; font-size:18px; line-height:1.35; }
.bjp-card-title a { color:#0f172a; text-decoration:none; }
.bjp-card-title a:hover { color:var(--bjp-primary); }
.bjp-employer { color:#334155; font-weight:600; font-size:13.5px; margin:0 0 6px; }
.bjp-designation, .bjp-vacancy, .bjp-experience, .bjp-location { font-size:13.5px; color:#475569; margin:2px 0; }
.bjp-card-footer { display:flex; gap:8px; margin-top:14px; }

/* Buttons */
.bjp-btn { flex:1; text-align:center; padding:10px 14px; border-radius:8px; font-size:13.5px; font-weight:700; text-decoration:none; transition:opacity .15s ease; }
.bjp-btn:hover { opacity:.88; }
.bjp-btn-details { background:#e2e8f0; color:#1e293b; }
.bjp-btn-apply { background:linear-gradient(135deg,var(--bjp-primary),var(--bjp-primary-dark)); color:#fff; }

/* Badges */
.bjp-badge { display:inline-block; padding:4px 11px; border-radius:999px; font-size:11.5px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; }
.bjp-badge-upcoming { background:#dbeafe; color:#1e3a8a; }
.bjp-badge-active { background:#dcfce7; color:var(--bjp-green); }
.bjp-badge-closing-soon { background:#ffedd5; color:var(--bjp-orange); }
.bjp-badge-closed { background:#fee2e2; color:var(--bjp-red); }

.bjp-no-jobs { padding:30px; text-align:center; color:#64748b; grid-column:1/-1; }

/* Ticker */
.bjp-ticker { display:flex; align-items:center; background:#134e4a; border-radius:10px; overflow:hidden; margin-bottom:24px; }
.bjp-ticker-label { background:var(--bjp-primary); color:#fff; font-weight:800; font-size:12.5px; text-transform:uppercase; padding:10px 16px; white-space:nowrap; }
.bjp-ticker-track { overflow:hidden; flex:1; }
.bjp-ticker-inner { display:flex; gap:36px; white-space:nowrap; animation:bjp-scroll 25s linear infinite; padding:10px 16px; }
.bjp-ticker-inner:hover { animation-play-state:paused; }
.bjp-ticker-item { color:#e2e8f0; text-decoration:none; font-size:13.5px; font-weight:600; }
.bjp-ticker-item:hover { color:#fff; text-decoration:underline; }
@keyframes bjp-scroll { 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }

/* Widget */
.bjp-widget-list { list-style:none; margin:0; padding:0; }
.bjp-widget-item { padding:8px 0; border-bottom:1px solid var(--bjp-border); font-size:13.5px; }
.bjp-widget-item a { text-decoration:none; color:#1e293b; font-weight:600; }
.bjp-widget-item .bjp-badge { margin-left:6px; }

/* Single job page */
.bjp-single-wrapper { max-width:820px; margin:0 auto; padding:10px 0 40px; }
.bjp-single-header { margin-bottom:20px; }
.bjp-single-title { font-size:30px; margin:10px 0 6px; color:#0f172a; }
.bjp-single-employer { font-size:16px; color:#475569; font-weight:600; }
.bjp-detail-table { width:100%; border-collapse:collapse; margin:18px 0; background:#fff; border:1px solid var(--bjp-border); border-radius:12px; overflow:hidden; }
.bjp-detail-table th, .bjp-detail-table td { padding:12px 16px; text-align:left; font-size:14.5px; border-bottom:1px solid var(--bjp-border); }
.bjp-detail-table th { width:250px; background:var(--bjp-bg); color:#334155; font-weight:700; }
.bjp-detail-table tr:last-child th, .bjp-detail-table tr:last-child td { border-bottom:none; }
.bjp-single-content { margin:20px 0; line-height:1.7; color:#334155; }
.bjp-single-links { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0; }
.bjp-single-links .bjp-btn { flex:none; min-width:200px; padding:13px 20px; }
.bjp-back-link { margin-top:20px; }
.bjp-back-link a { color:var(--bjp-primary); text-decoration:none; font-weight:600; }

@media (max-width:640px) {
	.bjp-filter-bar { flex-direction:column; }
	.bjp-jobs-grid { grid-template-columns:1fr; }
	.bjp-single-links .bjp-btn { flex:1; min-width:auto; }
}
