/* ---------- issuing accounts (admin) ----------
   Rides on the trainer-ID card from friends.css; only what's genuinely new
   lives here: the second field, the dice, the handover slip and the roster. */
.ac-wrap{max-width:392px}
.ac-card .idc-inp{margin-top:1px}
.ac-lab2{margin-top:9px}
.ac-pwrow{display:flex;align-items:center;gap:6px}
.ac-pw{flex:1;min-width:0;font-size:13px;letter-spacing:.01em}
.ac-roll{flex:none;width:29px;height:29px;border-radius:9px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#b9c0ea;
  transition:transform .3s cubic-bezier(.2,1.5,.4,1),background .15s,color .15s}
.ac-roll svg{width:16px;height:16px}
.ac-roll:hover{background:rgba(255,203,5,.16);border-color:rgba(255,203,5,.45);color:var(--gold)}
.ac-roll:active{transform:rotate(180deg) scale(.9)}
/* the clipboard sits beside the dice — same button, no spin on press */
.ac-clip:active{transform:scale(.9)}
.ac-clip.done{background:rgba(31,160,83,.2);border-color:rgba(47,213,115,.5);color:#5fe39a}
.idc-hint.bad{color:#ff8f75}

/* the card comes off the printer already stamped unsigned */
.ac-card.issued .idc-stamp b{background:linear-gradient(180deg,#6d7398,#4a5079)}

/* handover slip — the one moment the passphrase is readable */
.ac-hand{margin:11px 2px 0;padding:11px 13px 10px;border-radius:13px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.11)}
.ac-handrow{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:3px 0}
.ac-handrow i{font-style:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#767ea6}
.ac-handrow b{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:13px;color:#fff;word-break:break-all;text-align:right}
.ac-copy{width:100%;margin-top:9px;padding:9px;border-radius:10px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:7px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#dfe3ff;
  font-family:'Outfit';font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  transition:.15s}
.ac-copy svg{width:14px;height:14px}
.ac-copy:hover{background:rgba(255,203,5,.14);border-color:rgba(255,203,5,.4);color:var(--gold)}
.ac-copy:active{transform:scale(.97)}
.ac-warn{margin-top:7px;text-align:center;font-size:9.5px;letter-spacing:.04em;color:#8a7a55}

/* ---- the roster of cards you've handed out ---- */
.ac-roster{margin:14px 2px 0}
.ac-rosthead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  padding:0 2px 7px;border-bottom:1px solid rgba(255,255,255,.09)}
.ac-rosthead span{font-family:'Bebas Neue';font-size:14px;letter-spacing:.14em;color:#9aa2d2}
.ac-rosthead b{font-size:10px;font-weight:700;color:#767ea6}
.ac-rostlist{max-height:190px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.ac-none{padding:20px 0;text-align:center;font-size:11.5px;color:#5d648c}
.acr{display:flex;align-items:center;gap:10px;padding:9px 2px;
  border-bottom:1px solid rgba(255,255,255,.05)}
.acr:last-child{border-bottom:none}
.acr-face{flex:none;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  font-family:'Bebas Neue';font-size:16px;color:#fff;letter-spacing:.02em;
  background:linear-gradient(160deg,hsl(var(--fh) 46% 42%),hsl(var(--fh) 52% 22%));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
/* an unsigned card sits face-down: no colour until they turn up */
.acr.pending .acr-face{background:rgba(255,255,255,.05);color:#6b729b;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.09)}
.acr-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.acr-name{font-size:13px;font-weight:700;color:#eef0ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acr.pending .acr-name{color:#a6adcf}
.acr-you{font-style:normal;margin-left:6px;padding:1px 5px;border-radius:5px;
  background:rgba(255,203,5,.15);color:var(--gold);font-size:8.5px;font-weight:800;
  letter-spacing:.09em;text-transform:uppercase;vertical-align:1px}
.acr-sub{font-size:10px;color:#6b729b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acr-st{flex:none;padding:3px 9px;border-radius:99px;font-family:'Outfit';
  font-size:8.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  background:rgba(255,255,255,.06);color:#7e86b0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.09)}
.acr-st.on{background:rgba(31,160,83,.14);color:#5fe39a;box-shadow:inset 0 0 0 1px rgba(47,213,115,.34);
  display:inline-flex;align-items:center;gap:5px}
.acr-dot{width:5px;height:5px;border-radius:50%;background:#2fd573;
  box-shadow:0 0 7px #2fd573;animation:acrpulse 2s ease-in-out infinite}
@keyframes acrpulse{0%,100%{opacity:.55}50%{opacity:1}}

/* ---- removing an account ---- */
.acr-x,.acr-lock{flex:none;width:28px;height:28px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;transition:.15s}
.acr-x svg,.acr-lock svg{width:15px;height:15px}
.acr-x{cursor:pointer;background:transparent;border:1px solid transparent;color:#5f668f}
.acr-x:hover{background:rgba(227,53,13,.14);border-color:rgba(227,53,13,.4);color:#ff8f75}
.acr-x:active{transform:scale(.9)}
.acr-lock{color:#4a5079}          /* your own row, and other admins */
/* the row turns into the question rather than opening another dialog */
.acr.confirming{flex-direction:column;align-items:stretch;gap:9px;padding:12px 11px;
  border-radius:12px;background:rgba(227,53,13,.09);
  box-shadow:inset 0 0 0 1px rgba(227,53,13,.32);
  animation:acrask .2s ease both}
@keyframes acrask{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.acr-q b{display:block;font-size:13.5px;font-weight:800;color:#ffd0c2}
.acr-q span{display:block;margin-top:2px;font-size:10.5px;line-height:1.45;color:#c4907f}
.acr-btns{display:flex;gap:8px}
.acr-keep,.acr-del{flex:1;padding:9px;border-radius:9px;cursor:pointer;
  font-family:'Outfit';font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  transition:.15s}
.acr-keep{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#c8cdf0}
.acr-keep:hover{background:rgba(255,255,255,.14);color:#fff}
.acr-del{background:linear-gradient(180deg,#e3350d,#b52709);border:1px solid #ff6a45;color:#fff;
  box-shadow:0 6px 16px -6px rgba(227,53,13,.9)}
.acr-del:hover{filter:brightness(1.1)}
.acr-del:disabled{opacity:.6;cursor:default}
.acr-keep:active,.acr-del:active{transform:scale(.97)}
.acr.gone{animation:acrgone .26s ease forwards}
@keyframes acrgone{to{opacity:0;transform:translateX(26px);max-height:0;padding:0;margin:0}}

/* ---- how long an account lives ---- */
.ac-chips,.acr-chips{display:flex;flex-wrap:wrap;gap:5px}
.acr-chip{padding:6px 10px;border-radius:8px;cursor:pointer;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);color:#a9b0d8;
  font-family:'Outfit';font-size:10.5px;font-weight:700;letter-spacing:.03em;transition:.15s}
.acr-chip:hover{background:rgba(255,255,255,.12);color:#fff}
.acr-chip.on{background:rgba(255,203,5,.16);border-color:rgba(255,203,5,.5);color:var(--gold)}
.acr-chip:disabled{opacity:.55;cursor:default}
.acr-clock,.acr-pay{flex:none;width:28px;height:28px;border-radius:9px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:.15s;
  background:transparent;border:1px solid transparent;color:#5f668f}
.acr-clock svg,.acr-pay svg{width:15px;height:15px}
.acr-clock:hover{background:rgba(255,203,5,.14);border-color:rgba(255,203,5,.4);color:var(--gold)}
.acr-clock:active,.acr-pay:active{transform:scale(.9)}
/* green on hover, because this one moves money rather than time */
.acr-pay:hover{background:rgba(47,213,115,.14);border-color:rgba(47,213,115,.42);color:#5fe39a}
/* an account whose run has ended — still all there, just shut out */
.acr.expired .acr-face{filter:grayscale(1);opacity:.55}
.acr.expired .acr-name{color:#8d93b8}
.acr-st.off{background:rgba(227,53,13,.14);color:#ff8f75;
  box-shadow:inset 0 0 0 1px rgba(227,53,13,.34)}
/* the row turns into the duration picker, same trick as the delete prompt */
.acr.windowing{flex-direction:column;align-items:stretch;gap:9px;padding:12px 11px;
  border-radius:12px;background:rgba(255,203,5,.07);
  box-shadow:inset 0 0 0 1px rgba(255,203,5,.28);animation:acrask .2s ease both}
.acr.windowing .acr-q b{color:#ffe9a8}
.acr.windowing .acr-q span{color:#bda971}
.acr.windowing .acr-keep{flex:none;align-self:flex-start;padding:7px 14px}
/* live wallet, right of the name */
.acr-cash{flex:none;font-family:'Bebas Neue';font-size:15px;letter-spacing:.02em;
  color:var(--gold);min-width:58px;text-align:right;transition:color .25s ease}
.acr-cash.none{color:#4d5478}
.acr-cash.up{animation:acrCashUp .9s ease}
.acr-cash.down{animation:acrCashDown .9s ease}
@keyframes acrCashUp{0%{color:#5fe39a}60%{color:#5fe39a}100%{color:var(--gold)}}
@keyframes acrCashDown{0%{color:#ff7a5c}60%{color:#ff7a5c}100%{color:var(--gold)}}
.acr.pending .acr-cash{color:#4d5478}
