/* v88.15.0 (BO2): the person record panel (admin-person.js). On a laptop (1180px and wider) it sits at the right, under
   the site's header, and the office page's main column moves over by its width, so the list stays beside it and
   readable (the People directory then shows Name, Role and Status); on a phone or a narrower window it is the whole
   screen, with a Back. The open person's row in the list is marked. Shared pieces inside: the status badge, the
   underline tabs (a little tighter here, as approved), the outline and danger buttons. */
:root{--ca-person-w:min(624px,calc(100vw - 728px))}
.ca-person{position:fixed;z-index:250;top:var(--ca-person-top,77px);right:0;bottom:0;width:var(--ca-person-w);box-sizing:border-box;display:flex;flex-direction:column;background:var(--card);color:var(--ink);border-left:1px solid #d8e2eb;box-shadow:-18px 0 40px -24px rgba(16,23,58,.45);font-family:var(--font-body)}
.ca-person[hidden]{display:none}
.ca-person-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px 10px 20px;border-bottom:1px solid #d8e2eb;background:#f7f9fb}
.ca-person-step{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
/* Previous and Next are the shared outline pill (btn btn-secondary btn-sm), with a chevron */
.ca-person-nav.btn{display:inline-flex;align-items:center;gap:4px;margin:0;padding-left:14px;padding-right:14px}
.ca-person-nav:disabled{opacity:.5;cursor:default}
.ca-person-nav .cn-ic{width:16px;height:16px}
.ca-person-pos{margin-left:8px;font-size:.875rem;color:var(--ink-soft)}
.ca-person-x{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--ink);cursor:pointer}
.ca-person-x:hover{background:#e9f0f5}
.ca-person-x .cn-ic{width:22px;height:22px}
.ca-person-back{display:none;align-items:center;gap:6px;min-height:44px;padding:6px 12px 6px 6px;border:0;border-radius:999px;background:transparent;color:var(--ink);font:inherit;font-size:1rem;font-weight:700;cursor:pointer}
.ca-person-back .cn-ic{width:20px;height:20px}
.ca-person-main{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column}
.ca-person-head{display:flex;align-items:flex-start;gap:16px;padding:18px 24px 14px;background:var(--card)}
.ca-person-av{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#f2eee6;border:1px solid #e7dfd1;color:#756248;font-weight:700;font-size:1rem;line-height:1}
.ca-person-who{flex:1;min-width:0}
.ca-person-eyebrow{margin:0 0 2px;font-weight:700;font-size:.75rem;line-height:1.3;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.ca-person-head h2{margin:0;font-size:1.6rem;line-height:1.2;color:var(--ink);overflow-wrap:anywhere}
.ca-person-contact{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;font-size:.84rem;color:var(--ink-soft);overflow-wrap:anywhere}
.ca-person-contact span{display:inline-flex;align-items:center;gap:5px;min-width:0}
.ca-person-contact .cn-ic{width:15px;height:15px;flex:none}
.ca-person-contact .is-ok .cn-ic{color:#1F7A4D}
.ca-person-head>.status-badge{flex:none;margin-top:2px}
.ca-person-tabs.tabs{position:sticky;top:0;z-index:1;flex:none;gap:4px 18px;margin:0;padding:0 24px;background:var(--card)}
.ca-person-tabs.tabs>button{font-size:.9rem;padding:6px 0 8px;white-space:nowrap}
.ca-person-body{flex:1 0 auto;padding:18px 24px 28px;background:var(--cream)}
.ca-person-body:focus-visible{outline-offset:-4px}
.ca-person-body h3{margin:0;font-size:1rem;line-height:1.35;color:var(--ink)}
.ca-pp-next{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin:0 0 4px;padding:14px 16px;border:1px solid #d8e2eb;border-radius:14px;background:var(--card)}
.ca-pp-next.is-action{border-left:4px solid #E0B040}
.ca-pp-ni{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#f3f4f7;color:var(--ink-soft)}
.ca-pp-ni .cn-ic{width:20px;height:20px}
.ca-pp-next p{margin:3px 0 0;font-size:.875rem;line-height:1.45;color:var(--ink-soft)}
.ca-pp-next .btn{margin:0;white-space:nowrap}
.ca-person-body .ca-pp-h{display:flex;align-items:center;gap:8px;margin:18px 0 6px}
.ca-pp-list{list-style:none;margin:0;padding:0 16px;border:1px solid #d8e2eb;border-radius:14px;background:var(--card)}
.ca-pp-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #d8e2eb}
.ca-pp-row:last-child{border-bottom:0}
.ca-pp-mk{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:#f3f4f7;color:var(--ink-soft)}
.ca-pp-mk .cn-ic{width:15px;height:15px}
.ca-pp-row>div{flex:1;min-width:0}
.ca-pp-row b{display:block;font-size:.9rem;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
.ca-pp-row small{display:block;margin-top:1px;font-size:.8125rem;line-height:1.4;color:var(--ink-soft)}
.ca-pp-row p{margin:6px 0 0;font-size:.875rem;line-height:1.5;color:var(--ink);white-space:pre-line;overflow-wrap:anywhere}
.ca-pp-row>.status-badge{flex:none}
.ca-pp-date{flex:none;display:grid;place-items:center;width:40px;padding:3px 0;border-radius:8px;background:#f3f4f7;color:var(--ink);line-height:1.1}
.ca-pp-date b{font-size:1rem}
.ca-pp-date small{margin:0;font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--ink-soft)}
.ca-pp-go{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font-weight:700;font-size:.875rem;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ca-pp-row b a{display:inline-block;min-height:24px;line-height:24px;color:var(--ink);text-underline-offset:3px}
.ca-pp-sum{margin:0 0 10px;font-size:.9rem;color:var(--ink-soft)}
.ca-pp-more{margin:14px 0 0;font-size:.9rem}
/* a link on its own line is at least 24 px high (WCAG 2.5.8), like the names in the office's tables */
.ca-pp-more>a:not(.btn){display:inline-block;min-height:24px;line-height:24px;font-weight:700;color:var(--ink);text-underline-offset:3px}
.ca-pp-more>.btn{margin:0}
.ca-pp-empty{display:flex;align-items:center;gap:10px;margin:0;padding:14px 16px;border:1px dashed #A9B1C2;border-radius:12px;font-size:.9rem;color:var(--ink-soft)}
.ca-pp-empty .cn-ic{width:18px;height:18px;flex:none}
.ca-pp-later{margin:14px 0 0}
.ca-pp-later>summary{min-height:44px;display:flex;align-items:center;font-weight:700;cursor:pointer}
.ca-pp-later>p{margin:0 0 8px;font-size:.875rem;color:var(--ink-soft)}
.ca-pp-card{margin:0 0 14px;padding:16px 18px;border:1px solid #d8e2eb;border-radius:14px;background:var(--card)}
.ca-pp-card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px}
.ca-person-body .ca-pp-card-h h3{font-size:1.05rem}
.ca-pp-card p{margin:0;font-size:.9rem;line-height:1.55;color:var(--ink);overflow-wrap:anywhere}
.ca-pp-card .ca-pp-meta{margin-top:8px;font-size:.8125rem;color:var(--ink-soft)}
.ca-pp-card .ca-pp-more{margin-top:10px}
.ca-pp-card-a{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:14px}
.ca-pp-card-a .btn{margin:0;display:inline-flex;align-items:center;gap:8px}
.ca-pp-card-a .btn .cn-ic{width:17px;height:17px}
.ca-pp-card-a .btn:disabled{opacity:.55;cursor:not-allowed}
.ca-pp-card-a small{font-size:.875rem;color:var(--ink-soft)}
.ca-pp-dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 14px;margin:8px 0 0;font-size:.9rem}
.ca-pp-dl dt{font-weight:600;color:var(--ink-soft)}
.ca-pp-dl dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.ca-pp-error{padding:14px 16px;border:1px solid #C8462E;border-radius:12px;background:var(--card)}
.ca-pp-error p{margin:0 0 10px}
/* a name that opens the panel, in any office list; the open person's row */
.ca-person-link{font-weight:700;color:#193e55;text-decoration:underline;text-decoration-color:#7D879B;text-underline-offset:3px}
.ca-person-link:hover{text-decoration-color:currentColor}
/* a name on its own line in a table cell (under an invoice number, or the worker under the participant) is a target at
   least 24px tall, with room from the link above it */
:is(td,th) .ca-person-link{display:inline-block;min-height:24px;line-height:24px}
:is(td,th) :is(br + .ca-person-link,br + span > .ca-person-link){margin-top:4px}
tr.ca-person-row-open>td{background:#FDF6E3}
tr.ca-person-row-open>td:first-child{box-shadow:inset 4px 0 0 #F1BE48}
tr.ca-person-row-open :is(.pd-name,.ca-person-link){text-decoration-color:currentColor}
/* a laptop: the list moves over (the workspace's main column ends before the panel); the People directory keeps Name,
   Role and Status beside it, in a table that fits its narrower column */
@media(min-width:1180px){
html.ca-person-open .ca-workspace>.ca-main{padding-right:var(--ca-person-room,0px);box-sizing:border-box}
html.ca-person-open .ca-content .pd-table{min-width:0;width:100%;table-layout:fixed}
html.ca-person-open .pd-table .pd-more{display:none}
html.ca-person-open .pd-table .pd-role{width:104px}
html.ca-person-open .pd-table .pd-status{width:204px}
html.ca-person-open .ca-content .adm-table-wrap:has(>.pd-table){overflow:visible}
}
/* a phone or a narrower window: the whole screen, with a Back (the page behind is out of reach, admin-person.js) */
@media(max-width:1179px){
.ca-person{top:0;left:0;width:auto;border-left:0;box-shadow:none;overflow:auto}
html.ca-person-full,html.ca-person-full body{overflow:hidden}
.ca-person-back{display:inline-flex}
.ca-person-x{display:none}
.ca-person-bar{position:sticky;top:0;z-index:2;padding:8px 12px;flex-wrap:wrap}
.ca-person-step{margin-left:auto;justify-content:flex-end}
.ca-person-pos{flex-basis:100%;margin:0;text-align:right;font-size:.8125rem}
.ca-person-nav.btn{padding-left:10px;padding-right:10px}
.ca-person-main{overflow:visible}
.ca-person-tabs.tabs{position:static}
}
@media(max-width:560px){
.ca-person-head{gap:12px;padding:16px 16px 12px;flex-wrap:wrap}
.ca-person-av{width:44px;height:44px}
.ca-person-head h2{font-size:1.4rem}
.ca-person-head>.status-badge{order:3;margin:0 0 0 56px}
.ca-person-tabs.tabs{position:static;padding:0 16px;gap:2px 16px}
.ca-person-body{padding:16px 16px 28px}
.ca-pp-next{grid-template-columns:auto minmax(0,1fr)}
.ca-pp-next>.btn{grid-column:1/-1;justify-self:start;white-space:normal}
.ca-pp-list{padding:0 12px}
.ca-pp-row{flex-wrap:wrap;gap:8px 12px}
.ca-pp-row>div{flex-basis:calc(100% - 52px)}
.ca-pp-row>.status-badge{margin-left:38px}
.ca-pp-booking>.status-badge{margin-left:52px}
.ca-pp-dl{grid-template-columns:minmax(0,1fr)}
.ca-pp-dl dd{margin-bottom:6px}
.ca-person-nav span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media(pointer:coarse){.ca-pp-later>summary{min-height:44px}}
html.high-contrast .ca-person{border-left:2px solid #000}
html.high-contrast :is(.ca-pp-list,.ca-pp-card,.ca-pp-next,.ca-pp-empty){border:2px solid #000}
html.high-contrast tr.ca-person-row-open>td{background:#fff}
html.high-contrast tr.ca-person-row-open>td:first-child{box-shadow:inset 6px 0 0 #000}
html.high-contrast .ca-person-link{color:#000;text-decoration-color:#000}
