/* User-approved cosmetic backer designs; original window/item/model artwork remains intact. */
[data-backer-tier='supporter']{--backer-metal:#9dc8d4;--backer-bright:#e6faff;--backer-edge:#45646e;--backer-glow:#87d9f33d;--backer-shade:#1c3239}
[data-backer-tier='pioneer']{--backer-metal:#e9c978;--backer-bright:#fff1b7;--backer-edge:#6d572d;--backer-glow:#ffc74a33;--backer-shade:#352b19}
[data-backer-tier='patron']{--backer-metal:#eccb88;--backer-bright:#fff2c7;--backer-edge:#886141;--backer-glow:#e55d3f3d;--backer-shade:#482323}
.backer-badge{display:inline-flex!important;align-items:center;justify-content:center;position:relative;flex:none;width:26px;height:28px;min-width:0;min-height:0;margin:0;padding:2px!important;border:0!important;border-radius:3px;background:transparent!important;color:var(--backer-metal);cursor:help!important;pointer-events:auto;touch-action:manipulation;vertical-align:middle;line-height:1;filter:drop-shadow(0 0 4px var(--backer-glow))}
.backer-badge svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}
.backer-shield{fill:var(--backer-shade);stroke:var(--backer-metal);stroke-width:1.3}
.backer-metal{fill:var(--backer-metal);stroke:var(--backer-bright);stroke-width:.35}
.backer-rays{fill:none;stroke:var(--backer-metal);stroke-width:1;opacity:.65}
.backer-glint{fill:var(--backer-bright);transform-origin:33px 8px;animation:backer-glint 4.5s ease-in-out infinite}
@keyframes backer-glint{0%,45%,100%{opacity:.3;transform:scale(.65)}55%{opacity:1;transform:scale(1.1)}68%{opacity:.4;transform:scale(.7)}}
.backer-badge:focus-visible{outline:1px solid var(--backer-bright)!important;outline-offset:3px}
.backer-name-row{display:inline-flex;align-items:center;justify-content:inherit;gap:4px;max-width:100%;vertical-align:middle}
.backer-display-name{min-width:0;overflow-wrap:anywhere}
.backer-title{display:block;margin-top:3px;font-size:10px;line-height:14px;letter-spacing:.15em;font-weight:600;text-transform:uppercase;color:var(--backer-metal);text-shadow:0 0 8px var(--backer-glow)}
.backer-profile-identity{padding:12px 0 16px}
.backer-profile-name{font-size:22px;line-height:1.3;color:var(--backer-bright,#efe6cf)}
.backer-guild{font-size:10px;line-height:1.5;letter-spacing:.1em;color:var(--backer-metal,#e2c47c);margin-bottom:8px}
.backer-meta{font-size:11px;color:#94a391;margin-top:10px;line-height:1.4}
/* Names keep their existing guild/health layout and PK color. Only the badge accepts input. */
.player-name .backer-world-name .backer-name-row{height:15px;align-items:center;white-space:nowrap;overflow:visible;justify-content:center;position:relative}
.player-name .backer-badge{width:17px;height:19px;padding:1px!important;top:0}
.player-name .backer-display-name{overflow-wrap:normal}
.player-name .backer-world-name{background:transparent!important;border:0!important}
/* A layer over existing native artwork, beginning at y=0 behind the tabs. */
:is(.m-sheet,.m-inspection)[data-backer-tier]{box-shadow:inset 0 0 0 1px var(--backer-edge),0 10px 40px #000d}
:is(.m-sheet,.m-inspection)[data-backer-tier] .m-sheet-head{border-bottom:1px solid var(--backer-edge);padding-bottom:5px}
:is(.m-sheet,.m-inspection)[data-backer-tier] .m-title{color:var(--backer-bright)}
.m-sheet[data-backer-tier] :is(.m-who,.m-attributes,.m-combat),.m-inspection[data-backer-tier] .m-inspect-details{background:radial-gradient(ellipse at top left,var(--backer-glow),transparent 78%) 0 0/100% 220px no-repeat,url('/ui/mobile/card.png?v=ea1529f9c8e23a06') 0 0/100% 100% no-repeat;box-shadow:inset 0 0 0 1px var(--backer-edge)}
:is(.m-sheet,.m-inspection)[data-backer-tier] .m-doll{box-shadow:inset 0 0 0 1px var(--backer-edge)}
.m-sheet[data-backer-tier] .m-who-top{align-items:flex-start}
.m-sheet[data-backer-tier] .m-who-top>div:last-child{min-width:0}
.m-who-name.backer-identity{text-align:inherit;max-width:100%;line-height:1.3}
.m-hero>.backer-identity{text-align:center;padding-bottom:3px}
.m-hero>.backer-identity .backer-name-row{justify-content:center}
.m-who .backer-profile-identity{padding:0}
.m-who .backer-profile-name{font-size:19px}
.m-who .backer-meta{margin-top:6px}
/* Classic native dialogs use the same identity without moving any equipment slots. */
:is(#character-panel,#inspection-panel)[data-backer-tier]{outline:1px solid var(--backer-edge);outline-offset:-3px}
#paperdoll-name.backer-identity[data-backer-tier]{height:auto;min-height:32px;overflow:visible;pointer-events:auto;top:0}
#paperdoll-name .backer-name-row{justify-content:center}
#detail-name.backer-identity[data-backer-tier]{overflow:visible;width:130px}
#detail-name.backer-identity .backer-badge{width:16px;height:19px}
#detail-name.backer-identity .backer-title{font-size:8px;line-height:10px;margin-top:0}
#inspection-panel .inspection-name.backer-identity[data-backer-tier]{width:83px;overflow:visible;pointer-events:auto;top:65px}
#inspection-panel .inspection-name .backer-badge{width:16px;height:18px}
#inspection-panel .inspection-name .backer-title{font-size:8px;line-height:10px;margin-top:0}
#backer-tooltip{position:absolute;z-index:80;pointer-events:auto;width:266px;max-width:calc(var(--ui-view-width,100vw) / var(--hud-ui-scale,1) - 16px);padding:14px 16px;border:1px solid var(--backer-edge);border-top-color:var(--backer-metal);border-radius:6px;background:linear-gradient(145deg,#292c28,#121c1f 70%);box-shadow:0 8px 24px #0009;color:#e8e0c9;font:12px/1.5 'Courier New',monospace;text-shadow:none;max-height:calc(100dvh / var(--hud-ui-scale,1) - 16px);overflow:auto}
.backer-tip-kicker{font-size:9px;letter-spacing:.13em;color:#a1a997;text-transform:uppercase}
.backer-tip-name{display:block;font-size:20px;font-weight:600;line-height:1.4;color:var(--backer-bright);margin:5px 0 8px}
.backer-tip-description{color:#b4baa8;margin:0 0 12px}
.backer-tip-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid #ffffff0b;font-size:10px;color:#99a795}
.backer-tip-row>span:last-child{color:#dfddcc;text-align:right}
.backer-tip-foot{font-size:10px;line-height:1.5;color:var(--backer-metal);margin:9px 0 0}
@media(prefers-reduced-motion:reduce){.backer-glint{animation:none;opacity:1}}
/* Backer recognition gets its own readable header even in narrow Status columns. */
.m-sheet[data-backer-tier] .m-who-top{flex-direction:column;align-items:center;text-align:center;gap:8px}
.m-sheet[data-backer-tier] .m-who-top>div:last-child{width:100%}
.m-sheet[data-backer-tier] .m-who .backer-profile-name{font-size:15px}
.m-sheet[data-backer-tier] .m-who .backer-name-row{justify-content:center;white-space:normal}
#detail-name.backer-identity[data-backer-tier] .backer-name-row{height:16px;line-height:16px}
#detail-name.backer-identity[data-backer-tier] .backer-badge{height:16px;width:15px}
:is(#detail-name,#paperdoll-name,.inspection-name).backer-identity .backer-display-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Inline recognition across chat, announcements and public rankings. */
:is(.chat-line,.m-crow,.system-messages,.nobility-panel) .backer-badge{width:17px;height:18px;padding:1px!important;margin:0 3px;vertical-align:middle;display:inline-flex!important}
.system-messages .backer-badge{pointer-events:auto}
.nobility-panel .nobility-row [role='cell']:nth-child(3){display:flex;align-items:center;gap:2px;min-width:0}
.nobility-panel .nobility-leader .backer-badge{flex:none}
.nobility-panel :is(.nobility-row,.nobility-leader) .backer-name-row{display:flex;width:100%;overflow:visible;justify-content:flex-start;text-align:left}
.nobility-panel :is(.nobility-row,.nobility-leader) .backer-display-name{display:block;flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}
.m-crow .backer-badge,.mobile-ui .system-messages .backer-badge{width:14px;height:14px;padding:0!important;vertical-align:-2px}
/* Native Nobility controls are absolute-positioned; identity badges must stay in text flow. */
.nobility-panel .backer-badge{position:relative;inset:auto}
/* Every semantic player-name surface shares the same compact, in-flow badge. */
.backer-badge{position:relative!important;inset:auto!important}
:is(.m-plate,.m-dm,.social-window,.team-panel,.guild-root,.guild-classic,.chi-window,.jianghu-window) .backer-badge{width:17px;height:18px;vertical-align:middle}
.m-name.backer-identity{pointer-events:auto;overflow:visible}
.m-name .backer-name-row{height:16px;line-height:16px;display:flex;max-width:118px}
.m-name .backer-display-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}
.m-name .backer-badge{width:16px;height:16px;padding:0!important}
:is(.m-dm-name,.m-dm-meta,.social-friend-entry,.guild-native-row,.guild-native-value) .backer-name-row{display:inline-flex;align-items:center;max-width:100%;gap:3px}
:is(.m-dm-name,.m-dm-meta,.social-friend-entry,.guild-native-row,.guild-native-value) .backer-display-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.social-window .backer-badge,.guild-classic .backer-badge{background:none!important;border:0!important}
:is(.character-window,.inspection-window) .backer-badge{width:15px;height:16px}
.nobility-panel :is(.nobility-row,.nobility-leader) .backer-display-name{flex:0 1 auto}

/* World badges are recognition only; details remain available in UI windows. */
.backer-world-name .backer-badge{pointer-events:none;cursor:inherit!important}

/* Highest recognition: approved platinum wings, gold crest and violet jewel. */
[data-backer-tier='benefactor']{--backer-metal:#e9d6a1;--backer-bright:#fff5dc;--backer-edge:#9a82b0;--backer-glow:#bf92ff66;--backer-shade:#31313d}
.backer-wing{fill:#bbc8dc;stroke:#fff0c2;stroke-width:.65}
.backer-gem{fill:#805aa9;stroke:#ece0ff;stroke-width:.7}
.backer-gem-shine{fill:none;stroke:#f8eeff;stroke-width:.7}
