/* Plot actions (plot-actions.mjs; owner, 9 Oct 2026): a tapped desk's two bubbles, Build and Overclock, in the island
   bubbles' notched pixel frame (island-status.css), side by side over the desk. Above the next-job labels (a label they
   cover dims), under the HUD and the bottom bar (personal-island.mjs keeps them off both). At least 40 px tall. */
.plot-actions {position:fixed;left:0;top:0;z-index:42;display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:0 0 4px;pointer-events:none;will-change:transform;filter:drop-shadow(0 3px 0 #3a241860);font-synthesis:none}
.plot-actions[hidden],.plot-actions[data-offscreen=true],.plot-action[hidden],.plot-actions-note[hidden] {display:none!important}
.plot-actions-pair {display:flex;gap:9px;pointer-events:auto}
.plot-actions-pair.entering {animation:plot-actions-in .16s ease-out both}
.plot-action {--edge:#6d4a2c;--fill:#fff7db;--ink:#3b2418;--hover:#fffdf0;
  position:relative;display:flex;align-items:center;gap:7px;box-sizing:border-box;min-height:40px;margin:3px;padding:4px 11px 4px 8px;
  border:0;border-radius:0;background:var(--fill);color:var(--ink);font:700 13px/1.1 Pixeloid,monospace;white-space:nowrap;
  cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  box-shadow:0 -3px 0 0 var(--edge),0 3px 0 0 var(--edge),-3px 0 0 0 var(--edge),3px 0 0 0 var(--edge),inset 0 2px #ffffff80}
.plot-action:hover:not([aria-disabled=true]),.plot-action:focus-visible {background:var(--hover)}
.plot-action:active:not([aria-disabled=true]) {translate:0 1px}
.plot-action:focus-visible {outline:none;box-shadow:0 -3px 0 0 #2c6d86,0 3px 0 0 #2c6d86,-3px 0 0 0 #2c6d86,3px 0 0 0 #2c6d86,inset 0 2px #ffffff80}
/* Overclock: the flame's warm frame (the island's boost bubble, overclock.css). */
.plot-action[data-action=overclock] {--edge:#9a4a12;--fill:#fff0d2;--ink:#6a3112;--hover:#fff8e8}
.plot-action-icon {flex:none;display:grid;place-items:center;width:24px;height:24px}
.plot-action-icon .pixel-icon {display:block;width:24px;height:24px;image-rendering:pixelated}
.plot-action[data-action=overclock] .plot-action-icon {width:16px;height:21px}
.plot-action-icon .oc-flame {image-rendering:pixelated}
.plot-action-text {display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding-top:1px}
.plot-action-sub {font:400 11px/1 Pixeloid,monospace;font-variant-numeric:tabular-nums;opacity:.9}
/* Build's red dot while the PC needs care (MY PCS' "Needs care"): a small pixel square on its top right corner. */
.plot-action-dot {position:absolute;top:-6px;right:-6px;width:10px;height:10px;background:#d8432a;
  box-shadow:0 0 0 2px #fff7db,0 0 0 4px #8f3a2c;pointer-events:none}
.plot-action-dot[hidden] {display:none}
/* Waiting: no complete PC on this desk, an overclock already running, a payment in flight. */
.plot-action[aria-disabled=true] {--edge:#8c7f70;--fill:#f1ebe1;--ink:#6f655b;cursor:default}
.plot-action[aria-disabled=true] .oc-flame-ink {fill:#b49a82}
.plot-action[aria-disabled=true] .oc-flame-core {fill:#efe2c4}
.plot-action[aria-disabled=true][data-running=true] {--edge:#9a4a12;--fill:#fff6e6;--ink:#7a4a26}
.plot-action[aria-disabled=true][data-running=true] .oc-flame-ink {fill:#e0603a}
.plot-action[aria-disabled=true][data-running=true] .oc-flame-core {fill:#ffd23f}
/* Why Overclock waits, in the server's words, under the pair. */
.plot-actions-note {box-sizing:border-box;max-width:min(280px,calc(100vw - 24px));margin:2px 0 0;padding:5px 9px 6px;border:2px solid #8c7f70;
  background:#fff7db;color:#5a4a3a;font:400 11px/1.35 Pixeloid,monospace;text-align:center;white-space:normal;pointer-events:auto}
.plot-actions[data-below=true] {padding:4px 0 0}
/* A next-job label the pair covers steps back while it is open. */
.island-labels>[data-under-plot-actions=true] {opacity:.28;transition:opacity .12s ease}
@keyframes plot-actions-in {from {opacity:0;transform:translateY(4px) scale(.96)} to {opacity:1;transform:none}}
@media(max-width:700px){
  .plot-actions-pair {gap:8px}
  .plot-action {min-height:44px;padding:4px 10px 4px 8px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.plot-actions-pair.entering{animation:none}.island-labels>[data-under-plot-actions=true]{transition:none}}
