/* V76 shared game-log rows: homepage, global rails, live page and character events. */
.unique-window-trigger-wrap{display:block;width:40px;height:40px}
.unique-window-portal{width:min(393px,calc(100vw - 20px));padding:0;border:0;background:transparent;box-shadow:none}
.unique-window{width:100%;overflow:hidden;background:#020202;box-shadow:0 12px 34px rgba(0,0,0,.62)}
.unique-window-frame{position:relative;width:100%;aspect-ratio:393/109;isolation:isolate}
.unique-window-art{display:block;width:100%;height:100%;object-fit:fill}
.unique-window-title,.unique-window-hp{position:absolute;display:flex;align-items:center;justify-content:center;color:#ffffff;text-align:center;text-shadow:0 1px 2px #000000;overflow:hidden;font-family:Arial,sans-serif;font-weight:750;line-height:1.05}
.unique-window-title{left:12.5%;top:6.5%;width:78%;height:31%;gap:5px}
.unique-window-hp{left:5.6%;top:52%;width:88.7%;height:23%;font-variant-numeric:tabular-nums}
.unique-window [data-unique-fit]{display:block;max-width:100%;font-size:16px;overflow-wrap:anywhere;white-space:normal;line-height:1.05}
.unique-name-emblem,.unique-name-list-icon{width:16px;height:16px;object-fit:contain;image-rendering:auto;flex:0 0 16px}
.unique-window-profile{width:100%;aspect-ratio:1/1;margin:0;padding:0;overflow:hidden;background:#020202;border-top:0}
.unique-window-profile img{display:block;width:100%;height:100%;margin:0;object-fit:cover}
.unique-window-profile img[data-icon-fallback-tried="true"]{box-sizing:border-box;padding:30%;object-fit:contain;image-rendering:pixelated}
.unique-name-line>strong{display:inline-flex!important;align-items:center;gap:5px;max-width:100%}
.unique-name-line>strong>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-character-link,.live-character-name{color:#ffc6be!important;font-weight:850!important;text-decoration:none;font-size:12px}
.live-character-link:hover,.live-character-link:focus-visible{color:#fff4eb!important;text-decoration:underline;text-underline-offset:3px}
.live-event-line,.live-drop-source{line-height:1.45!important}.live-drop-source span{overflow-wrap:anywhere}
.live-drop-slot.inventory-slot{width:40px;height:40px;margin:0;position:relative;list-style:none;flex:none}
.live-drop-slot .live-drop-icon.inventory-item{display:grid;width:40px;height:40px;padding:0;overflow:hidden;border:1px solid var(--line-bright);border-radius:0;background:var(--avatar-bg);cursor:help}
.live-drop-icon img[data-inventory-icon]{position:relative;inset:auto;width:36px;height:36px;object-fit:contain;border-radius:0}
.live-drop-icon .inventory-sox-effect{inset:4px}.live-drop-icon .inventory-item-plus{right:3px;bottom:1px;font-size:10px}
.live-item-row .inventory-tooltip:not(.inventory-tooltip-floating){display:none!important}
.live-item-row .log-copy>strong{overflow-wrap:anywhere}
.live-log-row.unique-log-row,.live-log-row.live-item-row{grid-template-columns:42px minmax(0,1fr)}
.live-log-row .log-copy{min-width:0}.live-log-row .live-character-link,.live-log-row .live-character-name{font-size:14px}
.dps-mini-row strong,.dps-mini-row span{min-width:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.dps-mini-head,.dps-mini-row{grid-template-columns:minmax(90px,1.2fr) minmax(70px,1fr) minmax(36px,.5fr) minmax(36px,.5fr)}
.live-log-empty{padding:20px;color:var(--muted);font-size:14px}
.tooltip-portal.dps-portal{max-height:min(70vh,500px);overflow:auto;overscroll-behavior:contain;pointer-events:auto}
/* The oversized Live Data hero was removed in V76; keep the actual data close to the header. */
.section.live-logs-page{padding-top:58px;padding-bottom:70px}
@media(max-width:760px){.section.live-logs-page{padding-top:34px;padding-bottom:50px}.unique-window-portal{width:min(393px,calc(100vw - 12px))}}

/* V77 live navigation and compact timestamp treatment. */
.widget-title h2{min-width:0}
.widget-live-link{margin-inline-start:4px;display:grid;place-items:center;width:28px;height:28px;border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);border-radius:50%;color:var(--accent-soft);font-size:17px;font-weight:900;line-height:1;text-decoration:none;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.widget-live-link:hover,.widget-live-link:focus-visible{color:#fff5ed;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent);transform:translateX(2px);outline:none}
.live-drop-source,.live-chat-source,.live-market-source,.live-event-line{display:flex!important;align-items:center;min-width:0;gap:0}
.live-drop-source>span,.live-chat-source>span,.live-market-source>span,.live-event-line>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-item-character{display:block!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-item-character .live-character-link,.live-item-character .live-character-name{font-size:inherit!important}


.live-time-line{margin-top:2px;line-height:1.2;min-height:14px}
.live-time-text{display:inline-block;color:#bf8d72;font-size:10px;font-weight:600;letter-spacing:.02em;text-shadow:0 0 8px rgba(191,141,114,0.12)}
.global-log-row{grid-template-columns:42px minmax(0,1fr)}
.global-character-avatar{display:grid;width:40px;height:40px;place-items:center;overflow:hidden;border:1px solid var(--line-bright);border-radius:0;background:var(--avatar-bg);color:var(--text-strong);font-size:12px;font-weight:900;box-shadow:inset 0 0 14px rgba(255,255,255,.04),0 0 14px var(--accent-glow-soft)}
.global-character-avatar img{display:block;width:40px;height:40px;object-fit:cover;border-radius:0}
.global-log-copy{gap:4px!important}.global-log-character{font-size:13px!important}.global-log-message{color:#f2c85c;font-size:11px;font-weight:650;line-height:1.65;white-space:normal;overflow-wrap:anywhere;text-shadow:0 0 7px rgba(242,200,92,.10)}
.global-inline-item.inventory-slot{display:inline-flex!important;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;vertical-align:middle;margin:0 3px;position:relative;justify-self:auto!important;align-self:auto!important;background:none!important;box-shadow:none!important;border:0!important}
.global-inline-item-button{display:inline-flex!important;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;padding:0!important;border:1px solid rgba(248,143,130,0.35)!important;border-radius:3px!important;overflow:hidden;background:#0a0a08!important}
.global-inline-item-button img{width:24px!important;height:24px!important;object-fit:cover;inset:1px!important}
.global-inline-item .inventory-sox-effect{inset:0!important;width:32px;height:32px;transform:scale(.8125);transform-origin:0 0}
.global-inline-item .inventory-item-plus{font-size:8px!important;right:0!important;bottom:-1px!important}
.unique-log-row .live-event-line{gap:4px!important}
/* V93: .global-log-message yellow is protected by ThemeColorService from semantic palette remapping. */

/* V103: the killer portrait and Unique name have separate roles. */
.unique-name-tooltip-wrap{display:block;min-width:0;flex:1}
.unique-name-tooltip-trigger{display:flex;align-items:center;gap:5px;width:100%;min-width:0;padding:0;border:0;color:var(--text-strong);background:none;font:inherit;font-weight:700;text-align:start;cursor:help}
.unique-name-tooltip-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.unique-name-tooltip-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.unique-killer-avatar,.unique-killer-avatar img{border-radius:0}.unique-killer-avatar{overflow:hidden}

/* v124: both battle feeds and unique killers use contained square portraits. */
.battle-list .battle-avatar,.unique-log-row .unique-killer-avatar{box-sizing:border-box;border-radius:0;overflow:hidden;flex-shrink:0;aspect-ratio:1;padding:0;cursor:default}
.battle-list .battle-avatar>img,.unique-log-row .unique-killer-avatar>img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;border-radius:0}
.battle-job-name{display:flex;align-items:center;gap:5px;min-width:0}.battle-job-name>img{width:16px;height:16px;object-fit:contain;flex:0 0 16px}.battle-job-name>strong{min-width:0;overflow:hidden;text-overflow:ellipsis}

/* v125 combat cards match the PVP/JOB reference layout. */
.battle-list .battle-row{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:4px 8px;padding:10px 12px 6px;min-height:74px;background:var(--widget-row-bg,transparent)}
.battle-list .battle-player{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-self:start}
.battle-list .battle-person-body{display:flex;align-items:center;gap:9px;min-width:0}
.battle-list .battle-avatar{width:44px;height:44px;flex:0 0 44px}
.battle-list .battle-player-copy{min-width:0;display:grid;gap:3px;order:initial}
.battle-list .battle-loser .battle-person-body{justify-content:flex-end}.battle-list .battle-loser .battle-avatar{order:2}.battle-list .battle-loser .battle-player-copy{order:1;text-align:start}
.battle-list .battle-player-copy strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.battle-list .battle-player-copy small{display:block;font-size:9px;color:var(--muted);line-height:1.2}
.battle-list .battle-job-name{display:flex;justify-content:center;align-items:center;gap:5px;min-width:0;font-size:10px;line-height:1.4;border-bottom:1px solid var(--line);padding-bottom:3px}
.battle-list .battle-job-name>strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-list .battle-job-name>img{flex:0 0 13px;width:13px;height:13px;object-fit:contain}
.battle-list .battle-time-line{grid-column:1/-1;display:block;text-align:center;font-size:9px;color:var(--text-soft);padding-top:3px;line-height:1.4}
.battle-list .battle-row-job>.battle-versus{align-self:center;padding-top:16px}.battle-list .battle-versus span{width:24px;height:24px;transform:none;line-height:1;color:var(--accent-soft);font-size:20px}
.battle-list-live.battle-list .battle-row{padding:14px 18px 10px;min-height:86px}.battle-list-live.battle-list .battle-player-copy strong,.battle-list-live.battle-list .battle-job-name>strong{font-size:12px}.battle-list-live.battle-list .battle-avatar{width:50px;height:50px;flex-basis:50px}
