/* ── Player Grid ─────────────────────────────────────────────────────────── */ .player-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; } .player-card { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--r); padding: 7px 9px; display: flex; align-items: center; gap: 7px; cursor: pointer; transition: opacity 0.15s, border-color 0.15s; user-select: none; } .player-card:hover { border-color: var(--borderem); } .player-card.player-hidden { opacity: 0.35; border-style: dashed; } .player-job-icon { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 600; font-family: var(--font-d); letter-spacing: 0.03em; flex-shrink: 0; } .player-job-icon.role-tank { background: rgba(74,158,255,.15); color: var(--blue); border: 1px solid rgba(74,158,255,.35); } .player-job-icon.role-healer { background: rgba(76,175,125,.15); color: var(--green); border: 1px solid rgba(76,175,125,.35); } .player-job-icon.role-dps { background: rgba(224,92,92,.15); color: var(--red); border: 1px solid rgba(224,92,92,.35); } .player-name { font-size: 12px; color: var(--t1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .player-type { font-size: 10px; color: var(--t2); margin-top: 1px; } .card-title-row { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; } .card-title-row .card-title { margin-bottom: 0; flex-shrink: 0; } .filter-input { width: 200px; padding: 4px 9px; font-size: 12px; margin-left: auto; } /* ── AoE Timeline ────────────────────────────────────────────────────────── */ .aoe-event { display: grid; grid-template-columns: 52px 1fr; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--border); align-items: start; } .aoe-event:last-child { border-bottom: none; } .aoe-time { font-family: var(--font-d); font-size: 13px; color: var(--gold); padding-top: 2px; letter-spacing: 0.03em; } .aoe-ability { font-size: 13px; color: var(--t1); margin-bottom: 7px; } .aoe-total { font-size: 12px; color: var(--t2); margin-left: 6px; } .aoe-targets { display: flex; flex-wrap: wrap; gap: 4px; } .aoe-target-wrap { display: flex; flex-direction: column; gap: 3px; } .aoe-target { display: flex; align-items: flex-start; gap: 5px; background: var(--bg3); border: 1px solid var(--border); border-radius: var(--r); padding: 3px 8px 4px 6px; font-size: 11px; } .aoe-target--dead { border-color: rgba(224, 92, 92, 0.6); background: rgba(224, 92, 92, 0.08); } .aoe-target-left { display: flex; flex-direction: column; align-items: center; gap: 2px; flex-shrink: 0; } .aoe-target-overkill { font-size: 9px; font-family: var(--font-d); color: var(--red); font-weight: 600; margin-top: -3px; } .aoe-target-job { font-family: var(--font-d); font-size: 10px; font-weight: 600; letter-spacing: 0.02em; padding-top: 2px; flex-shrink: 0; } .aoe-target-job.role-tank { color: var(--blue); } .aoe-target-job.role-healer { color: var(--green); } .aoe-target-job.role-dps { color: var(--red); } .aoe-target-body { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; } .aoe-target-row { display: flex; align-items: center; gap: 5px; } .aoe-target-name { color: var(--t1); } .aoe-target-dmg { color: var(--t2); margin-left: 2px; } .aoe-target-absorbed { color: var(--blue); } /* ── HP Bar ──────────────────────────────────────────────────────────────── */ .aoe-hp-bar { height: 6px; background: var(--bg0); border-radius: 2px; overflow: hidden; display: flex; } .aoe-hp-remaining { height: 100%; } .aoe-hp-damage { height: 100%; background: rgba(224, 92, 92, 0.65); } .aoe-target-buffs { display: flex; flex-wrap: wrap; gap: 2px; padding: 2px 4px; } .aoe-target-buff-icon { width: 16px; height: 16px; border-radius: 2px; object-fit: cover; cursor: default; }