/* I050/I071: F07 reference table and compact PF shell. */
@font-face { font-family: "Open Sans"; src: url("vendor/fonts/OpenSans.591d60b5878e.ttf") format("truetype"); font-weight: 300 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Roboto Slab"; src: url("vendor/fonts/RobotoSlab.1992b9f2561a.ttf") format("truetype"); font-weight: 100 900; font-style: normal; font-display: swap; }
:root { --pf-red: #d9001e; --pf-red-hover: #c7001b; --pf-red-soft: #fff0f3; --ink: #111b2b; --ink-2: #182133; --muted: #425474; --app: #f9fafc; --sidebar: #fafbfc; --surface-2: #f6f8fb; --border: #dfe5ed; --border-strong: #9caac0; }
.sidebar { width: 234px; }
.app-column { margin-left: 234px; }
.wordmark { min-height: 70px; padding: 20px 17px; }
.wordmark img { width: 198px; height: auto; display: block; }
.sidebar-nav { padding: 9px 12px; }
.nav-item { min-height: 44px; margin-bottom: 3px; padding: 11px 9px; border-radius: 7px; color: #121820; font-size: 13px; gap: 15px; }
.nav-item .nav-icon { color: #455573; width: 16px; height: 16px; }
.nav-item.active .nav-icon { color: var(--pf-red); }
.nav-section-title { display: flex; align-items: center; gap: 10px; margin: 20px 9px 8px; color: var(--muted); font-family: inherit; font-size: 10px; font-weight: 700; letter-spacing: .07em; line-height: 1.5; text-transform: uppercase; }
.nav-section-title::after { content: ""; flex: 1; border-top: 1px solid var(--border); }
.sidebar-context { padding: 20px 16px 22px; }
.sidebar-footer { min-height: 94px; background: transparent; padding: 18px 12px; }
.sidebar-footer .avatar { width: 29px; height: 29px; background: #e8e8e9; color: #161616; border: 0; }
.topbar { min-height: 55px; height: 55px; padding: 8px 20px; justify-content: flex-end; }
.user-menu { z-index: 35; }
.user-menu > summary { display: flex; align-items: center; gap: 10px; list-style: none; font-size: 11px; cursor: pointer; }
.user-menu .avatar { width: 30px; height: 30px; background: #1b2230; color: white; border-color: #101723; }
.user-menu .icon { width: 12px; height: 12px; }
.user-menu .table-popover { min-width: 170px; right: 0; margin-top: 12px; }
.table-page { max-width: 1800px; padding: 20px clamp(26px, 3.9vw, 70px) 48px clamp(28px, 6vw, 108px); }
.table-page .page-head { margin-bottom: 20px; min-height: 76px; }
.table-page .page-head h1 { font-size: 29px; font-weight: 800; margin-bottom: 8px; }
.table-page .page-head p { font-size: 12px; }
.table-page .page-head .eyebrow { font-size: 10px; letter-spacing: .065em; margin-bottom: 2px; }
.table-page .page-actions .button { min-height: 39px; font-size: 13px; padding: 8px 14px; box-shadow: 0 2px 4px #e6002010; }
.work-table { border: 1px solid var(--border); border-radius: 9px; background: white; min-width: 0; }
.table-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 18px 0; }
.comfort-search { width: min(650px, 66%); display: flex; align-items: center; gap: 12px; border: 1px solid var(--border); border-radius: 8px; padding: 0 12px; }
.comfort-search .icon { color: var(--muted); width: 16px; height: 16px; flex: 0 0 auto; }
.comfort-search input[type="search"] { border: 0; padding: 11px 0; font-size: 11px; min-height: 42px; color: var(--muted); background: transparent; }
.comfort-search input::placeholder { color: #415577; opacity: 1; }
.comfort-search:focus-within { outline: 2px solid var(--pf-red); outline-offset: 1px; }
.comfort-search input:focus { outline: none; }
.search-submit { display: grid; place-items: center; padding: 3px; border: 0; background: transparent; }
.table-tools { display: flex; gap: 24px; align-items: center; }
.table-tools .button { border-color: var(--border); color: #161b25; background: white; box-shadow: 0 1px 3px #172b4710; }
.table-tools .button .icon { width: 16px; height: 16px; }
.one-row-hint { display: inline-block; white-space: nowrap; background: #edf5ff; color: #075ecc; border: 1px solid #cce3ff; padding: 7px 14px; font-size: 11px; border-radius: 99px; font-weight: 600; }
.table-toolbar:has(+ .work-table-scroll) { padding-bottom:18px; }
.table-contextbar { display: flex; align-items: center; gap: 12px; padding: 26px 18px; min-height: 90px; flex-wrap: wrap; }
.table-scope-form { display: flex; align-items: center; gap: 8px; font-size: 11px; }
.scope-label { display: flex; align-items: center; white-space: nowrap; font-size: 11px; font-weight: 700; border: 1px solid var(--border); border-radius: 30px; padding: 0 14px; background: white; min-height: 35px; }
.scope-label select { padding: 0 22px 0 5px; min-height: 32px; border: 0; width: auto; max-width: 235px; font-size: 11px; font-weight: 700; background: transparent; }
.table-scope-form > .button { font-size: 10px; min-height: 30px; padding: 4px 8px; }
.js-enhanced .table-contextbar .table-scope-form > .button, .js-enhanced .page-size-form > button { display: none; }
.filter-chip { border: 1px solid var(--border); display: inline-flex; min-height: 35px; align-items: center; gap: 8px; border-radius: 30px; padding: 7px 14px; font-size: 11px; font-weight: 650; background: white; }
.filter-chip.active, .scope-control.active { color: var(--pf-red); border-color: #ffced8; background: #fff3f5; }
.filter-chip .icon { width: 13px; height: 13px; }
.filter-chip a { display: inline-flex; }
.clear-filters { color: var(--muted); font-size: 10px; margin-left: auto; }
.popover-control { position: relative; }
.popover-control > summary { list-style: none; cursor: pointer; }
.popover-control > summary::-webkit-details-marker { display: none; }
.table-popover { position: absolute; z-index: 40; top: 100%; padding: 16px; background: white; border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 5px 12px #172b4710; font-size: 11px; color: var(--ink-2); text-transform: none; letter-spacing: 0; font-weight: 400; }
.table-popover > strong { display: block; font-size: 12px; color: #171b21; margin-bottom: 10px; }
.table-popover p { font-size: 11px; margin: 0 0 10px; }
.table-popover label { display: block; margin-bottom: 10px; font-size: 11px; font-weight: 600; }
.table-popover input:not([type=checkbox]), .table-popover select { min-height: 36px; padding: 7px 9px; margin-top: 5px; font-size: 12px; }
.columns-popover { width: 285px; right: -80px; margin-top: 5px; padding: 16px 16px 12px; }
.column-options { margin: 14px -5px 10px; max-height: min(470px, 55vh); overflow-y: auto; }
.column-option { display: flex; align-items: center; gap: 7px; min-height: 31px; border-radius: 4px; }
.column-option:hover { background: var(--surface-2); }
.column-option label { display: flex; align-items: center; gap: 10px; margin: 0; flex: 1; font-size: 10px; line-height: 1.4; color: var(--muted); cursor: pointer; }
.column-option input[type=checkbox] { width: 13px; height: 13px; margin: 0; }
.column-option input:disabled { opacity: 1; }
.column-option small { font-size: 9px; }
.column-grip { font-size: 16px; color: var(--muted); cursor: grab; }
.column-move { display: flex; }
.column-move .icon-button { width: 20px; min-width: 20px; height: 25px; }
.column-move .icon { width: 12px; height: 12px; }
.rotate-up { transform: rotate(90deg); }
.rotate-down { transform: rotate(90deg); }
.popover-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--border); padding-top: 14px; margin-top: 10px; }
.popover-actions a { color: #075ecc; text-decoration: none; max-width: 145px; font-size: 10px; }
.location-feedback { font-size: 11px; display: block; margin-bottom: 10px; color: var(--muted); }
.work-table-scroll { overflow-x: auto; border-top: 1px solid var(--border); }
.entity-table { table-layout: auto; width: 100%; min-width: 950px; }
.entity-table th { height: 51px; padding: 10px 13px; background: #f9fafc; font-size: 9px; color: #3b4e70; border-bottom: 1px solid var(--border); border-right: 1px solid #e7ebf2; font-weight: 700; vertical-align: middle; }
.entity-table th:last-child { border-right: 0; }
.column-heading { display: flex; align-items: center; gap: 5px; }
.sort-link { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 5px; }
.sort-link > .icon { width: 12px; height: 12px; flex-shrink: 0; }
.entity-table th[aria-sort="ascending"] .sort-link > .icon { transform: rotate(180deg); }
.column-filter > summary { width: 22px; min-width: 22px; height: 24px; }
.column-filter .icon { width: 12px; height: 12px; }
.filter-popover { top: calc(100% + 8px); left: 0; width: min(290px, calc(100vw - 24px)); overflow-y: auto; overscroll-behavior: contain; }
.filter-popover .filter-options label { display: flex; align-items: center; gap: 10px; }
.filter-popover .scope-label { display: block; border: 0; padding: 0; }
.filter-popover .table-scope-form { display: block; }
.entity-table td { padding: 17px 13px; height: 76px; vertical-align: middle; color: var(--ink-2); font-size: 11px; border-right: 1px solid #e7ebf2; border-bottom: 1px solid #e7ebf2; }
.entity-table td:last-child { border-right: 0; }
.entity-table tr[data-row-url]:hover td { background: #fbfcfe; }
.entity-table td a { text-decoration: none; }
.entity-table .col-identity { min-width: 230px; width: 20%; }
.entity-table .col-location { min-width: 145px; }
.entity-table .col-employment, .entity-table .col-placements { min-width: 165px; }
.entity-table .col-placement_state { min-width: 135px; }
.entity-table .col-first_recorded_at, .entity-table .col-created_at, .entity-table .col-desired_start { min-width: 115px; }
.entity-table .col-contact { min-width: 180px; }
.entity-table .col-action { width: 1%; min-width: 40px; padding: 6px; white-space: nowrap; }
.table-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; width: max-content; margin-left: auto; }
.table-row-actions > .button { flex: none; white-space: nowrap; }
/* Text actions participate in intrinsic table sizing; horizontal scroll never overlays data. */
.entity-table:has(.table-row-actions > .button) .col-action { width: auto; }
.entity-table:has(.table-row-actions > .button) .col-action .table-row-actions { min-width: max-content; }
.identity-cell { display: flex; align-items: center; gap: 12px; }
.identity-cell > div { min-width: 0; }
.entity-table .record-avatar { background: #e8e8ea; color: #141516; border: 0; width: 29px; height: 29px; font-size: 10px; }
.entity-table .record-avatar .icon { width: 15px; height: 15px; }
.entity-table .table-record-title { display: block; font-size: 12px; font-weight: 700; color: #13171c; line-height: 1.45; }
.entity-table small { display: block; color: var(--muted); font-size: 10px; margin-top: 4px; line-height: 1.45; }
.entity-table .cell-title { font-weight: 650; color: #151920; }
.entity-table .contact-link { display: block; overflow-wrap: anywhere; }
.entity-table .contact-link + .contact-link { margin-top: 4px; }
.entity-table .chip { min-height: 18px; padding: 1px 7px; font-size: 10px; font-weight: 650; line-height: 1.4; }
.entity-table .chip-neutral { color: #344664; background: #f2f4f8; border-color: #d7dee8; }
.cell-stack + .cell-stack { margin-top: 9px; }
.cell-more { display: block; font-size: 10px; color: #2d5185 !important; margin-top: 7px; }
.icon-button { width: 30px; height: 30px; min-width: 30px; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; border-radius: 5px; color: var(--muted); cursor: pointer; padding: 3px; }
.icon-button:hover { color: var(--ink); background: #eef3fa; }
.icon-button .icon { width: 16px; height: 16px; }
.icon-button.is-active { color: var(--pf-red); background: var(--pf-red-soft); }
.icon-button.disabled { opacity: .45; cursor: default; }
.table-empty { min-height: 240px; display: grid; place-content: center; justify-items: center; gap: 10px; text-align: center; }
.table-empty > .icon { width: 32px; height: 32px; color: var(--muted); }
.table-empty p { margin: 0; }
.table-pagination { min-height: 61px; display: flex; align-items: center; gap: 20px; justify-content: space-between; padding: 13px 9px; color: #42577b; font-size: 10px; }
.table-page-nav { display: flex; align-items: center; gap: 10px; order: 1; }
.table-page-nav .icon-button { border: 1px solid var(--border); width: 28px; height: 28px; min-width: 28px; }
.page-size-form { display: flex; align-items: center; gap: 8px; order: 2; }
.page-size-form label { display: flex; align-items: center; gap: 6px; }
.page-size-form select { width: auto; padding: 4px; min-height: 28px; border-color: var(--border); font-size: 10px; }
@media (max-width: 1250px) { .table-page { padding-left: 28px; padding-right: 28px; } .table-tools { gap: 10px; } .one-row-hint { display: none; } .comfort-search { flex: 1; width: auto; } .columns-popover { right: 0; } }
@media (max-width: 760px) { .sidebar { transform: translateX(-100%); } .sidebar.is-open { transform: translateX(0); } .app-column { margin-left: 0; } .topbar { justify-content: space-between; } .table-page { padding: 20px 14px 36px; } .table-page .page-head { flex-direction: column; gap: 12px; } .table-page .page-head h1 { font-size: 26px; } .table-toolbar { padding: 12px 10px 0; gap: 8px; } .table-toolbar .comfort-search { min-width: 0; } .table-contextbar { padding: 15px 10px; gap: 8px; } .clear-filters { margin-left: 0; } .table-pagination { flex-wrap: wrap; gap: 10px; } .table-page-nav { order: 2; margin-left: auto; } .page-size-form { order: 1; } .columns-popover { width: min(285px, 85vw); } .user-menu > summary strong { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } }

.page-number { min-width: 28px; height: 28px; display: inline-grid; place-items: center; border: 1px solid var(--border); border-radius: 5px; color: var(--muted); text-decoration: none; }
.page-number.current { color: white; border-color: var(--pf-red); background: var(--pf-red); font-weight: 700; }

.column-grip .icon { width: 12px; height: 16px; transform: rotate(90deg); }

.work-table .comfort-search input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) { border: 0; padding: 10px 0; min-height: 40px; font-size: 12px; background: transparent; }
.work-table-scroll { max-height: max(340px, calc(100vh - 442px)); }
.entity-table thead th { position: sticky; top: 0; z-index: 2; }
.entity-table th:has(details[open]) { z-index: 45; }
.table-followup { margin: 12px 0 0; color: var(--muted); font-size: 11px; }
@media (max-width: 760px) { .work-table-scroll { max-height: 65vh; } }

.column-filter .icon-button .icon { width: 12px; height: 12px; }

.sidebar-counts { margin: 8px 0 0; font-size: 10px; }
.sidebar-counts > div { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; gap: 12px; }
.sidebar-counts dt, .sidebar-counts dd { margin: 0; }
.sidebar-counts dd { font-weight: 700; color: #131820; }
.sidebar-counts a { display: inline-flex; align-items: center; min-height: 24px; color: var(--muted); text-decoration: none; }

/* I082: column content determines width within the shared table, independent of the page. */
.entity-table .col-applicant { min-width: 180px; }
.entity-table .col-opening { min-width: 210px; }
.entity-table .col-status { min-width: 155px; }
.entity-table .col-associated_at { min-width: 120px; }
/* A placement number is shorter than a person's identity; reserve room for its text action. */
.entity-table[data-table-kind="placements"] .col-identity { min-width: 160px; width: auto; }
.table-contextbar > .filter-chip { max-width: 100%; text-decoration: none; }
.table-contextbar > .filter-chip a { flex: 0 0 auto; }
.table-contextbar > a.filter-chip:not(.active) { color: var(--muted); }

/* I081: one column editor, with visible independent removal for active conditions. */
.table-contextbar .filter-chip { max-width: 100%; padding: 3px 6px 3px 12px; }
.filter-value { min-width: 0; overflow-wrap: anywhere; }
.filter-clear { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; color: var(--pf-red); text-decoration: none; }
.filter-clear:hover { color: var(--pf-red-hover); background: #ffe0e7; }
.filter-clear .icon { width: 14px; height: 14px; }
.scope-control { display: inline-flex; align-items: center; max-width: 100%; border: 1px solid var(--border); border-radius: 30px; padding-right: 6px; }
.scope-control .scope-label { color: inherit; border: 0; background: transparent; padding-right: 4px; }
.scope-control .scope-label select { color: inherit; min-width: 0; max-width: min(235px, 50vw); }
.filter-popover .scope-control { border: 0; padding: 0; }
.location-filter-popover { width: min(360px, calc(100vw - 24px)); }
.radius-filter-section { border-top: 1px solid var(--border); padding-top: 16px; margin-top: 18px; }
.radius-filter-section > strong { display: block; font-size: 12px; margin-bottom: 8px; }
.radius-filter-section small { font-size: 10px; line-height: 1.6; }
.radius-filter-section [data-location-search-button] { margin-bottom: 12px; }
.radius-filter-section select { max-width: 100%; }
html:not(.js-enhanced) .work-table-scroll:has(.column-filter[open]) { min-height: 560px; }

.entity-table .col-person { min-width: 210px; }
.entity-table .col-assignment { min-width: 225px; }
.entity-table .col-availability { min-width: 145px; }
.entity-table .col-contract_end { min-width: 120px; }

/* Shared table avatars keep their icon behind the private image as a fallback. */
.entity-table .record-avatar { position: relative; overflow: hidden; flex: 0 0 29px; padding: 0; }
.table-avatar-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; background: var(--surface, #fff); }
.table-avatar-logo { object-fit: contain; padding: 3px; }

/* I164: shared row quick view, also available in embedded relationship tables. */
.table-preview-cell{display:flex;align-items:center;gap:10px}
.table-preview-cell>[data-preview-identity]{min-width:0;flex:1}
.table-preview-trigger{flex-shrink:0;color:var(--muted);border-radius:50%;width:28px;height:28px;min-width:28px}
.table-preview-trigger[hidden]{display:none}
.table-preview-trigger:hover,.table-preview-trigger[aria-expanded="true"]{color:var(--accent,#e4002b);background:#fff0f3}
.table-preview-trigger .icon{width:16px;height:16px}
.table-quick-preview{position:fixed;inset:auto;margin:0;padding:0;width:min(400px,calc(100vw - 24px));max-height:calc(100dvh - 24px);border:1px solid var(--border);border-top:3px solid var(--accent,#e4002b);border-radius:14px;background:var(--surface,#fff);color:var(--ink-2);box-shadow:0 14px 48px #15233a26;z-index:90;overflow:hidden}
.table-quick-preview[hidden]{display:none}
.table-quick-preview:not([hidden]){display:flex;flex-direction:column}
.table-preview-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border);flex-shrink:0}
.table-preview-bar>span{font-size:.75rem;color:var(--muted);font-weight:650;letter-spacing:.03em}
.table-preview-body{padding:18px;overflow:auto;overscroll-behavior:contain}
.table-preview-identity{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px}
.table-preview-portrait{position:relative;flex:0 0 100px;height:120px;display:grid;place-items:center;border-radius:10px;background:var(--surface-2,#f3f5f8);color:var(--muted);overflow:hidden;font-size:1.5rem}
.table-preview-portrait>.icon{width:32px;height:32px}
.table-preview-portrait>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--surface,#fff)}
.table-preview-portrait>img.table-preview-logo{object-fit:contain;padding:8px}
.table-preview-portrait>img[hidden]{display:none}
.table-preview-description{min-width:0;overflow-wrap:anywhere}
.table-preview-description>h2{font-size:1.15rem;line-height:1.3;margin:3px 0 8px}
.table-preview-description>p{font-size:.85rem;line-height:1.5;color:var(--muted);white-space:pre-line;margin:0}
.table-preview-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;margin:0}
.table-preview-fact{border-top:1px solid var(--border);padding-top:10px;min-width:0}
.table-preview-fact>dt{font-size:.75rem;color:var(--muted);margin-bottom:5px}
.table-preview-fact>dd{font-size:.85rem;line-height:1.5;margin:0;white-space:pre-line;overflow-wrap:anywhere}
.table-preview-fact-wide{grid-column:1/-1}
.table-preview-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;white-space:normal}
.table-preview-tags>li{border:1px solid var(--border);border-radius:6px;padding:3px 8px;background:var(--surface-2,#f3f5f8);font-size:.8rem}
.table-preview-more{display:inline-block;margin-top:8px;font-size:.8rem}
.record-history-excerpt{margin-top:18px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2,#f7f8fa)}
.record-history-excerpt>h3{font-size:.85rem;margin:0 0 7px;line-height:1.4}
.record-history-excerpt-meta{font-size:.75rem;color:var(--muted);line-height:1.5;margin:0 0 8px}
.record-history-excerpt-meta>span{display:block}
.record-history-excerpt-text{font-size:.85rem;line-height:1.5;margin:0 0 10px;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.record-history-excerpt>a{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;text-decoration:none}
.record-history-excerpt>a>.icon{width:14px;height:14px}
.table-preview-footer{display:flex;align-items:center;gap:18px;justify-content:flex-end;border-top:1px solid var(--border);padding:13px 18px;background:var(--surface-2,#f7f8fa);flex-shrink:0}
.table-preview-pin{display:inline-flex;align-items:center;gap:6px;margin-right:auto;padding:4px 0;border:0;background:transparent;color:var(--muted);font-size:.8rem;cursor:pointer}
.table-preview-pin[hidden]{display:none}
.table-preview-pin:hover{color:var(--accent,#e4002b)}
.table-preview-footer>a{display:inline-flex;flex-shrink:0;align-items:center;gap:8px;text-decoration:none;font-size:.85rem;font-weight:650}
@media(max-width:380px){.table-preview-facts{grid-template-columns:1fr}.table-preview-portrait{flex-basis:80px;height:100px}}
@media print{.table-preview-trigger,.table-quick-preview{display:none!important}}
