/* LP Terminal — movers page (js/movers.js) */

.mv-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:14px 0}
.mv-check{display:flex;align-items:center;gap:6px;margin:0}
.mv-check input[type="checkbox"]{width:auto;padding:0}
.mv-check input[type="number"]{padding:3px 6px;width:52px}

table.movers{font:12.5px ui-monospace,Menlo,monospace}
table.movers .m5col b{color:var(--tx);font-size:13.5px}
table.movers th.sortable{cursor:pointer;user-select:none}
table.movers th.sortable:hover{color:var(--tx)}
table.movers th.sorted{color:var(--blu)}

.pair{font-weight:600}
.sub-fee{color:var(--dim);font-size:11px}

.links{display:inline-flex;gap:6px;margin-left:4px}
.lnk{color:var(--dim);font-size:10.5px;font-weight:700;border:1px solid var(--line);border-radius:4px;padding:1px 5px}
.lnk:hover{color:var(--tx);text-decoration:none;border-color:var(--blu)}

.chip-loud{box-shadow:0 0 0 1px var(--grn);font-size:11px}

/* GEM chip fallback (primary rules live in css/scanner.css, loaded globally;
   duplicated here minimally so movers row styling holds even if that changes) */
.chip.c-gem{background:rgba(63,185,80,.14);color:#7ee787;border:1px solid rgba(63,185,80,.6)}
.chip-gem-loud{font-weight:800;box-shadow:0 0 0 1px rgba(63,185,80,.55),0 0 10px rgba(63,185,80,.55);
  animation:gem-chip-pulse 2.2s ease-in-out infinite}
@keyframes gem-chip-pulse{
  0%,100%{box-shadow:0 0 0 1px rgba(63,185,80,.4),0 0 6px rgba(63,185,80,.4)}
  50%{box-shadow:0 0 0 1px rgba(63,185,80,.7),0 0 14px rgba(63,185,80,.7)}
}
@media (prefers-reduced-motion:reduce){.chip-gem-loud{animation:none}}

.chips-cell{white-space:nowrap}
.exit-cell{display:inline-block}

/* reuse skeleton loading rows from scanner page look */
.scanner-skel{display:flex;flex-direction:column;gap:8px}
.skel-row{height:34px;border-radius:8px;background:var(--card);border:1px solid var(--line);
  background-image:linear-gradient(90deg,var(--card) 0%,rgba(255,255,255,.04) 50%,var(--card) 100%);
  background-size:200% 100%;animation:skel-shimmer 1.4s ease-in-out infinite}
@keyframes skel-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

.scanner-section{margin:16px 0}

/* alerts */
.alert-bell{margin-left:12px;background:transparent;border:1px solid var(--line);border-radius:20px;
  font-size:14px;padding:4px 10px;cursor:pointer;line-height:1}
.alert-bell.armed{border-color:var(--grn)}
.alert-bell:hover{border-color:var(--blu)}

.alert-toast-stack{position:fixed;right:16px;bottom:16px;z-index:9999;
  display:flex;flex-direction:column;gap:8px;align-items:flex-end;
  pointer-events:none}

.alert-toast{
  pointer-events:auto;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-left:3px solid var(--amb);
  border-radius:8px;padding:10px 14px;min-width:220px;max-width:340px;
  box-shadow:0 6px 20px rgba(0,0,0,.4);
  font:12.5px ui-monospace,Menlo,monospace;color:var(--tx);
  opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease}
.alert-toast.show{opacity:1;transform:translateY(0)}
.alert-toast-title{font-weight:700;margin-bottom:3px}
.alert-toast-body{color:var(--dim);font-size:11.5px}

/* GEM toast: does not auto-dismiss (click to dismiss) — loudest alert path */
.alert-toast-gem{
  border-left-color:var(--grn);
  background:linear-gradient(160deg,rgba(63,185,80,.16),var(--card) 65%);
  box-shadow:0 0 0 1px rgba(63,185,80,.45),0 0 24px rgba(63,185,80,.35),0 8px 24px rgba(0,0,0,.45);
  animation:gem-toast-pulse 2.4s ease-in-out infinite;
}
.alert-toast-gem .alert-toast-title{color:#7ee787}
@keyframes gem-toast-pulse{
  0%,100%{box-shadow:0 0 0 1px rgba(63,185,80,.35),0 0 16px rgba(63,185,80,.28),0 8px 24px rgba(0,0,0,.45)}
  50%{box-shadow:0 0 0 1px rgba(63,185,80,.6),0 0 30px rgba(63,185,80,.45),0 8px 24px rgba(0,0,0,.45)}
}
@media (prefers-reduced-motion:reduce){.alert-toast-gem{animation:none}}

/* FADE toast on a user's own position ("YOUR POOL"): sticky + red pulse — the
   loudest non-GEM alert path, since it means the operator may have walked. */
.alert-toast-fade-mine{
  border-left-color:var(--red);
  background:linear-gradient(160deg,rgba(248,81,73,.18),var(--card) 65%);
  box-shadow:0 0 0 1px rgba(248,81,73,.5),0 0 24px rgba(248,81,73,.4),0 8px 24px rgba(0,0,0,.45);
  animation:fade-toast-pulse 1.8s ease-in-out infinite;
}
.alert-toast-fade-mine .alert-toast-title{color:var(--red)}
@keyframes fade-toast-pulse{
  0%,100%{box-shadow:0 0 0 1px rgba(248,81,73,.4),0 0 16px rgba(248,81,73,.32),0 8px 24px rgba(0,0,0,.45)}
  50%{box-shadow:0 0 0 1px rgba(248,81,73,.7),0 0 32px rgba(248,81,73,.55),0 8px 24px rgba(0,0,0,.45)}
}
@media (prefers-reduced-motion:reduce){.alert-toast-fade-mine{animation:none}}

@media (max-width:560px){
  .alert-toast-stack{left:12px;right:12px;align-items:stretch}
  .alert-toast{max-width:none}
}

/* rotation (js/rotation_ui.js) */
table.rot-pairs{font:12.5px ui-monospace,Menlo,monospace}
table.rot-pairs th:first-child,table.rot-pairs td:first-child,
table.rot-pairs th:nth-child(3),table.rot-pairs td:nth-child(3){text-align:left}
.rot-arrow{color:var(--dim);padding:0 2px !important}
.rot-fade{color:var(--red);font-weight:600}
.rot-ignite{color:var(--grn);font-weight:600}
table.rot-pairs td b{font-size:13.5px}

/* repeated-pair highlight: intensity scales with count — same-operator signal */
table.rot-pairs tr.rot-warm td{background:rgba(210,153,34,.08)}
table.rot-pairs tr.rot-warm td:first-child{box-shadow:inset 3px 0 0 var(--amb)}
table.rot-pairs tr.rot-hot td{background:rgba(248,81,73,.1)}
table.rot-pairs tr.rot-hot td:first-child{box-shadow:inset 3px 0 0 var(--red)}
table.rot-pairs tr.rot-hot td b{color:var(--red)}

.rot-log{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;
  font:12px ui-monospace,Menlo,monospace;max-height:340px;overflow-y:auto}
.rot-log li{padding:6px 8px;background:var(--card);border:1px solid var(--line);border-radius:6px}
.rot-log-ts{color:var(--dim);margin-right:8px}
