/* One intrinsic layout. hud.js fits the requested zoom to the viewport. */
/* Compact combat controls: health and portrait live in party/world plates. */
.display-settings label[for="hud-scale"]{justify-content:space-between;margin-top:18px}
.display-settings #hud-scale{width:100%;height:22px;padding:0;accent-color:#d8bd81}
.combat-dock {
  --action-size:64px;
  display:grid;grid-template-columns:max-content max-content;align-items:center;
  position:fixed;left:50%;bottom:12px;transform:translateX(-50%);
  width:max-content;max-width:none;margin:0;padding:12px 14px;
  border:1px solid #b4a37c88;border-top:2px solid #d8c390;border-radius:5px;
  background:linear-gradient(120deg,#142a30f7,#081820f5 65%,#142329f7);
  box-shadow:0 10px 32px #000b,inset 0 1px #ffffff0a;zoom:var(--hud-effective-scale,1);
}
.combat-dock::after,.combat-dock::before{display:none}
.combat-dock .hud-left {
  position:static;grid-column:1;grid-row:2;display:grid;
  grid-template-columns:42px 138px 44px 44px;align-items:center;gap:9px;
  width:auto;min-width:0;margin:0;padding:0 18px 0 0;transform:none;background:none;border:0;
}
.combat-dock .portrait{width:42px;height:42px;min-width:0;flex-basis:42px;border:1px solid #b3a78266;border-radius:3px;box-shadow:none}
.combat-dock .bars{display:flex;flex-direction:column;width:138px;min-width:138px;gap:6px;padding:0;margin:0}
.combat-dock .hp{width:100%;height:19px;margin:0;border:1px solid #8fc6cb44;border-radius:2px;transform:none}
.combat-dock .hp .hp-text{font:750 10px/17px system-ui;inset:0;text-align:center}
.combat-dock .energy{width:100%;height:13px;margin:0;border:1px solid #a6a4c04d;border-radius:2px;overflow:hidden;transform:none}
.combat-dock .energy-text{inset:0;width:auto;font:650 9px/11px system-ui;text-align:center}
.combat-dock .shield-rail{margin:0;height:8px}
.combat-dock .medallion-button{width:44px;height:44px;min-width:44px;margin:0;border-radius:3px;border-color:#a9987377;box-shadow:0 2px 8px #0005}
.combat-dock .medallion-button:hover:not(:disabled){border-color:#f4db9e}
.combat-dock .hud-abilities{position:static;grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:8px;padding:0 0 0 18px;margin:0;width:auto;border:0;border-left:1px solid #b7b18b36;transform:none;background:none;box-shadow:none}
.combat-dock .slot{width:var(--action-size);height:var(--action-size);flex:0 0 var(--action-size);margin:0;min-width:0;padding:0;border-radius:4px;border:1px solid #b1b4a46e;background:#08161d;box-shadow:0 3px 10px #0008;overflow:hidden}
.combat-dock .slot.ult{margin-left:6px;border-color:#c5ad7399}
.combat-dock .slot .icon{position:absolute;inset:3px;width:auto;height:auto;border-radius:2px}
.combat-dock .slot .ring{inset:3px;border-radius:2px}
.combat-dock .slot .key{position:absolute;top:auto;bottom:3px;left:3px;right:auto;z-index:5;border:1px solid #c2d3c74d;border-radius:2px;padding:1px 4px;color:#f4efdf;background:#051219eb;font:750 10px/14px system-ui;letter-spacing:0}
.combat-dock .slot .cd{position:absolute;inset:0;display:grid;place-items:center;font:750 25px/1 system-ui;text-shadow:0 2px 4px #000}
.combat-dock .slot .name,.combat-dock .slot .cost{display:none}
.combat-dock .slot.ready{border-color:#b7c3ae99}
.combat-dock .slot:hover,.combat-dock .slot:focus-visible{transform:none;border-color:#f5dca4;box-shadow:0 0 0 1px #dec78b66}
.combat-dock.ultimate-ready{border-top-color:#ebd18e;box-shadow:0 10px 32px #000b}
.combat-dock.ultimate-ready .slot.ult{border-color:#ffe4a1;box-shadow:0 0 14px #e1bb5950}
.combat-dock .slot.ult .ult-state{position:absolute;z-index:6;top:3px;left:3px;right:3px;padding:2px 0;color:#f6edce;background:#07111be8;font:800 9px/12px system-ui;text-align:center;letter-spacing:.4px;pointer-events:none}
.combat-dock .slot.ult .ult-charge{position:absolute;z-index:6;left:3px;right:3px;bottom:3px;height:4px;background:#030910;border-radius:2px;overflow:hidden}
.combat-dock .slot.ult .ult-charge i{display:block;height:100%;background:linear-gradient(90deg,#907343,#ffe7a6)}
.combat-dock .slot.ult .key{bottom:9px}
.combat-dock .slot.ult.ult-available{border:2px solid #ffe6a0;box-shadow:0 0 0 2px #f7d47855,0 0 24px #efbb4a80;animation:ultimate-breathe 1.8s ease-in-out infinite}
.combat-dock .slot.ult.ult-available .ult-state{color:#261900;background:linear-gradient(90deg,#efc76b,#fff0b8,#efc76b)}
.combat-dock .slot.ult.ult-available .key{color:#221706;background:#ffe6a0;border-color:#fff1bc;font-size:13px}
.combat-dock.ultimate-ready .energy>i{background:linear-gradient(90deg,#c99138,#ffe9a7);box-shadow:0 0 12px #f3c35d80}
.combat-announcements{position:fixed;top:max(155px,23vh);left:50%;transform:translateX(-50%);width:min(370px,calc(100vw - 32px));display:grid;gap:8px;pointer-events:none;z-index:25}
.combat-announcements .ultimate-notice{position:static;max-width:none;display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid #ffe3a2;border-radius:5px;background:linear-gradient(110deg,#382c14f5,#0b1822f5);box-shadow:0 0 35px #ffc65830,0 8px 24px #0008;color:#fff0c5;animation:ultimate-arrive .25s ease-out}
.ultimate-notice>i{display:block;flex:0 0 44px;width:44px;height:44px;border:1px solid #d9bb75;border-radius:3px}
.ultimate-notice>div{min-width:0;flex:1}.ultimate-notice strong{display:block;font:850 16px/1.3 system-ui;letter-spacing:.8px}.ultimate-notice span{display:block;margin-top:3px;font:550 12px/1.3 system-ui;color:#d8d6bc}
.ultimate-notice kbd{padding:7px 10px;border:1px solid #ffe7aa;border-bottom-width:3px;border-radius:4px;font:850 23px/1 system-ui;color:#fff1c6;background:#594420}
.hud-top .anchor-status{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:3px;padding:4px 5px;border:1px solid #83b7cf38;border-radius:3px;color:#b4ccdb;background:#08121ce8;white-space:nowrap}
.anchor-status b{font:750 8px/1.2 system-ui;letter-spacing:.25px}.anchor-status strong{font:800 12px/1 system-ui;font-variant-numeric:tabular-nums;color:#effaff}.anchor-status>span{color:#9bdbed}
.hud-top .anchor-status.soon{color:#ffdfa0;border-color:#ebbe6f99;background:#332617}.anchor-status.soon strong{color:#ffe4a1}
.hud-top .anchor-status.active{color:#a4ffe0;border-color:#65e6b999}
.anchor-notice{text-align:center;padding:9px 12px;border:1px solid #9ae4db;background:#102a30f5;color:#c6fff1;border-radius:4px;font:800 13px/1.3 system-ui;letter-spacing:.5px;box-shadow:0 5px 20px #0007}
.combat-announcements [hidden],.hud-top .anchor-status[hidden]{display:none}
@keyframes ultimate-breathe{50%{box-shadow:0 0 0 2px #f7d47899,0 0 30px #efbb4aaa}}
@keyframes ultimate-arrive{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.combat-dock .slot.ult.ult-available,.combat-announcements .ultimate-notice{animation:none}}
@media(max-width:760px){.combat-announcements{top:max(245px,30vh)}.combat-announcements .ultimate-notice{padding:10px;gap:8px}.ultimate-notice strong{font-size:13px}.ultimate-notice>i{width:36px;height:36px;flex-basis:36px}.anchor-status b{font-size:7px}.combat-dock .slot.ult .ult-state{font-size:8px;padding:0}.combat-dock .slot.ult.ult-available .key{font-size:11px}}
.combat-dock .combat-utility{grid-column:1/-1;grid-row:1;position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;height:29px;padding:0 0 8px;margin:0 0 9px;border:0;border-bottom:1px solid #a8bda52a}
.combat-dock .combat-utility:not(:has(.aura,.castbar.on)){display:none}
.combat-dock .statuses{position:static;transform:none;display:flex;max-width:55%;width:auto;margin:0;gap:5px}
.combat-dock .statuses .aura{width:23px;height:23px;flex-basis:23px}
.combat-dock .castbar{position:relative;inset:auto;transform:none;flex:0 1 270px;width:270px;height:20px;min-height:20px;margin:0 0 0 auto;border:1px solid #d3bc79;border-radius:2px}
.combat-dock .castbar .cast-name{inset:0;font:650 10px/18px system-ui;text-transform:none;letter-spacing:.2px}
.combat-dock .castbar .cast-hint{display:none}
@media(min-width:761px) and (max-width:1100px){.combat-dock{--action-size:54px}}
@media(max-height:700px) and (min-width:761px){.combat-dock{--action-size:54px;padding:10px 12px;bottom:8px}}
@media(max-width:760px){
 .combat-dock{--action-size:46px;grid-template-columns:max-content;padding:10px;bottom:9px}
 .combat-dock .hud-left{grid-column:1;grid-row:2;justify-content:center;padding:0 0 10px}
 .combat-dock .hud-abilities{grid-column:1;grid-row:3;justify-content:center;border-left:0;border-top:1px solid #b7b18b36;padding:10px 0 0;gap:6px}
 .combat-dock .slot.ult{margin-left:2px}.combat-dock .slot .key{font-size:9px;line-height:12px;padding:0 3px}
 .combat-dock .slot .cd{font-size:21px}.combat-dock .castbar{flex-basis:180px;min-width:100px}
}

/* Transparent dock, independent readable buttons and a slim power rail. */
.combat-dock{padding:0;border:0;background:none;box-shadow:none;gap:10px}
.combat-dock.ultimate-ready{border:0;box-shadow:none}
.combat-dock .hud-left{grid-template-columns:76px 44px 44px;gap:7px;padding:0}
.combat-dock .bars{width:76px;min-width:76px}
.combat-dock .energy{height:13px;background:#07111de8}
.combat-dock .hud-abilities{padding:0;border:0}
.combat-dock .combat-utility{border:0;padding:0;margin:0 0 5px;height:24px}
@media(max-width:760px){.combat-dock{padding:0;gap:5px}.combat-dock .hud-left{padding:0}.combat-dock .hud-abilities{padding:2px 0 0;border:0}}
