/* ISSCO Step 06 – archive polish. Global Tailwind CSS is loaded by the theme. */
[data-issco-job-archive] { scroll-margin-top: 90px; }
[data-issco-job-archive] input:focus-visible,
[data-issco-job-archive] select:focus-visible,
[data-issco-job-archive] button:focus-visible,
[data-issco-job-archive] a:focus-visible { outline: 2px solid #126CA9; outline-offset: 2px; }
.issco-page-link a,.issco-page-link span { display:inline-flex; justify-content:center; align-items:center; min-width: 36px; min-height: 36px; padding:0 11px; border:1px solid #cbd5e1; border-radius:8px; color:#092750; font-size:13px; font-weight:600; background:#fff; }
.issco-page-link .current { background:#092750; color:#fff; border-color:#092750; }
.issco-page-link a:hover {background:#f1f5f9;}

/* Step 07 - real loading block, no Tailwind animation dependency. */
#issco-job-results.issco-results-is-loading > :not(#issco-ajax-loading) { display: none !important; }
#issco-ajax-loading[hidden] { display: none !important; }
#issco-ajax-loading { display: block; }
.issco-loading-title, .issco-loading-card { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:22px; }
.issco-loading-title { margin-bottom:14px; }
.issco-loading-card { margin-top:14px; box-shadow:0 4px 18px rgba(9,39,80,.05); }
.issco-loading-message { display:flex; align-items:center; gap:10px; font-size:13px; font-weight:600; color:#126CA9; padding:8px 4px 2px; }
.issco-loading-spinner { display:inline-block; width:18px; height:18px; border:2px solid #d7e7f3; border-top-color:#126CA9; border-radius:50%; animation:issco-loading-spin .8s linear infinite; }
.issco-skeleton-line { height:13px; border-radius:5px; background:linear-gradient(100deg,#eef2f7 20%,#dfe9f4 38%,#eef2f7 56%); background-size:200% 100%; animation:issco-loading-shimmer 1.35s ease-in-out infinite; }
.issco-skeleton-title { height:21px; width:50%; margin-bottom:12px; }
.issco-skeleton-subtitle { height:12px; width:30%; }
.issco-skeleton-badge { height:19px; width:105px; margin-bottom:17px; }
.issco-skeleton-heading { height:23px; width:65%; margin-bottom:18px; }
.issco-skeleton-divider { height:1px; background:#edf2f7; margin:0 0 18px; }
.issco-skeleton-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px 20px; }
.issco-skeleton-fields .issco-skeleton-line:nth-child(3n + 2) { width:75%; }
.issco-skeleton-fields .issco-skeleton-line:nth-child(3n + 3) { width:88%; }
@keyframes issco-loading-shimmer { from {background-position:200% 0;} to {background-position:-200% 0;} }
@keyframes issco-loading-spin { to {transform:rotate(360deg);} }
@media(max-width:640px) { .issco-loading-title,.issco-loading-card{padding:16px;} .issco-skeleton-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;} .issco-skeleton-title{width:75%;} }
@media(prefers-reduced-motion:reduce) { .issco-skeleton-line,.issco-loading-spinner{animation:none;} }

/* Step 07 Responsive – scoped to ISSCO recruitment archive only. */
[data-issco-job-archive], [data-issco-job-archive] * { box-sizing: border-box; }
[data-issco-job-archive] { min-width: 0; }
[data-issco-job-archive] .issco-job-results,
[data-issco-job-archive] .issco-job-sidebar,
[data-issco-job-archive] .issco-job-card { min-width: 0; }
[data-issco-job-archive] .issco-job-card h3,
[data-issco-job-archive] .issco-job-card dd,
[data-issco-job-archive] .issco-job-card span { overflow-wrap: anywhere; }
[data-issco-job-archive] .issco-job-card a,
[data-issco-job-archive] .issco-open-job-filters { -webkit-tap-highlight-color: transparent; }
[data-issco-job-archive] .issco-job-sidebar input:not([type="radio"]),
[data-issco-job-archive] .issco-job-sidebar select { max-width: 100%; min-height: 44px; }
[data-issco-job-archive] .issco-job-card-actions a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
[data-issco-job-archive] .issco-job-pagination a,
[data-issco-job-archive] .issco-job-pagination .current { min-width: 44px; min-height: 44px; }
/* Desktop ≥1024px: sidebar visible permanently, matching Stitch layout. */
.issco-open-job-filters,
.issco-filter-drawer-heading { display: none; }
.issco-job-layout { align-items: start; }
.issco-job-sidebar { min-width:0; }
.issco-filter-backdrop[hidden] { display: none !important; }
.issco-filter-close { width:44px; height:44px; display:grid; place-items:center; border-radius:9px; background:#f1f5f9; font-size:20px; }
.issco-job-sidebar input:not([type="radio"]),
.issco-job-sidebar select { width:100%; min-height:44px; }
.issco-job-results { min-width:0; }

/* Mobile and tablet <1024px: filter appears only after tapping Tìm Job. */
@media (max-width: 1023px) {
  .issco-filter-ready .issco-open-job-filters { display:inline-flex; min-height:44px; }
  .issco-filter-ready .issco-filter-drawer-heading { display:flex; }
  .issco-filter-ready .issco-job-sidebar {
    position:fixed !important; top:0; right:0; bottom:0; z-index:10001;
    width:min(440px, 100vw); max-width:100vw; padding:0;
    background:#fff; overflow-y:auto; overscroll-behavior:contain;
    transform:translateX(105%); visibility:hidden;
    transition:transform .28s ease, visibility .28s ease;
    box-shadow:-16px 0 40px rgba(0,18,48,.18);
  }
  .issco-filter-ready .issco-job-sidebar > div { border:0; border-radius:0; box-shadow:none; min-height:100%; padding:22px; }
  .issco-filter-ready.issco-filter-open .issco-job-sidebar { transform:translateX(0); visibility:visible; }
  .issco-filter-ready .issco-filter-backdrop:not([hidden]) {
    display:block; position:fixed; inset:0; z-index:10000; background:rgba(0,18,48,.58);
  }
  body.issco-filter-scroll-locked { overflow:hidden; }
}
@media (max-width: 639px) {
  .issco-filter-ready .issco-job-sidebar { width:min(390px,100vw); }
  .issco-filter-ready .issco-job-sidebar > div { padding:16px; }
  .issco-jobs-main { padding-top:24px; padding-bottom:32px; }
  .issco-jobs-toolbar { align-items:stretch; }
  .issco-jobs-toolbar .issco-open-job-filters { width:100%; }
}

@media (max-width: 639px) {
  .issco-jobs-hero { padding-top: 48px; padding-bottom: 50px; }
  .issco-jobs-hero h1 { font-size: clamp(26px, 7.8vw, 38px); line-height: 1.2; }
  [data-issco-job-archive] .issco-job-card { padding: 17px 15px; }
  [data-issco-job-archive] .issco-job-card h3 { font-size: 18px; line-height: 1.4; }
  [data-issco-job-archive] .issco-job-specs { gap: 14px 10px; }
  [data-issco-job-archive] .issco-job-specs dd { font-size: 12px; line-height: 1.5; }
  [data-issco-job-archive] .issco-job-card-actions { width: 100%; }
  [data-issco-job-archive] .issco-job-card-actions a { padding-left: 9px; padding-right: 9px; }
  [data-issco-job-archive] #sort-jobs { min-width: 0; max-width: 100%; }
  .issco-loading-card { padding: 16px; }
}

@media (max-width: 374px) {
  [data-issco-job-archive] .issco-job-specs { grid-template-columns: minmax(0, 1fr); }
  [data-issco-job-archive] .issco-job-card-actions { flex-direction: column; }
  [data-issco-job-archive] .issco-job-card-actions a { width: 100%; }
  .issco-skeleton-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .issco-mobile-filter-chevron { transition: none; }
}

@media (prefers-reduced-motion: reduce) { .issco-filter-ready .issco-job-sidebar { transition: none; } }


/* Desktop: Hide mobile filter button */
@media (min-width: 1024px) {
    [data-issco-job-archive] #issco-open-job-filters,
    [data-issco-job-archive] .issco-open-job-filters,
    [data-issco-job-archive] .issco-filter-drawer-heading {
        display: none !important;
    }

    [data-issco-job-archive] #issco-job-filter-drawer {
        position: sticky !important;
        transform: none !important;
        visibility: visible !important;
    }
}

/* Mobile & Tablet: Show filter button */
@media (max-width: 1023px) {
    [data-issco-job-archive].issco-filter-ready
    #issco-open-job-filters {
        display: inline-flex !important;
    }
}
