/* CONTROL HUD: A B C chips (owner / hot zone / secured), hot zone + overtime banners, Team Energy,
   team ability menu (Z), toasts. PawStrike style: navy panels, Cats blue / Dogs orange, hot = purple-cyan. */
.obj-chip.ctl { display: flex; flex-direction: column; align-items: center; min-width: 58px; padding: 4px 12px 6px; font-family: 'Rajdhani', 'Segoe UI', sans-serif; }
.obj-chip.ctl b { font-size: 18px; font-weight: 700; line-height: 1.1; }
.obj-chip.ctl small { font-size: 11px; font-weight: 700; letter-spacing: 1px; color: #e8e6ff; }
.obj-chip.ctl .fill { width: 100%; transform-origin: left center; transition: transform 0.12s linear; }
.obj-chip.ctl.hot { border-color: #b45cff; box-shadow: 0 0 0 2px rgba(63, 230, 255, 0.35), 0 0 18px rgba(180, 92, 255, 0.55); animation: ctlHot 1.2s ease-in-out infinite alternate; }
.obj-chip.ctl.locked small { color: #9ff0ff; }
@keyframes ctlHot { from { box-shadow: 0 0 0 2px rgba(63, 230, 255, 0.25), 0 0 10px rgba(180, 92, 255, 0.4); } to { box-shadow: 0 0 0 2px rgba(63, 230, 255, 0.55), 0 0 22px rgba(180, 92, 255, 0.8); } }
.ctl-hz, .ctl-ot { align-self: center; padding: 5px 12px; border-radius: 10px; font: 700 15px 'Rajdhani', sans-serif; letter-spacing: 1.2px; white-space: nowrap; }
.ctl-hz:empty { display: none; }
.ctl-hz.soon { color: #e9d4ff; background: rgba(60, 25, 110, 0.75); border: 1px solid #b45cff; animation: ctlBlink 0.8s steps(2) infinite; }
.ctl-hz.on { color: #fff; background: linear-gradient(90deg, rgba(180, 92, 255, 0.85), rgba(63, 230, 255, 0.75)); }
.ctl-ot { color: #2a1300; background: linear-gradient(180deg, #ffcf4a, #ff9a3d); }
.ctl-ot b { font-size: 18px; }
@keyframes ctlBlink { 50% { opacity: 0.55; } }

/* Team Energy (right side, above the hotbar) */
.ctl-energy { position: absolute; right: 18px; bottom: 150px; zoom: calc(var(--ui) * var(--ui-k)); width: 230px; padding: 8px 12px; border-radius: 14px;
  background: rgba(15, 20, 45, 0.82); border: 1px solid rgba(130, 140, 255, 0.3); font-family: 'Rajdhani', sans-serif; pointer-events: none; --acc: #ff8a1f; }
.ctl-energy.team-cats { --acc: #3fc0ff; }
.ctl-energy.hidden { display: none; }
.ce-top { display: flex; justify-content: space-between; font: 700 13px 'Rajdhani', sans-serif; letter-spacing: 1.5px; color: #aeb0d6; }
.ce-top b { color: #fff; font-size: 16px; }
.ce-bar { position: relative; height: 8px; margin: 4px 0; border-radius: 4px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.ce-bar span { position: absolute; inset: 0; transform-origin: left center; background: linear-gradient(90deg, var(--acc), #fff6); transition: transform 0.3s ease; }
.ce-bar .tick { position: absolute; top: 0; bottom: 0; width: 2px; background: rgba(0, 0, 0, 0.45); z-index: 1; }
.ce-ready { font: 600 13px 'Inter', sans-serif; color: #dcdcff; }
.ctl-energy kbd, .ca-card kbd { font: 700 11px 'Inter', sans-serif; padding: 0 5px; border-radius: 4px; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.28); }

/* ability menu (Z) */
.ctl-abilities { position: absolute; inset: 0; z-index: 30; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(10, 8, 30, 0.45); font-family: 'Rajdhani', sans-serif; color: #f6f4ff; }
.ctl-abilities.hidden { display: none; }
.ca-panel { width: min(760px, 100%); padding: 18px; border-radius: 20px; background: rgba(15, 20, 45, 0.95); border: 1px solid rgba(130, 140, 255, 0.28); box-shadow: 0 24px 70px rgba(0, 0, 0, 0.6); --acc: #ff8a1f; --acc2: #ffb21c; }
.ca-panel.team-cats { --acc: #3d8bff; --acc2: #7fd0ff; }
.ca-panel header { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.ca-panel h2 { margin: 0; font: 400 30px 'Anton', 'Impact', sans-serif; letter-spacing: 3px; background: linear-gradient(90deg, #b45cff, #3fe6ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ca-panel header span { font: 700 15px 'Rajdhani', sans-serif; letter-spacing: 1.5px; color: #aeb0d6; }
.ca-panel header button { margin-left: auto; width: 36px; height: 36px; border-radius: 10px; border: 1px solid rgba(160, 150, 255, 0.35); background: rgba(255, 255, 255, 0.05); color: #fff; cursor: pointer; }
.ca-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.ca-card { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px 10px; border-radius: 16px; cursor: pointer; color: #fff; text-align: center;
  background: rgba(8, 10, 28, 0.75); border: 1.5px solid var(--acc); }
.ca-card:hover:not(:disabled) { background: rgba(255, 255, 255, 0.06); transform: translateY(-2px); }
.ca-card.off { opacity: 0.45; border-color: rgba(130, 140, 255, 0.22); cursor: default; }
.ca-card kbd { position: absolute; top: 8px; left: 8px; }
.ca-card i { font-style: normal; font-size: 32px; }
.ca-card b { font: 700 17px 'Rajdhani', sans-serif; letter-spacing: 1px; text-transform: uppercase; }
.ca-card small { font: 500 12px 'Inter', sans-serif; color: #9a9cc4; min-height: 30px; }
.ca-card em { font: 700 14px 'Rajdhani', sans-serif; font-style: normal; color: var(--acc2); }
.ca-panel p { margin: 12px 0 0; font: 500 13px 'Inter', sans-serif; color: #8d90b8; text-align: center; }
@media (max-width: 700px) { .ca-grid { grid-template-columns: repeat(2, 1fr); } }

.ctl-toasts { position: absolute; right: 18px; bottom: 240px; zoom: calc(var(--ui) * var(--ui-k)); display: flex; flex-direction: column; align-items: flex-end; gap: 4px; pointer-events: none; }
.ctl-toast { font: 700 16px 'Rajdhani', sans-serif; padding: 3px 10px; border-radius: 8px; background: rgba(15, 20, 45, 0.85); animation: sabToast 2.8s ease forwards; }
.ctl-toast.good { color: #3be38a; } .ctl-toast.bad { color: #ff8796; }
