/* WHO TO CALL (2026-10-21): every firm on a project by role, with the office
   nearest the project. One card on the project page (#ppWho, server-rendered by
   generate_pages.py) and in the map's project modal (#pmWho). Painted by
   tmw-whocall.js from GET auth.oftmw.com/who. Same look as the firm groups it
   replaced: the 12px glass box, 8.5px caps labels, the firm pills.
   BUMP ?v= in generate_pages.py, map/index.html and tmw-whocall.js on change. */

.twc-dek{margin:-6px 0 14px;font:500 13.5px/1.5 Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:rgba(255,255,255,.55)}
.twc-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden}
.twc-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;padding:13px 14px;border-top:1px solid rgba(255,255,255,.07)}
.twc-row:first-child{border-top:0}
.twc-k{font:600 8.5px/1.2 Inter,-apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.4);padding-top:10px}
.twc-firms{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 6px;min-width:0}
.twc-firm{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;min-width:0;max-width:100%}
/* a firm with an office line takes the whole width; bare names wrap like the old pills */
.twc-firm.has-off{flex-basis:100%}
.twc-firm.has-off + .twc-firm.has-off{margin-top:4px}
.twc .twc-chip{display:inline-flex;align-items:center;max-width:100%;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);font:600 12.5px/1.3 Inter,-apple-system,sans-serif;color:#fff;text-decoration:none;box-sizing:border-box;transition:border-color .15s,background .15s}
.twc .twc-chip .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}
.twc a.twc-chip:hover{border-color:rgba(31,223,103,.5);background:rgba(31,223,103,.10)}
.twc .twc-chip.is-plain{color:#C2C9C3;cursor:default}
/* the map modal's own pill rule is line-height 1: never clip descenders */
#projectModal .twc .twc-chip{padding:5px 11px;line-height:1.3}
#projectModal .twc .twc-chip .nm{line-height:1.3}
#projectModal .twc{margin-top:22px}
.twc-off{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;min-width:0;font:500 12.5px/1.45 Inter,-apple-system,sans-serif;color:rgba(255,255,255,.62)}
.twc-city{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.twc-city svg,.twc-ln svg,.twc-lock svg,.twc-cta svg{width:12px;height:12px;flex:none}
.twc-city small{font-size:11.5px;color:rgba(255,255,255,.42);margin-left:2px}
.twc-addr{flex-basis:100%;color:rgba(255,255,255,.5);font-size:12px}
.twc-ln{display:inline-flex;align-items:center;gap:5px;color:#fff;text-decoration:none;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:1px}
.twc-ln:hover{border-bottom-color:rgba(255,255,255,.6)}
.twc-cta{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:#fff!important;font:600 12px/1 Inter,-apple-system,sans-serif;text-decoration:none!important;white-space:nowrap;transition:background .15s,border-color .15s}
.twc-cta:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3)}
.twc-lock{display:inline-flex;align-items:center;gap:5px;color:#C4B5FD!important;text-decoration:none!important;font-weight:600;white-space:nowrap;cursor:pointer}
.twc-lock:hover{color:#E4DBFF!important}
.twc-none{color:rgba(255,255,255,.38);font-size:12px}
.twc-gate{display:flex;justify-content:center;margin-top:14px}
.twc-gate .tpg-pill{max-width:100%}
/* first paint for a Pro member (journal-auth's tmw-paid hint): no locks while the details load */
html.tmw-paid .twc[data-static] .twc-lock,html.tmw-paid .twc[data-static] .twc-gate{visibility:hidden}
.twc.twc-pro .twc-gate,.twc.twc-pro .twc-lock{display:none}
@media(max-width:540px){
  .twc-row{grid-template-columns:1fr;gap:8px;padding:12px 13px}
  .twc-k{padding-top:0}
}
