/* CPD Session Apps 0.4.0 (M4): the session app picker. Works in wp-admin and on the trainer dashboard. */
.cpdsa-pk-overlay { position: fixed; inset: 0; z-index: 100100; background: rgba(0,0,0,.45); display: flex; align-items: flex-start; justify-content: center; padding: 48px 16px 16px; overflow-y: auto; }
.cpdsa-pk-overlay[hidden] { display: none; }
html.cpdsa-pk-open, html.cpdsa-pk-open body { overflow: hidden; }
.cpdsa-pk { background: #fff; color: #1d2327; border-radius: 8px; box-shadow: 0 10px 40px rgba(0,0,0,.25); width: 100%; max-width: 1040px; padding: 16px 18px 14px; font-size: 13px; line-height: 1.45; box-sizing: border-box; }
.cpdsa-pk *, .cpdsa-pk *::before, .cpdsa-pk *::after { box-sizing: border-box; }
.cpdsa-pk-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.cpdsa-pk-title { font-size: 17px; margin: 0; line-height: 1.3; }
.cpdsa-pk-mode { margin-top: 10px; padding: 8px 10px; border-radius: 4px; font-size: 12.5px; }
.cpdsa-pk-mode.is-warn { background: #fcf9e8; border: 1px solid #f0d78a; color: #4d3800; }
.cpdsa-pk-mode.is-bad { background: #fcf0f1; border: 1px solid #f0b8bb; color: #6a1b1b; }
.cpdsa-pk-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.cpdsa-pk-chip { border: 1px solid #c3c4c7; border-radius: 999px; padding: 4px 11px; font: inherit; font-size: 12.5px; background: #fff; color: #3c434a; cursor: pointer; }
.cpdsa-pk-chip:hover { border-color: #2271b1; color: #2271b1; }
.cpdsa-pk-chip.is-all { border-style: dashed; border-color: #2271b1; color: #135e96; font-weight: 600; }
.cpdsa-pk-chip.is-on { background: #2271b1; border-color: #2271b1; border-style: solid; color: #fff; font-weight: 600; }
.cpdsa-pk-chip:focus-visible, .cpdsa-pk button:focus-visible, .cpdsa-pk input:focus-visible, .cpdsa-pk select:focus-visible, .cpdsa-pk summary:focus-visible, .cpdsa-pk a:focus-visible { outline: 2px solid #2271b1; outline-offset: 2px; }
.cpdsa-pk-body { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 16px; margin-top: 12px; }
.cpdsa-pk-search input { width: 100%; max-width: 100%; padding: 6px 10px; font-size: 14px; border: 1px solid #8c8f94; border-radius: 4px; }
.cpdsa-pk-count { color: #646970; margin: 6px 0 2px; font-size: 12.5px; }
.cpdsa-pk-results[aria-busy="true"] { opacity: .55; }
.cpdsa-pk-res { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; padding: 10px 0; border-top: 1px solid #f0f0f1; align-items: start; }
.cpdsa-pk-res:first-child { border-top: 0; }
.cpdsa-pk-t { font-weight: 600; font-size: 13.5px; overflow-wrap: anywhere; }
.cpdsa-pk-m, .cpdsa-rs-line { display: flex; flex-wrap: wrap; gap: 4px 8px; margin-top: 4px; align-items: center; }
.cpdsa-pk-cat { font-size: 11px; font-weight: 600; border-radius: 3px; padding: 1px 6px; background: #f0f0f1; color: #3c434a; }
.cpdsa-pk-folder, .cpdsa-pk code, .cpdsa-row-status code { font-size: 11.5px; background: #f6f7f7; border: 1px solid #dcdcde; border-radius: 3px; padding: 0 5px; overflow-wrap: anywhere; }
.cpdsa-pk-cap { font-size: 11.5px; border-radius: 3px; padding: 1px 7px; font-weight: 600; }
.cpdsa-pk-cap.is-yes { background: #edfaef; color: #00450c; border: 1px solid #a8dbb3; }
.cpdsa-pk-cap.is-no { background: #f6f7f7; color: #3c434a; border: 1px solid #c3c4c7; }
.cpdsa-pk-cap.is-unk { background: #fff; color: #50575e; border: 1px dashed #8c8f94; }
.cpdsa-pk-cap.is-na { background: #fff; color: #50575e; border: 1px dotted #8c8f94; }
.cpdsa-pk-evs, .cpdsa-rs-ev { margin-top: 5px; display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
.cpdsa-pk-ev { font-size: 11px; border-radius: 3px; padding: 1px 6px; background: #f0f0f1; color: #3c434a; border: 1px solid #dcdcde; }
.cpdsa-pk-evd { flex-basis: 100%; font-size: 12px; color: #3c434a; }
.cpdsa-pk-evd summary { cursor: pointer; color: #2271b1; width: max-content; }
.cpdsa-pk-evd ul { margin: 4px 0 0 18px; list-style: disc; }
.cpdsa-pk-note { font-size: 12px; color: #646970; margin-top: 4px; }
.cpdsa-pk-warn, .cpdsa-rs-warn { font-size: 12px; color: #4d3800; background: #fcf9e8; border: 1px solid #f0d78a; border-radius: 3px; padding: 5px 8px; margin-top: 6px; }
.cpdsa-rs-bad { font-size: 12px; color: #6a1b1b; background: #fcf0f1; border: 1px solid #f0b8bb; border-radius: 3px; padding: 5px 8px; margin-top: 6px; }
.cpdsa-rs-info, .cpdsa-pk-info-line { font-size: 12px; color: #0a4b78; background: #f0f6fc; border: 1px solid #c5d9ed; border-radius: 3px; padding: 5px 8px; margin-top: 6px; }
.cpdsa-rs-new { font-size: 12px; color: #646970; font-style: italic; margin-top: 4px; }
.cpdsa-pk-tag { font-size: 11px; font-weight: 600; border-radius: 999px; padding: 1px 7px; background: #f0f0f1; color: #50575e; }
.cpdsa-pk-act { display: flex; gap: 8px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.cpdsa-pk-added { color: #00450c; font-weight: 600; white-space: nowrap; }
.cpdsa-pk-add[disabled] { opacity: .5; cursor: not-allowed; }
.cpdsa-pk-manage { font-size: 12px; }
.cpdsa-pk-pager { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px; padding-top: 8px; border-top: 1px solid #f0f0f1; color: #646970; font-size: 12.5px; }
.cpdsa-pk-tray { background: #f6f7f7; border: 1px solid #dcdcde; border-radius: 4px; padding: 10px 12px; align-self: start; position: sticky; top: 0; }
.cpdsa-pk-tray-h { font-size: 13px; margin: 0 0 6px; }
.cpdsa-pk-tray-list { margin: 0; padding: 0; list-style: none; }
.cpdsa-pk-tray-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; padding: 6px 0; border-top: 1px solid #dcdcde; overflow-wrap: anywhere; }
.cpdsa-pk-tray-list li:first-child { border-top: 0; }
.cpdsa-pk-tray-n { color: #646970; }
.cpdsa-pk-remove { color: #b32d2e !important; margin-left: 6px; }
.cpdsa-pk-tray-note { color: #646970; font-size: 12px; margin: 8px 0 0; }
.cpdsa-pk-foot { display: none; }
.cpdsa-pk-sub { margin-top: 12px; }
.cpdsa-pk-overlay.show-sub .cpdsa-pk-body, .cpdsa-pk-overlay.show-sub .cpdsa-pk-chips { display: none; }
.cpdsa-pk-confirm label { display: block; font-weight: 600; margin: 10px 0 3px; }
.cpdsa-pk-confirm input[type=text], .cpdsa-pk-confirm input:not([type]), .cpdsa-pk-confirm select { width: 100%; max-width: 480px; }
.cpdsa-pk-confirm .cpdsa-pk-check { font-weight: 400; }
.cpdsa-pk-confirm-b { margin-top: 14px; display: flex; gap: 8px; flex-wrap: wrap; }
.cpdsa-pk-err { color: #8a2424; }
.cpdsa-pk .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* session rows: the status line under each selection */
.cpdsa-app-row .cpdsa-row-status:empty { display: none; }
.cpdsa-app-row .cpdsa-row-status { flex-basis: 100%; margin: 4px 0; }
.cpdsa-app-row.is-unticked { opacity: .6; }
.cpdsa-picker-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* programmes chosen list */
.cpdsa-prog-apps { margin: 10px 0; }
.cpdsa-prog-list { margin: 6px 0; padding: 0; list-style: none; }
.cpdsa-prog-list li { padding: 5px 0; border-bottom: 1px solid #f0f0f1; overflow-wrap: anywhere; }
.cpdsa-prog-f { font-size: 11.5px; }

/* narrow screens: a full-screen sheet; chosen list behind a sticky button */
@media (max-width: 782px) {
	.cpdsa-pk-overlay { padding: 0; }
	.cpdsa-pk { max-width: none; min-height: 100%; border-radius: 0; padding: 12px 14px 0; }
	.cpdsa-pk-body { grid-template-columns: minmax(0, 1fr); }
	.cpdsa-pk-tray { display: none; position: static; }
	.cpdsa-pk-overlay.show-tray .cpdsa-pk-tray { display: block; }
	.cpdsa-pk-overlay.show-tray .cpdsa-pk-main, .cpdsa-pk-overlay.show-tray .cpdsa-pk-chips { display: none; }
	.cpdsa-pk-res { grid-template-columns: minmax(0, 1fr); }
	.cpdsa-pk-act { justify-content: flex-start; }
	.cpdsa-pk-overlay.show-tray .cpdsa-pk-pager { display: none; }
	.cpdsa-pk-foot-range { visibility: hidden; }
	.cpdsa-pk-foot { display: flex; position: sticky; bottom: 0; background: #fff; border-top: 1px solid #dcdcde; margin: 10px -14px 0; padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px)); justify-content: space-between; align-items: center; gap: 8px; color: #646970; }
	.cpdsa-pk-overlay.show-sub .cpdsa-pk-foot { display: none; }
}
@media (prefers-reduced-motion: reduce) { .cpdsa-pk * { transition: none !important; } }

/* Buttons look the same in wp-admin and on the trainer dashboard (the theme doesn't style WordPress's admin button classes). */
.cpdsa-pk .button, .cpdsa-row-status .button { display: inline-block; font: inherit; font-size: 13px; line-height: 1.8; min-height: 30px; padding: 0 12px; border: 1px solid #2271b1; border-radius: 3px; background: #f6f7f7; color: #135e96; cursor: pointer; text-decoration: none; white-space: nowrap; }
.cpdsa-pk .button:hover, .cpdsa-row-status .button:hover { background: #f0f0f1; color: #0a4b78; border-color: #0a4b78; }
.cpdsa-pk .button-primary, .cpdsa-pk .button.button-primary { background: #2271b1; border-color: #2271b1; color: #fff; }
.cpdsa-pk .button-primary:hover { background: #135e96; color: #fff; }
.cpdsa-pk .button[disabled] { opacity: .5; cursor: not-allowed; }
.cpdsa-pk .button-link { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-decoration: underline; }
.cpdsa-pk input, .cpdsa-pk select { font: inherit; color: #1d2327; background: #fff; border: 1px solid #8c8f94; border-radius: 4px; padding: 5px 8px; min-height: 32px; }
.cpdsa-pk h2, .cpdsa-pk h3 { color: #1d2327; font-family: inherit; }
.cpdsa-pk-confirm h3 { font-size: 16px; margin: 0 0 8px; }
