.entity-heading{display:flex;align-items:center;gap:18px;min-width:0}
.entity-heading>div{min-width:0}
.entity-heading h1{overflow-wrap:anywhere}
.entity-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;flex:0 0 68px;border:1px solid var(--theme-border);border-radius:16px;overflow:hidden;background:var(--theme-accent);color:var(--theme-accent-foreground);font-family:var(--theme-font-serif);font-size:28px;line-height:1}
.entity-avatar-initial{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.entity-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.entity-avatar img.is-loaded{opacity:1}
.entity-avatar img[hidden]{display:none}
.entity-avatar-small{width:34px;height:34px;flex-basis:34px;border-radius:9px;font-size:16px}
/* Inset badge stays inside the photo crop, including 25px finance avatars. */
.avatar-presence-dot{position:absolute;z-index:1;right:3px;bottom:3px;width:13px;height:13px;box-sizing:border-box;border:2px solid var(--theme-card,#fff);border-radius:50%;background:#25844b;pointer-events:none}
.avatar-presence-dot[hidden]{display:none}
.entity-avatar-small .avatar-presence-dot{right:1px;bottom:1px;width:9px;height:9px;border-width:1.5px}
:root[data-theme=dark] .avatar-presence-dot{background:#66d58a}
.avatar-panel{margin:24px 0}
.avatar-panel input[type=file]{max-width:100%;padding:10px;background:var(--theme-popover)}
.avatar-panel input[type=file]::file-selector-button{font:inherit;margin-right:12px;padding:7px 10px;border:1px solid var(--theme-border);border-radius:6px;background:var(--theme-accent);color:var(--theme-accent-foreground);cursor:pointer}
.avatar-panel .helptext{display:block;margin-top:8px}
@media(max-width:760px){.entity-heading{gap:13px}.entity-avatar{width:56px;height:56px;flex-basis:56px;border-radius:13px;font-size:24px}.entity-avatar-small{width:32px;height:32px;flex-basis:32px;border-radius:8px;font-size:15px}}
:root{--pill-director-bg:#ebe5f0;--pill-director-fg:#655076;--pill-manager-bg:#f1e5dc;--pill-manager-fg:#79533f;--pill-worker-bg:#e5ece7;--pill-worker-fg:#46624c;--pill-supplier-bg:#e3eaf0;--pill-supplier-fg:#486174;--pill-customer-bg:#f0eadb;--pill-customer-fg:#705f31;--pill-neutral-bg:#e9e7e2;--pill-neutral-fg:#5f5d57}
[data-theme=dark]{--pill-director-bg:#36303d;--pill-director-fg:#cbbbd8;--pill-manager-bg:#3e322c;--pill-manager-fg:#d8bca7;--pill-worker-bg:#2e3931;--pill-worker-fg:#b1cbb6;--pill-supplier-bg:#2c3740;--pill-supplier-fg:#b1c6d7;--pill-customer-bg:#3c382b;--pill-customer-fg:#d4c799;--pill-neutral-bg:#383733;--pill-neutral-fg:#c6c3bb}
.entity-pill{display:inline-flex;align-items:center;max-width:100%;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:550;line-height:1.45;white-space:nowrap;background:var(--pill-neutral-bg);color:var(--pill-neutral-fg)}
.entity-pill:is(.role-director){background:var(--pill-director-bg);color:var(--pill-director-fg)}
.entity-pill:is(.role-manager,.status-active){background:var(--pill-manager-bg);color:var(--pill-manager-fg)}
.entity-pill:is(.role-worker,.status-complete){background:var(--pill-worker-bg);color:var(--pill-worker-fg)}
.entity-pill:is(.role-supplier,.status-new){background:var(--pill-supplier-bg);color:var(--pill-supplier-fg)}
.entity-pill:is(.role-customer,.status-considering){background:var(--pill-customer-bg);color:var(--pill-customer-fg)}
.entity-pill.status-paused{background:var(--pill-neutral-bg);color:var(--pill-neutral-fg)}
.entity-pill.cover-status{box-shadow:var(--theme-shadow-sm)}
.entity-heading .entity-pill{margin-bottom:10px}

/* Person portraits keep a circular crop at every size, including initials.
   Auto basis follows the local width instead of stretching a 46px portrait to 68px. */
.entity-avatar.entity-avatar-person{border-radius:50%;aspect-ratio:1;flex-basis:auto;flex-shrink:0}
.entity-avatar-person .avatar-presence-dot{right:12%;bottom:12%}

/* Permanent person number: shared by all accounts linked to this person. */
.entity-avatar.entity-avatar-person{overflow:visible;container-type:inline-size}
.entity-avatar-person .entity-avatar-initial{border-radius:inherit;overflow:hidden}
.entity-avatar-person img{border-radius:inherit}
/* Dimensions and typography follow the actual avatar width, including local 20–68px overrides. */
.entity-avatar-person .entity-avatar-number{position:absolute;left:50%;top:100%;transform:translate(-50%,-50%);z-index:2;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:42%;height:42%;padding:0;border:1cqw solid var(--theme-card,#fff);border-radius:50%;background:#fff;color:#111;font-family:var(--theme-font-sans,Arial,sans-serif);font-size:calc(54cqw / max(2.5,var(--number-digits)));font-weight:700;line-height:1;letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}
.entity-avatar.entity-avatar-person .avatar-presence-dot{top:0;right:0;bottom:auto}
/* Keep neighbouring badges readable in compact project teams. */
.project-team-avatars .project-team-avatar+.project-team-avatar{margin-left:4px}

.project-summary-card .project-card-team{padding-bottom:7px}
