/* People & Access (js/people-access.js). Both layouts: the new layout's tokens
   (css/hub-v12-tokens.css) with Classic fallbacks. Navy is structure, blue is
   anything you can act on, amber marks an exception, gray a locked rule. */

.pa-page {
  --pa-navy: var(--hub-navy, #12213B);
  --pa-navy-2: var(--hub-navy-2, #24375A);
  --pa-on-navy: var(--hub-on-navy, #FFFFFF);
  --pa-on-navy-muted: var(--hub-on-navy-muted, #C9D2E3);
  --pa-action: var(--hub-action, #2563EB);
  --pa-action-d: var(--hub-action-d, #1D4ED8);
  --pa-action-l: var(--hub-action-l, #EAF1FE);
  --pa-ink: var(--hub-ink, #1A2233);
  --pa-muted: var(--hub-ink-muted, #5B6576);
  --pa-line: var(--hub-line, #E3E7EE);
  --pa-line-strong: var(--hub-line-strong, #D3D9E3);
  --pa-surface: var(--hub-surface, #FFFFFF);
  --pa-canvas: var(--hub-canvas, #F5F6F9);
  --pa-wait: var(--hub-wait, #8A5A12);
  --pa-wait-l: var(--hub-wait-l, #FFF4D6);
  --pa-off: var(--hub-off, #64748B);
  --pa-off-l: var(--hub-off-l, #EEF1F5);
  color: var(--pa-ink);
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.pa-page * { box-sizing: border-box; }
.pa-page #paRoot, #paRoot.pa-page { min-width: 0; }
.pa-top h1 { margin: 0; font-size: 1.5rem; color: var(--pa-ink); }
.pa-lead { margin: 4px 0 0; font-size: .95rem; }
.pa-note { font-size: .8rem; color: var(--pa-muted); }
.pa-pad { padding: 12px; }
.pa-banner {
  margin: 10px 0; padding: 10px 12px; border-radius: 10px;
  background: var(--pa-wait-l); color: var(--pa-wait); font-size: .88rem; font-weight: 600;
}

.pa-tabs { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--pa-line); margin-top: 10px; }
.pa-tab {
  border: 0; background: transparent; padding: 10px 14px; font-size: .92rem; color: var(--pa-muted);
  border-bottom: 3px solid transparent; cursor: pointer; min-height: 44px;
}
.pa-tab.on { color: var(--pa-ink); font-weight: 600; border-bottom-color: var(--pa-action); }
.pa-body { margin-top: 14px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }

.pa-card { background: var(--pa-surface); border: 1px solid var(--pa-line); border-radius: 12px; min-width: 0; }
.pa-split { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-start; min-width: 0; }
.pa-list { flex: 1 1 260px; max-width: 340px; overflow: hidden; }
.pa-panel { flex: 3 1 480px; display: flex; flex-direction: column; gap: 14px; }
.pa-grow { flex: 3 1 440px; }
.pa-side { flex: 1 1 300px; display: flex; flex-direction: column; gap: 10px; }

.pa-people { max-height: 62vh; overflow: auto; }
.pa-person {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  padding: 9px 12px; border: 0; border-bottom: 1px solid var(--pa-line); background: transparent;
  cursor: pointer; font-size: .9rem; color: var(--pa-ink); min-height: 48px;
}
.pa-person.on { background: var(--pa-action-l); }
.pa-person-name { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pa-person-name small { color: var(--pa-muted); font-size: .76rem; }

.pa-head { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.pa-head h2 { margin: 0; font-size: 1.2rem; }
.pa-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.pa-btn {
  border: 1px solid var(--pa-line-strong); background: var(--pa-surface); color: var(--pa-ink);
  border-radius: 9px; padding: 7px 11px; font-size: .84rem; cursor: pointer; min-height: 40px;
}
.pa-btn:disabled { opacity: .5; cursor: default; }
.pa-btn.pa-pri { border: 0; background: var(--pa-action); color: var(--pa-on-navy); font-weight: 600; }
.pa-wide { width: 100%; }
.pa-mini {
  border: 1px solid var(--pa-line-strong); background: var(--pa-surface); color: var(--pa-action-d);
  border-radius: 8px; padding: 2px 9px; font-size: .78rem; cursor: pointer; min-height: 30px;
}
.pa-mini:disabled { color: var(--pa-muted); opacity: .5; cursor: default; }

.pa-segs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.pa-seg {
  border: 1px solid var(--pa-line-strong); background: var(--pa-surface); color: var(--pa-ink);
  border-radius: 8px; padding: 6px 10px; font-size: .8rem; cursor: pointer; min-height: 36px;
}
.pa-seg.on { border-color: var(--pa-action); background: var(--pa-action-l); color: var(--pa-action-d); font-weight: 600; }
.pa-seg:disabled { opacity: .55; cursor: default; }
.pa-count { color: var(--pa-muted); font-weight: 400; }
.pa-rolepick { margin-top: 0; }

.pa-cols { display: flex; flex-wrap: wrap; gap: 18px; min-width: 0; }
.pa-col-main { flex: 2 1 340px; min-width: 0; }
.pa-col-side { flex: 1 1 260px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.pa-colhead { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }

.pa-grp {
  display: flex; align-items: center; gap: 8px; margin: 14px 0 4px;
  font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--pa-muted); font-weight: 700;
}
.pa-grp .pa-note { text-transform: none; letter-spacing: 0; font-weight: 500; }
.pa-grp-label { color: var(--pa-ink); }
.pa-row {
  display: flex; align-items: center; gap: 10px; padding: 7px 0 7px 22px;
  border-bottom: 1px solid var(--pa-line); font-size: .86rem; flex-wrap: wrap;
}
.pa-row-label { flex: 1; min-width: 8rem; }
.pa-row.pa-ex { background: var(--pa-wait-l); border-radius: 8px; padding-right: 8px; }

.pa-sw {
  width: 38px; height: 22px; border-radius: 999px; border: 0; background: var(--pa-line-strong);
  position: relative; cursor: pointer; flex: none; padding: 0;
}
.pa-sw::after {
  content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px;
  border-radius: 50%; background: var(--pa-surface); transition: left .15s;
}
.pa-sw.on { background: var(--pa-action); }
.pa-sw.on::after { left: 19px; }
.pa-sw.lock { background: var(--pa-off-l); cursor: not-allowed; box-shadow: inset 0 0 0 1px var(--pa-line-strong); }
.pa-sw.lock::after { background: var(--pa-off-l); box-shadow: 0 0 0 1px var(--pa-line-strong); }
.pa-sw.lock.on { background: var(--pa-off); opacity: .6; box-shadow: none; }
.pa-sw.lock.on::after { background: var(--pa-surface); box-shadow: none; }
.pa-never { border-bottom: 0; }
.pa-link { border: 0; background: transparent; color: var(--pa-action-d); font-size: .8rem; cursor: pointer; padding: 4px 0; text-decoration: underline; }
.pa-sw:focus-visible, .pa-seg:focus-visible, .pa-chip:focus-visible, .pa-btn:focus-visible, .pa-tab:focus-visible {
  outline: 2px solid var(--pa-action); outline-offset: 2px;
}

.pa-pill {
  font-size: .7rem; font-weight: 600; border-radius: 999px; padding: 2px 8px;
  background: var(--pa-off-l); color: var(--pa-off); white-space: nowrap;
}
.pa-pill.amber { background: var(--pa-wait-l); color: var(--pa-wait); }
.pa-pill.blue { background: var(--pa-action-l); color: var(--pa-action-d); }
.pa-pill.gray { background: var(--pa-off-l); color: var(--pa-off); }

.pa-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pa-chip {
  border: 1px solid var(--pa-line-strong); background: var(--pa-surface); color: var(--pa-ink);
  border-radius: 999px; padding: 5px 10px; font-size: .78rem; cursor: pointer; min-height: 32px;
}
.pa-chip.on { background: var(--pa-navy); color: var(--pa-on-navy); border-color: var(--pa-navy); }

.pa-field { display: flex; flex-direction: column; gap: 2px; }
.pa-check { display: flex; gap: 8px; align-items: center; font-size: .86rem; color: var(--pa-ink); margin: 6px 0; }
.pa-check input { width: 18px; height: 18px; margin: 0; }

.pa-boxes { margin-top: 14px; border-top: 1px solid var(--pa-line); padding-top: 10px; }
.pa-boxes summary { cursor: pointer; font-weight: 600; font-size: .88rem; color: var(--pa-action-d); }
.pa-boxrow { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; border-bottom: 1px solid var(--pa-line); padding: 4px 0; }
.pa-boxrow > span { flex: 1; min-width: 10rem; font-size: .86rem; }

/* Live previews */
.pa-previews { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-start; }
.pa-prev { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pa-prev-desk { flex: 1 1 260px; }
.pa-prev-label { font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: var(--pa-muted); font-weight: 700; }
.pa-phone {
  width: 210px; height: 380px; border-radius: 26px; border: 7px solid var(--pa-navy);
  background: var(--pa-canvas); display: flex; flex-direction: column; overflow: hidden; flex: none;
}
.pa-phone-top { background: var(--pa-navy); color: var(--pa-on-navy); padding: 9px 12px; font-weight: 700; font-size: .8rem; }
.pa-phone-tiles { flex: 1; padding: 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; align-content: start; }
.pa-tile {
  background: var(--pa-surface); border: 1px solid var(--pa-line); border-radius: 10px;
  padding: 9px; font-size: .74rem; font-weight: 600; color: var(--pa-ink); min-height: 44px;
}
.pa-phone-bar { display: flex; background: var(--pa-surface); border-top: 1px solid var(--pa-line); }
.pa-phone-bar div { flex: 1; text-align: center; font-size: .64rem; padding: 8px 2px; color: var(--pa-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pa-phone-bar div.on { color: var(--pa-action); font-weight: 700; }
.pa-desk {
  display: flex; border: 1px solid var(--pa-line-strong); border-radius: 10px; overflow: hidden;
  height: 380px; background: var(--pa-canvas); min-width: 0;
}
.pa-desk-menu {
  width: 46%; max-width: 190px; background: var(--pa-navy); color: var(--pa-on-navy-muted);
  padding: 9px 8px; overflow: auto; font-size: .72rem; flex: none;
}
.pa-desk-grp { color: var(--pa-on-navy); font-weight: 700; font-size: .66rem; letter-spacing: .05em; text-transform: uppercase; margin: 8px 0 3px; opacity: .85; }
.pa-desk-grp:first-child { margin-top: 0; }
.pa-desk-item { padding: 3px 6px; border-radius: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pa-desk-main { flex: 1; padding: 10px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pa-desk-title { font-weight: 700; font-size: .85rem; }
.pa-desk-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pa-desk-lines i { display: block; height: 8px; border-radius: 4px; background: var(--pa-line); margin: 6px 0; }
.pa-desk-lines i:nth-child(2) { width: 80%; }
.pa-desk-lines i:nth-child(3) { width: 60%; }

/* Menu order */
.pa-order { border-bottom: 1px solid var(--pa-line); }
.pa-order.dragging { opacity: .5; }
.pa-order-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; }
.pa-handle { width: 22px; text-align: center; color: var(--pa-muted); cursor: grab; user-select: none; }
.pa-expand {
  flex: 1; text-align: left; border: 0; background: transparent; cursor: pointer; padding: 6px 4px;
  color: var(--pa-ink); font-size: .9rem; min-height: 40px;
}
.pa-items { padding: 0 0 8px 30px; }
.pa-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; }
.pa-rename {
  flex: 1; min-width: 0; font-size: .85rem; border: 1px solid var(--pa-line); border-radius: 8px; padding: 6px 9px;
  background: var(--pa-surface); color: var(--pa-ink);
}
.pa-hidden .pa-row { padding-left: 0; }

@media (max-width: 700px) {
  .pa-list { max-width: none; flex-basis: 100%; }
  .pa-people { max-height: 34vh; }
  .pa-phone { width: 190px; height: 340px; }
  .pa-desk { height: 320px; }
  .pa-row { padding-left: 8px; }
  .pa-top h1 { font-size: 1.3rem; }
}

/* Classic phone: keep a side gutter (the new layout's page already has one). */
@media (max-width: 700px) {
  body:not(.hub-v12) .pa-page { padding: 0 10px; }
}
