/* =========================================================================
   YPR Chapter Portal — dashboard chrome + screens
   Reuses the theme's :root design tokens (--violet/--yellow/--blue/--ink/...).
   Everything scoped under .sr-portal.
   ========================================================================= */

.sr-portal { background: var(--grey-100); min-height: 100vh; }
.sr-portal .btn { cursor: pointer; }

/* ---------- Shell ---------- */
.pt-shell { display: grid; grid-template-columns: 250px 1fr; min-height: 100vh; }

/* ---------- Sidebar ---------- */
.pt-side { background: var(--ink); color: #fff; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.pt-brand { display: flex; align-items: center; gap: 10px; padding: 20px 20px 16px; color: #fff; border-bottom: 1px solid rgba(255,255,255,.08); }
.pt-brand img { height: 30px; width: auto; }
.pt-brand span { font-family: var(--font-display); text-transform: uppercase; font-size: .92rem; letter-spacing: .04em; }
.pt-nav { display: flex; flex-direction: column; gap: 3px; padding: 14px 12px; flex: 1; overflow-y: auto; }
.pt-nav__item { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 10px; color: var(--grey-400); font-weight: 700; font-size: .92rem; transition: background .15s, color .15s; }
.pt-nav__item svg { flex: 0 0 auto; opacity: .9; }
.pt-nav__item:hover { background: rgba(255,255,255,.06); color: #fff; }
.pt-nav__item.is-active { background: var(--violet); color: #fff; }
.pt-side__foot { padding: 12px; border-top: 1px solid rgba(255,255,255,.08); display: flex; flex-direction: column; gap: 3px; }

/* ---------- Main ---------- */
.pt-main { display: flex; flex-direction: column; min-width: 0; }
.pt-topbar { display: flex; align-items: center; gap: 16px; padding: 14px clamp(18px,3vw,34px); background: #fff; border-bottom: 1px solid var(--grey-200); position: sticky; top: 0; z-index: 10; }
.pt-topbar__title { font-family: var(--font-display); text-transform: uppercase; font-size: 1.2rem; color: var(--ink); flex: 1; }
.pt-user { display: flex; align-items: center; gap: 12px; }
.pt-user__meta { text-align: right; line-height: 1.2; display: flex; flex-direction: column; }
.pt-user__meta strong { font-size: .88rem; color: var(--ink); }
.pt-avatar { width: 40px; height: 40px; border-radius: 999px; background: var(--violet); color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-size: 1.1rem; }
.pt-role { display: inline-block; font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; padding: 2px 8px; border-radius: 999px; }
.pt-role--chapter_lead { background: rgba(17,114,162,.14); color: var(--blue); }
.pt-role--chapter_manager, .pt-role--program_assistant { background: rgba(236,168,3,.18); color: var(--yellow-dk); }
.pt-role--people_editor { background: rgba(17,114,162,.12); color: var(--blue); }
.pt-role--portal_admin, .pt-role--administrator { background: rgba(179,9,173,.12); color: var(--violet); }
.pt-content { padding: clamp(20px,3vw,36px); max-width: 1560px; width: 100%; margin: 0 auto; }

/* ---------- Active now: topbar counter beside the bell (inc/portal-presence.php) ---------- */
.pt-online { display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 14px; border-radius: 999px; background: #fff; border: 1px solid var(--grey-200); color: var(--grey-600); font-size: .8rem; font-weight: 800; white-space: nowrap; cursor: default; }
.pt-online__n { color: var(--ink); font-size: .9rem; }
.pt-online__dot { width: 8px; height: 8px; border-radius: 999px; background: #1f9d55; box-shadow: 0 0 0 3px rgba(31,157,85,.18); }
@media (prefers-reduced-motion: no-preference) {
	.pt-online__dot { animation: pt-online-pulse 2.4s ease-in-out infinite; }
	@keyframes pt-online-pulse { 50% { box-shadow: 0 0 0 5px rgba(31,157,85,.08); } }
}
@media (max-width: 480px) {
	.pt-online { padding: 0 11px; gap: 6px; }
	.pt-online__label { display: none; }
}

/* ---------- Notifications: topbar bell + dropdown ----------
   <details> gives a no-JS dropdown; portal.js only adds close-on-outside-click. */
.pt-notif { position: relative; }
.pt-notif > summary { list-style: none; cursor: pointer; width: 40px; height: 40px; border-radius: 999px; display: grid; place-items: center; position: relative; color: var(--grey-600); background: #fff; border: 1px solid var(--grey-200); transition: color .15s, border-color .15s; }
.pt-notif > summary::-webkit-details-marker { display: none; }
.pt-notif > summary:hover, .pt-notif[open] > summary { color: var(--violet); border-color: var(--violet); }
.pt-notif__badge { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--violet); color: #fff; font-size: .68rem; font-weight: 800; line-height: 1; display: grid; place-items: center; border: 2px solid #fff; }
.pt-notif__panel { position: absolute; right: 0; top: calc(100% + 10px); width: 350px; max-width: calc(100vw - 28px); background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius-lg); box-shadow: 0 18px 50px rgba(0,0,0,.16); z-index: 60; overflow: hidden; }
.pt-notif__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--grey-100); font-size: .9rem; }
.pt-notif__head form { margin: 0; }
.pt-notif__head button { background: none; border: 0; padding: 0; color: var(--violet); font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.pt-notif__item { display: flex; gap: 10px; align-items: flex-start; padding: 11px 14px; border-bottom: 1px solid var(--grey-100); color: var(--ink); font-size: .86rem; text-decoration: none; }
.pt-notif__item:hover { background: var(--grey-100); }
.pt-notif__item.is-unread { background: rgba(179,9,173,.05); }
.pt-notif__item.is-unread strong::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 999px; background: var(--violet); margin-right: 6px; vertical-align: middle; }
.pt-notif__item svg { flex: 0 0 auto; margin-top: 2px; color: var(--grey-500); }
.pt-notif__item span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pt-notif__item strong { font-size: .86rem; line-height: 1.3; }
.pt-notif__item small { color: var(--grey-500); font-size: .74rem; }
.pt-notif__empty { margin: 0; padding: 20px 14px; text-align: center; color: var(--grey-500); font-size: .86rem; }
.pt-notif__all { display: block; text-align: center; padding: 11px; font-size: .82rem; font-weight: 800; color: var(--violet); text-decoration: none; }
.pt-notif__all:hover { background: var(--grey-100); }

/* Sidebar nav item with unread notifications behind it */
.pt-nav__item.has-new { color: #fff; }
.pt-nav__count { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--yellow); color: var(--ink); font-size: .7rem; font-weight: 800; line-height: 1; display: grid; place-items: center; }

/* Notifications screen */
.pt-notif-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 1rem; }
.pt-notif-list { display: grid; gap: 8px; }
.pt-notif-row { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 14px 16px; }
.pt-notif-row.is-unread { border-left: 4px solid var(--violet); }
.pt-notif-row > input[type=checkbox] { margin-top: 10px; }
.pt-notif-row__ic { width: 36px; height: 36px; border-radius: 999px; background: var(--grey-100); color: var(--violet); display: grid; place-items: center; flex: 0 0 auto; }
.pt-notif-row__body { flex: 1; min-width: 0; }
.pt-notif-row__body a { color: var(--ink); text-decoration: none; }
.pt-notif-row__body a:hover strong { color: var(--violet); }
.pt-notif-row__body p { margin: .3rem 0 0; color: var(--grey-600); font-size: .9rem; line-height: 1.45; }
.pt-notif-row__meta { margin-top: .4rem; font-size: .76rem; color: var(--grey-500); }

.pt-menu-toggle { display: none; }

/* Space between top-level sections on every portal screen (greeting, KPI grid,
   quick links, stacked .pt-card blocks, tabs, forms, ...). Scoped to direct
   children only, so it never touches the internal gap of a .pt-cards/.pt-kpis
   grid or anything nested inside a card. */
.pt-content > * + * { margin-top: 1.6rem; }

/* ---------- Cards / dashboard ---------- */
.pt-greeting h1 { font-family: var(--font-display); text-transform: uppercase; font-size: clamp(1.5rem,3vw,2.1rem); color: var(--ink); line-height: 1.05; }
.pt-greeting p { color: var(--grey-600); margin-top: .4rem; max-width: 60ch; }

.pt-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin: 1.6rem 0; }
.pt-kpi { background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 18px 20px; display: grid; gap: 4px; }
.pt-kpi__ic { width: 44px; height: 44px; border-radius: 999px; display: grid; place-items: center; margin-bottom: 6px; }
.pt-kpi__ic.ic--violet { background: rgba(179,9,173,.1); color: var(--violet); }
.pt-kpi__ic.ic--yellow { background: rgba(236,168,3,.16); color: var(--yellow-dk); }
.pt-kpi__ic.ic--blue { background: rgba(17,114,162,.12); color: var(--blue); }
.pt-kpi__val { font-family: var(--font-display); font-size: 1.9rem; color: var(--ink); line-height: 1; }
.pt-kpi__lbl { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--grey-500); }
.pt-kpi__sub { font-size: .8rem; font-weight: 600; color: var(--violet); margin-top: 2px; }
.pt-kpi__sub.is-quiet { color: var(--grey-500); font-weight: 500; }
a.pt-kpi--link { color: inherit; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
a.pt-kpi--link:hover, a.pt-kpi--link:focus-visible { border-color: var(--violet); box-shadow: 0 4px 16px rgba(179,9,173,.12); transform: translateY(-1px); }
a.pt-kpi--link:hover .pt-kpi__lbl { color: var(--violet); }

.pt-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.pt-card { background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius-lg); padding: clamp(20px,2.5vw,28px); }
.pt-card h2 { font-family: var(--font-display); text-transform: uppercase; font-size: 1.3rem; color: var(--ink); margin-bottom: .6rem; }
.pt-action h3 { display: flex; align-items: center; gap: 9px; font-family: var(--font-display); text-transform: uppercase; font-size: 1.05rem; color: var(--ink); margin-bottom: .5rem; }
.pt-action h3 svg { color: var(--violet); }
.pt-action p { color: var(--grey-600); font-size: .92rem; margin-bottom: 1rem; }
.pt-action__btns { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- Account ---------- */
.pt-dl { display: grid; gap: 2px; margin: 1rem 0; }
.pt-dl > div { display: grid; grid-template-columns: 200px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--grey-100); }
.pt-dl dt { font-weight: 800; text-transform: uppercase; font-size: .72rem; letter-spacing: .05em; color: var(--grey-500); }
.pt-dl dd { color: var(--ink); }
.pt-muted { color: var(--grey-600); font-size: .88rem; margin: 1rem 0; }

/* ---------- Split login (real photo left, open white panel right) ---------- */
.pt-split { min-height: 100vh; display: grid; grid-template-columns: 1.05fr 1fr; background: #fff; }
.pt-split__media { position: relative; overflow: hidden; background: var(--ink); }
.pt-split__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.4s ease; }
.pt-split__img.is-active { opacity: 1; }

/* Ken Burns. The photo drifts; the scrim, quote and form stay put — they are
   siblings painted above the <img>, so only the picture moves.
   Two rules keep it from showing an edge: every variant holds a scale above 1
   the whole way through, so there is always headroom to pan into, and the pans
   stay well inside that headroom (at scale 1.09 there is 4.5% spare per side and
   we travel ~2%). Duration is longer than the 6s rotation so the motion is still
   in progress when the crossfade takes over and never visibly parks at its end.
   Variants alternate per slide — a single repeated push reads mechanical. */
@media (prefers-reduced-motion: no-preference) {
  .pt-split__img { will-change: transform, opacity; }
  .pt-split__img.kb {
    animation-duration: 9s;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
  }
  .pt-split__img.kb--push  { animation-name: kb-push; }
  .pt-split__img.kb--pull  { animation-name: kb-pull; }
  .pt-split__img.kb--left  { animation-name: kb-left; }
  .pt-split__img.kb--right { animation-name: kb-right; }
  .pt-split__img.kb--rise  { animation-name: kb-rise; }

  @keyframes kb-push  { from { transform: scale(1.03); }                 to { transform: scale(1.13); } }
  @keyframes kb-pull  { from { transform: scale(1.13); }                 to { transform: scale(1.03); } }
  @keyframes kb-left  { from { transform: scale(1.09) translateX(2%); }  to { transform: scale(1.09) translateX(-2%); } }
  @keyframes kb-right { from { transform: scale(1.09) translateX(-2%); } to { transform: scale(1.09) translateX(2%); } }
  @keyframes kb-rise  { from { transform: scale(1.09) translateY(2%); }  to { transform: scale(1.09) translateY(-2%); } }
}
.pt-split__scrim { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(12,12,14,.30) 0%, rgba(12,12,14,.62) 70%, rgba(12,12,14,.78) 100%); }
.pt-split__quote { position: absolute; left: clamp(24px,4vw,54px); right: clamp(24px,4vw,54px); bottom: clamp(28px,4vw,52px); color: #fff; }
.pt-split__quote .script { font-family: var(--font-script, 'Caveat', cursive); font-size: clamp(1.9rem,3.2vw,2.9rem); color: var(--yellow); display: block; line-height: 1; }
.pt-split__quote p { margin: .45rem 0 0; font-size: .96rem; color: rgba(255,255,255,.9); max-width: 34ch; }

.pt-split__panel { display: grid; place-items: center; padding: clamp(28px,4vw,56px) clamp(20px,4vw,48px); background: #fff; }
.pt-split__inner { width: 100%; max-width: 400px; }
.pt-split__brand { display: block; margin-bottom: 26px; }
.pt-split__brand img { height: 40px; width: auto; }
/* On the open white panel the login "card" is flat — no border, no shadow. */
.pt-split .pt-card { background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; max-width: 100%; }
.pt-split .pt-login h1, .pt-split .pt-ack h1 { text-align: left; }
.pt-split .pt-login__sub, .pt-split .pt-ack__lead { text-align: left; margin-left: 0; margin-right: 0; }
.pt-split .pt-google-btn { justify-content: flex-start; }
@media (max-width: 900px) {
  .pt-split { grid-template-columns: 1fr; }
  .pt-split__media { min-height: 190px; }
  /* The media box collapses to a short, very wide strip here, so cover() would
     otherwise slice a band out of the vertical centre — below most faces. Bias
     the window upward to keep people in frame. */
  .pt-split__img { object-position: center 32%; }
  .pt-split__quote { display: none; }
}

/* ---------- Bare screens (login / acknowledge) ---------- */
.pt-bare {
  min-height: 100vh; display: grid; place-items: center; padding: 40px 20px; position: relative; overflow: hidden;
  background:
    radial-gradient(130% 100% at 50% 0%, rgba(25,23,34,.88) 0%, rgba(14,13,19,.94) 70%),
    var(--pt-bare-bg, none) center/cover no-repeat,
    #0e0d13;
}
.pt-bare__inner { width: 100%; max-width: 440px; position: relative; z-index: 2; }
.pt-bare__brand { display: block; text-align: center; margin-bottom: 22px; }
.pt-bare__brand img { height: 42px; width: auto; }
.pt-bare__glow { position: absolute; width: 60vw; height: 60vw; max-width: 640px; max-height: 640px; border-radius: 999px; background: radial-gradient(circle, rgba(179,9,173,.34), transparent 65%); top: -20%; left: 50%; transform: translateX(-50%); filter: blur(30px); }
.pt-bare .pt-card { box-shadow: var(--shadow-lg); }
.pt-ack { max-width: 520px; }
.pt-bare .pt-card, .pt-ack { max-width: 100%; }

.pt-login h1, .pt-ack h1 { font-family: var(--font-display); text-transform: uppercase; font-size: 1.8rem; color: var(--ink); text-align: center; }
.pt-login__sub, .pt-ack__lead { text-align: center; color: var(--grey-600); margin: .4rem 0 1.4rem; }
.pt-ack__ic { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 999px; background: rgba(179,9,173,.1); color: var(--violet); margin: 0 auto .8rem; }
.pt-ack__text { background: var(--grey-100); border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 18px; font-size: .9rem; line-height: 1.6; color: var(--grey-700); max-height: 240px; overflow-y: auto; margin-bottom: 1.2rem; }

/* ---------- Forms ---------- */
.pt-form { display: grid; gap: 12px; }
.pt-field { display: grid; gap: 5px; }
.pt-field span { font-size: .78rem; font-weight: 700; color: var(--ink); }
.pt-field input { border: 1.5px solid var(--grey-200); border-radius: 10px; padding: 12px 14px; font: inherit; font-size: .95rem; }
.pt-field input:focus { outline: 2px solid var(--violet); border-color: var(--violet); }
.pt-check { display: flex; align-items: flex-start; gap: 9px; font-size: .86rem; color: var(--grey-600); }
.pt-check input { margin-top: 3px; accent-color: var(--violet); }
.pt-check--ack { background: var(--grey-100); border: 1px solid var(--grey-200); border-radius: 10px; padding: 12px 14px; font-weight: 600; color: var(--ink); margin-bottom: 12px; }
.pt-btn { width: 100%; justify-content: center; background: var(--violet); color: #fff; margin-top: 4px; }
.pt-btn.btn--yellow { background: var(--yellow); color: #1a1306; }
.pt-btn:hover { filter: brightness(1.04); }
.pt-forgot { display: block; text-align: center; margin-top: 1rem; font-size: .84rem; color: var(--violet); }
.pt-help { display: flex; align-items: center; justify-content: center; gap: 6px; text-align: center; margin-top: .6rem; font-size: .82rem; color: var(--grey-600); }
.pt-help:hover { color: var(--violet); }
.pt-google-btn { display: flex; justify-content: center; margin-bottom: 14px; min-height: 40px; }
.pt-divider { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; color: var(--grey-600); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.pt-divider::before, .pt-divider::after { content: ""; flex: 1; height: 1px; background: var(--grey-200); }
.pt-alert { border-radius: 10px; padding: 11px 14px; font-size: .88rem; margin-bottom: 1rem; display: flex; align-items: center; gap: 8px; }
.pt-alert--err { background: #fdf3f2; border: 1px solid #f3c9c4; color: #9a2b1e; }
.pt-alert--ok { background: #eef8f0; border: 1px solid #bfe3c8; color: #1c6b34; }
.pt-alert--warn { background: #fff7e0; border: 1px solid var(--yellow); color: #7a5a00; }
.sr-hp { position: absolute; left: -9999px; }

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
	.pt-shell { grid-template-columns: 1fr; }
	.pt-side { position: fixed; inset: 0 auto 0 0; width: 250px; transform: translateX(-100%); transition: transform .25s var(--ease); z-index: 40; }
	.sr-portal.nav-open .pt-side { transform: none; box-shadow: 0 0 0 100vw rgba(0,0,0,.4); }
	.pt-menu-toggle { display: inline-flex; flex-direction: column; gap: 4px; background: none; border: 0; padding: 6px; }
	.pt-menu-toggle span, .pt-menu-toggle::before, .pt-menu-toggle::after { content: ""; display: block; width: 22px; height: 2px; background: var(--ink); border-radius: 2px; }
	.pt-user__meta { display: none; }
}

/* ---------- Status banner ---------- */
.pt-status { border-radius: var(--radius); padding: 14px 18px; margin-bottom: 1.2rem; display: flex; align-items: center; gap: 12px; font-size: .92rem; flex-wrap: wrap; }
.pt-status--pending { background: rgba(236,168,3,.12); border: 1px solid rgba(236,168,3,.4); color: #7a5a00; }
.pt-status--changes_req { background: #fdf3f2; border: 1px solid #f3c9c4; color: #7d2016; }
.pt-status--rejected { background: #f4f4f6; border: 1px solid #d9d9df; color: #3a3a44; }
.pt-status__pill { font-family: var(--font-display); text-transform: uppercase; font-size: .72rem; letter-spacing: .05em; padding: 4px 12px; border-radius: 999px; background: #fff; }

/* ---------- Editor ---------- */
.pt-editor-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 1.2rem; flex-wrap: wrap; }
.pt-editor-head h1 { font-family: var(--font-display); text-transform: uppercase; font-size: clamp(1.5rem,3vw,2rem); color: var(--ink); }
.pt-editor-head p { color: var(--grey-600); margin-top: .2rem; max-width: 60ch; }
.pt-editor { display: grid; gap: 12px; }
.pt-sect { background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); overflow: hidden; }
.pt-sect > summary { display: flex; align-items: center; gap: 10px; padding: 15px 18px; cursor: pointer; list-style: none; font-family: var(--font-display); text-transform: uppercase; font-size: 1rem; color: var(--ink); }
.pt-sect > summary::-webkit-details-marker { display: none; }
.pt-sect > summary svg { color: var(--violet); }
.pt-sect__chev { margin-left: auto; font-family: var(--font-display); font-size: 1.3rem; color: var(--violet); transition: transform .2s; }
.pt-sect[open] .pt-sect__chev { transform: rotate(45deg); }
.pt-sect__body { padding: 4px 18px 20px; display: grid; gap: 12px; border-top: 1px solid var(--grey-100); }
.pt-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pt-grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.pt-field { display: grid; gap: 5px; }
.pt-field > span, .pt-field__lbl { font-size: .76rem; font-weight: 800; color: var(--ink); text-transform: uppercase; letter-spacing: .03em; }
.pt-field input, .pt-field select, .pt-field textarea, .pt-row input, .pt-row select { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 10px 12px; font: inherit; font-size: .9rem; background: #fff; }
.pt-field input:focus, .pt-field textarea:focus, .pt-field select:focus, .pt-row input:focus, .pt-row select:focus { outline: 2px solid var(--violet); border-color: var(--violet); }
.pt-hint { font-size: .76rem; color: var(--grey-500); }
.pt-upload { display: flex; align-items: center; gap: 14px; }
.pt-upload__cur img { width: 56px; height: 56px; object-fit: contain; background: var(--ink); border-radius: 8px; padding: 4px; }
.pt-upload input[type=file] { font-size: .84rem; }
@media (max-width: 680px) { .pt-grid2, .pt-grid3 { grid-template-columns: 1fr; } }

/* Repeaters */
.pt-repeat { display: grid; gap: 8px; }
.pt-rows { display: grid; gap: 8px; }
.pt-row { display: grid; gap: 8px; align-items: end; background: var(--grey-100); border-radius: 10px; padding: 12px 40px 12px 12px; position: relative; }
.pt-row label { display: grid; gap: 3px; }
.pt-row label span { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--grey-500); }
.pt-row--3 { grid-template-columns: 140px 1fr 1fr; }
.pt-row--3 .c-wide { grid-column: span 3; }
.pt-row--4 { grid-template-columns: 1fr 1fr 1fr; }
.pt-row--event { grid-template-columns: 60px 50px 1fr 90px; }
.pt-row--event .c-wide { grid-column: span 4; }
.pt-row--story { grid-template-columns: 1fr 200px; }
.pt-row--story .c-wide { grid-column: auto; }
.pt-row__del { position: absolute; top: 10px; right: 10px; width: 24px; height: 24px; border-radius: 999px; border: 0; background: #fff; color: var(--grey-500); font-size: 1.1rem; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.pt-row__del:hover { background: #fdece9; color: #c0392b; }
.pt-addrow { justify-self: start; background: none; border: 1.5px dashed var(--grey-300); color: var(--violet); border-radius: 8px; padding: 8px 16px; font-weight: 700; font-size: .85rem; cursor: pointer; }
.pt-addrow:hover { border-color: var(--violet); background: rgba(179,9,173,.03); }
@media (max-width: 760px) { .pt-row { grid-template-columns: 1fr 1fr !important; } .pt-row .c-wide { grid-column: span 2 !important; } }

.pt-editor__bar { position: sticky; bottom: 0; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 14px 18px; display: flex; gap: 10px; justify-content: flex-end; box-shadow: 0 -6px 20px rgba(0,0,0,.06); margin-top: 6px; }

/* ---------- Review / diff ---------- */
.pt-review { background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius-lg); padding: 20px; margin-bottom: 16px; }
.pt-review__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.pt-review__head h3 { font-family: var(--font-display); text-transform: uppercase; font-size: 1.15rem; color: var(--ink); }
.pt-review__meta { font-size: .82rem; color: var(--grey-600); }
.pt-review__view { font-size: .8rem; color: var(--violet); font-weight: 700; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }
.pt-diff { display: grid; gap: 6px; margin-bottom: 16px; }
.pt-diff__row { display: grid; grid-template-columns: 180px 1fr auto 1fr; gap: 10px; align-items: center; padding: 9px 12px; background: var(--grey-100); border-radius: 8px; font-size: .88rem; }
.pt-diff__label { font-weight: 800; font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: var(--grey-600); }
.pt-diff__before { color: var(--grey-500); text-decoration: line-through; text-decoration-color: rgba(192,57,43,.4); }
.pt-diff__after { color: var(--ink); font-weight: 600; }
.pt-diff__arrow { color: var(--violet); }
.pt-diff__before img, .pt-diff__after img { width: 44px; height: 44px; object-fit: contain; background: var(--ink); border-radius: 6px; padding: 3px; }
.pt-diff em { color: var(--grey-400); font-style: italic; text-decoration: none; }
@media (max-width: 680px) { .pt-diff__row { grid-template-columns: 1fr; } .pt-diff__arrow { transform: rotate(90deg); justify-self: start; } }

.pt-decision { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; border-top: 1px solid var(--grey-100); padding-top: 14px; }
.pt-decision__note { flex: 1; min-width: 220px; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 10px 12px; font: inherit; font-size: .88rem; }
.pt-decision__btns { display: flex; gap: 8px; }
.pt-btn-reject { background: #fff; border: 1.5px solid #e6b3ac; color: #c0392b; }
.pt-btn-reject:hover { background: #fdece9; }

.pt-empty { text-align: center; color: var(--grey-500); }
.pt-empty svg { color: var(--yellow-dk); margin-bottom: .5rem; }
.pt-empty h2 { color: var(--ink); }

.pt-history { display: grid; gap: 8px; margin-top: .6rem; }
.pt-history li { display: flex; align-items: center; gap: 10px; font-size: .9rem; color: var(--grey-700); }
.pt-history__meta { color: var(--grey-500); font-size: .8rem; margin-left: auto; }
.pt-badge { font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 3px 9px; border-radius: 999px; }
.pt-badge--applied { background: #eef8f0; color: #1c6b34; }
.pt-badge--rejected { background: #fdece9; color: #c0392b; }
.pt-badge--changes_req { background: rgba(236,168,3,.16); color: #7a5a00; }

/* ---------- Activity log ---------- */
.pt-card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: .8rem; }
.pt-card__head h2 { margin: 0; }
.pt-filter select { border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 7px 10px; font: inherit; font-size: .85rem; }
.pt-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.pt-table th { text-align: left; font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: var(--grey-500); padding: 8px 10px; border-bottom: 2px solid var(--grey-200); }
.pt-table td { padding: 10px; border-bottom: 1px solid var(--grey-100); color: var(--ink); }
.pt-muted-cell { color: var(--grey-500); }
.pt-activity-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; align-items: start; }
@media (max-width: 900px) { .pt-activity-grid { grid-template-columns: 1fr; } }
.pt-feed { display: grid; gap: 2px; }
.pt-feed__item { display: flex; align-items: center; gap: 11px; padding: 9px 4px; border-bottom: 1px solid var(--grey-100); font-size: .9rem; }
.pt-feed__ic { width: 30px; height: 30px; border-radius: 999px; display: grid; place-items: center; flex: 0 0 auto; background: var(--grey-100); color: var(--grey-600); }
.pt-feed__ic--login, .pt-feed__ic--login_ack { background: rgba(179,9,173,.1); color: var(--violet); }
.pt-feed__ic--change_approved { background: #eef8f0; color: #1c6b34; }
.pt-feed__ic--change_submitted { background: rgba(17,114,162,.12); color: var(--blue); }
.pt-feed__ic--change_rejected { background: #fdece9; color: #c0392b; }
.pt-feed__ic--page_view { background: rgba(236,168,3,.14); color: var(--yellow-dk); }
.pt-feed__txt { flex: 1; color: var(--ink); }
.pt-feed__time { color: var(--grey-500); font-size: .78rem; white-space: nowrap; }
.pt-loginlist { display: grid; gap: 4px; }
.pt-loginlist li { display: flex; align-items: center; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--grey-100); }
.pt-avatar--sm { width: 30px; height: 30px; font-size: .85rem; }
.pt-loginlist__id { display: flex; flex-direction: column; line-height: 1.2; flex: 1; }
.pt-loginlist__id strong { font-size: .88rem; color: var(--ink); }
.pt-loginlist__id span { font-size: .72rem; color: var(--grey-500); }

/* ---------- Info Tree ---------- */
.pt-inline-form { background: var(--grey-100); border-radius: var(--radius); padding: 16px; margin: 12px 0; display: grid; gap: 10px; }
.pt-tree-list { display: grid; gap: 8px; }
.pt-tree-row { border: 1px solid var(--grey-200); border-radius: var(--radius); overflow: hidden; }
.pt-tree-row__main { display: flex; align-items: center; gap: 12px; padding: 12px 14px; flex-wrap: wrap; }
.pt-reorder { display: flex; gap: 2px; }
.pt-reorder form { display: inline; }
.pt-reorder button { width: 22px; height: 22px; border: 1px solid var(--grey-200); background: #fff; border-radius: 5px; cursor: pointer; color: var(--grey-600); font-size: .8rem; line-height: 1; }
.pt-reorder button:hover:not(:disabled) { border-color: var(--violet); color: var(--violet); }
.pt-reorder button:disabled { opacity: .3; cursor: default; }
.pt-tree-row__id { display: flex; flex-direction: column; line-height: 1.25; flex: 1; min-width: 160px; }
.pt-tree-row__id strong { font-size: .94rem; color: var(--ink); }
.pt-tree-row__id span { font-size: .78rem; color: var(--grey-500); }
.pt-tree-row__view { font-size: .78rem; color: var(--violet); font-weight: 700; white-space: nowrap; }
.pt-tree-row__expand { border: 1.5px solid var(--grey-200); background: #fff; border-radius: 999px; padding: 6px 14px; font-size: .78rem; font-weight: 700; color: var(--ink); cursor: pointer; }
.pt-tree-row__expand:hover { border-color: var(--violet); color: var(--violet); }
.pt-tree-row__detail { border-top: 1px solid var(--grey-100); padding: 16px; background: var(--grey-100); }
.pt-mini-form { background: #fff; border: 1px solid var(--grey-200); border-radius: 8px; padding: 12px; display: grid; gap: 8px; align-content: start; }
.pt-field-group-label { font-size: .78rem; font-weight: 800; color: var(--ink); text-transform: uppercase; letter-spacing: .03em; }
.pt-toggles { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.pt-toggle { display: inline-flex; align-items: center; gap: 5px; border: 1.5px solid var(--grey-200); background: #fff; border-radius: 999px; padding: 6px 12px; font-size: .78rem; font-weight: 700; cursor: pointer; color: var(--grey-500); }
.pt-toggle.is-on { border-color: #1c6b34; background: #eef8f0; color: #1c6b34; }
.pt-toggle.is-off { border-color: #e6b3ac; background: #fdece9; color: #c0392b; }

/* Locked sections in the Lead editor */
.pt-sect--locked > summary { color: var(--grey-500); }
.pt-locknote { display: flex; align-items: center; gap: 7px; background: #fdf3f2; border: 1px solid #f3c9c4; color: #7d2016; border-radius: 8px; padding: 9px 12px; font-size: .82rem; margin-bottom: 10px; }
.pt-fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 12px; min-width: 0; }
.pt-fieldset:disabled { opacity: .55; }

/* Dashboard announcement banner */
.pt-announce { display: flex; align-items: center; gap: 12px; background: rgba(236,168,3,.14); border: 1px solid rgba(236,168,3,.4); border-radius: var(--radius); padding: 14px 18px; margin-bottom: 1.4rem; color: #7a5a00; }
.pt-announce svg { flex: 0 0 auto; color: var(--yellow-dk); }

/* ---------- Quick Links strip ---------- */
.pt-quick { margin-bottom: 1.4rem; }
.pt-quick h3 { display: flex; align-items: center; gap: 8px; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--grey-600); margin: 0 0 10px; }
.pt-quick h3 svg { color: var(--violet); }
.pt-quick__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.pt-quick__item { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); font-size: .86rem; font-weight: 700; color: var(--ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.pt-quick__item svg { flex: 0 0 auto; color: var(--violet); }
.pt-quick__item:hover { border-color: var(--violet); box-shadow: 0 6px 18px rgba(179,9,173,.12); }

/* ---------- Resources ---------- */
.pt-res__search { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 10px 14px; margin-bottom: 1.4rem; }
.pt-res__search svg { flex: 0 0 auto; color: var(--grey-600); }
.pt-res__search input { flex: 1 1 0; min-width: 0; border: 0; background: none; font: inherit; font-size: .92rem; color: var(--ink); padding: 4px 0; }
.pt-res__search input:focus { outline: none; }

.pt-res__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; align-items: stretch; }
.pt-res__dept { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 20px; text-decoration: none; color: var(--ink); transition: border-color .15s, box-shadow .15s, transform .15s; }
.pt-res__dept:hover { border-color: var(--violet); box-shadow: 0 10px 26px rgba(179,9,173,.13); transform: translateY(-2px); }
.pt-res__dept-ic { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(179,9,173,.1); color: var(--violet); margin-bottom: 12px; }
.pt-res__dept h3 { margin: 0 0 6px; font-size: 1.02rem; color: var(--ink); }
.pt-res__dept p { margin: 0 0 12px; font-size: .84rem; line-height: 1.5; color: var(--grey-600); }
.pt-res__dept-count { margin-top: auto; font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--violet); }

.pt-res__head { margin-bottom: 1.4rem; }
.pt-res__back { display: inline-block; font-size: .8rem; font-weight: 700; color: var(--violet); text-decoration: none; margin-bottom: 8px; }
.pt-res__back:hover { text-decoration: underline; }
.pt-res__head h1 { margin: 0 0 6px; font-family: var(--font-display); text-transform: uppercase; font-size: clamp(1.5rem,3vw,2.1rem); color: var(--ink); line-height: 1.05; }
.pt-res__head p { margin: 0; color: var(--grey-600); max-width: 62ch; }

.pt-card > h3, .pt-mgr-head h3 { font-family: var(--font-display); text-transform: uppercase; font-size: 1.05rem; color: var(--ink); margin-bottom: .6rem; }
.pt-res__links { display: grid; gap: 4px; }
.pt-res__link { display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px; border-radius: 8px; text-decoration: none; color: var(--ink); border: 1px solid transparent; }
.pt-res__link:hover { background: var(--grey-100); border-color: var(--grey-200); }
.pt-res__link > svg { flex: 0 0 auto; margin-top: 2px; color: var(--violet); }
.pt-res__link-txt { display: flex; flex-direction: column; gap: 2px; line-height: 1.35; }
.pt-res__link-label { font-size: .9rem; font-weight: 700; }
.pt-res__link-note { font-size: .76rem; color: var(--grey-600); }
.pt-res__notes { margin: 0 0 4px; padding-left: 18px; display: grid; gap: 6px; }
.pt-res__notes li { font-size: .86rem; line-height: 1.5; color: var(--grey-600); }

/* ---------- Resource pages (inc/portal-resource-pages.php): ?doc=<slug> ---------- */
.pt-doc { max-width: 880px; color: var(--grey-700, #3a3a40); font-size: .95rem; line-height: 1.65; overflow-wrap: anywhere; }
.pt-doc > :first-child { margin-top: 0; }
.pt-doc h2, .pt-doc h3, .pt-doc h4 { color: var(--ink); line-height: 1.2; margin: 1.6em 0 .5em; }
.pt-doc h2 { font-family: var(--font-display); text-transform: uppercase; font-size: 1.3rem; }
.pt-doc h3 { font-size: 1.08rem; }
.pt-doc h4 { font-size: .98rem; }
.pt-doc p { margin: 0 0 1em; }
.pt-doc ul, .pt-doc ol { margin: 0 0 1em; padding-left: 1.4em; }
.pt-doc li { margin: .25em 0; }
.pt-doc a { color: var(--violet); font-weight: 700; }
.pt-doc img { max-width: 100%; height: auto; border-radius: 8px; }
.pt-doc hr { border: 0; border-top: 1px solid var(--grey-200); margin: 1.8em 0; }
.pt-doc table { width: 100%; border-collapse: collapse; margin: 0 0 1em; font-size: .88rem; }
.pt-doc th, .pt-doc td { border: 1px solid var(--grey-200); padding: 8px 10px; text-align: left; vertical-align: top; }
.pt-doc blockquote { margin: 0 0 1em; padding: 4px 0 4px 16px; border-left: 3px solid var(--violet); color: var(--grey-600); }
.pt-doc__links { list-style: none; padding: 0 !important; display: grid; gap: 4px; }
.pt-doc__links li { margin: 0; }
.pt-doc__links a { display: inline-flex; gap: 8px; align-items: baseline; text-decoration: none; }
.pt-doc__links a::before { content: '\2192'; color: var(--violet); }
.pt-doc__links a:hover { text-decoration: underline; }
.pt-doc__btn { display: inline-block; padding: 9px 18px; border-radius: 999px; background: var(--violet); color: #fff !important; text-decoration: none; font-size: .86rem; }
.pt-doc__btn:hover { filter: brightness(1.08); }
.pt-doc__embed { position: relative; width: 100%; aspect-ratio: 16 / 9; margin: 0 0 1.2em; border-radius: 10px; overflow: hidden; background: var(--grey-100); }
.pt-doc__embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pt-doc details { border: 1px solid var(--grey-200); border-radius: 10px; margin: 0 0 10px; background: #fff; }
.pt-doc details > summary { cursor: pointer; list-style: none; padding: 12px 16px; font-weight: 800; color: var(--ink); display: flex; justify-content: space-between; gap: 12px; }
.pt-doc details > summary::-webkit-details-marker { display: none; }
.pt-doc details > summary::after { content: '+'; color: var(--violet); font-size: 1.2rem; line-height: 1; }
.pt-doc details[open] > summary::after { content: '\2212'; }
.pt-doc details > :not(summary) { margin-left: 16px; margin-right: 16px; }
.pt-doc details > :last-child { margin-bottom: 14px; }

/* ---------- Team updates + recognition ---------- */
.pt-update__month { display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--violet); margin-bottom: 6px; }
.pt-update h2 { margin: 0 0 12px; }
.pt-update p { font-size: .93rem; line-height: 1.65; color: var(--grey-600); margin: 0 0 12px; max-width: 68ch; }
.pt-update__sign { font-weight: 700; color: var(--ink); }
.pt-update__em { color: var(--violet); font-weight: 800; }
.pt-update p a { color: var(--violet); font-weight: 800; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.pt-update p a:hover { color: var(--ink); }

.pt-excellent__meta { font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--violet); margin: 0 0 10px; }
.pt-excellent__grid { columns: 220px 4; column-gap: 22px; margin-top: 16px; }
.pt-excellent__state { break-inside: avoid; -webkit-column-break-inside: avoid; margin: 0 0 18px; }
.pt-excellent__state h4 { margin: 0 0 8px; font-size: .78rem; letter-spacing: .09em; text-transform: uppercase; color: var(--ink); padding-bottom: 6px; border-bottom: 2px solid var(--yellow); }
.pt-excellent__state ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.pt-excellent__state li { font-size: .84rem; line-height: 1.4; color: var(--grey-600); }

@media (max-width: 480px) {
  .pt-res__search .btn { width: 100%; }
  .pt-quick__grid { grid-template-columns: 1fr; }
}

/* ---------- Manage Portal (admin editor) ---------- */
.pt-flash { display: flex; align-items: center; gap: 10px; border-radius: var(--radius); padding: 12px 16px; margin-bottom: 1.2rem; font-size: .9rem; font-weight: 700; }
.pt-flash--ok { background: #eef8f0; border: 1px solid #bfe0c8; color: #1c6b34; }
.pt-flash--err { background: #fdece9; border: 1px solid #f3c9c4; color: #a3271a; }
.pt-flash svg { flex: 0 0 auto; }

.pt-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 1.4rem; border-bottom: 2px solid var(--grey-200); }
.pt-tab { padding: 10px 16px; font-size: .86rem; font-weight: 800; color: var(--grey-600); text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.pt-tab:hover { color: var(--violet); }
.pt-tab.is-active { color: var(--violet); border-bottom-color: var(--violet); }

.pt-mgr-form { display: grid; gap: 14px; }
.pt-mgr-form textarea { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 10px 12px; font: inherit; font-size: .9rem; background: #fff; resize: vertical; }
.pt-mgr-form textarea:focus { outline: 2px solid var(--violet); border-color: var(--violet); }
.pt-mgr-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pt-mgr-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: .8rem; }
.pt-mgr-head h3 { margin: 0; }
.pt-mgr-ic { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px; background: rgba(179,9,173,.1); color: var(--violet); flex: 0 0 auto; }

.pt-row--link { grid-template-columns: 1fr 1.6fr 0.8fr; }
.pt-row--dept { grid-template-columns: 2fr 1fr; padding-right: 12px; }
.pt-row--state { grid-template-columns: 0.7fr 2fr; align-items: start; }
.pt-row--confirm { grid-template-columns: 1fr auto; align-items: end; padding-right: 12px; }
.pt-row--state textarea { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 10px 12px; font: inherit; font-size: .9rem; background: #fff; resize: vertical; }
@media (max-width: 760px) {
  .pt-row--link, .pt-row--dept, .pt-row--state, .pt-row--confirm { grid-template-columns: 1fr; }
}

.pt-addrow { align-self: start; margin-top: 8px; border: 1.5px dashed var(--grey-200); background: #fff; border-radius: 999px; padding: 8px 16px; font-size: .8rem; font-weight: 800; color: var(--violet); cursor: pointer; }
.pt-addrow:hover { border-color: var(--violet); border-style: solid; }

.pt-card--danger { border-color: #f0cdc7; }
.pt-card--danger h3 { color: #a3271a; }
.pt-mgr-danger { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--grey-100); }
.pt-link-danger { background: none; border: 0; padding: 0; font: inherit; font-size: .8rem; font-weight: 700; color: #a3271a; cursor: pointer; text-decoration: underline; }
.pt-link-danger:hover { color: #7d1a10; }
.btn--danger { background: #a3271a; color: #fff; }
.btn--danger:hover { background: #7d1a10; }

/* ---------- Order Supplies ---------- */
.pt-supply-steps { display: flex; gap: 4px; margin-bottom: 1.4rem; border-bottom: 2px solid var(--grey-200); }
.pt-supply-step { padding: 10px 16px; font-size: .84rem; font-weight: 800; color: var(--grey-500); text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.pt-supply-step.is-active { color: var(--violet); border-bottom-color: var(--violet); }
a.pt-supply-step:hover { color: var(--violet); }

.pt-supply-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.pt-supply-item { border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; }
.pt-supply-item h4 { margin: 0 0 4px; font-family: var(--font-display); text-transform: uppercase; font-size: .95rem; color: var(--ink); }
.pt-supply-sku { font-size: .72rem; font-weight: 800; letter-spacing: .04em; color: var(--violet); text-transform: uppercase; }
.pt-supply-item p { font-size: .84rem; color: var(--grey-600); line-height: 1.5; margin: 6px 0 12px; }
.pt-supply-add { display: grid; gap: 10px; margin-top: auto; }
.pt-supply-add .c-qty { max-width: 110px; }
.pt-supply-card-fields { display: grid; gap: 10px; background: var(--grey-100); border-radius: 10px; padding: 12px; }
.pt-supply-card-hint { display: flex; align-items: center; gap: 6px; margin: 0; font-size: .76rem; color: var(--grey-600); }
.pt-supply-card-hint svg { color: var(--violet); flex: 0 0 auto; }

.pt-supply-line__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.pt-supply-line__head h3 { margin: 0 0 2px; }
.pt-supply-remove { flex: 0 0 auto; }

.pt-supply-summary-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--grey-100); font-size: .88rem; }
.pt-supply-summary-row:last-child { border-bottom: 0; }

.pt-supply-noteline { display: flex; align-items: center; gap: 7px; font-size: .78rem; color: var(--grey-600); margin: 4px 0 0; }
.pt-supply-noteline svg { color: var(--violet); flex: 0 0 auto; }

.pt-supply-done { text-align: center; padding: 40px 24px; }
.pt-supply-done__ic { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: #eef8f0; color: #1c6b34; margin-bottom: 14px; }
.pt-supply-done h1 { margin: 0 0 8px; }
.pt-supply-done p { color: var(--grey-600); max-width: 46ch; margin: 0 auto 16px; }
.pt-supply-done .btn { margin: 0 6px; }

.pt-supply-order__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.pt-supply-order__head h3 { margin: 0 0 2px; }
.pt-supply-order__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--grey-100); }
.pt-supply-ship { font-size: .85rem; color: var(--grey-600); margin: 8px 0 0; }
.pt-supply-status-form { display: flex; gap: 8px; align-items: center; margin-left: auto; }
.pt-supply-status-form select { border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 8px 10px; font: inherit; font-size: .85rem; background: #fff; }

.pt-badge { display: inline-block; border-radius: 999px; padding: 5px 12px; font-size: .72rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.pt-badge--pending { background: rgba(236,168,3,.14); color: #7a5a00; }
.pt-badge--info { background: rgba(17,114,162,.12); color: #0d5375; }
.pt-badge--ok { background: #eef8f0; color: #1c6b34; }
.pt-badge--requested { background: rgba(179,9,173,.12); color: var(--violet); }
.pt-badge--denied { background: #fdece9; color: #c0392b; }

/* Supply queue: a lead's request awaiting a decision */
.pt-supply-order--request { border-color: rgba(179,9,173,.35); box-shadow: 0 0 0 3px rgba(179,9,173,.06); }
.pt-supply-decide { display: grid; gap: 10px; width: 100%; border-top: 1px solid var(--grey-100); padding-top: 14px; margin-top: 6px; }
.pt-supply-decide textarea { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 10px 12px; font: inherit; font-size: .88rem; resize: vertical; }
.pt-supply-decide .pt-decision__btns { justify-content: flex-end; }
.pt-supply-reason { margin-top: .8rem; padding: 10px 14px; border-radius: 10px; background: #fdf3f2; border: 1px solid #f3c9c4; color: #7d2016; font-size: .88rem; line-height: 1.45; }
.pt-supply-reason--note { background: rgba(17,114,162,.07); border-color: rgba(17,114,162,.25); color: #0d5375; }
.pt-supply-status-form--full { width: 100%; }
.pt-supply-status-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; width: 100%; }
.pt-supply-status-row input[type=text] { flex: 1; min-width: 200px; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 9px 12px; font: inherit; font-size: .86rem; }
.pt-check--inline { display: inline-flex; align-items: center; gap: 6px; font-size: .84rem; white-space: nowrap; }

.pt-badge--err { background: #fdece9; color: #a3271a; }

/* ---------- Supply product images ---------- */
.pt-supply-item__media { width: 100%; aspect-ratio: 4/3; border-radius: 8px; overflow: hidden; background: var(--grey-100); margin-bottom: 12px; }
.pt-supply-item__media img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pt-supply-line__id { display: flex; align-items: flex-start; gap: 12px; }
.pt-supply-line__img { width: 56px; height: 56px; object-fit: contain; border-radius: 8px; background: var(--grey-100); flex: 0 0 auto; }

.pt-mgr-image { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; background: var(--grey-100); border-radius: 10px; padding: 12px; }
.pt-mgr-image__preview { width: 64px; height: 64px; object-fit: contain; border-radius: 8px; background: #fff; border: 1px solid var(--grey-200); flex: 0 0 auto; }
.pt-mgr-image .pt-field { flex: 1 1 220px; }

/* ---------- Design Your Card ---------- */
.pt-designer-body { display: grid; grid-template-columns: 1fr 360px; }
.pt-designer-fields { padding: 28px; display: flex; flex-direction: column; gap: 14px; border-right: 1px solid var(--grey-200); }
.pt-mgr-head-title { font-family: var(--font-display); text-transform: uppercase; font-size: 1rem; color: var(--ink); margin: 0 0 2px; }
.pt-designer-preview-wrap { padding: 28px 24px; display: flex; flex-direction: column; align-items: center; gap: 12px; background: var(--grey-100); }
.pt-preview-label { font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--grey-600); margin: 0; }
.pt-preview-note { font-size: .76rem; color: var(--grey-500); text-align: center; margin: 4px 0 0; max-width: 26ch; }

.pt-card-preview { width: 288px; height: 165px; border-radius: 6px; overflow: hidden; box-shadow: 0 8px 28px rgba(94,23,72,.3); flex-shrink: 0; position: relative; }
.pt-card-preview img { display: block; width: 100%; height: 100%; }
.pt-card-text-layer { position: absolute; top: 0; left: 0; width: 252px; height: 144px; transform-origin: top left; transform: scale(1.1429,1.1458); pointer-events: none; }
.pt-card-text-layer span { position: absolute; white-space: nowrap; line-height: 1; transition: opacity .15s; }
.pt-preview-name { font-family: var(--font-display); font-size: 16px; left: 37px; top: 22.6px; letter-spacing: .01em; }
.pt-preview-name--accent { color: #eca803; }
.pt-preview-name--dark { color: #820760; }
.pt-preview-title { font-family: var(--font-body); font-size: 6.5px; font-weight: 700; left: 37px; top: 39.9px; }
.pt-preview-phone, .pt-preview-email, .pt-preview-website, .pt-preview-chapter { font-family: var(--font-body); font-size: 6.5px; font-weight: 500; right: 33px; text-align: right; }
.pt-preview-phone { top: 66.9px; }
.pt-preview-email { top: 83.9px; }
.pt-preview-website { top: 100.9px; }
.pt-preview-chapter { top: 116.9px; }
.pt-preview-body--light { color: rgba(255,255,255,.92); }
.pt-preview-body--dark { color: #820760; }

.pt-color-picker { margin-top: 4px; }
.pt-color-swatches { display: flex; gap: 10px; margin-top: 8px; }
.pt-color-swatch { width: 40px; height: 40px; border-radius: 50%; border: 3px solid transparent; cursor: pointer; padding: 0; transition: transform .15s, border-color .15s; }
.pt-color-swatch:hover { transform: scale(1.08); }
.pt-color-swatch.is-active { border-color: #fff; box-shadow: 0 0 0 2px var(--violet), 0 3px 10px rgba(0,0,0,.25); transform: scale(1.06); }

@media (max-width: 900px) {
  .pt-designer-body { grid-template-columns: 1fr; }
  .pt-designer-fields { border-right: none; border-bottom: 1px solid var(--grey-200); }
  .pt-designer-preview-wrap { order: -1; }
}

.pt-supply-card-summary { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--grey-100); border-radius: 8px; font-size: .88rem; color: var(--ink); margin-bottom: 10px; }
.pt-color-dot { width: 14px; height: 14px; border-radius: 50%; flex: 0 0 auto; border: 1px solid rgba(0,0,0,.12); }

/* Info Tree: coordinator chips */
.pt-grid3--loose { grid-template-columns: 1fr 1.4fr 1fr; align-items: start; }
@media (max-width: 900px) { .pt-grid3--loose { grid-template-columns: 1fr; } }
.pt-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; min-height: 30px; }
.pt-chip { display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid rgba(179,9,173,.3); background: rgba(179,9,173,.07); color: var(--violet); border-radius: 999px; padding: 4px 6px 4px 11px; font-size: .8rem; font-weight: 700; margin: 0; }
.pt-chip button { border: 0; background: rgba(179,9,173,.12); color: var(--violet); width: 20px; height: 20px; border-radius: 999px; cursor: pointer; font-size: 1rem; line-height: 1; display: grid; place-items: center; }
.pt-chip button:hover { background: var(--violet); color: #fff; }
.pt-chip-add { display: flex; gap: 6px; align-items: center; }
.pt-chip-add select { flex: 1; min-width: 0; }

/* My Chapters (coordinator view) */
.pt-chapters-tools { display: flex; gap: 10px; align-items: center; margin: 0 0 12px; flex-wrap: wrap; }
.pt-chapters-tools input[type=search] { flex: 1; min-width: 200px; border: 1.5px solid var(--grey-200); border-radius: 999px; padding: 9px 14px; font: inherit; font-size: .9rem; }
.pt-chapters-tools input[type=search]:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgba(179,9,173,.12); }
.pt-chapters-tools select { border: 1.5px solid var(--grey-200); border-radius: 999px; padding: 9px 32px 9px 14px; font: inherit; font-size: .88rem; background: #fff; max-width: 100%; }
.pt-chapters-tools select:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgba(179,9,173,.12); }
.pt-chapters-tools__clear { font-size: .84rem; font-weight: 700; color: var(--violet); text-decoration: none; }
.pt-chapters-tools__clear:hover { text-decoration: underline; }
.pt-chapters-tabs { margin-bottom: 12px; }
.pt-chapter-row__coord { display: block; margin-top: 3px; font-size: .76rem; color: var(--grey-500); }
.pt-badge--link { text-decoration: none; }
.pt-badge--link.pt-badge--applied:hover { background: #1c6b34; color: #fff; }
.pt-badge--events { background: #f3e5f5; color: var(--violet); text-decoration: none; }
.pt-badge--events:hover { background: var(--violet); color: #fff; }
.pt-badge--noevents { background: var(--grey-100); color: var(--grey-500); }
@media (max-width: 640px) { .pt-chapters-tools select, .pt-chapters-tools input[type=search] { width: 100%; flex: 1 1 100%; } }
.pt-chapter-row__lead { font-size: .78rem; color: var(--grey-500); min-width: 160px; line-height: 1.3; }
.pt-chapter-row__lead strong { display: block; color: var(--ink); font-size: .82rem; }
.pt-chapter-row__stats { display: flex; gap: 6px; flex-wrap: wrap; }
.pt-chapter-row__actions { display: flex; gap: 6px; flex-wrap: wrap; margin-left: auto; }
.pt-chapter-row__actions .btn { padding: 7px 12px; font-size: .78rem; }
.pt-tree-row.is-hidden { display: none; }
.pt-attention { box-shadow: inset 4px 0 0 var(--yellow); }

/* "New since you last looked" — Resources & Team Updates */
.pt-tag-new { display: inline-grid; place-items: center; padding: 2px 8px; border-radius: 999px; background: var(--yellow); color: var(--ink); font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; vertical-align: middle; margin-left: 6px; line-height: 1.4; }
.pt-res__dept.is-new { border-color: rgba(236,168,3,.7); box-shadow: 0 0 0 3px rgba(236,168,3,.18); }
.pt-res__link.is-new { background: rgba(236,168,3,.09); border-color: rgba(236,168,3,.4); }
.pt-update.is-new { box-shadow: inset 4px 0 0 var(--yellow); }
.pt-new-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; background: linear-gradient(90deg, rgba(236,168,3,.18), rgba(236,168,3,.04)); border: 1px solid rgba(236,168,3,.5); border-radius: var(--radius); padding: 12px 16px; margin-bottom: 1.2rem; font-size: .9rem; color: var(--grey-600); }
.pt-new-banner strong { color: var(--ink); }
.pt-new-banner ul { margin: 6px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .82rem; }
.pt-new-banner ul a { color: var(--violet); font-weight: 700; text-decoration: none; }
.pt-new-banner ul a:hover { text-decoration: underline; }
.pt-new-banner form { margin-left: auto; }

/* Messages */
.pt-msg-greeting { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pt-msg-greeting .btn { margin-top: .4rem; }
.pt-msg-list { display: grid; gap: 8px; }
.pt-msg-row { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 14px 16px; text-decoration: none; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.pt-msg-row:hover { border-color: var(--violet); box-shadow: 0 6px 18px rgba(179,9,173,.1); }
.pt-msg-row.is-unread { border-left: 4px solid var(--violet); background: rgba(179,9,173,.03); }
.pt-msg-row__ic { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 999px; display: grid; place-items: center; background: rgba(179,9,173,.1); color: var(--violet); }
.pt-msg-row__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pt-msg-row__body strong { font-size: .95rem; line-height: 1.3; }
.pt-msg-row.is-unread .pt-msg-row__body strong::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 999px; background: var(--violet); margin-right: 7px; vertical-align: middle; }
.pt-msg-row__who { font-size: .78rem; color: var(--grey-500); font-weight: 700; }
.pt-msg-row__snip { font-size: .84rem; color: var(--grey-600); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-msg-row__time { flex: 0 0 auto; font-size: .74rem; color: var(--grey-500); text-align: right; line-height: 1.4; white-space: nowrap; }
.pt-msg-head p { font-size: .9rem; }
.pt-msg-thread { display: grid; gap: 10px; margin-bottom: 14px; }
.pt-msg-bubble { background: #fff; border: 1px solid var(--grey-200); border-radius: 14px 14px 14px 4px; padding: 12px 16px; max-width: 72ch; }
.pt-msg-bubble.is-mine { margin-left: auto; border-radius: 14px 14px 4px 14px; background: rgba(179,9,173,.06); border-color: rgba(179,9,173,.25); }
.pt-msg-bubble__meta { font-size: .74rem; color: var(--grey-500); margin-bottom: 4px; }
.pt-msg-bubble__meta strong { color: var(--ink); }
.pt-msg-bubble__body p { margin: 0 0 .6em; font-size: .93rem; line-height: 1.6; color: var(--ink); }
.pt-msg-bubble__body p:last-child { margin-bottom: 0; }
.pt-msg-reply { display: grid; gap: 10px; }
.pt-msg-reply .btn { justify-self: start; }
.pt-msg-compose .btn { justify-self: start; }
.pt-msg-modes { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 6px 0 2px; }
.pt-msg-people { border: 1.5px solid var(--grey-200); border-radius: 10px; overflow: hidden; }
.pt-msg-people[hidden] { display: none; }
.pt-msg-people > input[type=search] { width: 100%; border: 0; border-bottom: 1px solid var(--grey-200); padding: 10px 14px; font: inherit; font-size: .9rem; }
.pt-msg-people > input[type=search]:focus { outline: none; background: var(--grey-100); }
.pt-msg-people__list { max-height: 280px; overflow-y: auto; padding: 6px; display: grid; gap: 2px; }
.pt-msg-person { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 7px 10px; border-radius: 8px; cursor: pointer; }
.pt-msg-person:hover { background: var(--grey-100); }
.pt-msg-person input { grid-row: 1 / span 2; accent-color: var(--violet); }
.pt-msg-person__name { font-size: .9rem; font-weight: 700; color: var(--ink); }
.pt-msg-person__meta { font-size: .76rem; color: var(--grey-500); }
.pt-msg-person.is-hidden { display: none; }
.pt-msg-people__list p { grid-column: 1 / -1; padding: 10px; margin: 0; }

/* Preview as (admins) — "view as" popover + banner */
.pt-viewas { position: relative; }
.pt-viewas > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--grey-200); background: #fff; color: var(--grey-600); font-size: .8rem; font-weight: 700; white-space: nowrap; }
.pt-viewas > summary::-webkit-details-marker { display: none; }
.pt-viewas > summary:hover, .pt-viewas[open] > summary { color: var(--violet); border-color: var(--violet); }
.pt-viewas__panel { position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; width: min(360px, calc(100vw - 32px)); background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); box-shadow: 0 18px 44px rgba(12,12,14,.16); padding: 16px; display: grid; gap: 10px; text-align: left; }
.pt-viewas__panel strong { font-size: .9rem; color: var(--ink); }
.pt-viewas__panel .pt-check { font-size: .86rem; color: var(--ink); }
.pt-viewas__panel .pt-check input { accent-color: var(--violet); }
.pt-viewas__panel select { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 10px; padding: 9px 12px; font: inherit; font-size: .88rem; }
.pt-viewas__panel select[hidden] { display: none; }
.pt-viewas__panel .pt-hint { margin: 0; font-size: .76rem; color: var(--grey-500); line-height: 1.45; }
.pt-viewas__panel .btn { justify-self: start; }
@media (max-width: 720px) { .pt-viewas > summary span { display: none; } .pt-viewas > summary { width: 40px; padding: 0; justify-content: center; } }
.pt-viewas-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px clamp(18px,3vw,34px); background: var(--yellow); color: var(--ink); font-size: .88rem; border-bottom: 1px solid rgba(12,12,14,.12); }
.pt-viewas-bar.is-blocked { background: #f9c7c0; }
.pt-viewas-bar svg { flex: 0 0 auto; }
.pt-viewas-bar span { flex: 1; min-width: 200px; }
.pt-viewas-bar form { margin: 0; }
.pt-viewas-bar .btn { padding: 7px 14px; font-size: .78rem; background: rgba(12,12,14,.08); }

/* Phones: anchor both topbar popovers to .pt-user so they never hang off the left edge */
@media (max-width: 520px) {
	.pt-user { position: relative; }
	.pt-viewas, .pt-notif { position: static; }
	.pt-viewas__panel, .pt-notif__panel { right: 0; }
}
/* The preview banner inside the bare (acknowledge) layout */
.pt-split__inner .pt-viewas-bar { border-radius: 10px; margin: 0 0 14px; border: 1px solid rgba(12,12,14,.12); }

/* Team updates: coordinator posts + post form */
.pt-post-update { margin-bottom: 16px; padding: 0; }
.pt-post-update > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: clamp(16px,2vw,22px) clamp(20px,2.5vw,28px); font-size: .95rem; color: var(--ink); }
.pt-post-update > summary::-webkit-details-marker { display: none; }
.pt-post-update > summary svg { color: var(--violet); }
.pt-post-update[open] > summary { border-bottom: 1px solid var(--grey-200); }
.pt-post-update > form { padding: clamp(16px,2vw,22px) clamp(20px,2.5vw,28px); }
.pt-post-update .btn { justify-self: start; }
.pt-update--coord { border-left: 4px solid var(--blue); }
.pt-update__from { display: flex; align-items: center; gap: 6px; margin: -6px 0 10px; font-size: .8rem; color: var(--grey-600); }
.pt-update__from svg { color: var(--blue); }
.pt-update__remove { margin-top: 10px; }
.pt-action--coord { border-left: 4px solid var(--blue); }
.pt-chapter-row__title { color: var(--ink); text-decoration: none; }
.pt-chapter-row__title:hover { color: var(--violet); text-decoration: underline; }

/* Supplies: always a way forward — cart button by the heading, sticky "Next" bar while browsing */
.pt-supply-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pt-supply-head .pt-greeting { flex: 1 1 420px; }
.pt-supply-cartbtn { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; margin-top: .3rem; }
.pt-supply-cartbtn.is-empty { font-size: .84rem; font-weight: 700; color: var(--grey-500); border: 1.5px dashed var(--grey-200); border-radius: 999px; padding: 9px 14px; }
.pt-supply-cartbar { position: sticky; bottom: 16px; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; background: var(--ink); color: #fff; border-radius: var(--radius); padding: 12px 18px; box-shadow: 0 14px 34px rgba(12,12,14,.28); }
.pt-supply-cartbar > span { display: inline-flex; align-items: center; gap: 8px; font-size: .92rem; }
.pt-supply-cartbar svg { color: var(--yellow); }
.pt-supply-ok { justify-content: space-between; flex-wrap: wrap; }
.pt-supply-ok > span { flex: 1; }
.pt-supply-ok .btn { padding: 8px 14px; font-size: .8rem; }

/* ---------- Pathwell sync (chapter card, list controls) ---------- */
.pt-pw { margin-bottom: 1.4rem; }
.pt-pw__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pt-pw__head h2 { margin-bottom: 0; }
.pt-pw__status { margin: .55rem 0 1rem; color: var(--grey-600); font-size: .92rem; line-height: 1.5; }
.pt-pw__status code { font-size: .85em; background: var(--grey-100); padding: 1px 6px; border-radius: 6px; }
.pt-pw__status.is-ok { color: #1c6b34; }
.pt-pw__status.is-warn { color: #7a5a00; }
.pt-pw__status.is-err { color: #9a2b1e; }
.pt-pw__actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
[data-pw-panel] .btn[aria-busy], [data-pw-panel] .btn:disabled { opacity: .7; cursor: progress; transform: none; box-shadow: none; }
.pt-pw__slug { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--grey-200); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: end; }
.pt-pw__slug .pt-field { margin: 0; }
.pt-pw-row { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pt-pw-mini { font-size: .76rem; color: var(--grey-600); }
.pt-pw-mini.is-ok { color: #1c6b34; }
.pt-pw-mini.is-warn { color: #7a5a00; }
.pt-pw-mini.is-err { color: #9a2b1e; }
.pt-pw-sync-all { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: -.3rem 0 1.1rem; }
@media (max-width: 640px) { .pt-pw__slug { grid-template-columns: 1fr; } }

/* ---------- Messaging: encryption / conduct disclaimer + admin records ---------- */
.pt-msg-disclaimer { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 1.2rem; padding: 12px 14px; border-radius: 12px; background: var(--grey-100); border: 1px solid var(--grey-200); color: var(--grey-600); font-size: .84rem; line-height: 1.55; }
.pt-msg-disclaimer svg { flex: none; margin-top: 2px; color: var(--violet); }
.pt-msg-disclaimer p { margin: 0; }
.pt-msg-disclaimer strong { color: var(--ink); }
.pt-msg-disclaimer a { color: var(--violet-dk); text-decoration: underline; text-underline-offset: 2px; }
.pt-msg-reply + .pt-msg-disclaimer, .pt-msg-thread + .pt-msg-disclaimer { margin-top: 1.2rem; }
.pt-msg-record-banner { align-items: flex-start; }
.pt-msg-records .pt-tree-row__main { justify-content: space-between; }
.pt-msg-records__ask { position: relative; }
.pt-msg-records__ask > summary { list-style: none; cursor: pointer; }
.pt-msg-records__ask > summary::-webkit-details-marker { display: none; }
.pt-msg-records__ask[open] > .pt-inline-form { position: absolute; right: 0; top: calc(100% + 8px); z-index: 5; width: min(420px, 90vw); box-shadow: var(--shadow-md); background: #fff; border: 1px solid var(--grey-200); }
.pt-msg-records__ask textarea { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 10px; padding: 10px 12px; font: inherit; font-size: .9rem; }
@media (max-width: 640px) { .pt-msg-records__ask[open] > .pt-inline-form { position: static; width: auto; box-shadow: none; } }

/* ---------- Calendar (screen-calendar.php) ----------
   --c on an element = its event-type colour (sr_cal_categories()).
   Week/day grid: --hour is the height of one hour; blocks get --top/--h in minutes. */
.pt-cal-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 20px; margin-bottom: 14px; }
.pt-cal-head__title h1 { margin: 0 0 4px; font-family: var(--font-display); text-transform: uppercase; font-size: clamp(1.5rem,3vw,2.1rem); color: var(--ink); line-height: 1.05; }
.pt-cal-head__title p { margin: 0; color: var(--ink); font-weight: 800; font-size: 1.05rem; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pt-cal-tz { font-size: .64rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--grey-600); background: #fff; border: 1px solid var(--grey-200); border-radius: 999px; padding: 2px 8px; }
.pt-cal-head__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pt-cal-nav, .pt-cal-views { display: inline-flex; align-items: center; background: #fff; border: 1px solid var(--grey-200); border-radius: 999px; padding: 3px; }
.pt-cal-nav__btn { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 999px; color: var(--ink); font-size: 1.5rem; line-height: 1; text-decoration: none; }
.pt-cal-nav__btn span { margin-top: -3px; }
.pt-cal-nav__btn:hover { background: var(--grey-100); color: var(--violet); }
.pt-cal-nav__today, .pt-cal-views a { padding: 7px 14px; border-radius: 999px; font-size: .82rem; font-weight: 800; color: var(--grey-600); text-decoration: none; }
.pt-cal-nav__today { color: var(--ink); }
.pt-cal-nav__today:hover, .pt-cal-views a:hover { background: var(--grey-100); color: var(--ink); }
.pt-cal-nav__today.is-current { color: var(--grey-500); }
.pt-cal-views a.is-active { background: var(--ink); color: #fff; }
.pt-cal-add { padding: 10px 18px; font-size: .86rem; display: inline-flex; align-items: center; gap: 6px; }
.pt-cal-head a:focus-visible, .pt-cal-link:focus-visible, .pt-cal-chip:focus-visible, .pt-cal-block:focus-visible, .pt-cal-cell__num:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }

.pt-cal-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 18px; margin-bottom: 12px; }
.pt-cal-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.pt-cal-legend li { display: flex; align-items: center; gap: 6px; font-size: .74rem; font-weight: 700; color: var(--grey-600); }
.pt-cal-legend li::before { content: ''; width: 9px; height: 9px; border-radius: 3px; background: var(--c); }
.pt-cal-bar__admin { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.pt-cal-bar__admin form { margin: 0; }
.pt-cal-gchip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #eef8f0; color: #1c6b34; font-weight: 700; font-size: .74rem; }
.pt-cal-gchip.is-err { background: #fdf3f2; color: #9a2b1e; }
.pt-cal-link { background: none; border: 0; padding: 0; font: inherit; font-size: .8rem; font-weight: 800; color: var(--violet); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 5px; }
.pt-cal-link:hover { text-decoration: underline; }

/* Month */
.pt-cal-month { background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius-lg); overflow: hidden; }
.pt-cal-month__names, .pt-cal-month__week { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); }
.pt-cal-month__names div { padding: 10px 10px 8px; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--grey-500); border-bottom: 1px solid var(--grey-200); }
.pt-cal-cell { position: relative; min-height: 118px; min-width: 0; padding: 6px 6px 8px; border-right: 1px solid var(--grey-100); border-bottom: 1px solid var(--grey-100); display: flex; flex-direction: column; gap: 2px; }
.pt-cal-month__week > .pt-cal-cell:nth-child(7n) { border-right: 0; }
.pt-cal-month__week:last-child > .pt-cal-cell { border-bottom: 0; }
.pt-cal-cell.is-other { background: #fbfafc; }
.pt-cal-cell.is-other .pt-cal-cell__num { color: var(--grey-400); }
.pt-cal-cell__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2px; }
.pt-cal-cell__num { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 999px; font-size: .84rem; font-weight: 800; color: var(--ink); text-decoration: none; }
.pt-cal-cell__num:hover { background: var(--grey-100); }
.pt-cal-cell.is-today .pt-cal-cell__num { background: var(--violet); color: #fff; }
.pt-cal-cell__add { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 999px; color: var(--grey-500); font-weight: 800; text-decoration: none; opacity: 0; transition: opacity .15s; }
.pt-cal-cell:hover .pt-cal-cell__add, .pt-cal-cell__add:focus-visible { opacity: 1; }
.pt-cal-cell__add:hover { background: var(--grey-100); color: var(--violet); }
@media (hover: none) { .pt-cal-cell__add { opacity: .7; } }
.pt-cal-chip { display: flex; align-items: center; gap: 5px; min-width: 0; padding: 3px 6px; border-radius: 6px; font-size: .74rem; line-height: 1.25; color: var(--ink); text-decoration: none; }
.pt-cal-chip::before { content: ''; flex: 0 0 7px; height: 7px; border-radius: 999px; background: var(--c); }
.pt-cal-chip:hover { background: var(--grey-100); }
.pt-cal-chip__time { flex: 0 0 auto; color: var(--grey-600); font-weight: 700; }
.pt-cal-chip__title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.pt-cal-chip.is-allday { background: var(--c); color: #fff; }
.pt-cal-chip.is-allday::before { display: none; }
.pt-cal-chip.is-allday:hover { background: var(--c); filter: brightness(1.1); }
.pt-cal-more { padding: 1px 6px; font-size: .72rem; font-weight: 800; color: var(--grey-600); text-decoration: none; }
.pt-cal-more:hover { color: var(--violet); }
.pt-cal-dots { display: none; }

/* Week / day */
.pt-cal-week { --hour: 48px; --gutter-col: 62px; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius-lg); overflow: hidden; }
.pt-cal-week__head, .pt-cal-week__allday, .pt-cal-week__grid { display: grid; grid-template-columns: var(--gutter-col) repeat(var(--days), minmax(0,1fr)); }
.pt-cal-week__head { border-bottom: 1px solid var(--grey-100); }
.pt-cal-week__corner { display: flex; align-items: flex-end; justify-content: flex-end; padding: 8px; text-align: right; font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--grey-500); }
.pt-cal-week__day { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px; border-left: 1px solid var(--grey-100); color: var(--grey-600); text-decoration: none; }
.pt-cal-week__day span { font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.pt-cal-week__day strong { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 999px; font-size: 1.2rem; font-weight: 800; color: var(--ink); }
.pt-cal-week__day:hover strong { background: var(--grey-100); }
.pt-cal-week__day.is-today span { color: var(--violet); }
.pt-cal-week__day.is-today strong { background: var(--violet); color: #fff; }
.pt-cal-week__allday { min-height: 34px; border-bottom: 1px solid var(--grey-200); }
.pt-cal-week__allday .pt-cal-week__corner { align-items: center; }
.pt-cal-week__allcell { min-width: 0; padding: 4px; border-left: 1px solid var(--grey-100); display: flex; flex-direction: column; gap: 3px; }
.pt-cal-week__scroll { max-height: min(640px, 68vh); overflow-y: auto; overscroll-behavior: contain; }
.pt-cal-week__hours div { position: relative; height: var(--hour); }
.pt-cal-week__hours span { position: absolute; top: -.6em; right: 8px; font-size: .66rem; font-weight: 700; color: var(--grey-500); white-space: nowrap; }
.pt-cal-week__col { position: relative; height: calc(var(--hour) * 24); border-left: 1px solid var(--grey-100); background-image: repeating-linear-gradient(to bottom, var(--grey-100) 0 1px, transparent 1px var(--hour)); }
.pt-cal-week__col.is-today { background-color: rgba(179,9,173,.035); }
.pt-cal-week__add { position: absolute; inset: 0; }
.pt-cal-block { position: absolute; z-index: 1; top: calc(var(--top) * var(--hour) / 60); height: calc(var(--h) * var(--hour) / 60 - 2px); left: calc(var(--col) * (100% - 6px) / var(--cols) + 2px); width: calc((100% - 6px) / var(--cols) - 2px); overflow: hidden; display: flex; flex-direction: column; gap: 1px; padding: 4px 7px; border-radius: 7px; border-left: 3px solid var(--c); background: color-mix(in srgb, var(--c) 14%, #fff); box-shadow: 0 0 0 1px #fff; color: var(--ink); text-decoration: none; font-size: .74rem; line-height: 1.25; }
.pt-cal-block strong, .pt-cal-block span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-cal-block strong { font-weight: 800; }
.pt-cal-block span { color: var(--grey-600); }
.pt-cal-block:hover { z-index: 2; background: color-mix(in srgb, var(--c) 24%, #fff); }
.pt-cal-block.is-short { flex-direction: row; align-items: center; gap: 6px; padding-top: 0; padding-bottom: 0; }
.pt-cal-now { position: absolute; z-index: 3; left: 0; right: 0; top: calc(var(--top) * var(--hour) / 60); height: 2px; background: var(--violet); pointer-events: none; }
.pt-cal-now::before { content: ''; position: absolute; left: -5px; top: -4px; width: 10px; height: 10px; border-radius: 999px; background: var(--violet); }
.pt-cal-week--1 .pt-cal-block { font-size: .82rem; padding: 6px 10px; }

/* List */
.pt-cal-list { display: grid; gap: 10px; }
.pt-cal-list__day { display: grid; grid-template-columns: 86px 1fr; gap: 16px; padding: 14px 16px; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); }
.pt-cal-list__day.is-today { border-color: var(--violet); }
.pt-cal-list__date { margin: 0; display: flex; flex-direction: column; align-items: flex-start; line-height: 1; font-family: var(--font-body); }
.pt-cal-list__date span { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--grey-500); }
.pt-cal-list__date strong { margin: 3px 0; font-family: var(--font-display); font-size: 2rem; font-weight: 400; color: var(--ink); }
.pt-cal-list__date em { font-style: normal; font-size: .74rem; font-weight: 700; color: var(--grey-600); }
.pt-cal-list__day.is-today .pt-cal-list__date strong { color: var(--violet); }
.pt-cal-list ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.pt-cal-list li a { display: grid; grid-template-columns: 170px 1fr; column-gap: 14px; row-gap: 2px; align-items: baseline; padding: 8px 10px; border-radius: 10px; color: var(--ink); text-decoration: none; }
.pt-cal-list li a:hover { background: var(--grey-100); }
.pt-cal-list__time { grid-row: span 2; display: flex; align-items: center; gap: 8px; font-size: .8rem; font-weight: 700; color: var(--grey-600); font-variant-numeric: tabular-nums; }
.pt-cal-list__time::before { content: ''; flex: 0 0 auto; width: 9px; height: 9px; border-radius: 999px; background: var(--c); }
.pt-cal-list li strong { font-size: .95rem; }
.pt-cal-list__meta { grid-column: 2; font-size: .78rem; color: var(--grey-600); }

/* One event */
.pt-cal-event { max-width: 780px; }
.pt-cal-event__cat { display: inline-flex; align-items: center; gap: 7px; padding: 4px 10px; border-radius: 999px; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: color-mix(in srgb, var(--c) 72%, #000); background: color-mix(in srgb, var(--c) 11%, #fff); }
.pt-cal-event__cat::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var(--c); }
.pt-cal-event h1 { margin: .6rem 0 .8rem; font-family: var(--font-display); text-transform: uppercase; font-size: clamp(1.6rem,3.4vw,2.4rem); line-height: 1.05; color: var(--ink); text-wrap: balance; overflow-wrap: anywhere; }
.pt-cal-event__when, .pt-cal-event__where { display: flex; align-items: center; gap: 9px; margin: 0 0 6px; font-weight: 700; color: var(--ink); }
.pt-cal-event__when svg, .pt-cal-event__where svg { flex: 0 0 auto; color: var(--c); }
.pt-cal-event__desc { max-width: 65ch; margin-top: 1rem; color: var(--grey-800); line-height: 1.6; }
.pt-cal-event__desc p { margin: 0 0 .8em; }
.pt-cal-event__desc a { color: var(--violet); text-decoration: underline; overflow-wrap: anywhere; }
.pt-cal-event__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1.3rem; }
.pt-cal-event__actions .btn, .pt-cal-admin .btn, .pt-cal-settings__side .btn { display: inline-flex; align-items: center; gap: 7px; padding: 10px 18px; font-size: .84rem; }
.pt-cal-event__meta { margin: 1.2rem 0 0; padding-top: 12px; border-top: 1px solid var(--grey-100); font-size: .78rem; color: var(--grey-500); }
.pt-cal-admin { max-width: 780px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.pt-cal-delete { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; }
.pt-cal-delete select { border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 8px 10px; font: inherit; font-size: .84rem; background: #fff; }

/* Add / edit + settings */
.pt-cal-form, .pt-cal-settings { max-width: 820px; gap: 14px; }
.pt-cal-form [hidden], .pt-cal-settings [hidden] { display: none !important; }
.pt-cal-form .pt-muted, .pt-cal-settings .pt-muted { margin: 0; }
.pt-cal-when { display: grid; grid-template-columns: 1.3fr 1fr 1.3fr 1fr; gap: 12px; }
.pt-cal-when.is-allday { grid-template-columns: 1fr 1fr; }
.pt-cal-allday { align-self: end; padding-bottom: 12px; font-weight: 700; color: var(--ink); }
.pt-cal-form__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.pt-cal-form__actions .btn { display: inline-flex; align-items: center; gap: 7px; }
.pt-cal-settings h2 { margin: 0; }
.pt-cal-sync { padding: 12px 14px; border: 1px solid var(--grey-200); border-radius: 12px; background: var(--grey-100); font-size: .88rem; line-height: 1.55; }
.pt-cal-sync.is-on { background: #eef8f0; border-color: #bfe3c8; }
.pt-cal-sync.is-on > strong { display: inline-flex; align-items: center; gap: 6px; color: #1c6b34; }
.pt-cal-sync code, .pt-cal-steps code { padding: 1px 5px; border: 1px solid var(--grey-200); border-radius: 5px; background: #fff; font-size: .8rem; overflow-wrap: anywhere; }
.pt-cal-sync__err { color: #9a2b1e; font-weight: 700; }
.pt-cal-steps { border: 1px solid var(--grey-200); border-radius: 12px; }
.pt-cal-steps summary { padding: 12px 14px; cursor: pointer; font-size: .88rem; font-weight: 800; color: var(--ink); }
.pt-cal-steps ol { margin: 0; padding: 0 18px 14px 36px; display: grid; gap: 8px; font-size: .86rem; line-height: 1.5; color: var(--grey-800); }
.pt-cal-steps a { color: var(--violet); text-decoration: underline; }
.pt-cal-checks { display: grid; gap: 8px; }
.pt-cal-settings__side { max-width: 820px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 14px; }
.pt-cal-settings__side form { margin: 0; }
.pt-cal-empty-note { text-align: center; }

/* Dashboard card */
.pt-cal-upcoming { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 2px; }
.pt-cal-upcoming a { display: grid; grid-template-columns: 46px 1fr; gap: 12px; align-items: center; padding: 8px; border-radius: 10px; color: var(--ink); text-decoration: none; }
.pt-cal-upcoming a:hover { background: var(--grey-100); }
.pt-cal-upcoming__date { display: flex; flex-direction: column; align-items: center; padding: 5px 0; border-radius: 9px; background: color-mix(in srgb, var(--c) 12%, #fff); line-height: 1; }
.pt-cal-upcoming__date span { font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: color-mix(in srgb, var(--c) 72%, #000); }
.pt-cal-upcoming__date strong { font-family: var(--font-display); font-size: 1.3rem; font-weight: 400; color: var(--ink); }
.pt-cal-upcoming__text { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pt-cal-upcoming__text strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; }
.pt-cal-upcoming__text small { color: var(--grey-600); font-size: .76rem; }

@media (max-width: 860px) {
  .pt-cal-head__tools { width: 100%; }
  .pt-cal-add { margin-left: auto; }
}
@media (max-width: 700px) {
  .pt-cal-cell { min-height: 62px; padding: 4px 2px; align-items: center; }
  .pt-cal-cell .pt-cal-chip, .pt-cal-cell .pt-cal-more, .pt-cal-cell__add { display: none; }
  .pt-cal-cell__top { justify-content: center; }
  .pt-cal-cell__num::after { content: ''; position: absolute; inset: 0; }
  .pt-cal-dots { display: flex; gap: 3px; justify-content: center; }
  .pt-cal-dots i { width: 6px; height: 6px; border-radius: 999px; background: var(--c); }
  .pt-cal-month__names div { padding: 8px 2px; text-align: center; }
  .pt-cal-week { --gutter-col: 44px; --hour: 44px; }
  .pt-cal-week__corner { font-size: .54rem; padding: 6px 4px; }
  .pt-cal-week__hours span { right: 4px; font-size: .6rem; }
  .pt-cal-week__day strong { width: 30px; height: 30px; font-size: 1rem; }
  .pt-cal-week--7 .pt-cal-block { padding: 2px 3px; font-size: .64rem; border-left-width: 2px; }
  .pt-cal-week--7 .pt-cal-block span { display: none; }
  .pt-cal-week--7 .pt-cal-block strong { white-space: normal; }
  .pt-cal-week--7 .pt-cal-week__allcell .pt-cal-chip { font-size: .62rem; padding: 2px 3px; }
  .pt-cal-list__day { grid-template-columns: 1fr; gap: 8px; }
  .pt-cal-list__date { flex-direction: row; align-items: baseline; gap: 8px; }
  .pt-cal-list li a { grid-template-columns: 1fr; }
  .pt-cal-list__time { grid-row: auto; }
  .pt-cal-list__meta { grid-column: 1; }
  .pt-cal-when { grid-template-columns: 1fr 1fr; }
}

/* Chapter editor: a read-only note in place of the retired Events section (events come from Pathwell). */
.pt-sect-note { display: flex; align-items: flex-start; gap: 10px; padding: 15px 18px; background: #fff; border: 1px dashed var(--grey-200); border-radius: var(--radius); color: var(--grey-600); font-size: .9rem; line-height: 1.5; }
.pt-sect-note svg { flex: 0 0 auto; margin-top: 2px; color: var(--violet); }
.pt-sect-note p { margin: 0; }
.pt-sect-note strong { color: var(--ink); }

/* ---------- Dashboard quick links: tabs (Quick Links · Events & Data · Marketing · HR) ---------- */
.pt-quick__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 12px; }
.pt-quick__tabs { display: inline-flex; max-width: 100%; overflow-x: auto; scrollbar-width: none; background: #fff; border: 1px solid var(--grey-200); border-radius: 999px; padding: 3px; }
.pt-quick__tabs::-webkit-scrollbar { display: none; }
.pt-quick__tabs [role="tab"] { flex: 0 0 auto; border: 0; background: none; cursor: pointer; padding: 8px 16px; border-radius: 999px; font: inherit; font-size: .84rem; font-weight: 800; color: var(--grey-600); white-space: nowrap; }
.pt-quick__tabs [role="tab"]:hover { color: var(--ink); background: var(--grey-100); }
.pt-quick__tabs [role="tab"][aria-selected="true"] { background: var(--ink); color: #fff; }
.pt-quick__tabs [role="tab"]:focus-visible, .pt-quick__grid:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
.pt-quick__edit { font-size: .8rem; font-weight: 800; color: var(--violet); text-decoration: none; }
.pt-quick__edit:hover { text-decoration: underline; }
.pt-quick__grid[hidden] { display: none; }

/* ---------- Manage Portal: quick-link tab editor ---------- */
.pt-qtab-list { display: grid; gap: 14px; }
.pt-qtab-edit { margin: 0; min-width: 0; padding: 16px 18px; border: 1px solid var(--grey-200); border-radius: var(--radius); background: #fff; display: grid; gap: 12px; }
.pt-qtab-edit__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px 16px; }
.pt-qtab-edit__head .pt-field { flex: 1 1 240px; max-width: 360px; }
.pt-qtab-edit__tools { display: flex; align-items: center; gap: 8px; padding-bottom: 8px; }
.pt-qtab-btn { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--grey-200); border-radius: 999px; background: #fff; color: var(--ink); font-size: 1rem; line-height: 1; cursor: pointer; }
.pt-qtab-btn:hover { border-color: var(--violet); color: var(--violet); }
.pt-qtab-btn:disabled { opacity: .35; cursor: default; }
.pt-qtab-add { margin-top: 12px; }

/* ---------- Team Updates: centered, elastic reading column ---------- */
.pt-narrow { width: 100%; max-width: 760px; margin-inline: auto; }
.pt-narrow > * + * { margin-top: 1.6rem; }
.pt-narrow .pt-greeting p { max-width: none; }
.pt-narrow .pt-card { padding: clamp(20px, 4vw, 36px); }
.pt-narrow .pt-post-update { padding: 0; }
.pt-update p { max-width: none; font-size: 1rem; line-height: 1.7; }
.pt-update h2 { text-wrap: balance; }
.pt-excellent__grid { columns: 170px 4; }
.pt-update__photos { display: grid; gap: 8px; margin: 2px 0 20px; }
.pt-update__photos--2 { grid-template-columns: 1fr 1fr; }
.pt-update__photos--3 { grid-template-columns: repeat(3, 1fr); }
.pt-update__photos a { display: block; overflow: hidden; border-radius: 12px; background: var(--grey-100); }
.pt-update__photos img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s var(--ease); }
.pt-update__photos a:hover img { transform: scale(1.03); }
.pt-update__photos--1 a { background: none; }
.pt-update__photos--1 img { height: auto; max-height: 560px; aspect-ratio: auto; object-fit: contain; }
.pt-update__photos--1 a:hover img { transform: none; }
.pt-update__photos a:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
@media (max-width: 520px) { .pt-update__photos--3 { grid-template-columns: 1fr 1fr; } }
@media (prefers-reduced-motion: reduce) { .pt-update__photos img { transition: none; } }

/* Photo picker preview (post form) + photo editor (Manage Portal) */
.pt-photo-pick input[type="file"], .pt-mgr-form input[type="file"] { font-size: .86rem; padding: 8px 10px; }
.pt-photo-preview { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.pt-photo-preview[hidden] { display: none; }
.pt-photo-preview img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; }
.pt-photo-preview .pt-photo-warn { flex-basis: 100%; font-size: .8rem; font-weight: 700; color: #a3271a; }
.pt-photo-edit { display: flex; flex-wrap: wrap; gap: 12px; }
.pt-photo-edit__item { display: grid; gap: 6px; justify-items: start; font-size: .8rem; }
.pt-photo-edit__item img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; display: block; }
/* "Post an update" bar: the note wraps under the label on phones, and loses .pt-muted's block margins. */
.pt-post-update > summary { flex-wrap: wrap; row-gap: 2px; }
.pt-post-update > summary strong { white-space: nowrap; }
.pt-post-update > summary .pt-muted { margin: 0; }
/* Phones: every quick-link tab visible (two columns) instead of a sideways-scrolling strip. */
@media (max-width: 560px) {
  .pt-quick__bar { flex-direction: column; align-items: stretch; }
  .pt-quick__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; border-radius: 18px; overflow: visible; }
  .pt-quick__tabs [role="tab"] { border-radius: 14px; text-align: center; white-space: normal; }
  .pt-quick__edit { align-self: flex-end; }
}

/* ---- People: directory, person dashboard, new-person fields (inc/portal/screen-people.php) ---- */
.pt-people-tools { display: flex; gap: 10px; align-items: center; margin: 14px 0 12px; flex-wrap: wrap; }
.pt-people-tools input[type=search] { flex: 1; min-width: 200px; border: 1.5px solid var(--grey-200); border-radius: 999px; padding: 9px 14px; font: inherit; font-size: .9rem; }
.pt-people-tools input[type=search]:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgba(179,9,173,.12); }
.pt-people-table tr.is-hidden { display: none; }
.pt-person-link { color: inherit; text-decoration: none; }
.pt-person-link:hover strong { color: var(--violet); text-decoration: underline; }
.pt-chapter-row__lead a.pt-person-link { display: inline; }
.pt-person-head { display: flex; gap: 18px; align-items: center; }
.pt-person-head h1 { margin: 0 0 6px; }
.pt-person-head p { margin: 0 0 4px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pt-person-head p.pt-muted { display: block; }
.pt-avatar--lg { width: 64px; height: 64px; font-size: 1.7rem; flex: none; }
.pt-person-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; align-items: start; }
.pt-person-actions .pt-mini-form { display: grid; gap: 8px; justify-items: start; }
.pt-person-actions .pt-mini-form .pt-field { width: 100%; }
.pt-periods { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pt-periods__on { padding: 8px 12px; border-left: 3px solid var(--violet); background: #faf7fb; border-radius: 6px; }
.pt-periods__gap { padding: 4px 12px; color: #8b8794; font-size: .85rem; border-left: 3px dashed var(--grey-200); }
.pt-checklist { max-height: 180px; overflow: auto; border: 1.5px solid var(--grey-200); border-radius: 10px; padding: 8px 12px; display: grid; gap: 4px; }
.pt-radio-row { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.pt-new-person { display: grid; gap: 8px; margin: 8px 0; }
.pt-new-person[hidden], [data-show-if][hidden] { display: none; }
@media (max-width: 640px) {
  .pt-person-head { flex-direction: column; align-items: flex-start; }
}

/* Person page Account card: keep every field and button inside its box */
.pt-person-actions > * { min-width: 0; }
.pt-person-actions .pt-mini-form { padding: 16px; }
.pt-person-actions input, .pt-person-actions select { box-sizing: border-box; max-width: 100%; }
.pt-person-actions .btn { max-width: 100%; white-space: normal; text-align: center; }
.pt-person-actions .pt-hint { display: block; }
.pt-person-head__id { flex: 1; min-width: 0; }
.pt-person-head__title { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0 0 6px; }
.pt-person-head__title h1 { margin: 0; }
.pt-person-head__names { display: flex; gap: 8px; flex-wrap: wrap; }
.pt-person-head__names input, .pt-person-head__email { box-sizing: border-box; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 8px 12px; font: inherit; background: #fff; }
.pt-person-head .pt-person-head__names input { font-size: 1.1rem; width: 9.5em; max-width: 100%; padding: 6px 10px; height: auto; min-height: 0; line-height: 1.3; }
.pt-person-head input.pt-person-head__email { font-size: .95rem; width: 22em; max-width: 100%; padding: 6px 10px; height: auto; min-height: 0; line-height: 1.3; }
.pt-person-head__names input:focus, .pt-person-head__email:focus { outline: 2px solid var(--violet); border-color: var(--violet); }
.pt-person-head [hidden] { display: none !important; }

/* Info Tree: Cancel next to the one "+ Add Chapter / Create Chapter" button */
.pt-link-btn { background: none; border: 0; padding: 6px 4px; font: inherit; font-weight: 600; color: var(--violet); cursor: pointer; }
.pt-link-btn:hover { text-decoration: underline; }
.pt-link-btn[hidden] { display: none; }

/* Chapter page: leadership line + "Edit chapter leadership" panel (inc/portal/part-chapter-leaders.php) */
.pt-leaders { margin: -4px 0 18px; }
.pt-leaders__line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0; font-size: .92rem; }
.pt-leaders__line svg { flex: none; }
.pt-leaders__sep { color: #b4b2bb; }
.pt-leaders__panel { margin-top: 12px; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 14px 16px; display: grid; gap: 14px; }
.pt-leaders__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pt-leaders__list li { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 10px; border: 1px solid var(--grey-200); border-radius: 8px; }
.pt-leaders__list form { margin: 0; }
.pt-leaders__who { flex: 1; min-width: 180px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.pt-leaders__who small { flex-basis: 100%; }
.pt-leaders__addrow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: end; }
.pt-leaders__add { display: grid; gap: 10px; }
.pt-leaders [hidden] { display: none !important; }
.pt-link-btn--danger { color: #c0392b; }
.pt-chip-add--lead { flex-wrap: wrap; }
.pt-chip-add--lead .pt-new-person { flex-basis: 100%; }

/* Person page: "Edit chapters" (chips + add) under the name */
.pt-person-chapters { margin: 0 0 4px; }
.pt-person-chapters p { margin: 0 0 4px; }
.pt-person-chapters__edit { display: grid; gap: 8px; margin: 6px 0 10px; padding: 12px; border: 1px solid var(--grey-200); border-radius: 8px; background: #fff; }
.pt-person-chapters__edit .pt-chip-add { flex-wrap: wrap; }
.pt-person-chapters [hidden] { display: none !important; }
.pt-chapter-picker { display: grid; gap: 8px; }
.pt-chapter-picker__tools { display: grid; grid-template-columns: minmax(110px, 160px) minmax(0, 1fr); gap: 8px; }
.pt-chapter-picker__tools input[type=search] { border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 8px 12px; font: inherit; font-size: .9rem; }
.pt-chapter-picker__list { max-height: 220px; }
.pt-chapter-picker__list .pt-check[hidden] { display: none; }
.pt-chapter-picker .btn[disabled] { opacity: .45; cursor: not-allowed; }

/* Chapters shown compactly next to people: state pills (hover lists the chapters) + expandable list */
.pt-stpill { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 999px; background: var(--grey-100); border: 1px solid var(--grey-200); color: var(--grey-800); font-size: .82rem; font-weight: 600; white-space: nowrap; cursor: default; vertical-align: middle; }
.pt-stpill b { font-weight: 600; font-size: .72rem; line-height: 1.5; padding: 0 6px; border-radius: 999px; background: var(--violet); color: #fff; }
.pt-people-table__chapters { white-space: normal; }
.pt-people-table__chapters .pt-stpill { margin: 1px 3px 1px 0; padding: 1px 7px; font-size: .74rem; gap: 4px; } /* two state pills fit side by side */
.pt-people-table__chapters .pt-stpill b { font-size: .66rem; padding: 0 5px; }
.pt-chapter-list { margin: 4px 0 8px; padding: 10px 12px; background: #faf7fb; border-radius: 8px; font-size: .9rem; line-height: 1.6; display: grid; gap: 6px; }
.pt-chapter-list b { color: var(--violet); margin-right: 6px; }
.pt-chapter-list a { color: inherit; }
.pt-chapter-list a:hover { color: var(--violet); }
.pt-chapter-list__group .pt-field-group-label { display: block; margin-bottom: 2px; }
.pt-chapter-list[hidden] { display: none !important; }

/* People directory: short cells never wrap (a date on four lines was making every row tall);
   the table scrolls sideways inside its card instead of stretching the page. */
.pt-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
/* Fixed layout: columns get a set share of the width, so a long pill can never squeeze the name
   column into letter-by-letter wrapping (which is what made rows tall). */
.pt-people-table { table-layout: fixed; width: 100%; min-width: 640px; font-size: .85rem; }
.pt-people-table th:nth-child(1) { width: 32%; }
.pt-people-table th:nth-child(2) { width: 20%; }
.pt-people-table th:nth-child(3) { width: 15%; }
.pt-people-table th:nth-child(4) { width: 13%; }
.pt-people-table th:nth-child(5) { width: 13%; }
.pt-people-table th:nth-child(6) { width: 7%; }
.pt-people-table th { white-space: nowrap; overflow: hidden; }
.pt-people-table td { vertical-align: middle; line-height: 1.35; padding: 9px 10px; }
.pt-people-table td:first-child small { display: block; margin: 2px 0 0; font-size: .8em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* one line, no .pt-muted block margins (they were adding 40px to every row) */
.pt-people-table .pt-stpill { white-space: nowrap; }
.pt-people-table .pt-muted-cell { white-space: normal; font-size: .9em; } /* the date may take a second line on narrow screens, never four */
.pt-people-table .pt-role, .pt-people-table .pt-badge { padding: 3px 8px; font-size: .62rem; letter-spacing: .03em; line-height: 1.25; white-space: normal; max-width: 100%; vertical-align: middle; } /* a long role wraps to two short lines rather than clipping */

/* ---------------------------------------------------------------------------
   Host a NARM (inc/portal/screen-narm.php)
   --------------------------------------------------------------------------- */
.btn--ghost-light { background: transparent; border: 1.5px solid rgba(255,255,255,.35); color: #fff; }
.btn--ghost-light:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.pt-narm-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 20px; align-items: center; background: var(--ink); color: #fff; border-radius: var(--radius-lg); padding: clamp(20px,3vw,30px); position: relative; overflow: hidden; margin-bottom: 1.4rem; }
.pt-narm-hero::before { content: ""; position: absolute; right: -40px; bottom: -70px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(179,9,173,.55), transparent 70%); pointer-events: none; }
.pt-narm-hero > * { position: relative; }
.pt-narm-hero__eyebrow { font-family: var(--font-brush); color: var(--yellow); font-size: 1.35rem; line-height: 1; }
.pt-narm-hero h2 { font-family: var(--font-display); text-transform: uppercase; font-size: clamp(1.4rem, 2.8vw, 2.1rem); font-weight: 400; line-height: 1.05; margin: 6px 0 8px; color: #fff; }
.pt-narm-hero p { color: #cfcbd6; max-width: 62ch; margin: 0; font-size: .95rem; }
.pt-narm-hero__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.pt-narm-hero__stats { display: flex; gap: 10px; flex-wrap: wrap; }
.pt-narm-stat { text-align: center; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius); padding: 14px 18px; min-width: 110px; }
.pt-narm-stat b { display: block; font-family: var(--font-display); font-size: 2.2rem; line-height: 1; font-weight: 400; color: var(--yellow); }
.pt-narm-stat span { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: #cfcbd6; font-weight: 700; }

.pt-narm-cols { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(0,1fr); gap: 20px; align-items: start; }
.pt-narm-cols--manage { grid-template-columns: minmax(0,2fr) minmax(0,1fr); }
.pt-narm-side { display: grid; gap: 20px; }
.pt-narm-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: .8rem; }
.pt-narm-head h2 { margin-bottom: .2rem; }
.pt-narm-years { display: flex; gap: 4px; flex-wrap: wrap; }
.pt-narm-years a { padding: 6px 12px; border-radius: 999px; font-size: .82rem; font-weight: 800; color: var(--grey-600); text-decoration: none; border: 1px solid var(--grey-200); }
.pt-narm-years a.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }
.pt-narm-legend { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: .8rem; }
.pt-narm-past { margin-left: auto; font-size: .82rem; font-weight: 700; color: var(--violet); text-decoration: none; }
.pt-narm-past:hover { text-decoration: underline; }
.pt-narm-wrap { overflow-x: auto; }
.pt-narm-table { font-variant-numeric: tabular-nums; min-width: 600px; }
.pt-narm-table td { vertical-align: middle; }
.pt-narm-row.is-past td { opacity: .55; }
.pt-narm-row.is-mine td { background: #faf6fb; }
.pt-narm-row.is-today td { box-shadow: inset 3px 0 0 var(--yellow); }
.pt-narm-row.is-cancelled td { color: var(--grey-500); }
.pt-narm-date { font-weight: 800; white-space: nowrap; }
.pt-narm-date small { display: block; font-weight: 600; color: var(--grey-500); font-size: .72rem; }
.pt-narm-chip { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; font-size: .86rem; }
.pt-narm-chip small { color: var(--grey-500); font-weight: 600; }
.pt-narm-chip__av { width: 26px; height: 26px; border-radius: 50%; background: var(--violet); color: #fff; font-size: .68rem; font-weight: 800; display: grid; place-items: center; flex: 0 0 auto; }
.pt-narm-chip.is-staff .pt-narm-chip__av { background: var(--blue); }
.pt-narm-chip.is-you .pt-narm-chip__av { background: var(--yellow); color: var(--ink); }
.pt-narm-open { color: var(--grey-500); font-style: italic; font-size: .86rem; }
.pt-narm-topic { color: var(--grey-500); font-size: .86rem; max-width: 220px; }
.pt-narm-topic.is-set { color: var(--ink); }
.pt-narm-act { white-space: nowrap; text-align: right; }
.pt-narm-act > * { vertical-align: middle; }
.pt-narm-pop { display: inline-block; }
.pt-narm-pop summary { list-style: none; cursor: pointer; display: inline-flex; }
.pt-narm-pop summary::-webkit-details-marker { display: none; }
/* The panel opens as a small centred dialog: the table scrolls sideways on narrow
   screens, and an absolutely-positioned panel would be clipped inside that scroller. */
.pt-narm-pop[open]::before { content: ""; position: fixed; inset: 0; z-index: 40; background: rgba(12,12,14,.45); }
.pt-narm-pop[open] > .pt-narm-form { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 41; max-height: min(90vh, 720px); overflow-y: auto; }
.pt-narm-form { width: min(420px, 92vw); background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow-lg); display: grid; gap: 12px; text-align: left; white-space: normal; }
.pt-narm-form form { display: grid; gap: 10px; margin: 0; }
.pt-narm-form form + form { border-top: 1px solid var(--grey-100); padding-top: 10px; }
.pt-narm-form h4 { margin: 0; font-family: var(--font-display); text-transform: uppercase; font-size: 1.05rem; font-weight: 400; }
.pt-narm-form .pt-muted { margin: 0; }
.pt-narm-form textarea, .pt-narm-form select { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 10px 12px; font: inherit; font-size: .9rem; background: #fff; }
.pt-narm-form__close { background: none; border: 0; padding: 0; font: inherit; font-size: .8rem; font-weight: 700; color: var(--grey-600); cursor: pointer; text-decoration: underline; justify-self: start; }
.pt-narm-pop--admin { margin-left: 6px; }
.pt-narm-adminbtn { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--grey-200); background: #fff; color: var(--grey-600); font-size: .85rem; display: inline-grid !important; place-items: center; }
.pt-narm-adminbtn:hover { border-color: var(--violet); color: var(--violet); }
.pt-narm-steps { counter-reset: s; display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pt-narm-steps li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: start; font-size: .88rem; line-height: 1.45; }
.pt-narm-steps li > span { min-width: 0; }
.pt-narm-steps li::before { counter-increment: s; content: counter(s); width: 26px; height: 26px; border-radius: 50%; background: var(--yellow); color: var(--ink); font-weight: 800; display: grid; place-items: center; font-size: .78rem; }
.pt-narm-list { list-style: none; margin: 0; padding: 0; }
.pt-narm-list li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--grey-100); font-size: .88rem; }
.pt-narm-list li a { color: var(--ink); font-weight: 700; text-decoration: none; }
.pt-narm-list li a:hover { color: var(--violet); }
.pt-narm-list li:last-child { border-bottom: 0; }
.pt-narm-list__grp { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--grey-500); font-weight: 800; padding-top: 12px !important; border: 0 !important; }
.pt-narm-list form { margin: 0; }
.pt-narm-empty { color: var(--grey-600); font-size: .9rem; margin: 0; }

/* Meeting script */
.pt-narm-script { max-width: 72ch; }
.pt-narm-script__meta { display: flex; flex-wrap: wrap; gap: 10px 22px; padding: 12px 14px; background: var(--grey-100); border-radius: 10px; margin-bottom: 1rem; font-size: .88rem; font-weight: 700; }
.pt-narm-script__meta span { display: flex; flex-direction: column; gap: 2px; }
.pt-narm-script__meta small { font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; color: var(--grey-500); font-weight: 800; }
.pt-narm-script__meta a { color: var(--violet); }
.pt-narm-key { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .78rem; color: var(--grey-600); margin-bottom: 1.4rem; }
.pt-narm-key span { display: inline-flex; align-items: center; gap: 7px; }
.pt-narm-key i { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }
.pt-narm-key__say { background: var(--grey-100); border: 1px solid var(--grey-200); }
.pt-narm-key__label { background: var(--grey-200); border-radius: 999px !important; }
.pt-narm-key__tip { background: #fff4d6; border: 1px solid var(--yellow); }
.pt-narm-script p { font-size: .95rem; line-height: 1.6; margin: 0 0 .7rem; }
.pt-narm-script h3 { font-family: var(--font-display); text-transform: uppercase; font-size: 1.25rem; font-weight: 400; margin: 0; }
.pt-narm-part { margin-bottom: 2rem; }
.pt-narm-part:last-child { margin-bottom: 0; }
.pt-narm-part__head { display: flex; gap: 14px; align-items: center; margin-bottom: 14px; }
.pt-narm-part__head p { margin: 2px 0 0; color: var(--grey-600); font-size: .88rem; }
.pt-narm-part__n { width: 38px; height: 38px; border-radius: 50%; background: var(--ink); color: var(--yellow); font-family: var(--font-display); font-size: 1.2rem; display: grid; place-items: center; flex: 0 0 auto; }
.pt-narm-label { display: inline-block; font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--grey-600); background: var(--grey-200); border-radius: 999px; padding: 3px 10px; margin-bottom: 8px; }
.pt-narm-say { position: relative; background: var(--grey-100); border-radius: 14px; padding: 14px 18px 8px 48px; margin: 0 0 12px; }
.pt-narm-say p:first-of-type::before { content: "\201C"; float: left; font-family: var(--font-display); font-size: 2.4rem; line-height: .75; color: var(--violet); opacity: .7; margin: 2px 6px 0 -30px; }
.pt-narm-say p:last-child { margin-bottom: .4rem; }
.pt-narm-say .pt-narm-label { margin-left: -30px; }
.pt-narm-say--opt { background: #fff; border: 1px dashed var(--grey-200); }
.pt-narm-say--opt p:first-of-type::before { opacity: .35; }
.pt-narm-say--opt small { display: block; font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; color: var(--grey-500); font-weight: 800; margin: 0 0 4px -30px; }
.pt-narm-step { margin: 0 0 18px; }
.pt-narm-do { font-weight: 600; margin-bottom: 8px !important; }
.pt-narm-tip { background: #fff4d6; border-radius: 10px; padding: 10px 14px; font-size: .88rem; line-height: 1.5; margin: 0 0 14px; }
.pt-narm-tip .pt-narm-sms { display: flex; margin-top: 8px; }
.pt-narm-tips { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pt-narm-tips li { background: #fff4d6; border-radius: 10px; padding: 10px 14px; font-size: .9rem; line-height: 1.5; }
.pt-narm-script .pt-narm-cue { font-family: var(--font-brush); color: var(--yellow-dk); font-size: 1.15rem; line-height: 1.3; } /* custom scripts that still use the old cue style */
@media print {
  .pt-side, .pt-topbar, .pt-tabs, .pt-narm-hero, .pt-narm-head .pt-mgr-actions, .pt-preview-banner { display: none !important; }
  .pt-shell { display: block; }
  .pt-content { padding: 0; }
  .pt-card { border: 0; padding: 0; }
  .pt-narm-script { max-width: none; }
}

/* Intro screen (an image: the tab preview, and the stand-alone ?present=1 page) */
.pt-narm-screenwrap { background: var(--ink-2); border-radius: var(--radius-lg); padding: clamp(14px,3vw,30px); display: grid; place-items: center; margin-bottom: 1rem; }
.pt-narm-screen { width: 100%; max-width: 960px; height: auto; aspect-ratio: 16/9; object-fit: cover; border-radius: 12px; box-shadow: var(--shadow-md); display: block; }

/* The tap-to-text check-in link chip (host guide) */
.pt-narm-sms { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; background: var(--grey-100); border-radius: 8px; padding: 6px 8px 6px 10px; font-size: .84rem; line-height: 1.3; max-width: 100%; }
.pt-narm-sms a { color: var(--violet); word-break: break-all; }
.pt-narm-sms__copy { border: 1.5px solid var(--grey-200); background: #fff; border-radius: 999px; padding: 4px 10px; font: inherit; font-size: .76rem; font-weight: 800; cursor: pointer; white-space: nowrap; }
.pt-narm-sms__copy:hover { border-color: var(--violet); color: var(--violet); }
.pt-narm-script .pt-narm-cue .pt-narm-sms { font-family: var(--font-body); color: var(--ink); display: flex; margin-top: 6px; }

/* Host guide: the intro strip + two tiles */
.pt-narm-guidehead { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px 28px; align-items: end; margin-bottom: 18px; }
.pt-narm-guidehead__brush { font-family: var(--font-brush); color: var(--violet); font-size: 1.5rem; line-height: 1; }
.pt-narm-guidehead h2 { font-family: var(--font-display); text-transform: uppercase; font-size: 1.6rem; font-weight: 400; margin: 4px 0 6px; }
.pt-narm-guidehead .pt-muted { margin: 0; max-width: 60ch; }
.pt-narm-guidehead__facts { display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: .9rem; font-weight: 700; }
.pt-narm-guidehead__facts span { display: flex; flex-direction: column; gap: 2px; }
.pt-narm-guidehead__facts small { font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; color: var(--grey-500); font-weight: 800; }
.pt-narm-guidehead__facts a { color: var(--violet); }
.pt-narm-tiles { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; align-items: start; }
.pt-narm-tile { background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius-lg); padding: clamp(18px,2.5vw,26px); border-top: 5px solid var(--violet); }
.pt-narm-tile--cohost { border-top-color: var(--blue); }
.pt-narm-tile header { display: flex; gap: 14px; align-items: center; margin-bottom: 16px; }
.pt-narm-tile header h3 { font-family: var(--font-display); text-transform: uppercase; font-size: 1.25rem; font-weight: 400; margin: 0; }
.pt-narm-tile header p { margin: 2px 0 0; color: var(--grey-600); font-size: .88rem; }
.pt-narm-tile__ico { width: 46px; height: 46px; border-radius: 12px; background: rgba(179,9,173,.1); color: var(--violet); display: grid; place-items: center; flex: 0 0 auto; }
.pt-narm-tile--cohost .pt-narm-tile__ico { background: rgba(17,114,162,.12); color: var(--blue); }
.pt-narm-tile__steps { counter-reset: s; list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.pt-narm-tile__steps li { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 12px; align-items: start; font-size: .93rem; line-height: 1.5; }
.pt-narm-tile__steps li::before { counter-increment: s; content: counter(s); width: 28px; height: 28px; border-radius: 50%; background: var(--yellow); color: var(--ink); font-weight: 800; display: grid; place-items: center; font-size: .8rem; }
.pt-narm-tile--cohost .pt-narm-tile__steps li::before { background: var(--blue); color: #fff; }
.pt-narm-tile__steps li > span { min-width: 0; }
.pt-narm-tile__steps a { color: var(--violet); font-weight: 700; }
.pt-narm-tile__steps .pt-narm-sms { display: flex; margin-top: 8px; }
.pt-narm-tile__steps .pt-narm-msg { margin-top: 10px; }
@media (max-width: 900px) { .pt-narm-tiles { grid-template-columns: 1fr; } .pt-narm-guidehead { grid-template-columns: 1fr; align-items: start; } }
@media print { .pt-narm-tiles { grid-template-columns: 1fr 1fr; } }

/* Host guide notes (optional): lists + the Slack message block */
.pt-narm-prep ul { margin: 0 0 .8rem; padding-left: 1.2rem; display: grid; gap: 8px; font-size: .95rem; line-height: 1.55; }
.pt-narm-prep li { padding-left: 2px; }
.pt-narm-prep p { border-left: 0; padding-left: 0; }
.pt-narm-prep .pt-narm-sms { display: flex; margin-top: 6px; }
.pt-narm-chiplink { display: inline-block; margin-top: 6px; font-weight: 800; font-size: .84rem; color: var(--violet); text-decoration: none; }
.pt-narm-chiplink:hover { text-decoration: underline; }
.pt-narm-msg { display: block; margin-top: 8px; background: var(--grey-100); border-radius: 10px; padding: 12px 14px; }
.pt-narm-msg pre { margin: 0 0 10px; white-space: pre-wrap; font: inherit; font-size: .9rem; line-height: 1.5; }
.pt-narm-msg__btns { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.pt-narm-msg__btns .pt-narm-chiplink { margin-top: 0; }

/* Social media: when-to-post row + captions grid */
.pt-narm-when { counter-reset: s; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.pt-narm-when li { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; align-items: start; font-size: .9rem; line-height: 1.45; background: var(--grey-100); border-radius: 12px; padding: 12px 14px; }
.pt-narm-when li::before { counter-increment: s; content: counter(s); width: 26px; height: 26px; border-radius: 50%; background: var(--yellow); color: var(--ink); font-weight: 800; display: grid; place-items: center; font-size: .78rem; }
.pt-narm-when li > span { min-width: 0; overflow-wrap: anywhere; } /* a long handle (@youngpeopleinrecovery) can never escape its card */
.pt-narm-captions { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; align-items: start; }
.pt-narm-cap { border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 14px 16px; display: grid; gap: 10px; background: #fff; }
.pt-narm-cap.is-host { border-color: var(--yellow); box-shadow: 0 6px 18px rgba(236,168,3,.14); }
.pt-narm-cap h3 { font-family: var(--font-display); text-transform: uppercase; font-size: 1rem; font-weight: 400; margin: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pt-narm-cap__text { background: var(--grey-100); border-radius: 10px; padding: 12px 14px; font-size: .88rem; line-height: 1.55; }
.pt-narm-cap .btn { justify-self: start; }
.pt-row--caption { grid-template-columns: 200px 1fr; padding-right: 12px; }
.pt-row--caption textarea { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 10px 12px; font: inherit; font-size: .9rem; background: #fff; resize: vertical; }
@media (max-width: 1280px) { .pt-narm-when { grid-template-columns: repeat(2, minmax(0,1fr)); } } /* laptops: two cards per row so the text has room */
@media (max-width: 760px) { .pt-narm-when { grid-template-columns: 1fr; } .pt-row--caption { grid-template-columns: 1fr; } }

/* Flyers: the social graphics */
.pt-narm-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.pt-narm-gfx { border: 1px solid var(--grey-200); border-radius: var(--radius); overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.pt-narm-gfx__img { display: block; background: var(--grey-100); }
.pt-narm-gfx__img img { display: block; width: 100%; height: auto; }
.pt-narm-gfx__meta { padding: 10px 12px 12px; display: grid; gap: 8px; }
.pt-narm-gfx__meta b { font-size: .9rem; }
.pt-narm-gfx__dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(116px, 1fr)); gap: 6px; } /* side by side when they fit, stacked when they don't — never overlapping */
.pt-narm-gfx__dl .btn { justify-content: center; padding: 10px 8px; min-width: 0; white-space: nowrap; font-size: .72rem; letter-spacing: .04em; }
.pt-narm-gfx__sizes { color: var(--grey-500); font-size: .7rem; font-weight: 600; line-height: 1.3; }
/* Flyers */
.pt-narm-caption { background: var(--grey-100); border-radius: 10px; padding: 12px 14px; font-size: .9rem; line-height: 1.55; }

/* Manage */
.pt-narm-rot { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.pt-narm-rot .pt-field > span { font-size: .66rem; }
.pt-narm-yearin { width: 110px; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 9px 12px; font: inherit; font-size: .9rem; }
.pt-narm-check { display: flex; align-items: center; gap: 8px; font-size: .86rem; }

@media (max-width: 1240px) { .pt-narm-cols, .pt-narm-cols--manage { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .pt-narm-hero { grid-template-columns: 1fr; }
  .pt-narm-act { white-space: normal; }
}

/* Team Calendar: what it is for (chapter events live in Pathwell) */
.pt-cal-note { display: flex; gap: 12px; align-items: flex-start; background: rgba(17,114,162,.08); border: 1px solid rgba(17,114,162,.2); border-radius: 12px; padding: 12px 16px; margin-bottom: 1.2rem; font-size: .9rem; line-height: 1.5; }
.pt-cal-note > svg { flex: 0 0 auto; color: var(--blue); margin-top: 2px; }
.pt-cal-note p { margin: 0; }
.pt-cal-note a { color: var(--blue); font-weight: 800; text-decoration: none; white-space: nowrap; }
.pt-cal-note a:hover { text-decoration: underline; }

/* People directory: per-row actions. "Manage" opens a row of small forms under the person
   (the same forms as their page: inc/portal/part-person-actions.php). */
.pt-people-table--actions { min-width: 780px; }
.pt-people-table--actions th:nth-child(1) { width: 27%; }
.pt-people-table--actions th:nth-child(2) { width: 18%; }
.pt-people-table--actions th:nth-child(3) { width: 14%; }
.pt-people-table--actions th:nth-child(4) { width: 12%; }
.pt-people-table--actions th:nth-child(5) { width: 12%; }
.pt-people-table--actions th:nth-child(6) { width: 6%; }
.pt-people-table--actions th:nth-child(7) { width: 11%; }
.pt-people-table__act { text-align: right; white-space: nowrap; }
.pt-people-table__act .pt-link-btn { padding: 4px 2px; }
.pt-people-table tr.is-done > td { background: rgba(236,168,3,.12); }
.pt-people-table tr.pt-people-actions > td { background: #faf6fb; padding: 14px 16px 18px; white-space: normal; }
.pt-people-table tr.pt-people-actions[hidden] { display: none; }
/* On a phone the table scrolls sideways; the open "Manage" panel stays the width of the screen
   and pinned to its left edge, so its forms never need sideways scrolling. */
.pt-table-scroll--people { container-type: inline-size; }
.pt-people-actions__inner { position: sticky; left: 16px; max-width: 100%; }
@supports (width: 1cqw) { .pt-people-actions__inner { width: calc(100cqw - 32px); } }
.pt-people-actions__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 14px; margin: 0 0 10px; font-weight: 700; }
.pt-people-actions__head a { font-weight: 600; font-size: .9em; }
.pt-people-actions .pt-person-actions { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.pt-people-actions .pt-person-actions .pt-mini-form { padding: 12px 14px; }
.pt-person-actions .pt-action__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.pt-person-actions .pt-check { align-items: flex-start; }
.pt-people-table .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Icons beside text, everywhere in the portal.
   The site-wide reset (style.css: "img, video, svg { display: block }") puts an icon on a line of
   its own unless its parent is a flex or grid box. That is what stacked the icon above card
   headings ("Membership", "Sign-ins", "Trainings" on a person's page; Activity Log, Info Tree,
   Team Updates) and above the Info Tree's "View" links. An icon inside a heading, paragraph, link,
   label or similar belongs on the text line. Flex and grid parents lay their children out
   themselves, so nothing changes there. (.arrow is the icon-only wrapper inside buttons: left as
   it is, or its line box would make the arrow sit low.) */
.sr-portal :is(h1, h2, h3, h4, h5, p, span:not(.arrow), a, button, label, summary, li, dt, dd, td, th, small, strong, em, legend, figcaption) > svg {
	display: inline-block;
	vertical-align: -0.14em;
}
/* Headings are set in tall capitals: centre the icon on the letters. */
.sr-portal :is(h1, h2, h3, h4, h5) > svg { vertical-align: -0.03em; }
/* Card headings: the same violet icon as the dashboard's cards and the section headings, with the
   same gap those flex headings have. */
.pt-card h2 > svg { color: var(--violet); margin-right: .25em; }
/* Empty states ("All caught up"): the icon stays on its own line, centred like the text under it. */
.pt-empty > svg { margin-left: auto; margin-right: auto; }

/* Supply Requests: one row per order, Manage opens the detail + actions under it
   (inc/portal/screen-supply-queue.php). */
.pt-sq-kpis { margin: 1.2rem 0 1.4rem; }
.pt-kpi--attention { border-color: rgba(179,9,173,.35); box-shadow: 0 0 0 3px rgba(179,9,173,.06); }
.pt-sq-tools { display: flex; gap: 10px; align-items: center; margin: 14px 0 12px; }
.pt-sq-tools input[type=search] { flex: 1; min-width: 200px; border: 1.5px solid var(--grey-200); border-radius: 999px; padding: 9px 14px; font: inherit; font-size: .9rem; }
.pt-sq-tools input[type=search]:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgba(179,9,173,.12); }
.pt-table-scroll--sq { container-type: inline-size; }
.pt-sq-table { min-width: 820px; font-size: .86rem; }
.pt-sq-table th { white-space: nowrap; }
.pt-sq-table th:nth-child(1) { width: 14%; } .pt-sq-table th:nth-child(2) { width: 17%; } .pt-sq-table th:nth-child(3) { width: 18%; }
.pt-sq-table th:nth-child(4) { width: 15%; } .pt-sq-table th:nth-child(5) { width: 14%; } .pt-sq-table th:nth-child(6) { width: 12%; } .pt-sq-table th:nth-child(7) { width: 10%; }
.pt-sq-table { table-layout: fixed; min-width: 940px; }
.pt-sq-table td { overflow-wrap: anywhere; }
.pt-sq-table td { vertical-align: top; line-height: 1.35; }
.pt-sq-table td small { display: block; margin-top: 2px; font-size: .78rem; color: var(--grey-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 220px; }
.pt-sq-table tr.is-request > td { background: rgba(179,9,173,.045); }
.pt-sq-table tr.is-done > td { background: rgba(236,168,3,.12); }
.pt-sq-table tr.is-hidden { display: none; }
.pt-sq-table .pt-badge { white-space: normal; overflow-wrap: normal; word-break: normal; line-height: 1.3; font-size: .64rem; padding: 4px 9px; } /* wraps only between words */
.pt-sq-table__act { text-align: right; white-space: nowrap; }
.pt-sq-table__act .pt-link-btn { padding: 4px 6px; text-decoration: none; }
.pt-sq-warn { color: #a3271a; font-weight: 700; display: inline-flex; align-items: center; gap: 4px; }
.pt-sq-table tr.pt-sq-panel > td { background: #faf6fb; padding: 16px 18px 20px; white-space: normal; }
.pt-sq-table tr.pt-sq-panel[hidden] { display: none; }
.pt-sq-panel__inner { position: sticky; left: 16px; max-width: 100%; }
@supports (width: 1cqw) { .pt-sq-panel__inner { width: calc(100cqw - 32px); } }
.pt-sq-panel__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, 1fr); gap: 20px; align-items: start; }
@media (max-width: 900px) { .pt-sq-panel__grid { grid-template-columns: minmax(0, 1fr); } }
.pt-sq-detail h4 { margin: 14px 0 4px; font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--grey-500); }
.pt-sq-detail h4:first-child { margin-top: 0; }
.pt-sq-detail p { margin: 0; font-size: .88rem; color: var(--ink); }
.pt-sq-detail .pt-hint { margin-top: 8px; }
.pt-sq-detail .pt-supply-reason { margin-top: 10px; }
.pt-sq-items { margin: 0; padding: 0; list-style: none; }
.pt-sq-items li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--grey-200); font-size: .88rem; }
.pt-sq-items li:last-child { border-bottom: 0; }
.pt-sq-timeline { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; font-size: .82rem; color: var(--grey-600); }
.pt-sq-actions { display: grid; gap: 12px; align-content: start; }
.pt-sq-actions .pt-mini-form { padding: 14px 16px; }
.pt-sq-actions .pt-mini-form textarea { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 9px 12px; font: inherit; font-size: .86rem; resize: vertical; box-sizing: border-box; }
.pt-sq-actions .pt-mini-form select, .pt-sq-actions .pt-mini-form input[type=text] { width: 100%; box-sizing: border-box; }
.pt-sq-actions .pt-action__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.pt-sq-actions .pt-check { align-items: flex-start; }
.pt-sq-danger { border-color: #f3c9c4; background: #fffafa; }

/* Supply orders: confirm step (notice + payment contact), done-screen notice */
.pt-supply-notice { display: flex; gap: 12px; align-items: flex-start; background: #fff7e0; border: 1px solid var(--yellow); border-left-width: 5px; border-radius: 10px; padding: 14px 16px; margin: 4px 0 20px; color: #4a3800; text-align: left; }
.pt-supply-notice svg { flex: 0 0 auto; color: var(--yellow-dk); margin-top: 2px; }
.pt-supply-notice p { margin: 0; font-size: .92rem; line-height: 1.55; font-weight: 600; max-width: none; color: inherit; }
.pt-supply-done .pt-supply-notice--left { margin: 0 auto 20px; max-width: 560px; }
.pt-supply-confirm__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 28px; }
.pt-supply-confirm h4 { margin: 0 0 6px; font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--grey-600); }
.pt-supply-confirm p { margin: 0 0 14px; font-size: .92rem; line-height: 1.5; }
.pt-supply-confirm__links { font-size: .84rem; color: var(--grey-600); margin: 10px 0 0 !important; }
.pt-supply-confirm__links a { color: var(--violet); font-weight: 700; }
.pt-row--pay { grid-template-columns: 1fr 1fr; }
@media (max-width: 720px) { .pt-supply-confirm__grid, .pt-row--pay { grid-template-columns: 1fr; } }

/* Pathwell (inc/portal/screen-pathwell.php) — built on the Host a NARM components */
.pt-pw-hero { grid-template-columns: minmax(0,1fr); }
.pt-pw-sects { display: grid; gap: 12px; }
.pt-pw-sects .pt-sect__body .pt-narm-steps { margin-top: 14px; }
.pt-pw-sects .pt-narm-tip { margin: 0; }
.pt-pw-sects .pt-sect { scroll-margin-top: 90px; }
.pt-pw-cheat { width: 100%; border-collapse: collapse; font-size: .88rem; }
.pt-pw-cheat td { padding: 9px 0; border-bottom: 1px solid var(--grey-200); vertical-align: top; }
.pt-pw-cheat td:first-child { font-weight: 700; padding-right: 12px; }
.pt-pw-cheat td:last-child { color: var(--grey-600); text-align: right; }
.pt-pw-video { aspect-ratio: 16/9; border-radius: 12px; overflow: hidden; background: var(--ink); }
.pt-pw-video iframe { width: 100%; height: 100%; border: 0; display: block; }
.pt-pw-two { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 14px; }
.pt-pw-kicker { display: block; font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; color: var(--grey-500); font-weight: 800; margin-bottom: 6px; }
.pt-pw-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .9rem; }
.pt-pw-list li::before { content: "\2713"; color: var(--blue); font-weight: 800; margin-right: 8px; }
.pt-pw-list--no li::before { content: "\2715"; color: var(--violet); }
.pt-pw-faq { display: grid; gap: 12px; }
.pt-pw-faq > div { background: var(--grey-100); border-radius: 12px; padding: 12px 16px; }
.pt-pw-faq p { margin: 4px 0 0; font-size: .9rem; color: var(--grey-800); }
.pt-pw-crisis { border-top: 5px solid var(--violet); }
.pt-pw-crisis p { font-size: .92rem; margin: 0; }
.pt-pw-mail { max-width: 100%; overflow-wrap: anywhere; white-space: normal; text-transform: none; letter-spacing: 0; }
.pt-pw-gfxlist { list-style: none; margin: .6rem 0 0; padding: 0; display: grid; gap: 8px; }
.pt-pw-gfxlist li { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 8px; border: 1px solid var(--grey-200); border-radius: 10px; }
.pt-pw-gfxlist img { width: 72px; height: 48px; object-fit: cover; border-radius: 6px; background: var(--grey-100); }
.pt-pw-gfxlist span { display: grid; min-width: 0; }
.pt-pw-gfxlist small { color: var(--grey-500); font-size: .76rem; }
.pt-pw-capedit { border: 1px solid var(--grey-200); border-radius: 10px; padding: 10px 14px 14px; margin: 0; display: grid; gap: 10px; }
.pt-pw-capedit legend { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--grey-600); padding: 0 6px; }
@media (max-width: 720px) { .pt-pw-two { grid-template-columns: 1fr; } }

/* Chapter Messages (Contact a Chapter form → portal) */
.pt-cm-list { padding: 0 0 6px; }
.pt-cm-list .pt-tabs { margin: 0 18px; }
.pt-cm-search { padding: 14px 18px 4px; }
.pt-cm-search input { width: 100%; border: 1.5px solid var(--grey-200); border-radius: 999px; padding: 11px 16px; font: inherit; font-size: .92rem; }
.pt-cm-search input:focus { outline: 2px solid var(--violet); border-color: var(--violet); }
.pt-cm-items { display: grid; gap: 12px; padding: 14px 18px 12px; }
.pt-cm { border: 1px solid var(--grey-200); border-left: 4px solid var(--grey-200); border-radius: 12px; padding: 16px 18px; background: #fff; }
.pt-cm.is-new { border-left-color: var(--violet); }
.pt-cm.is-open { box-shadow: 0 0 0 2px var(--violet); }
.pt-cm__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pt-cm__who { display: flex; align-items: center; gap: 12px; min-width: 0; }
.pt-cm__avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--violet); color: #fff; font-weight: 800; font-size: .8rem; letter-spacing: .02em; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.pt-cm__who strong { display: block; font-size: 1rem; line-height: 1.25; }
.pt-cm__email a { font-size: .84rem; color: var(--grey-600); text-decoration: none; overflow-wrap: anywhere; }
.pt-cm__email a:hover { color: var(--violet); }
.pt-cm__tags { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pt-cm__line { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; font-size: .82rem; color: var(--grey-600); margin: 10px 0 0; }
.pt-cm__line svg { color: var(--violet); flex: 0 0 auto; }
.pt-cm__msg { margin: 12px 0 0; padding: 12px 16px; border-left: 3px solid var(--grey-200); background: var(--grey-100); border-radius: 0 10px 10px 0; font-size: .95rem; line-height: 1.6; overflow-wrap: anywhere; }
.pt-cm__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 14px; }
.pt-cm__actions form { margin: 0; }
.pt-cm__actions .btn svg { margin-right: 4px; }
.pt-cm__handled { font-size: .8rem; color: var(--grey-600); }
.pt-cm__reply { margin: 10px 0 0 22px; padding: 10px 14px; border-left: 3px solid var(--violet); background: #faf5fb; border-radius: 0 10px 10px 0; font-size: .92rem; line-height: 1.55; overflow-wrap: anywhere; white-space: pre-wrap; }
.pt-cm__reply-meta { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; margin: 0 0 4px; font-size: .78rem; color: var(--grey-600); white-space: normal; }
.pt-cm__reply-meta svg { color: var(--violet); flex: 0 0 auto; }
.pt-cm__compose { margin: 0; }
.pt-cm__compose > summary { list-style: none; cursor: pointer; box-sizing: border-box; }
.pt-cm__compose > summary::-webkit-details-marker { display: none; }
.pt-cm__compose[open] { flex-basis: 100%; }
.pt-cm__compose form { margin: 12px 0 2px; display: grid; gap: 8px; max-width: 720px; }
.pt-cm__compose textarea { resize: vertical; min-height: 120px; box-sizing: border-box; }
.pt-cm__cc { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; }
.pt-cm__cc-label { font-size: .78rem; font-weight: 700; color: var(--ink); }
.pt-cm__cc .pt-check--inline small { color: var(--grey-600); font-weight: 400; }
.pt-cm__more { margin: 0; }
.pt-cm__more > summary { list-style: none; cursor: pointer; font-size: .82rem; color: var(--violet); font-weight: 600; }
.pt-cm__more > summary::-webkit-details-marker { display: none; }
.pt-cm__more[open] > summary { margin-bottom: 6px; }
.pt-cm__more .pt-checklist { max-height: 200px; background: #fff; }
.pt-cm__more .pt-check small { color: var(--grey-600); }
.pt-cm__cc--answer select { border: 1.5px solid var(--grey-200); border-radius: 8px; padding: 7px 10px; font: inherit; font-size: .86rem; background: #fff; max-width: 100%; }
.pt-cm__cc--answer select:focus { outline: 2px solid var(--violet); border-color: var(--violet); }
.pt-cm__compose-hint { margin: 0; font-size: .8rem; color: var(--grey-600); }
.pt-cm__compose-hint strong { color: var(--ink); font-weight: 600; }
.pt-cm__compose-send { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.pt-cm__alt { font-size: .8rem; color: var(--grey-600); }
.pt-cm__alt a { color: var(--violet); text-decoration: none; }
.pt-cm__alt a:hover { text-decoration: underline; }
.pt-cm-empty { padding: 36px 18px; }
.pt-cm-nomatch { padding: 0 18px 14px; }
@media (max-width: 640px) { .pt-cm { padding: 14px; } .pt-cm__actions .btn { width: 100%; justify-content: center; } .pt-cm__actions form { width: 100%; } .pt-cm__compose { width: 100%; } .pt-cm__reply { margin-left: 0; } }

/* ---------- Dashboard: Team Update hero (NARM-style) ---------- */
.pt-dash-hero { position: relative; overflow: hidden; background: var(--ink); color: #fff; border-radius: var(--radius-lg); padding: clamp(26px, 4vw, 48px) clamp(20px, 4vw, 56px); margin: 0 0 1.4rem; text-align: center; }
.pt-dash-hero::before { content: ""; position: absolute; right: -80px; bottom: -120px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(179,9,173,.6), transparent 70%); pointer-events: none; }
.pt-dash-hero::after { content: ""; position: absolute; left: -90px; top: -120px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(17,114,162,.45), transparent 70%); pointer-events: none; }
.pt-dash-hero > * { position: relative; z-index: 1; }
.pt-dash-hero__hi { display: block; font-family: var(--font-brush); color: var(--yellow); font-size: clamp(1.3rem, 2.4vw, 1.7rem); line-height: 1; }
.pt-dash-hero__kicker { display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin: 16px 0 0; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #cfcbd6; }
.pt-dash-hero__kicker svg { color: var(--yellow); }
.pt-dash-hero__kicker .pt-tag-new { letter-spacing: .06em; }
.pt-dash-hero h2 { font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: clamp(1.8rem, 4.2vw, 3.1rem); line-height: 1.02; margin: 10px auto 12px; max-width: 24ch; color: #fff; text-wrap: balance; }
.pt-dash-hero p { color: #d9d5df; max-width: 64ch; margin: 0 auto; font-size: 1.02rem; line-height: 1.6; }
.pt-dash-hero__by { margin-top: 12px !important; font-size: .86rem !important; color: #a9a4b3 !important; }
.pt-dash-hero__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 20px; }
.pt-dash-hero .btn--yellow { background: var(--yellow); color: var(--ink); }
.pt-dash-hero .btn--line { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.35); }
.pt-dash-hero .btn--line:hover { border-color: #fff; }

/* ---------- Dashboard: Quick links as one unit ---------- */
.pt-quick { background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius-lg); padding: 18px 20px 20px; }
.pt-quick__bar { margin-bottom: 14px; }
.pt-quick__title { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--font-display); text-transform: uppercase; font-size: 1.15rem; font-weight: 400; color: var(--ink); }
.pt-quick__title svg { color: var(--violet); }
.pt-quick__tabs { background: var(--grey-100); border-color: transparent; }
.pt-quick__tabs [role="tab"][aria-selected="true"] { background: var(--qc, var(--violet)); color: #fff; }
.pt-quick__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pt-quick__grid:has(> :nth-child(4):last-child), .pt-quick__grid:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pt-quick__item { min-height: 68px; background: var(--grey-100); border: 1px solid transparent; border-radius: 14px; padding: 12px 14px; font-size: .9rem; line-height: 1.25; }
.pt-quick__item svg { box-sizing: border-box; width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: var(--qbg, rgba(179,9,173,.12)); color: var(--qc, var(--violet)); }
.pt-quick__item span { flex: 1 1 auto; min-width: 0; }
.pt-quick__item::after { content: "\2192"; flex: 0 0 auto; color: var(--grey-500); font-weight: 800; }
.pt-quick__item:hover { background: #fff; border-color: var(--qc, var(--violet)); box-shadow: 0 8px 20px rgba(12,12,14,.08); }
/* one colour per tab, shared by the tab and its links */
.pt-quick [data-qi="1"] { --qc: var(--violet); --qbg: rgba(179,9,173,.12); }
.pt-quick [data-qi="2"] { --qc: var(--blue);   --qbg: rgba(17,114,162,.12); }
.pt-quick [data-qi="3"] { --qc: #a87400;      --qbg: rgba(236,168,3,.18); }
.pt-quick [data-qi="4"] { --qc: var(--ink);    --qbg: rgba(12,12,14,.08); }
@media (max-width: 900px) { .pt-quick__grid, .pt-quick__grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pt-quick__grid, .pt-quick__grid:has(> :nth-child(4):last-child), .pt-quick__grid:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; } }

/* ---------- Dashboard: Excellent Chapters, names on the card ---------- */
.pt-excellent-card__sum { margin: 0 0 12px; }
.pt-excellent-card__grid { columns: 2 200px; column-gap: 22px; }
.pt-excellent-card__state { break-inside: avoid; margin: 0 0 14px; }
.pt-excellent-card__state h4 { margin: 0 0 6px; padding-bottom: 5px; border-bottom: 2px solid var(--yellow); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.pt-excellent-card__state ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pt-excellent-card__state li { display: grid; line-height: 1.25; }
.pt-excellent-card__state li strong { font-size: .88rem; color: var(--ink); }
.pt-excellent-card__state li span { font-size: .78rem; color: var(--grey-600); }
.pt-excellent-card__foot { margin: 4px 0 0; font-size: .8rem; color: var(--grey-500); }
.pt-excellent-card__foot a { color: var(--violet); font-weight: 800; }
.pt-cards:has(> .pt-excellent-card) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); align-items: start; }
.pt-excellent-card__grid { columns: 3 170px; }
.pt-excellent-card__state li { display: block; }
.pt-excellent-card__state li strong { font-size: .86rem; }
.pt-excellent-card__state li span::before { content: " · "; color: var(--grey-400); }
@media (max-width: 1000px) { .pt-cards:has(> .pt-excellent-card) { grid-template-columns: 1fr; } }
/* ---------- Advocacy department (branded) ---------- */
.pt-adv-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 28px; align-items: center; background: var(--ink); color: #fff; border-radius: var(--radius-lg); padding: clamp(22px, 3.4vw, 40px); margin: 0 0 1.4rem; }
.pt-adv-hero::before { content: ""; position: absolute; right: -60px; bottom: -110px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(179,9,173,.6), transparent 70%); pointer-events: none; }
.pt-adv-hero::after { content: ""; position: absolute; left: 30%; top: -160px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(17,114,162,.35), transparent 70%); pointer-events: none; }
.pt-adv-hero > * { position: relative; z-index: 1; }
.pt-adv-hero__back { display: inline-block; font-size: .78rem; font-weight: 800; color: #cfcbd6; text-decoration: none; margin-bottom: 10px; }
.pt-adv-hero__eyebrow { display: block; font-family: var(--font-brush); color: var(--yellow); font-size: clamp(1.3rem, 2.4vw, 1.6rem); line-height: 1; }
.pt-adv-hero h1 { font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: clamp(2rem, 4.4vw, 3.2rem); line-height: 1; margin: 6px 0 10px; color: #fff; }
.pt-adv-hero p { color: #d9d5df; max-width: 60ch; margin: 0; font-size: 1rem; line-height: 1.55; }
.pt-adv-hero__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.pt-adv-hero .btn--yellow { background: var(--yellow); color: var(--ink); }
.pt-adv-hero .btn--line { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.35); }
.pt-adv-hero__stats { display: grid; gap: 10px; }
.pt-adv-stat { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 16px; padding: 14px 18px; min-width: 170px; text-align: center; }
.pt-adv-stat strong { display: block; font-family: var(--font-display); font-size: 2.2rem; line-height: 1; color: var(--yellow); font-weight: 400; }
.pt-adv-stat span { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #cfcbd6; }
.pt-adv-sec { margin: 0 0 1.6rem; scroll-margin-top: 90px; }
.pt-adv-sec__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 8px 16px; margin-bottom: 12px; }
.pt-adv-sec__head h2 { margin: 0; font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: 1.5rem; color: var(--ink); display: flex; align-items: center; gap: 10px; }
.pt-adv-sec__head h2 svg { color: var(--violet); }
.pt-adv-sec__head p { margin: 4px 0 0; color: var(--grey-600); font-size: .9rem; }
.pt-adv-add { font-size: .82rem; font-weight: 800; color: var(--violet); text-decoration: none; border: 1px dashed rgba(179,9,173,.5); border-radius: 999px; padding: 8px 14px; }
.pt-adv-todos { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.pt-adv-todo { position: relative; background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 18px 18px 16px; display: grid; gap: 8px; align-content: start; }
.pt-adv-todo--action { border-top: 5px solid var(--violet); }
.pt-adv-todo--update { border-top: 5px solid var(--blue); }
.pt-adv-todo--event { border-top: 5px solid var(--yellow); }
.pt-adv-todo__top { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: space-between; }
.pt-adv-chip { display: inline-block; font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; border-radius: 999px; padding: 3px 9px; background: rgba(179,9,173,.1); color: var(--violet); }
.pt-adv-todo--update .pt-adv-chip { background: rgba(17,114,162,.1); color: var(--blue); }
.pt-adv-todo--event .pt-adv-chip { background: rgba(236,168,3,.18); color: #a87400; }
.pt-adv-due { font-size: .76rem; font-weight: 800; color: var(--ink); background: var(--grey-100); border-radius: 999px; padding: 3px 10px; }
.pt-adv-due.is-soon { background: rgba(179,9,173,.12); color: var(--violet-dk); }
.pt-adv-todo h3 { margin: 0; font-size: 1.05rem; line-height: 1.25; color: var(--ink); }
.pt-adv-todo p { margin: 0 0 .5em; font-size: .9rem; line-height: 1.5; color: var(--grey-800); }
.pt-adv-todo__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; }
.pt-adv-states { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.pt-adv-states button { border: 1px solid var(--grey-200); background: #fff; color: var(--grey-800); font: inherit; font-size: .84rem; font-weight: 800; border-radius: 999px; padding: 8px 14px; cursor: pointer; }
.pt-adv-states button small { font-weight: 700; color: var(--grey-500); margin-left: 4px; }
.pt-adv-states button[aria-pressed="true"] { background: var(--blue); border-color: var(--blue); color: #fff; }
.pt-adv-states button[aria-pressed="true"] small { color: rgba(255,255,255,.8); }
.pt-adv-asks { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.pt-adv-ask { position: relative; background: #fff; border: 1px solid var(--grey-200); border-left: 5px solid var(--blue); border-radius: 18px; padding: 18px; display: grid; gap: 8px; align-content: start; }
.pt-adv-ask__state { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); }
.pt-adv-ask h3 { margin: 0; font-size: 1.05rem; color: var(--ink); }
.pt-adv-ask__ask { margin: 0; background: rgba(17,114,162,.07); border-radius: 12px; padding: 10px 12px; font-size: .9rem; line-height: 1.5; color: var(--ink); }
.pt-adv-ask__ask b { color: var(--blue); }
.pt-adv-ask__meta { font-size: .8rem; color: var(--grey-600); }
.pt-adv-ask__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.pt-adv-ask__btns a { font-size: .82rem; }
.pt-adv-none { background: #fff; border: 1px dashed var(--grey-400); border-radius: 18px; padding: 18px; color: var(--grey-600); font-size: .92rem; }
.pt-adv-toolkit { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; align-items: stretch; }
.pt-adv-toolkit .pt-card { display: flex; flex-direction: column; padding: 22px; }
.pt-adv-toolkit .pt-res__links { gap: 8px; }
.pt-adv-toolkit .pt-card { margin: 0; }
.pt-adv-toolkit .pt-card > h3 { display: flex; align-items: center; gap: 8px; }
.pt-adv-toolkit .pt-card > h3::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--yellow); transform: rotate(45deg); }
.pt-adv-toolkit .pt-res__link { background: var(--grey-100); border-radius: 12px; min-height: 58px; align-items: center; padding: 10px 14px; }
.pt-adv-toolkit .pt-res__link > svg { margin-top: 0; }
.pt-adv-toolkit .pt-res__link:hover { background: #fff; border-color: var(--violet); }
.btn--sm { padding: 9px 16px; font-size: .78rem; }
@media (max-width: 760px) { .pt-adv-hero { grid-template-columns: 1fr; } .pt-adv-hero__stats { grid-template-columns: 1fr 1fr; } .pt-adv-stat { min-width: 0; } }
.pt-adv-body > :last-child, .pt-adv-ask__ask p:last-child { margin-bottom: 0; }
.pt-adv-ask__ask p { display: inline; margin: 0; }
.pt-adv-ask__ask p + p { display: block; margin-top: .5em; }
.pt-adv-body a, .pt-adv-ask__ask a { color: var(--violet); font-weight: 700; }
.pt-adv-todo__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.pt-adv-done { display: inline-flex; align-items: center; gap: 7px; font: inherit; font-size: .82rem; font-weight: 800; color: var(--grey-600); background: none; border: 0; padding: 4px 0; cursor: pointer; }
.pt-adv-done__box { width: 20px; height: 20px; border-radius: 6px; border: 2px solid var(--grey-400); display: grid; place-items: center; color: #fff; background: #fff; }
.pt-adv-done:hover .pt-adv-done__box { border-color: var(--violet); }
.pt-adv-done[aria-pressed="true"] { color: var(--violet); }
.pt-adv-done[aria-pressed="true"] .pt-adv-done__box { background: var(--violet); border-color: var(--violet); }
.pt-adv-todo.is-done { background: #fbf7fb; }
.pt-adv-todo.is-done h3 { color: var(--grey-600); }
.pt-adv-progress { border-top: 1px dashed var(--grey-200); padding-top: 8px; font-size: .8rem; color: var(--grey-600); }
.pt-adv-progress summary { cursor: pointer; font-weight: 800; display: flex; align-items: center; gap: 8px; }
.pt-adv-progress__bar { flex: 0 0 70px; height: 6px; border-radius: 99px; background: var(--grey-200); overflow: hidden; }
.pt-adv-progress__bar span { display: block; height: 100%; background: var(--violet); }
.pt-adv-progress p { margin: 6px 0 0; font-size: .8rem; line-height: 1.45; }
.pt-adv-addbox[open] { flex: 1 1 100%; text-align: right; }
.pt-adv-addbox[open] > .pt-adv-form { text-align: left; }
.pt-adv-addbox > summary { list-style: none; cursor: pointer; }
.pt-adv-addbox > summary::-webkit-details-marker, .pt-adv-edit > summary::-webkit-details-marker { display: none; }
.pt-adv-form { background: #fff; border: 1px solid var(--grey-200); border-top: 5px solid var(--violet); border-radius: 18px; padding: 18px; margin-top: 6px; }
.pt-adv-form__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.pt-adv-form textarea { resize: vertical; }
.pt-adv-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.pt-adv-form__foot .btn { margin-left: auto; }
.pt-adv-form__who { font-size: .8rem; color: var(--grey-600); }
.pt-adv-edit { border-top: 1px dashed var(--grey-200); padding-top: 8px; }
.pt-adv-edit > summary { list-style: none; cursor: pointer; font-size: .78rem; font-weight: 800; color: var(--violet); }
.pt-adv-edit .pt-adv-form { border-top-width: 1px; padding: 12px; }
.pt-adv-edit__del { margin-top: 8px; background: none; border: 0; padding: 0; font: inherit; font-size: .78rem; font-weight: 800; color: #9a2b1e; cursor: pointer; text-decoration: underline; }
.pt-adv-past { background: #fff; border: 1px dashed var(--grey-400); border-radius: 18px; padding: 12px 18px; margin: 0 0 1.6rem; font-size: .88rem; }
.pt-adv-past summary { cursor: pointer; font-weight: 800; }
.pt-adv-past small { font-weight: 600; color: var(--grey-600); }
.pt-adv-past ul { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.pt-adv-past li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.pt-adv-past li .pt-adv-edit__del { margin: 0; }
.pt-adv-ask[hidden], .pt-adv-none[hidden] { display: none; }
.pt-adv-feature { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--grey-200); border-left: 6px solid var(--yellow); border-radius: 18px; padding: 18px 22px; margin: 0 0 16px; text-decoration: none; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.pt-adv-feature:hover { border-color: var(--violet); box-shadow: 0 6px 18px rgba(30,20,40,.08); }
.pt-adv-feature__ic { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--ink); color: var(--yellow); }
.pt-adv-feature__txt { flex: 1 1 auto; display: grid; gap: 2px; }
.pt-adv-feature__kicker { font-family: var(--font-brush); color: var(--violet); font-size: 1.1rem; line-height: 1; }
.pt-adv-feature strong { font-size: 1.05rem; }
.pt-adv-feature__txt > span:last-child:not(.pt-adv-feature__kicker) { font-size: .85rem; color: var(--grey-600); }
.pt-adv-feature__go { flex: 0 0 auto; font-size: .8rem; font-weight: 800; color: var(--violet); }
@media (max-width: 560px) { .pt-adv-feature__go { display: none; } }
/* Advocacy cards never grow wider than their column (site buttons don't wrap by default) */
.pt-adv-ask, .pt-adv-todo { min-width: 0; }
.pt-adv-ask h3, .pt-adv-todo h3 { font-size: 1.08rem; font-weight: 800; line-height: 1.3; overflow-wrap: anywhere; }
.pt-adv-ask__btns .btn, .pt-adv-todo__btns .btn { white-space: normal; max-width: 100%; text-align: center; line-height: 1.25; }
.pt-adv-ask__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.pt-adv-posters__add { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; margin-top: 12px; }
.pt-adv-posters__add .pt-field { flex: 1 1 240px; }
/* Calendar: event flyer */
.pt-cal-event__flyer { margin: 1.1rem 0 0; }
.pt-cal-event__flyer img { display: block; width: 100%; height: auto; border-radius: 14px; border: 1px solid var(--grey-200); }
.pt-cal-flyer-field__now { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 6px; }
.pt-cal-flyer-field__now img { width: 160px; height: auto; border-radius: 8px; border: 1px solid var(--grey-200); }
/* Chapters list: chapter · lead · status · buttons. Every row uses the same columns (the list sets
   them and each row borrows them), so the lead, status and buttons line up down the page whatever a
   row's badges say. Text wraps instead of being cut off; below 1680px the buttons drop to their own
   line, below 1200px the status does too, and on phones the row stacks and the buttons fill the width. */
.pt-chapter-row .pt-tree-row__main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) max-content max-content; align-items: center; gap: 10px 16px; padding: 14px 18px; }
.pt-chapter-row .pt-tree-row__id, .pt-chapter-row .pt-chapter-row__lead { min-width: 0; }
.pt-chapter-row .pt-tree-row__id strong { overflow-wrap: anywhere; }
.pt-chapter-row .pt-tree-row__id > span { overflow-wrap: anywhere; }
.pt-chapter-row .pt-chapter-row__lead a:not(.pt-person-link), .pt-chapter-row .pt-chapter-row__lead > span { display: block; overflow-wrap: anywhere; }
.pt-chapter-row .pt-chapter-row__stats { flex-direction: column; align-items: flex-start; gap: 5px; }
.pt-chapter-row .pt-chapter-row__stats .pt-badge { white-space: nowrap; }
.pt-chapter-row .pt-chapter-row__actions { margin-left: 0; justify-content: flex-start; align-items: center; flex-wrap: nowrap; }
.pt-chapter-row .pt-chapter-row__actions .btn { white-space: nowrap; }
.pt-chapter-row .pt-chapter-row__actions .pt-pw-row, .pt-chapter-row .pt-chapter-row__actions form { margin: 0; }
.pt-chapter-row .pt-chapter-row__actions .pt-pw-mini:empty { display: none; }
@media (max-width: 1679px) {
	.pt-chapter-row .pt-tree-row__main { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) max-content; }
	.pt-chapter-row .pt-chapter-row__actions { grid-column: 1 / -1; flex-wrap: wrap; }
}
@media (max-width: 1199px) {
	.pt-chapter-row .pt-tree-row__main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 14px; }
	.pt-chapter-row .pt-chapter-row__stats { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 640px) {
	.pt-chapter-row .pt-tree-row__main { grid-template-columns: 1fr; padding: 12px 14px; }
	.pt-chapter-row .pt-chapter-row__actions .btn, .pt-chapter-row .pt-chapter-row__actions .pt-pw-row { flex: 1 1 auto; }
	.pt-chapter-row .pt-chapter-row__actions .pt-pw-row .btn { width: 100%; }
	.pt-chapter-row .pt-chapter-row__actions .btn { justify-content: center; text-align: center; }
}
@supports (grid-template-columns: subgrid) and selector(:has(> a)) {
	@media (min-width: 1200px) {
		.pt-tree-list:has(> .pt-chapter-row) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) max-content; column-gap: 16px; }
		.pt-tree-list:has(> .pt-chapter-row) > * { grid-column: 1 / -1; }
		.pt-tree-list:has(> .pt-chapter-row) > .pt-chapter-row { display: grid; grid-template-columns: subgrid; }
		.pt-tree-list:has(> .pt-chapter-row) > .pt-chapter-row.is-hidden { display: none; }
		.pt-tree-list:has(> .pt-chapter-row) > .pt-chapter-row > .pt-tree-row__main { grid-column: 1 / -1; grid-template-columns: subgrid; }
	}
	@media (min-width: 1680px) {
		.pt-tree-list:has(> .pt-chapter-row) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) max-content max-content; }
	}
}
/* ---------- Chapter Applications (site admins) ---------- */
.pt-capp-hero h1 { overflow-wrap: anywhere; }
.pt-capp-chip { display: inline-block; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; border-radius: 999px; padding: 4px 10px; white-space: nowrap; }
.pt-capp-chip--violet { background: rgba(179,9,173,.12); color: var(--violet); }
.pt-capp-chip--blue { background: rgba(17,114,162,.12); color: var(--blue); }
.pt-capp-chip--green { background: #e6f5ea; color: #1c6b34; }
.pt-capp-chip--grey { background: var(--grey-100); color: var(--grey-600); }
.pt-capp-stat-status { display: grid; gap: 8px; justify-items: center; }
.pt-capp-stat-status .pt-capp-chip { font-size: .86rem; padding: 6px 14px; background: var(--yellow); color: var(--ink); }
.pt-capp-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
.pt-capp-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.pt-capp-tabs a { border: 1px solid var(--grey-200); background: #fff; color: var(--grey-800); font-size: .84rem; font-weight: 800; border-radius: 999px; padding: 8px 14px; text-decoration: none; }
.pt-capp-tabs a small { font-weight: 700; color: var(--grey-500); margin-left: 4px; }
.pt-capp-tabs a[aria-current="page"] { background: var(--violet); border-color: var(--violet); color: #fff; }
.pt-capp-tabs a[aria-current="page"] small { color: rgba(255,255,255,.8); }
.pt-capp-search { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--grey-200); border-radius: 999px; padding: 4px 6px 4px 14px; flex: 0 1 340px; color: var(--grey-500); }
.pt-capp-search input { border: 0; outline: 0; font: inherit; font-size: .88rem; padding: 8px 4px; width: 100%; background: transparent; }
.pt-capp-list { display: grid; gap: 10px; }
.pt-capp-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1.6fr) 170px 150px 20px; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--grey-200); border-left: 5px solid var(--grey-200); border-radius: 16px; padding: 14px 18px; text-decoration: none; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.pt-capp-row:hover { border-color: var(--violet); box-shadow: 0 6px 18px rgba(30,20,40,.07); }
.pt-capp-row.is-new { border-left-color: var(--violet); }
.pt-capp-row__pin { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--ink); color: var(--yellow); }
.pt-capp-row__where { display: grid; min-width: 0; }
.pt-capp-row__where strong { font-size: 1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-capp-row__where span { font-size: .84rem; color: var(--grey-600); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-capp-row__why { font-size: .84rem; color: var(--grey-600); line-height: 1.4; min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pt-capp-row__facts { font-size: .78rem; font-weight: 700; color: var(--grey-800); }
.pt-capp-row__status { display: grid; gap: 4px; justify-items: start; }
.pt-capp-row__status small { font-size: .74rem; color: var(--grey-500); }
.pt-capp-row__go { color: var(--violet); font-weight: 800; }
.pt-capp-detail { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.pt-capp-detail__main, .pt-capp-detail__side { display: grid; gap: 14px; min-width: 0; }
.pt-capp-sec { margin: 0; }
.pt-capp-sec > h2 { font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: 1.2rem; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }
.pt-capp-sec > h2::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--yellow); transform: rotate(45deg); }
.pt-capp-dl { display: grid; grid-template-columns: minmax(140px, 220px) minmax(0, 1fr); gap: 10px 18px; margin: 0; }
.pt-capp-dl dt { font-size: .78rem; font-weight: 800; color: var(--grey-600); }
.pt-capp-dl dd { margin: 0; font-size: .92rem; line-height: 1.55; color: var(--ink); overflow-wrap: anywhere; }
.pt-capp-dl.is-long { grid-template-columns: 1fr; gap: 4px; }
.pt-capp-dl.is-long dd { margin-bottom: 12px; background: var(--grey-100); border-radius: 12px; padding: 10px 14px; }
.pt-capp-dl a { color: var(--violet); font-weight: 700; }
.pt-capp-status { display: grid; gap: 8px; }
.pt-capp-radio { display: flex; align-items: center; gap: 8px; border: 1px solid var(--grey-200); border-radius: 12px; padding: 9px 12px; font-size: .88rem; font-weight: 700; cursor: pointer; }
.pt-capp-radio input { accent-color: var(--violet); }
.pt-capp-radio:has(input:checked) { border-color: var(--violet); background: rgba(179,9,173,.06); }
.pt-capp-status .btn { justify-self: start; margin-top: 4px; }
.pt-capp-notes { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.pt-capp-notes li { background: var(--grey-100); border-radius: 12px; padding: 10px 12px; }
.pt-capp-notes li.is-status { background: transparent; border: 1px dashed var(--grey-200); }
.pt-capp-notes p { margin: 0 0 4px; font-size: .88rem; line-height: 1.45; }
.pt-capp-notes small { font-size: .74rem; color: var(--grey-500); }
.pt-capp-remove button { background: none; border: 0; padding: 0; font: inherit; font-size: .8rem; font-weight: 700; color: #9a2b1e; text-decoration: underline; cursor: pointer; }
@media (max-width: 1100px) {
	.pt-capp-row { grid-template-columns: 40px minmax(0, 1fr) 150px 20px; }
	.pt-capp-row__why, .pt-capp-row__facts { display: none; }
	.pt-capp-detail { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.pt-capp-row { grid-template-columns: 40px minmax(0, 1fr); }
	.pt-capp-row__status { grid-column: 2; }
	.pt-capp-row__go { display: none; }
	.pt-capp-dl { grid-template-columns: 1fr; gap: 2px; }
	.pt-capp-dl dd { margin-bottom: 10px; }
}
/* ---------- YPR Community (branded department + guide pages + document viewer) ---------- */
.pt-yc-start { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 1.6rem; counter-reset: ycstep; }
.pt-yc-step { position: relative; background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 18px 18px 16px 70px; text-decoration: none; color: var(--ink); min-height: 96px; display: grid; align-content: center; gap: 4px; transition: border-color .15s, box-shadow .15s; }
.pt-yc-step:hover { border-color: var(--violet); box-shadow: 0 6px 18px rgba(30,20,40,.07); }
.pt-yc-step::before { counter-increment: ycstep; content: counter(ycstep); position: absolute; left: 18px; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; border-radius: 50%; background: var(--violet); color: #fff; font-family: var(--font-display); font-size: 1.25rem; display: grid; place-items: center; }
.pt-yc-step strong { font-size: .98rem; }
.pt-yc-step span { font-size: .82rem; color: var(--grey-600); }
.pt-yc-guide { display: flex; flex-direction: column; gap: 10px; background: #fff; border: 1px solid var(--grey-200); border-top: 5px solid var(--c, var(--violet)); border-radius: 18px; padding: 18px; text-decoration: none; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.pt-yc-guide:hover { box-shadow: 0 8px 22px rgba(30,20,40,.08); border-color: var(--c, var(--violet)); }
.pt-yc-guide__top { display: flex; align-items: center; gap: 12px; }
.pt-yc-guide__ic { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: color-mix(in srgb, var(--c, var(--violet)) 12%, #fff); color: var(--c, var(--violet)); }
.pt-yc-guide h3 { margin: 0; font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: 1.25rem; }
.pt-yc-guide__count { margin-left: auto; font-size: .72rem; font-weight: 800; color: var(--grey-600); background: var(--grey-100); border-radius: 999px; padding: 3px 9px; }
.pt-yc-guide ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pt-yc-guide li { font-size: .86rem; color: var(--grey-800); display: flex; gap: 8px; align-items: baseline; }
.pt-yc-guide li::before { content: ""; flex: 0 0 6px; height: 6px; border-radius: 2px; background: var(--c, var(--violet)); transform: rotate(45deg) translateY(-2px); }
.pt-yc-guide__go { margin-top: auto; font-size: .8rem; font-weight: 800; color: var(--c, var(--violet)); }
.pt-yc-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.pt-yc-doc { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 16px 18px; text-decoration: none; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.pt-yc-doc:hover { border-color: var(--violet); box-shadow: 0 6px 18px rgba(30,20,40,.07); }
.pt-yc-doc__thumb { flex: 0 0 auto; width: 52px; height: 64px; border-radius: 8px; background: var(--grey-100); border: 1px solid var(--grey-200); display: grid; place-items: center; position: relative; }
.pt-yc-doc__thumb b { position: absolute; bottom: -6px; left: 50%; transform: translateX(-50%); font-size: .6rem; font-weight: 800; letter-spacing: .08em; background: #c62828; color: #fff; border-radius: 4px; padding: 2px 5px; }
.pt-yc-doc__thumb b.is-doc { background: var(--blue); }
.pt-yc-doc__txt { display: grid; gap: 2px; flex: 1; }
.pt-yc-doc__txt strong { font-size: .96rem; }
.pt-yc-doc__txt span { font-size: .8rem; color: var(--grey-600); }
.pt-yc-doc__go { font-size: .78rem; font-weight: 800; color: var(--violet); white-space: nowrap; }

/* Guide sub-pages */
.pt-yc-hero--sub h1 { font-size: clamp(1.8rem, 3.6vw, 2.6rem); }
.pt-yc-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 18px; align-items: start; }
.pt-yc-side { position: sticky; top: 90px; display: grid; gap: 4px; background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 12px; }
.pt-yc-side small { font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--grey-500); padding: 6px 10px 4px; }
.pt-yc-side a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px; border-radius: 10px; font-size: .9rem; font-weight: 700; color: var(--grey-800); text-decoration: none; }
.pt-yc-side a span { font-size: .72rem; color: var(--grey-500); }
.pt-yc-side a:hover { background: var(--grey-100); }
.pt-yc-side a[aria-current="page"] { background: var(--violet); color: #fff; }
.pt-yc-side a[aria-current="page"] span { color: rgba(255,255,255,.8); }
.pt-yc-side hr { border: 0; border-top: 1px solid var(--grey-200); margin: 6px 0; }
.pt-yc-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.pt-yc-jump a { font-size: .8rem; font-weight: 800; color: var(--blue); background: rgba(17,114,162,.08); border-radius: 999px; padding: 6px 12px; text-decoration: none; }
.pt-yc-howto { background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 20px 22px; margin: 0 0 14px; scroll-margin-top: 90px; }
.pt-yc-howto h2 { margin: 0 0 14px; font-size: 1.12rem; display: flex; align-items: center; gap: 10px; }
.pt-yc-howto h2 i { font-style: normal; font-family: var(--font-display); font-weight: 400; font-size: .95rem; color: #fff; background: var(--ink); border-radius: 8px; padding: 2px 9px; }
.pt-yc-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; counter-reset: ycs; }
.pt-yc-steps li { counter-increment: ycs; position: relative; padding: 9px 12px 9px 48px; border-radius: 12px; background: var(--grey-100); font-size: .92rem; line-height: 1.45; }
.pt-yc-steps li::before { content: counter(ycs); position: absolute; left: 12px; top: 8px; width: 24px; height: 24px; border-radius: 50%; background: var(--violet); color: #fff; font-size: .78rem; font-weight: 800; display: grid; place-items: center; }
.pt-yc-steps li.is-done { background: #eef8f0; color: #1c6b34; font-weight: 800; }
.pt-yc-steps li.is-done::before { content: "\2713"; background: #1c6b34; }
.pt-yc-pager { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; }
.pt-yc-pager a { flex: 1; background: #fff; border: 1px solid var(--grey-200); border-radius: 14px; padding: 12px 16px; text-decoration: none; color: var(--ink); font-weight: 800; font-size: .92rem; }
.pt-yc-pager a small { display: block; font-size: .72rem; color: var(--grey-500); letter-spacing: .08em; text-transform: uppercase; }
.pt-yc-pager a:last-child { text-align: right; }

/* Document viewer */
.pt-yc-viewer { background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; overflow: hidden; }
.pt-yc-viewer__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--grey-200); }
.pt-yc-viewer__bar strong { font-size: .95rem; }
.pt-yc-viewer__bar span { font-size: .8rem; color: var(--grey-600); }
.pt-yc-viewer__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.pt-yc-viewer iframe { display: block; width: 100%; height: min(78vh, 900px); border: 0; background: var(--grey-100); }
.pt-yc-note { font-size: .82rem; color: var(--grey-600); margin: 10px 2px 0; }
@media (max-width: 900px) { .pt-yc-start { grid-template-columns: 1fr; } .pt-yc-layout { grid-template-columns: 1fr; } .pt-yc-side { position: static; } }
.pt-yc-guide__count { white-space: nowrap; }
.pt-yc-guides { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pt-yc-docs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pt-yc-doc__thumb b.is-guide { background: var(--ink); color: var(--yellow); }
@media (max-width: 1180px) { .pt-yc-guides { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pt-yc-docs { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .pt-yc-guides { grid-template-columns: 1fr; } }
.pt-yc-video { display: block; width: 100%; max-height: 78vh; background: #0c0c0e; }
.pt-yc-doc__thumb b.is-video { background: var(--violet); }
.pt-yc-guide__top h3 { flex: 1; }
.pt-yc-hero--sub .pt-adv-hero__stats { align-self: center; }
/* Chapter Leads mock additions */
.pt-cl-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pt-cl-group { background: #fff; border: 1px solid var(--grey-200); border-top: 5px solid var(--c, var(--violet)); border-radius: 18px; padding: 18px; }
.pt-cl-group > h3 { margin: 0 0 4px; font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: 1.3rem; display: flex; align-items: center; gap: 10px; }
.pt-cl-group > h3 .pt-yc-guide__ic { width: 36px; height: 36px; background: color-mix(in srgb, var(--c) 12%, #fff); color: var(--c); }
.pt-cl-group > p { margin: 0 0 12px; font-size: .85rem; color: var(--grey-600); }
.pt-cl-items { display: grid; gap: 8px; }
.pt-cl-item { display: flex; align-items: center; gap: 12px; background: var(--grey-100); border: 1px solid transparent; border-radius: 12px; padding: 10px 12px; text-decoration: none; color: var(--ink); min-height: 54px; }
.pt-cl-item:hover { background: #fff; border-color: var(--c, var(--violet)); }
.pt-cl-item__txt { flex: 1; display: grid; gap: 1px; min-width: 0; }
.pt-cl-item__txt strong { font-size: .92rem; }
.pt-cl-item__txt span { font-size: .78rem; color: var(--grey-600); }
.pt-cl-kind { flex: 0 0 auto; font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; border-radius: 6px; padding: 3px 7px; background: #fff; color: var(--grey-600); border: 1px solid var(--grey-200); }
.pt-cl-kind--page { background: var(--ink); color: var(--yellow); border-color: var(--ink); }
.pt-cl-kind--pdf { background: #c62828; color: #fff; border-color: #c62828; }
.pt-cl-kind--video { background: var(--violet); color: #fff; border-color: var(--violet); }
.pt-cl-kind--form { background: var(--blue); color: #fff; border-color: var(--blue); }
.pt-cl-kind--drive { background: #fff; color: #1e8e3e; border-color: #b7dfc3; }
.pt-cl-kind--tool { background: #fff7e0; color: #7a5a00; border-color: var(--yellow); }
.pt-cl-timeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 1.6rem; }
.pt-cl-phase { position: relative; background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 16px; text-decoration: none; color: var(--ink); display: grid; gap: 4px; }
.pt-cl-phase:hover { border-color: var(--violet); }
.pt-cl-phase small { font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--violet); }
.pt-cl-phase strong { font-size: .98rem; }
.pt-cl-phase span { font-size: .8rem; color: var(--grey-600); }
.pt-cl-weeks { display: grid; gap: 14px; }
.pt-cl-week { background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 18px 20px; display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; }
.pt-cl-week__when { display: grid; align-content: start; gap: 4px; }
.pt-cl-week__when b { font-family: var(--font-display); font-weight: 400; font-size: 1.5rem; text-transform: uppercase; line-height: 1; }
.pt-cl-week__when span { font-size: .75rem; font-weight: 800; color: var(--violet); text-transform: uppercase; letter-spacing: .08em; }
.pt-cl-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pt-cl-checks li { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; line-height: 1.45; }
.pt-cl-checks li::before { content: ""; flex: 0 0 18px; height: 18px; border-radius: 5px; border: 2px solid var(--grey-400); margin-top: 1px; }
.pt-cl-checks li a { color: var(--violet); font-weight: 700; }
.pt-cl-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.pt-cl-tags span { font-size: .7rem; font-weight: 800; background: var(--grey-100); color: var(--grey-600); border-radius: 999px; padding: 3px 8px; }
.pt-cl-flag { display: flex; gap: 12px; align-items: flex-start; background: #fff7e0; border: 1px solid var(--yellow); border-radius: 14px; padding: 12px 14px; font-size: .86rem; color: #5c4400; margin: 0 0 14px; }
.pt-cl-flag b { color: #3d2d00; }
@media (max-width: 1100px) { .pt-cl-groups { grid-template-columns: 1fr; } .pt-cl-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Branded department pages (inc/portal-branded-depts.php) */
.pt-bd-doc { min-width: 0; }
.pt-bd-intro { margin: 0 0 14px; }
.pt-bd-intro .pt-cl-items { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.pt-cl-group > h3 + .pt-cl-items, .pt-cl-group > h3 + p + .pt-cl-items { margin-top: 10px; }
.pt-cl-group > ul { margin: 8px 0 0; padding-left: 18px; font-size: .9rem; }
.pt-bd-prose { line-height: 1.6; }
.pt-bd-prose h2 { font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: 1.45rem; margin: 1.4rem 0 .6rem; }
.pt-bd-prose h2:first-child { margin-top: 0; }
.pt-bd-prose h3 { font-size: 1.05rem; margin: 1.1rem 0 .4rem; }
.pt-bd-prose img, .pt-bd-prose iframe { max-width: 100%; border-radius: 12px; }
.pt-bd-prose details { background: var(--grey-100); border: 1px solid var(--grey-200); border-radius: 14px; margin: 0 0 10px; overflow: hidden; }
.pt-bd-prose details[open] { background: #fff; border-color: var(--violet); }
.pt-bd-prose summary { cursor: pointer; list-style: none; padding: 13px 18px; font-weight: 800; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pt-bd-prose summary::-webkit-details-marker { display: none; }
.pt-bd-prose summary::after { content: "+"; flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%; background: #fff; border: 1px solid var(--grey-200); display: grid; place-items: center; font-weight: 800; color: var(--violet); }
.pt-bd-prose details[open] summary::after { content: "\2013"; background: var(--violet); border-color: var(--violet); color: #fff; }
.pt-bd-prose details > :not(summary) { margin-left: 18px; margin-right: 18px; }
.pt-bd-prose details > :last-child { margin-bottom: 16px; }
.pt-bd-prose .pt-cl-kind, .pt-cl-week .pt-cl-kind { margin-left: 4px; vertical-align: 1px; }
.pt-cl-week__list > ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pt-cl-week__list > ul > li { position: relative; padding-left: 28px; font-size: .92rem; line-height: 1.45; }
.pt-cl-week__list > ul > li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 5px; border: 2px solid var(--grey-400); }
.pt-cl-week__list ul ul { list-style: disc; margin: 4px 0 0; padding-left: 18px; display: block; }
.pt-cl-week__list ul ul li { margin: 2px 0; }
.pt-cl-week__list a { color: var(--violet); font-weight: 700; }
.pt-cl-week { scroll-margin-top: 90px; }
.pt-bd-image { display: block; max-width: 100%; margin: 0 auto; }
@media (max-width: 640px) { .pt-cl-week { grid-template-columns: 1fr; gap: 8px; } }
.pt-bd-intro .pt-cl-item { background: #fff; border-color: var(--grey-200); }
.pt-bd-intro .pt-cl-item:hover { border-color: var(--violet); }
/* Pathwell → RCI tab */
.pt-rci-domains { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pt-rci-domains li { display: grid; gap: 2px; background: var(--grey-100); border-radius: 12px; padding: 10px 12px; }
.pt-rci-domains b { font-size: .92rem; color: var(--ink); }
.pt-rci-domains span { font-size: .84rem; color: var(--grey-600); }
.pt-rci-ranges { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pt-rci-ranges span { display: grid; gap: 1px; border-radius: 12px; padding: 10px 12px; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.pt-rci-ranges b { font-family: var(--font-display); font-weight: 400; font-size: 1.35rem; letter-spacing: 0; }
.pt-rci-ranges small { font-size: .72rem; font-weight: 600; text-transform: none; letter-spacing: 0; opacity: .85; }
.pt-rci-ranges .is-build { background: #fdeceb; color: #9a2b1e; }
.pt-rci-ranges .is-strengthen { background: #fff4d6; color: #7a5a00; }
.pt-rci-ranges .is-reinforce { background: #e6f5ea; color: #1c6b34; }
.pt-rci-guide { margin-top: 1.2rem; }
.pt-rci-pdf { display: block; width: 100%; height: min(78vh, 900px); border: 1px solid var(--grey-200); border-radius: 12px; background: var(--grey-100); }
@media (max-width: 640px) { .pt-rci-ranges { grid-template-columns: 1fr; } }
/* Branded pages: embedded videos and their Drive fallback */
.pt-bd-prose iframe { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; border: 1px solid var(--grey-200); background: var(--grey-100); }
.pt-bd-embed-alt { margin: 6px 0 12px; font-size: .8rem; }
.pt-bd-embed-alt a { color: var(--violet); font-weight: 700; }
/* Branded template pages: copy bar */
.pt-bd-copybar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; background: #fff7e0; border: 1px solid var(--yellow); border-radius: 14px; padding: 10px 14px; margin: 0 0 12px; font-size: .86rem; color: #5c4400; }
/* ---------- Page Requests ---------- */
.pt-req-details { margin-top: 14px; background: var(--grey-100); border-radius: 12px; padding: 12px 14px; font-size: .94rem; line-height: 1.6; overflow-wrap: anywhere; }
.pt-req-h3 { font-size: .95rem; margin: 16px 0 8px; }
.pt-req-files { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pt-req-files li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pt-req-files a { display: inline-flex; align-items: center; gap: 6px; color: var(--violet); font-weight: 700; overflow-wrap: anywhere; }
.pt-req-files small { color: var(--grey-500); font-size: .76rem; }
.pt-req-form .pt-field small { display: block; margin-top: 4px; }
/* ---------- Team Updates (redesign) ---------- */
.tu-compose { display: block; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 14px 16px; margin: 0 0 1.4rem; }
.tu-av { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: .95rem; color: #fff; background: var(--violet); }
.tu-av--blue { background: var(--blue); } .tu-av--ink { background: var(--ink); color: var(--yellow); }
.tu-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; }
.tu-feed { display: grid; gap: 16px; min-width: 0; }
.tu-feature { display: grid; grid-template-columns: 1fr; background: #fff; border: 1px solid var(--grey-200); border-radius: 22px; overflow: hidden; box-shadow: 0 10px 30px rgba(30,20,40,.06); }
.tu-feature__img { background: var(--ink); aspect-ratio: 16 / 9; }
.tu-feature__body { padding: 22px 26px 24px; display: grid; align-content: start; gap: 10px; }
.tu-chip { display: inline-flex; align-items: center; gap: 6px; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; border-radius: 999px; padding: 4px 10px; background: rgba(179,9,173,.1); color: var(--violet); }
.tu-chip--latest { background: var(--yellow); color: var(--ink); }
.tu-chip--everyone { background: rgba(17,114,162,.1); color: var(--blue); }
.tu-feature h2 { margin: 0; font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.05; color: var(--ink); }
.tu-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: .82rem; color: var(--grey-600); }
.tu-meta b { color: var(--ink); }
.tu-body p { margin: 0 0 .7em; font-size: .95rem; line-height: 1.6; color: var(--grey-800); }
.tu-body p:last-child { margin-bottom: 0; }
.tu-month { display: flex; align-items: center; gap: 12px; margin: 8px 0 -4px; font-family: var(--font-display); text-transform: uppercase; font-size: 1.15rem; color: var(--ink); }
.tu-month::after { content: ""; flex: 1; height: 2px; background: linear-gradient(90deg, var(--violet), transparent); border-radius: 2px; }
.tu-card { background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 18px 22px; display: grid; gap: 12px; }
.tu-card__head { display: flex; align-items: center; gap: 12px; }
.tu-card__who { flex: 1; display: grid; line-height: 1.25; }
.tu-card__who b { font-size: .95rem; }
.tu-card__who span { font-size: .78rem; color: var(--grey-600); }
.tu-card h3 { margin: 0; font-size: 1.3rem; font-weight: 800; line-height: 1.25; color: var(--ink); }
.tu-card__foot { display: flex; justify-content: space-between; align-items: center; border-top: 1px dashed var(--grey-200); padding-top: 10px; font-size: .82rem; color: var(--grey-600); }
.tu-card__foot a { color: var(--violet); font-weight: 800; text-decoration: none; }
.tu-more { color: var(--violet); font-weight: 800; font-size: .86rem; text-decoration: none; }
.tu-rail { display: grid; gap: 14px; position: sticky; top: 90px; }
.tu-excellent { background: linear-gradient(160deg, #1b1320, #0c0c0e); color: #fff; border-radius: 18px; padding: 18px; }
.tu-excellent h3 { margin: 4px 0 2px; font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: 1.3rem; color: #fff; }
.tu-excellent small { color: var(--yellow); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; font-size: .68rem; }
.tu-excellent p { margin: 6px 0 12px; font-size: .82rem; color: #cfcbd6; }
.tu-excellent__big { font-family: var(--font-display); font-size: 2.6rem; color: var(--yellow); line-height: 1; }
.tu-excellent ul { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 6px; }
.tu-excellent li { display: flex; justify-content: space-between; background: rgba(255,255,255,.07); border-radius: 10px; padding: 7px 10px; font-size: .84rem; }
.tu-excellent li b { color: var(--yellow); }
.tu-excellent .btn { width: 100%; justify-content: center; }
.tu-side { background: #fff; border: 1px solid var(--grey-200); border-radius: 18px; padding: 16px; }
.tu-side h4 { margin: 0 0 8px; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--grey-500); }
.tu-side a { display: flex; justify-content: space-between; padding: 8px 10px; border-radius: 10px; font-size: .9rem; font-weight: 700; color: var(--ink); text-decoration: none; }
.tu-side a:hover { background: var(--grey-100); }
.tu-side a span { color: var(--grey-500); font-size: .78rem; }
.tu-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 2px; }
.tu-filters a { border: 1px solid var(--grey-200); background: #fff; color: var(--grey-800); font-size: .84rem; font-weight: 800; border-radius: 999px; padding: 7px 14px; text-decoration: none; }
.tu-filters a[aria-current] { background: var(--violet); border-color: var(--violet); color: #fff; }
.tu-compose > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 14px; }
.tu-compose > summary::-webkit-details-marker { display: none; }
.tu-compose__pill { flex: 1; background: var(--grey-100); border: 1px solid var(--grey-200); border-radius: 999px; padding: 12px 18px; color: var(--grey-500); font-size: .95rem; }
.tu-compose[open] { border-color: var(--violet); box-shadow: 0 8px 24px rgba(179,9,173,.08); }
.tu-compose[open] .tu-compose__go { display: none; }
.tu-compose__form { margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--grey-200); }
.tu-compose__actions { display: flex; justify-content: flex-end; }
.tu-feature__img { display: block; }
.tu-feature__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tu-feature .pt-update__photos, .tu-card .pt-update__photos { margin: 0; }
.tu-av--sm { width: 28px; height: 28px; font-size: .7rem; }
.tu-chip--coord { background: rgba(236,168,3,.18); color: #7a5a00; }
.tu-card.is-new, .tu-feature.is-new { border-color: var(--yellow); box-shadow: 0 0 0 3px rgba(236,168,3,.18); }
.tu-card.is-coord { border-left: 5px solid var(--yellow); }
.tu-card__inner { display: grid; gap: 12px; }
.tu-feature__body .tu-card__foot { border-top: 0; padding-top: 2px; }
.tu-sign { display: inline-flex; align-items: center; gap: 8px; }
.tu-sign b { color: var(--ink); }
.tu-rest > summary { list-style: none; cursor: pointer; color: var(--violet); font-weight: 800; font-size: .88rem; margin: 2px 0 6px; }
.tu-rest > summary::-webkit-details-marker { display: none; }
.tu-rest > summary::after { content: " \2193"; }
.tu-rest[open] > summary::after { content: " \2191"; }
.tu-rest[open] > summary { margin-bottom: 10px; }
.tu-filters small { font-weight: 700; opacity: .7; margin-left: 3px; }
.tu-card__foot .pt-update__remove { margin: 0; }
.tu-excellent__all > summary { list-style: none; width: 100%; justify-content: center; cursor: pointer; }
.tu-excellent__all > summary::-webkit-details-marker { display: none; }
.tu-excellent__all[open] > summary { margin-bottom: 12px; }
.tu-excellent__list { display: grid; gap: 10px; max-height: 420px; overflow: auto; padding-right: 4px; }
.tu-excellent__list h4 { margin: 0 0 4px; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--yellow); }
.tu-excellent__list ul { display: block; margin: 0; }
.tu-excellent__list li { display: block; background: none; padding: 2px 0; font-size: .82rem; color: #e9e6ee; }
.tu-month, .tu-card, .tu-feature, #excellent { scroll-margin-top: 90px; }
@media (max-width: 1100px) { .tu-layout { grid-template-columns: 1fr; } .tu-rail { position: static; } }
@media (max-width: 640px) { .tu-compose__go { display: none; } .tu-card { padding: 16px; } .tu-feature__body { padding: 18px; } }

/* People: possible-duplicate badge + banner (inc/portal/screen-people.php) */
.pt-badge--dup { background: rgba(236,168,3,.18); color: var(--yellow-dk); }
.pt-alert--dup { display: flex; gap: 10px; align-items: flex-start; background: #fff8e6; border: 1px solid #f2d58a; color: var(--ink); }
.pt-alert--dup > div { display: grid; gap: 6px; }
.pt-alert--dup .pt-action__btns { margin-top: 4px; }
.pt-alert--dup form { margin: 0; }

/* ── Pathwell › Chapter guide: topic cards + "How do I…?" search (2026-10-19) ── */
.pt-pwg { scroll-margin-top: 90px; }
.pt-pwg-ask { display: flex; align-items: center; gap: 10px; background: #fff; border: 2px solid var(--grey-200); border-radius: 14px; padding: 0 14px; margin-bottom: 14px; color: var(--grey-600); }
.pt-pwg-ask:focus-within { border-color: var(--violet); }
.pt-pwg-ask input { flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-size: 1rem; padding: 13px 0; color: var(--ink, #0c0c0e); min-width: 0; }
.pt-pwg-results { display: grid; gap: 8px; margin-bottom: 16px; }
.pt-pwg-tag { display: block; font-size: .66rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--violet); }
.pt-pwg-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.pt-pwg-card { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; background: #fff; border: 1px solid var(--grey-200); border-radius: 16px; padding: 16px; color: inherit; text-decoration: none; transition: transform .12s, box-shadow .12s; }
.pt-pwg-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(58, 3, 56, .10); }
.pt-pwg-card b { font-size: 1rem; }
.pt-pwg-card__ic { width: 42px; height: 42px; border-radius: 12px; background: #f6e6f5; color: var(--violet-dk, #7a0676); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 8px; flex-shrink: 0; }
.pt-pwg-card__s { font-size: .82rem; color: var(--grey-600); }
.pt-pwg-card__n { font-size: .72rem; font-weight: 700; color: var(--violet-dk, #7a0676); margin-top: 6px; }
.pt-pwg-new { display: inline-block; margin-left: 6px; vertical-align: 2px; background: var(--yellow, #ECA803); color: var(--ink, #0c0c0e); border-radius: 999px; padding: 2px 7px; font-size: .6rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pt-pwg-video { margin-top: 16px; }
.pt-pwg.is-js .pt-pwg-topic { display: none; }
.pt-pwg.is-js .pt-pwg-topic.is-on { display: block; }
.pt-pwg:not(.is-js) .pt-pwg-topic { margin-top: 22px; }
.pt-pwg-back { display: inline-block; font-weight: 700; font-size: .9rem; color: var(--violet); text-decoration: none; margin-bottom: 10px; }
.pt-pwg:not(.is-js) .pt-pwg-back { display: none; }
.pt-pwg-thead { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.pt-pwg-thead .pt-pwg-card__ic { margin: 0; width: 46px; height: 46px; }
.pt-pwg-thead h2 { margin: 0; }
.pt-pwg-thead p { margin: 2px 0 0; }
.pt-pwg-step { background: #fff; border: 1px solid var(--grey-200); border-radius: 14px; margin-bottom: 8px; overflow: hidden; }
.pt-pwg-step summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 14px 16px; }
.pt-pwg-step summary::-webkit-details-marker { display: none; }
.pt-pwg-step summary small { display: block; font-size: .8rem; color: var(--grey-600); font-weight: 500; }
.pt-pwg-step summary .pt-sect__chev { margin-left: auto; color: var(--violet); }
.pt-pwg-step[open] summary .pt-sect__chev { transform: rotate(45deg); }
.pt-pwg-step__n { width: 26px; height: 26px; border-radius: 50%; background: var(--plum, #3a0338); color: #fff; font-size: .78rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pt-pwg-step__body { padding: 0 16px 16px 54px; font-size: .92rem; }
.pt-pwg-step__body ol { margin: 0; padding-left: 18px; } .pt-pwg-step__body li { margin-bottom: 5px; }
.pt-pwg-step__body .pt-narm-tip { margin-top: 10px; }
.pt-pwg-results .pt-pwg-step__body { padding-left: 16px; }
.pt-pwg-b { display: inline-block; background: #e6f2f2; color: #006B6F; border-radius: 6px; padding: 0 6px; font-weight: 700; font-size: .86em; white-space: nowrap; }
.pt-pwg-next { display: flex; justify-content: space-between; gap: 10px; margin-top: 16px; }
.pt-pwg-next a { border: 1px solid var(--grey-200); background: #fff; border-radius: 12px; padding: 10px 14px; font-weight: 700; font-size: .88rem; color: inherit; text-decoration: none; }
.pt-pwg:not(.is-js) .pt-pwg-next { display: none; }
.pt-pwg-legend { font-size: .78rem; color: var(--grey-600); margin-top: 16px; }
@media (max-width: 640px) {
	.pt-pwg-cards { grid-template-columns: 1fr 1fr; gap: 10px; }
	.pt-pwg-card { padding: 12px; }
	.pt-pwg-card__ic { width: 34px; height: 34px; margin-bottom: 6px; }
	.pt-pwg-card b { font-size: .92rem; }
	.pt-pwg-card__s { font-size: .76rem; }
	.pt-pwg-card__n { display: none; }
	.pt-pwg-step__body { padding-left: 16px; }
}

/* Activity: Your leads table + per-person timeline */
.pt-leads { margin-bottom: 16px; }
.pt-leads__sum { font-size: .84rem; color: var(--grey-600); }
.pt-leads__scroll { overflow-x: auto; margin: 0 -6px; padding: 0 6px; }
.pt-leads__table { min-width: 860px; }
.pt-leads__table td { vertical-align: top; }
.pt-leads__table tr.is-flagged td { background: #fffdf5; }
.pt-leads__table tr.is-current td { background: #f7eef8; }
.pt-leads__name { font-weight: 800; color: var(--ink); text-decoration: none; }
.pt-leads__name:hover { color: var(--violet); }
.pt-leads__sub { font-size: .8rem; color: var(--violet); text-decoration: none; }
.pt-leads__sub:hover { text-decoration: underline; }
.pt-leads__sub.is-zero { color: var(--grey-500); }
.pt-leads__num { font-family: var(--font-display); font-size: 1.15rem; color: var(--ink); text-decoration: none; }
.pt-leads__num:hover { color: var(--violet); }
.pt-leads__num.is-zero { color: var(--grey-400, #b9b6c0); }
.pt-leads__num.is-warn { color: var(--yellow-dk); }
.pt-leads__num.is-bad, .pt-leads__table td.is-bad { color: #c0392b; font-weight: 700; }
.pt-leads__of { font-size: .8rem; color: var(--grey-500); font-family: var(--font-body); }
.pt-ci__table td, .pt-ci__hist td { vertical-align: middle; }
.pt-ci__table input[type=text] { font: inherit; font-size: .85rem; padding: 6px 8px; border: 1.5px solid var(--grey-200); border-radius: 8px; width: 100%; min-width: 140px; }
.pt-ci__table input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--violet); }
.pt-ci__table tr.is-attended td:first-child a { font-weight: 800; }
.pt-ci__status { white-space: nowrap; }
.pt-ci__by { display: block; font-size: .72rem; color: var(--grey-500); }
.pt-ci__tools { margin: 0 0 8px; font-size: .85rem; }
.pt-ci__actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 12px; font-size: .82rem; }
.pt-ci__monthhead { flex-wrap: wrap; gap: 10px; }
.pt-ci__nav { display: flex; align-items: center; gap: 10px; }
.pt-ci__nav h2 { margin: 0; min-width: 120px; text-align: center; }
.pt-ci__grid th.pt-ci__sess, .pt-ci__grid td.pt-ci__sess { text-align: center; white-space: nowrap; }
.pt-ci__grid input[type=radio] { width: 18px; height: 18px; accent-color: var(--violet); }
.pt-ci__group td { background: var(--grey-50, #f7f6f9); font-weight: 800; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
.pt-ci__grid tr.is-attended td:first-child a { font-weight: 800; }
.pt-editor-head .btn + .btn { margin-left: 8px; }
.pt-people-tabs { display: inline-flex; border: 1.5px solid var(--grey-200); border-radius: 999px; overflow: hidden; margin: 0 0 16px; }
.pt-people-tabs a { padding: 8px 18px; font-size: .85rem; font-weight: 800; color: var(--grey-600); text-decoration: none; }
.pt-people-tabs a.is-on { background: var(--violet); color: #fff; }
.pt-ci__track { display: inline-flex; align-items: center; gap: 8px; }
.pt-ci__filters { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin: 0 0 14px; }
.pt-ci__who { display: inline-flex; border: 1.5px solid var(--grey-200); border-radius: 999px; overflow: hidden; margin-right: 10px; vertical-align: middle; }
.pt-ci__who a { padding: 4px 11px; font-size: .75rem; font-weight: 800; color: var(--grey-600); text-decoration: none; }
.pt-ci__who a.is-on { background: var(--violet); color: #fff; }
.pt-kpi__of { font-size: .85rem; font-weight: 600; color: var(--grey-500); }
.pt-ci__cell { font-weight: 800; }
.pt-ci__cell.is-attended { color: #1c6b34; }
.pt-ci__cell.is-excused { color: #0d5375; }
.pt-ci__cell.is-missed { color: #c0392b; }
.pt-leads__needs { font-size: .8rem; color: #7a5a00; max-width: 220px; }
.pt-leads__needs .is-ok { color: #1c6b34; font-weight: 700; }
.pt-timeline__filter { display: flex; gap: 8px; flex-wrap: wrap; }
.pt-timeline__all { font-family: var(--font-body); font-size: .8rem; font-weight: 700; color: var(--violet); text-decoration: none; margin-left: 10px; text-transform: none; }
.pt-timeline__all:hover { text-decoration: underline; }
.pt-timeline__empty { padding: 18px 4px; }
.pt-feed__day { list-style: none; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--grey-500); padding: 14px 4px 4px; }
.pt-feed__day:first-child { padding-top: 2px; }
.pt-feed__ic--pathwell_event_new { background: #f3e5f5; color: var(--violet); }
.pt-feed__ic--advocacy_done { background: #eef8f0; color: #1c6b34; }
@media (max-width: 640px) { .pt-card__head { flex-wrap: wrap; } .pt-timeline__filter select { flex: 1 1 100%; } }

/* Pending Changes: preview + compare */
.pt-review__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.pt-review__actions .btn svg { margin-right: 4px; }
.pt-compare { margin: 0 0 16px; border: 1px solid var(--grey-200); border-radius: var(--radius); overflow: hidden; background: var(--grey-100); }
.pt-compare__bar { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; padding: 10px 12px; background: #fff; border-bottom: 1px solid var(--grey-200); }
.pt-compare__modes { display: inline-flex; border: 1.5px solid var(--grey-200); border-radius: 999px; overflow: hidden; }
.pt-compare__modes button { border: 0; background: #fff; padding: 7px 14px; font: inherit; font-size: .8rem; font-weight: 800; color: var(--grey-600); cursor: pointer; }
.pt-compare__modes button.is-on { background: var(--violet); color: #fff; }
.pt-compare__hint { font-size: .78rem; color: var(--grey-600); }
.pt-compare__panes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 10px; }
.pt-compare__pane { position: relative; background: #fff; border-radius: 10px; overflow: hidden; border: 1px solid var(--grey-200); }
.pt-compare__pane--proposed { border-color: var(--violet); box-shadow: 0 0 0 2px rgba(179,9,173,.15); }
.pt-compare__pane iframe { display: block; width: 100%; height: 72vh; min-height: 520px; border: 0; background: #fff; }
.pt-compare__label { position: absolute; top: 8px; left: 8px; z-index: 2; background: #0c0c0e; color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 5px 9px; border-radius: 999px; }
.pt-compare__label--proposed { background: var(--violet); }
.pt-compare[data-mode="live"] .pt-compare__pane--proposed, .pt-compare[data-mode="proposed"] .pt-compare__pane--live { display: none; }
.pt-compare[data-mode="live"] .pt-compare__panes, .pt-compare[data-mode="proposed"] .pt-compare__panes { grid-template-columns: 1fr; }
.pt-diff-wrap { margin-bottom: 16px; }
.pt-diff-wrap > summary { cursor: pointer; font-size: .84rem; font-weight: 700; color: var(--violet); list-style: none; padding: 6px 0; }
.pt-diff-wrap > summary::-webkit-details-marker { display: none; }
.pt-diff-wrap > summary::before { content: "▸ "; }
.pt-diff-wrap[open] > summary::before { content: "▾ "; }
.pt-diff-wrap[open] > summary { margin-bottom: 8px; }
@media (max-width: 900px) { .pt-compare__panes { grid-template-columns: 1fr; } .pt-compare__pane iframe { height: 60vh; min-height: 420px; } .pt-review__actions { justify-content: flex-start; } .pt-review__head { flex-direction: column; } }

/* My Chapter: editor + live preview side by side */
.pt-editor-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(420px, 46%); gap: 18px; align-items: start; }
.pt-editor-split__form { min-width: 0; }
.pt-editor-tabs { display: none; }
.pt-sect__what { font-family: var(--font-body); text-transform: none; font-size: .78rem; font-weight: 500; color: var(--grey-500); margin-left: 2px; }
.pt-field__lbl .pt-hint { font-weight: 400; text-transform: none; letter-spacing: 0; margin-left: 6px; }
.pt-editor-preview { position: sticky; top: 16px; background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); overflow: hidden; }
.pt-editor-preview__bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 9px 12px; border-bottom: 1px solid var(--grey-200); font-size: .8rem; }
.pt-editor-preview__bar strong { font-family: var(--font-display); text-transform: uppercase; font-size: .95rem; }
.pt-editor-preview__status { color: var(--grey-600); flex: 1 1 auto; min-width: 0; }
.pt-editor-preview__modes { display: inline-flex; border: 1.5px solid var(--grey-200); border-radius: 999px; overflow: hidden; }
.pt-editor-preview__modes button { border: 0; background: #fff; padding: 5px 11px; font: inherit; font-size: .74rem; font-weight: 800; color: var(--grey-600); cursor: pointer; }
.pt-editor-preview__modes button.is-on { background: var(--violet); color: #fff; }
.pt-editor-preview__open { font-weight: 700; color: var(--violet); text-decoration: none; white-space: nowrap; }
.pt-editor-preview__open:hover { text-decoration: underline; }
.pt-editor-preview__frame { background: var(--grey-100); display: flex; justify-content: center; }
.pt-editor-preview__frame iframe { display: block; width: 100%; height: calc(100vh - 150px); min-height: 520px; border: 0; background: #fff; transition: width .2s; }
.pt-editor-preview[data-width="phone"] .pt-editor-preview__frame iframe { width: 390px; }
@media (max-width: 1180px) {
	.pt-editor-split { grid-template-columns: 1fr; }
	.pt-editor-tabs { display: inline-flex; border: 1.5px solid var(--grey-200); border-radius: 999px; overflow: hidden; margin-bottom: 12px; }
	.pt-editor-tabs button { border: 0; background: #fff; padding: 9px 18px; font: inherit; font-size: .84rem; font-weight: 800; color: var(--grey-600); cursor: pointer; }
	.pt-editor-tabs button.is-on { background: var(--violet); color: #fff; }
	.pt-editor-preview { display: none; position: static; }
	.pt-editor-split[data-tab="preview"] .pt-editor-preview { display: block; }
	.pt-editor-split[data-tab="preview"] form.pt-editor { display: none; }
	.pt-editor-split[data-tab="preview"] .pt-editor-tabs { margin-bottom: 12px; }
	.pt-editor-preview__frame iframe { height: 70vh; }
}

/* Pathwell page: chapter flyers */
.pt-flyers__tools { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.pt-flyers__field { display: grid; gap: 4px; }
.pt-flyers__field > span { font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--grey-500); }
.pt-flyers__looks { display: inline-flex; border: 1.5px solid var(--grey-200); border-radius: 999px; overflow: hidden; }
.pt-flyers__looks a { padding: 7px 14px; font-size: .8rem; font-weight: 800; color: var(--grey-600); text-decoration: none; }
.pt-flyers__looks a.is-on { background: var(--violet); color: #fff; }
.pt-flyers__meeting { border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 10px 14px; margin: 0 0 14px; background: #fff; }
.pt-flyers__meeting summary { cursor: pointer; font-size: .9rem; }
.pt-flyers__meeting-form { display: grid; gap: 10px; padding-top: 10px; }
.pt-flyers__radio { display: grid; grid-template-columns: auto 1fr; gap: 4px 8px; align-items: start; font-size: .9rem; }
.pt-flyers__radio input { margin-top: 4px; }
.pt-flyers__radio .pt-muted { grid-column: 2; font-size: .82rem; }
.pt-flyers__meeting-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; padding-left: 26px; }
.pt-flyers__meeting-fields label { display: grid; gap: 4px; font-size: .78rem; font-weight: 800; color: var(--grey-500); }
.pt-flyers__meeting-fields input { font: inherit; font-weight: 500; color: var(--ink); padding: 8px 10px; border: 1.5px solid var(--grey-200); border-radius: 8px; }
.pt-flyers__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; align-items: start; }
.pt-flyers__item { border: 1px solid var(--grey-200); border-radius: var(--radius); overflow: hidden; background: #fff; }
.pt-flyers__preview { background: #0c0c0e; }
.pt-flyers__preview svg { display: block; width: 100%; height: 100%; }
.pt-flyers__meta { padding: 12px 14px; display: grid; gap: 8px; }
.pt-flyers__meta small { color: var(--grey-500); font-size: .78rem; margin-left: 4px; }
.pt-flyers__btns { display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------- Dashboard: Excellent Chapters tally beside Coming Up (same size) ---------- */
.pt-cards:has(> .pt-exc-tally) { align-items: stretch; }
.pt-cards:has(> .pt-exc-tally) > .pt-card { display: flex; flex-direction: column; }
.pt-cards:has(> .pt-exc-tally) > .pt-card > .pt-action__btns { margin-top: auto; padding-top: 14px; }
.pt-exc-tally__sum { margin: 0 0 14px; color: var(--grey-600); font-size: .92rem; }
.pt-exc-tally ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pt-exc-tally li { display: flex; align-items: center; gap: 12px; }
.pt-exc-tally__n { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: rgba(236,168,3,.18); color: #a87400; font-family: var(--font-display); font-size: 1.35rem; }
.pt-exc-tally__st { display: grid; line-height: 1.2; }
.pt-exc-tally__st strong { color: var(--ink); font-size: .92rem; }
.pt-exc-tally__st small { color: var(--grey-500); font-size: .78rem; }

/* Chapter Messages: "Reply" opens the box and hides while it's open, so "Send reply" is the only violet button (Cancel sits beside it) */
.pt-cm__compose[open] > summary { display: none; }
.pt-cm__compose[open] form { margin-top: 4px; }

/* ---------- Member Orientation: chapter links + who's taking it (inc/portal/screen-member-orientation.php) ---------- */
.mo-links h2 { display: flex; align-items: center; gap: 9px; }
.mo-link { margin-top: 14px; }
.mo-link > label, .mo-link__name { display: block; font-weight: 700; font-size: .85rem; color: var(--ink); margin-bottom: 6px; }
.mo-link select { width: 100%; max-width: 420px; padding: 10px 12px; border: 1.5px solid var(--grey-200); border-radius: 10px; font: inherit; margin-bottom: 10px; background: #fff; }
.mo-link__row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.mo-link__row input { flex: 1 1 320px; min-width: 0; padding: 10px 12px; border: 1.5px solid var(--grey-200); border-radius: 10px; font: inherit; font-size: .9rem; background: var(--grey-50, #faf9fb); color: var(--ink); }
.mo-links__foot { margin-top: 16px; font-size: .85rem; color: var(--grey-600); }
.mo-links__foot a { color: var(--violet); font-weight: 700; }
.mo-links__foot [data-mo-done] { color: #1c6b34; font-weight: 800; margin-right: 10px; }
.mo-people__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 6px; }
.mo-people__head select { padding: 9px 12px; border: 1.5px solid var(--grey-200); border-radius: 10px; font: inherit; background: #fff; }
.mo-table-wrap { overflow-x: auto; margin-top: 12px; }
.mo-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.mo-table th { text-align: left; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--grey-600); padding: 8px 10px; border-bottom: 2px solid var(--grey-200); white-space: nowrap; }
.mo-table td { padding: 10px; border-bottom: 1px solid var(--grey-200); vertical-align: top; }
.mo-table td a { color: var(--violet); font-weight: 700; }
.mo-table__prog { min-width: 130px; }
.mo-table__prog small { color: var(--grey-600); }
.mo-table__refl td { background: var(--grey-50, #faf9fb); }
.mo-table__refl summary { cursor: pointer; font-weight: 700; color: var(--violet); }
.mo-table__refl p { margin: 10px 0 0; }
.mo-table__prog { display: flex; align-items: center; gap: 8px; }
.mo-table .trn-bar { flex: 1; height: 8px; min-width: 60px; border-radius: 999px; background: var(--grey-200); overflow: hidden; }
.mo-table .trn-bar > span { display: block; height: 100%; border-radius: inherit; background: var(--violet); }

/* Volunteer Leadership Team (inc/portal-volunteers.php) */
.pt-vol__todo { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pt-vol__todo li { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; line-height: 1.4; }
.pt-vol__todo li.is-done { color: var(--grey-600); }
.pt-vol__todo li.is-done b { text-decoration: line-through; font-weight: 600; }
.pt-vol__todo li svg { flex: 0 0 auto; margin-top: 3px; color: var(--violet); }
.pt-vol__todo li.is-done svg { color: #1c6b34; }
.pt-vol__table tr.is-me td { background: rgba(179,9,173,.04); }
.pt-vol__act { white-space: nowrap; }
.pt-vol__act form + form, .pt-vol__act .btn + form { margin-left: 10px; }
.pt-link-btn--danger { color: #c0392b; }
.pt-vol__add { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; align-items: end; }
.pt-vol__add .btn { justify-self: start; }
.pt-vlpp { max-width: 820px; margin: 0 auto; }
.pt-vlpp__bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.pt-vlpp__head { margin-bottom: 22px; }
.pt-vlpp__eyebrow { display: block; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--violet); margin-bottom: 6px; }
.pt-vlpp__head h1 { margin: 0 0 6px; font-family: var(--font-display); text-transform: uppercase; font-size: clamp(1.6rem, 3.6vw, 2.4rem); line-height: 1.05; }
.pt-vlpp__lead { font-size: 1.02rem; margin-top: 12px; }
.pt-vlpp__doc { background: #fff; border: 1px solid var(--grey-200); border-radius: var(--radius); padding: 10px 26px; }
.pt-vlpp__sec { padding: 18px 0; border-bottom: 1px solid var(--grey-100); }
.pt-vlpp__sec:last-child { border-bottom: 0; }
.pt-vlpp__sec h3 { margin: 0 0 8px; font-family: var(--font-display); text-transform: uppercase; font-size: 1.05rem; letter-spacing: .02em; display: flex; align-items: center; gap: 10px; }
.pt-vlpp__sec h3 span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 999px; background: var(--violet); color: #fff; font-size: .78rem; font-family: var(--font-body, inherit); }
.pt-vlpp__sec p, .pt-vlpp__sec li { line-height: 1.55; color: #2b2930; margin: 0 0 10px; }
.pt-vlpp__sec ul { margin: 0; padding-left: 20px; }
.pt-vlpp__form, .pt-vlpp__signedbox { background: #fff; border: 2px solid var(--violet); border-radius: var(--radius); padding: 22px 26px; margin-top: 22px; }
.pt-vlpp__form h2, .pt-vlpp__signedbox h2 { margin: 0 0 10px; font-family: var(--font-display); text-transform: uppercase; }
.pt-vlpp__form p, .pt-vlpp__signedbox p { line-height: 1.5; }
.pt-vlpp__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 14px 0; }
.pt-vlpp__fields input[readonly] { background: var(--grey-100); color: var(--grey-600); }
.pt-vlpp__pad { margin: 6px 0 14px; }
.pt-vlpp__pad canvas { display: block; width: 100%; max-width: 560px; height: auto; aspect-ratio: 800 / 220; background: #fffdf5; border: 1.5px dashed var(--grey-300, #cfccd6); border-radius: 10px; touch-action: none; cursor: crosshair; }
.pt-vlpp__pad canvas.is-missing { border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192,57,43,.12); }
.pt-vlpp__pad .pt-link-btn { margin-top: 6px; }
.pt-vlpp__form .pt-btn { margin-top: 14px; }
.pt-vlpp__sig { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin: 16px 0 10px; }
.pt-vlpp__sig div { border-top: 1px solid var(--grey-200); padding-top: 8px; }
.pt-vlpp__sig dt { font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--grey-500); }
.pt-vlpp__sig dd { margin: 4px 0 0; font-weight: 700; }
.pt-vlpp__sigimg { grid-column: 1 / -1; }
.pt-vlpp__sigimg img { max-width: 360px; width: 100%; height: auto; display: block; background: #fffdf5; border-radius: 8px; }
@media print { .pt-noprint, .pt-side, .pt-topbar { display: none !important; } .pt-vlpp__doc, .pt-vlpp__signedbox { border-color: #999; } }
/* Orientation: signed-in volunteers can step back to the portal */
.mo-portal-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 0 0 10px; font-size: .85rem; }
.mo-portal-link { color: var(--violet); font-weight: 800; text-decoration: none; }
.mo-saved { color: var(--grey-500, #777); }
/* Volunteer policy page: a document, not a sign-in — full width, no photo panel */
.pt-split--doc { grid-template-columns: 1fr; }
.pt-split--doc .pt-split__media { display: none; }
.pt-split--doc .pt-split__panel { place-items: start center; padding-top: 24px; }
.pt-split--doc .pt-split__inner { max-width: 860px; }
.pt-split--doc .pt-split__brand { margin-bottom: 14px; }
/* Chapter Check-in month grid: compact so a month fits one screen */
.pt-ci__grid { font-size: .84rem; width: 100%; }
.pt-ci__grid th, .pt-ci__grid td { padding: 6px 8px; }
.pt-ci__grid th { font-size: .66rem; line-height: 1.2; }
.pt-ci__grid th.pt-ci__sess { width: 72px; }
.pt-ci__grid th.pt-ci__sess .pt-muted { display: block; font-size: .62rem; font-weight: 500; text-transform: none; letter-spacing: 0; white-space: normal; max-width: 90px; }
.pt-ci__grid td:first-child { white-space: nowrap; }
.pt-ci__grid td:nth-child(2) { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .78rem; }
.pt-ci__grid input[type=text] { min-width: 90px; width: 100%; max-width: 180px; padding: 4px 6px; font-size: .8rem; }
.pt-ci__grid .pt-ci__status { white-space: nowrap; font-size: .78rem; }
.pt-ci__grid .pt-ci__status .pt-badge { padding: 3px 8px; font-size: .62rem; }
.pt-ci__grid .pt-ci__by { font-size: .66rem; }
.pt-ci__grid .pt-ci__group td { padding: 5px 8px; font-size: .7rem; }
.pt-ci__grid thead th { position: sticky; top: 0; background: #fff; z-index: 1; }
.pt-ci__grid th.pt-ci__sess .pt-ci__evlink { display: block; font-size: .62rem; font-weight: 500; text-transform: none; letter-spacing: 0; white-space: normal; max-width: 90px; text-decoration: none; }
.pt-ci__grid th.pt-ci__sess .pt-ci__evlink:hover { color: var(--violet); text-decoration: underline; }
