/* TKNP Module Progression Workspace V2 */
.tknp-nonmarks-toast-hidden { display: none !important; visibility: hidden !important; pointer-events: none !important; }

body.tknp-module-progression-v2 .page-stack {
  display: flex;
  flex-direction: column;
}

body.tknp-module-progression-v2 #tknp-permanent-joining-instructions-panel { display: none !important; }

.tknp-progression-workflow {
  order: 5;
  margin: 0 0 16px;
  padding: 16px 18px;
  border: 1px solid #c9dcea;
  border-radius: 14px;
  background: linear-gradient(180deg,#f8fbfe,#eef6fb);
  box-shadow: 0 2px 8px rgba(15,61,92,.06);
}
.tknp-progression-workflow-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.tknp-progression-workflow-head > div { display:flex; flex-direction:column; gap:3px; }
.tknp-progression-workflow-head span { font-size: 11px; font-weight: 900; letter-spacing: .12em; color:#346b8f; }
.tknp-progression-workflow-head strong { font-size: 18px; color:#123f61; }
.tknp-progression-workflow-head small { max-width: 560px; color:#536a7c; line-height:1.45; }
.tknp-progression-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.tknp-progression-steps > div { display:flex; gap:10px; align-items:center; padding:10px 12px; background:#fff; border:1px solid #dbe7ef; border-radius:10px; }
.tknp-progression-steps b { flex:0 0 30px; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#15557f; color:#fff; }
.tknp-progression-steps span { display:flex; flex-direction:column; line-height:1.25; }
.tknp-progression-steps strong { color:#183e59; }
.tknp-progression-steps small { color:#6a7d8b; margin-top:2px; }

body.tknp-module-progression-v2 .transition-inline-panel {
  border-radius: 12px !important;
  border-color: #d7e4ed !important;
}
body.tknp-module-progression-v2 .transition-filter-row {
  display:grid !important;
  grid-template-columns:repeat(4,minmax(165px,1fr)) !important;
  gap:12px !important;
}
body.tknp-module-progression-v2 .transition-inline-classes {
  margin-top: 12px !important;
  padding: 14px !important;
  border: 1px solid #d7e4ed !important;
  border-radius: 10px !important;
  background: #fbfdff !important;
}
body.tknp-module-progression-v2 .class-check.active {
  border-color:#1f6a98 !important;
  background:#edf7fd !important;
}
body.tknp-module-progression-v2 .eligibility-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background:#eef5fa;
}
body.tknp-module-progression-v2 .eligibility-table tbody tr:has(input[type="checkbox"]:checked) {
  background:#f0f8fd !important;
  box-shadow: inset 4px 0 0 #1c6a99;
}

.tknp-progression-tools {
  margin: 0 0 12px;
  padding: 12px;
  border: 1px solid #d6e3ec;
  border-radius: 12px;
  background:#fbfdff;
}
.tknp-progression-summary { display:grid; grid-template-columns:repeat(4,minmax(100px,1fr)); gap:9px; margin-bottom:10px; }
.tknp-progression-summary > div { padding:9px 11px; border:1px solid #e0e9ef; border-radius:9px; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.tknp-progression-summary span { font-size:12px; color:#647786; font-weight:700; }
.tknp-progression-summary strong { font-size:19px; color:#123f61; }
.tknp-progression-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.tknp-action { min-height:38px; padding:8px 12px; border-radius:8px; border:1px solid #b9cddd; background:#fff; color:#164766; font-weight:800; cursor:pointer; }
.tknp-action.primary { background:#15577f; color:#fff; border-color:#15577f; }
.tknp-action:hover:not(:disabled) { filter:brightness(.97); }
.tknp-action:disabled { opacity:.48; cursor:not-allowed; }
.tknp-action-divider { width:1px; height:30px; background:#d5e1e9; margin:0 2px; }
.tknp-progression-note { margin:9px 0 0; color:#627482; font-size:12px; line-height:1.4; }

@media (max-width: 980px) {
  .tknp-progression-steps { grid-template-columns:1fr; }
  .tknp-progression-workflow-head { flex-direction:column; }
  body.tknp-module-progression-v2 .transition-filter-row { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .tknp-progression-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  body.tknp-module-progression-v2 .transition-filter-row { grid-template-columns:1fr !important; }
  .tknp-progression-summary { grid-template-columns:1fr 1fr; }
  .tknp-progression-actions { display:grid; grid-template-columns:1fr; }
  .tknp-action-divider { display:none; }
  .tknp-action { width:100%; }
}

/* V2-R2 hierarchy-aware class browser */
body.tknp-module-progression-v2 .transition-inline-classes.tknp-scope-browser-active > .inline-checkbox-row,
body.tknp-module-progression-v2 .transition-inline-classes.tknp-scope-browser-active > .empty.inline-empty,
body.tknp-module-progression-v2 .transition-inline-classes.tknp-scope-browser-active > .muted-small {
  display:none !important;
}
.tknp-scope-browser { margin-top:12px; border:1px solid #cbddea; border-radius:12px; background:#fff; overflow:hidden; }
.tknp-scope-browser-head { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:13px 15px; background:#eef6fb; border-bottom:1px solid #d8e6ef; }
.tknp-scope-browser-head > div:first-child { display:flex; flex-direction:column; gap:2px; }
.tknp-scope-browser-head strong { color:#123f61; }
.tknp-scope-browser-head span { color:#607487; font-size:12px; }
.tknp-scope-browser-count { color:#365a72; white-space:nowrap; font-size:13px; }
.tknp-scope-browser-count b { color:#123f61; }
.tknp-scope-class-list { display:flex; flex-direction:column; gap:10px; padding:12px; }
.tknp-scope-class-card { border:1px solid #dbe6ed; border-radius:10px; background:#fbfdff; overflow:hidden; }
.tknp-scope-class-card > summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:12px 14px; background:#fff; }
.tknp-scope-class-card > summary::-webkit-details-marker { display:none; }
.tknp-scope-class-card[open] > summary { border-bottom:1px solid #e0e9ef; background:#f7fbfe; }
.tknp-scope-class-title { display:flex; flex-direction:column; min-width:0; }
.tknp-scope-class-title strong { color:#153f5e; }
.tknp-scope-class-title small { margin-top:2px; color:#687b89; }
.tknp-scope-class-total { flex:0 0 auto; padding:5px 9px; border-radius:999px; background:#eaf4fb; color:#15557f; font-weight:800; font-size:12px; }
.tknp-scope-class-body { padding:12px 14px 14px; }
.tknp-scope-class-meta { display:flex; flex-wrap:wrap; gap:7px 16px; margin-bottom:10px; font-size:12px; color:#647786; }
.tknp-scope-class-meta strong { color:#244b66; }
.tknp-scope-trainees { max-height:320px; overflow:auto; }
.tknp-scope-trainees table { margin:0; }
.tknp-scope-class-actions { display:flex; justify-content:flex-end; margin-top:10px; }
.tknp-status-pill { display:inline-flex; padding:3px 7px; border-radius:999px; background:#edf6ed; color:#2f6a35; font-size:11px; font-weight:800; }
.tknp-scope-empty { padding:24px 16px; text-align:center; color:#667b8b; }
@media (max-width:700px) {
  .tknp-scope-browser-head { align-items:flex-start; flex-direction:column; }
  .tknp-scope-browser-count { white-space:normal; }
  .tknp-scope-class-card > summary { align-items:flex-start; }
  .tknp-scope-class-actions .tknp-action { width:100%; }
}

/* V3 - simple operational class table */
body.tknp-module-progression-v2 .tknp-native-eligibility-wrap {
  display: none !important;
  margin-top: 14px !important;
  border-top: 1px dashed #cbd9e3;
  padding-top: 14px;
}
body.tknp-module-progression-v2 .tknp-native-eligibility-wrap.open { display: block !important; }
body.tknp-module-progression-v2 .tknp-simple-progression { margin: 10px 0 14px; }
.tknp-simple-table-head {
  display:flex; justify-content:space-between; gap:14px; align-items:center;
  margin-bottom:10px; padding:11px 13px; border:1px solid #d6e4ed;
  border-radius:10px; background:#f8fbfd;
}
.tknp-simple-table-head > div { display:flex; flex-direction:column; gap:2px; }
.tknp-simple-table-head strong { color:#123f61; font-size:15px; }
.tknp-simple-table-head span { color:#657887; font-size:12px; line-height:1.35; }
.tknp-technical-toggle,.tknp-detail-link {
  border:1px solid #b9cddd; background:#fff; color:#16557d; font-weight:800;
  border-radius:8px; padding:7px 10px; cursor:pointer; white-space:nowrap;
}
.tknp-detail-link { padding:5px 8px; font-size:12px; }
.tknp-simple-progression table { width:100%; border-collapse:separate; border-spacing:0; min-width:1040px; }
.tknp-simple-progression thead th {
  background:#eef5fa; color:#173f5d; font-size:12px; text-transform:uppercase;
  letter-spacing:.025em; padding:11px 10px; position:sticky; top:0; z-index:2;
}
.tknp-simple-progression tbody td { padding:12px 10px; vertical-align:top; border-bottom:1px solid #e4ebf0; }
.tknp-simple-progression tbody tr.selected { background:#f0f8fd; box-shadow:inset 4px 0 0 #1c6a99; }
.tknp-simple-progression .select-cell { width:54px; text-align:center; }
.tknp-simple-progression .trainee-cell { min-width:170px; font-weight:700; color:#17374f; }
.tknp-status-pill.active { background:#eaf6ed; color:#2b6934; }
.tknp-progression-pill { display:inline-flex; align-items:center; gap:4px; padding:4px 8px; border-radius:999px; font-size:12px; font-weight:900; white-space:nowrap; }
.tknp-progression-pill.eligible { background:#e7f6eb; color:#256a34; }
.tknp-progression-pill.attention { background:#fff3df; color:#8a5900; }
.tknp-billing { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:11px; font-weight:900; white-space:nowrap; }
.tknp-billing.ready { background:#edf5fb; color:#15577f; }
.tknp-billing.hold { background:#f5f6f7; color:#596b78; }
.tknp-billing.neutral { background:#f5f6f7; color:#596b78; }
.billing-cell small { display:block; margin-top:4px; max-width:190px; color:#71828e; font-size:10px; line-height:1.3; }

/* V3 keeps the workflow compact and avoids repeating instructions. */
.tknp-progression-workflow { padding:12px 15px; }
.tknp-progression-workflow-head { margin-bottom:0; align-items:center; }
.tknp-progression-steps { display:none !important; }

@media (max-width:760px) {
  .tknp-simple-table-head { flex-direction:column; align-items:stretch; }
  .tknp-technical-toggle { width:100%; }
}

/* TKNP-MODULE-PROGRESSION-DETAILS-MODAL-V3R2 */
.tknp-simple-progression .trainee-cell strong { display:block; }
.tknp-simple-progression .trainee-cell small { display:block; margin-top:3px; color:#6c7f8e; font-weight:600; font-size:11px; }
.tknp-progression-detail-modal { display:none; position:fixed; inset:0; z-index:100000; }
.tknp-progression-detail-modal.open { display:block; }
.tknp-progression-detail-backdrop { position:absolute; inset:0; background:rgba(10,26,42,.52); backdrop-filter:blur(1px); }
.tknp-progression-detail-dialog {
  position:absolute; top:3vh; right:2vw; bottom:3vh; width:min(820px,94vw); overflow:hidden;
  display:flex; flex-direction:column; background:#fff; border-radius:16px; box-shadow:0 24px 70px rgba(10,34,54,.28);
  border:1px solid #d7e3eb;
}
.tknp-progression-detail-dialog > header {
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px;
  border-bottom:1px solid #dfebf2; background:#f7fbfd;
}
.tknp-progression-detail-dialog > header span { display:block; color:#1e6a96; font-size:11px; font-weight:900; letter-spacing:.08em; }
.tknp-progression-detail-dialog > header h3 { margin:4px 0 2px; color:#123f61; font-size:22px; }
.tknp-progression-detail-dialog > header p { margin:0; color:#657b8a; font-size:13px; }
.tknp-progression-detail-close {
  border:0; background:#edf4f8; color:#173f5d; width:38px; height:38px; border-radius:50%;
  font-size:26px; line-height:1; cursor:pointer; flex:0 0 auto;
}
.tknp-progression-detail-body { flex:1; overflow:auto; padding:18px 20px 28px; }
.tknp-progression-detail-body .eligibility-detail-panel { margin:0; border:0; padding:0; background:#fff; }
.tknp-progression-detail-body .eligibility-detail-summary { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)); gap:10px; }
.tknp-progression-detail-body .eligibility-detail-summary > div { padding:11px; border:1px solid #dce8ef; border-radius:10px; background:#f8fbfd; }
.tknp-progression-detail-body .eligibility-detail-summary span { display:block; color:#6a7e8d; font-size:11px; }
.tknp-progression-detail-body .eligibility-detail-summary strong { display:block; margin-top:3px; color:#123f61; font-size:18px; }
.tknp-progression-detail-body .eligibility-detail-reason { padding:12px 13px; border-radius:10px; background:#fff7e8; color:#785000; line-height:1.5; }
.tknp-progression-detail-body .eligibility-data-warning { margin:12px 0; padding:12px 13px; border:1px solid #efc784; border-radius:10px; background:#fff8ec; }
.tknp-progression-detail-body table { width:100%; border-collapse:collapse; min-width:720px; }
.tknp-progression-detail-body th { background:#eef5fa; color:#173f5d; text-align:left; padding:9px 8px; font-size:11px; }
.tknp-progression-detail-body td { padding:9px 8px; border-bottom:1px solid #e4ebf0; vertical-align:top; font-size:12px; }
.tknp-detail-loading,.tknp-detail-error { min-height:180px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:7px; padding:28px; }
.tknp-detail-loading strong,.tknp-detail-error strong { color:#123f61; font-size:17px; }
.tknp-detail-loading span,.tknp-detail-error span { max-width:520px; color:#687d8c; line-height:1.5; }
.tknp-detail-error { border:1px solid #efd0a0; border-radius:12px; background:#fffaf2; }
body.tknp-progression-detail-open { overflow:hidden; }
@media (max-width:760px) {
  .tknp-progression-detail-dialog { top:1.5vh; right:1.5vw; bottom:1.5vh; width:97vw; border-radius:12px; }
  .tknp-progression-detail-body .eligibility-detail-summary { grid-template-columns:repeat(2,minmax(110px,1fr)); }
}

/* TKNP-MODULE-PROGRESSION-DIRECT-DETAILS-V3R3 */
.tknp-simple-progression .tknp-detail-link { position:relative; z-index:2; pointer-events:auto; cursor:pointer; }
.tknp-progression-detail-modal.open { pointer-events:auto; }
.tknp-progression-detail-modal.open .tknp-progression-detail-dialog { pointer-events:auto; }
.tknp-direct-detail-panel .table-subline { display:block; margin-top:3px; color:#6c7f8e; font-size:11px; line-height:1.35; }
.tknp-direct-detail-panel .eligibility-ok { color:#166534; }
.tknp-direct-detail-panel .eligibility-missing { color:#9a5a00; }
.tknp-unit-state { display:inline-block; border-radius:999px; padding:4px 8px; font-size:11px; font-weight:800; }
.tknp-unit-state.ok { color:#166534; background:#eaf7ee; }
.tknp-unit-state.missing { color:#8a5200; background:#fff4df; }
.tknp-detail-empty { padding:16px; border:1px dashed #cbdbe5; border-radius:10px; background:#f8fbfd; }
.tknp-detail-empty strong,.tknp-detail-empty span { display:block; }
.tknp-detail-empty span { margin-top:4px; color:#6c7f8e; }
.tknp-detail-retry { margin-top:10px; border:0; border-radius:8px; background:#0e5b86; color:#fff; font-weight:800; padding:9px 15px; cursor:pointer; }

/* TKNP-MODULE-PROGRESSION-DIRECT-BOUND-DETAILS-V3R4 */
/* TKNP-MODULE-PROGRESSION-STABLE-VIEW-DETAILS-V3R5 */
.tknp-simple-progression[data-details-engine="v3r5-stable-direct-bound"] .tknp-detail-link {
  pointer-events:auto !important;
  cursor:pointer !important;
  touch-action:manipulation;
}
