/* ============ PLUG // الوصلة — rappers ⇄ producers swipe deck ============ */
.golivenav.plugnav .lbl,.navitem.plugnav .lbl{color:var(--magenta)}
.navitem.plugnav.on .ic,.navitem.plugnav .ic{color:var(--magenta)}

/* page intro line under subtabs */
.plug-intro{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px;
  font-family:'Space Mono';font-size:10px;letter-spacing:.06em;color:var(--ash)}
.plug-intro .pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);
  background:#0a0810;padding:6px 11px;color:var(--fog)}
.plug-intro .pill b{font-family:'Anton';font-weight:400;color:var(--magenta);font-size:13px;letter-spacing:.02em}
.plug-intro .pill.link b{color:var(--siren)}

/* ---------- the deck ---------- */
.deckwrap{display:flex;flex-direction:column;align-items:center;gap:14px}
.deck{position:relative;width:372px;max-width:100%;height:424px;user-select:none;touch-action:pan-y}
.swipe-card{position:absolute;inset:0;background:linear-gradient(180deg,#100e15,#0a0810);
  border:1px solid var(--line);box-shadow:0 30px 70px -28px #000;overflow:hidden;
  display:flex;flex-direction:column;will-change:transform}
.swipe-card.top{cursor:grab}
.swipe-card.top.grabbing{cursor:grabbing}
.swipe-card.behind{pointer-events:none}

/* card cover */
.pc-cover{position:relative;height:158px;flex:none;overflow:hidden;
  border-bottom:1px solid var(--line);display:grid;place-items:center}
.pc-cover .glow{position:absolute;inset:0;opacity:.9}
.pc-cover .scanc{position:absolute;inset:0;opacity:.35;pointer-events:none;
  background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.45) 2px 3px)}
.pc-cover .glyphbg{position:absolute;right:-14px;bottom:-30px;font-family:'Reem Kufi';
  font-size:180px;line-height:.7;color:#000;opacity:.16;pointer-events:none}
.pc-cover .roletag{position:absolute;top:14px;left:14px;background:#000a;backdrop-filter:blur(2px)}
.pc-cover .dist{position:absolute;top:14px;right:14px;font-family:'Space Mono';font-size:10px;
  letter-spacing:.1em;color:var(--bone);background:#000a;border:1px solid #ffffff22;padding:4px 9px}
.pc-bigav{position:relative;z-index:2;filter:drop-shadow(0 8px 24px #000a)}

/* card body */
.pc-body{flex:1;display:flex;flex-direction:column;padding:13px 16px 15px;min-height:0;gap:9px}
.pc-namerow{display:flex;align-items:baseline;gap:10px}
.pc-namerow .pc-name{flex:1 1 auto;min-width:0}
.pc-namerow .pc-loc{flex:0 0 auto}
.pc-name{font-family:'Anton';font-size:27px;line-height:.9;letter-spacing:.01em;white-space:nowrap}
.pc-name .verif{color:var(--cyan);font-size:16px}
.pc-loc{font-family:'Space Mono';font-size:10px;color:var(--ash);letter-spacing:.04em;margin-left:auto;text-align:right;white-space:nowrap}
.pc-genres{display:flex;flex-wrap:wrap;gap:6px}
.pc-gchip{font-family:'Space Mono';font-size:9px;letter-spacing:.08em;color:var(--cyan);
  border:1px solid color-mix(in oklch,var(--cyan),transparent 62%);padding:4px 8px}
.pc-bio{font-family:'Space Mono';font-size:10.5px;line-height:1.5;color:var(--fog);text-wrap:pretty;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* loop module */
.pc-loop{margin-top:auto;border:1px solid var(--line);background:#07060a;padding:10px 12px;
  display:flex;flex-direction:column;gap:8px}
.pc-loop .lr{display:flex;align-items:center;gap:11px}
.pc-loop .play{flex:none;width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  display:grid;place-items:center;font-size:16px;color:#000;background:var(--siren);
  box-shadow:0 0 20px -5px var(--siren);transition:transform .12s}
.pc-loop .play:hover{transform:scale(1.06)}
.pc-loop .play.on{background:var(--magenta);box-shadow:0 0 20px -5px var(--magenta)}
.pc-loop .lmeta{min-width:0}
.pc-loop .lt{font-family:'Anton';font-size:15px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-loop .ls{font-family:'Space Mono';font-size:9px;color:var(--ash);letter-spacing:.06em;margin-top:3px}
.pc-loop .pulse{margin-left:auto;font-family:'Space Mono';font-size:9px;letter-spacing:.14em;
  color:var(--magenta);white-space:nowrap;display:flex;align-items:center;gap:6px}
.pc-loop .pulse .d{width:7px;height:7px;border-radius:50%;background:var(--magenta);animation:pulse 1s infinite}
.pc-loop .pulse.idle{color:#56506299}
.pc-loop .pulse.idle .d{background:#56506299;animation:none}

.plugwave{display:flex;align-items:flex-end;gap:2px;height:34px;width:100%}
.plugwave span{flex:1;min-width:2px;background:#2c2638;transition:height .08s linear}
.plugwave.on span{background:var(--magenta)}

/* stamps shown while dragging */
.stamp{position:absolute;top:24px;z-index:5;font-family:'Anton';font-size:30px;letter-spacing:.06em;
  padding:7px 16px;border:3px solid currentColor;opacity:0;pointer-events:none;
  transition:opacity .06s;text-transform:uppercase}
.stamp.plug{right:18px;color:var(--siren);transform:rotate(11deg)}
.stamp.pass{left:18px;color:var(--blood);transform:rotate(-11deg)}

/* action buttons */
.deck-acts{display:flex;align-items:center;gap:18px}
.da-btn{border-radius:50%;border:1px solid var(--line);background:#0c0a12;cursor:pointer;
  display:grid;place-items:center;color:var(--fog);transition:transform .12s,border-color .12s,color .12s,background .12s}
.da-btn:hover{transform:translateY(-2px)}
.da-btn:active{transform:scale(.92)}
.da-btn.pass{width:64px;height:64px;font-size:24px}
.da-btn.pass:hover{border-color:var(--blood);color:var(--blood)}
.da-btn.replay{width:50px;height:50px;font-size:17px}
.da-btn.replay:hover{border-color:var(--cyan);color:var(--cyan)}
.da-btn.plug{width:72px;height:72px;font-size:28px;background:var(--magenta);color:#000;border-color:var(--magenta);
  box-shadow:0 0 26px -6px var(--magenta)}
.da-btn.plug:hover{background:var(--bone);border-color:var(--bone)}
.deck-hint{font-family:'Space Mono';font-size:10px;color:#56506299;letter-spacing:.08em;text-align:center}
.deck-hint b{color:var(--ash);font-weight:400}

/* empty / end of deck */
.deck-empty{width:380px;max-width:100%;min-height:420px;border:1px dashed var(--line);background:#08070b;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:30px}
.deck-empty .big{font-family:'Anton';font-size:30px;line-height:.95;max-width:280px}
.deck-empty .sm{font-family:'Space Mono';font-size:11px;color:var(--ash);line-height:1.6;max-width:300px}
.deck-empty .arname{font-family:'Reem Kufi';font-size:22px;color:var(--magenta)}

/* ---------- match overlay ---------- */
.plugmatch{position:fixed;inset:0;z-index:82;display:grid;place-items:center;padding:24px;
  background:rgba(4,3,6,.86);backdrop-filter:blur(4px);animation:rise .3s ease both}
.pm-inner{width:440px;max-width:94vw;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}
.pm-title{font-family:'Anton';font-size:54px;line-height:.86;letter-spacing:.01em;
  text-shadow:3px 0 var(--magenta),-3px 0 var(--cyan)}
.pm-ar{font-family:'Reem Kufi';font-size:26px;color:var(--magenta);margin-top:-6px}
.pm-avs{display:flex;align-items:center;gap:0;justify-content:center}
.pm-avs .spark{font-size:34px;color:var(--siren);margin:0 -6px;z-index:3;
  filter:drop-shadow(0 0 12px var(--siren));animation:pulse 1.1s infinite}
.pm-sub{font-family:'Space Mono';font-size:12px;color:var(--fog);line-height:1.6;max-width:340px}
.pm-sub b{color:var(--bone)}
.pm-acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:4px}

/* ---------- producer side ---------- */
.prodpanel{display:flex;flex-direction:column;gap:0}
.activate{border:1px solid var(--line);border-top:3px solid var(--magenta);
  background:linear-gradient(135deg,color-mix(in oklch,var(--magenta),#000 86%),#0a0810);
  padding:18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.activate .ai{flex:1;min-width:200px}
.activate .at{font-family:'Anton';font-size:22px;line-height:1}
.activate .ad{font-family:'Space Mono';font-size:11px;color:var(--fog);margin-top:6px;line-height:1.5}
.toggleswitch{flex:none;width:62px;height:32px;border-radius:18px;border:1px solid var(--line);
  background:#0a0810;position:relative;cursor:pointer;transition:.18s}
.toggleswitch .knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;
  background:var(--ash);transition:.18s}
.toggleswitch.on{background:color-mix(in oklch,var(--magenta),#000 55%);border-color:var(--magenta)}
.toggleswitch.on .knob{left:33px;background:var(--magenta);box-shadow:0 0 12px -2px var(--magenta)}

.livestrip{display:flex;align-items:center;gap:10px;border:1px solid var(--siren);border-left-width:3px;
  background:color-mix(in oklch,var(--siren),#000 88%);padding:12px 14px;margin-top:14px;
  font-family:'Space Mono';font-size:11px;color:var(--bone)}
.livestrip .dg{width:8px;height:8px;border-radius:50%;background:var(--siren);box-shadow:0 0 10px var(--siren);animation:pulse 1.2s infinite;flex:none}
.livestrip b{font-family:'Anton';font-weight:400;color:var(--siren);font-size:15px;letter-spacing:.02em}

/* loop uploader */
.loopdrop{border:2px dashed #3a3447;background:#08070b;padding:34px 20px;text-align:center;cursor:pointer;transition:.15s;margin-top:18px}
.loopdrop:hover{border-color:var(--magenta);background:#0c0810}
.loopdrop .ic{font-size:40px;color:var(--magenta);line-height:1;margin-bottom:8px}
.loopdrop .t{font-family:'Anton';font-size:18px}
.loopdrop .s{font-family:'Space Mono';font-size:10px;color:var(--ash);margin-top:6px;letter-spacing:.06em}

.loopform{border:1px solid var(--line);background:var(--panel);padding:16px;margin-top:14px;display:flex;flex-direction:column;gap:12px;animation:rise .25s ease both}
.loopform .lfwave{height:40px}
.loopform .lfgrid{display:grid;grid-template-columns:1fr 92px;gap:12px}
.lf-field{display:flex;flex-direction:column;gap:6px}
.lf-field label{font-family:'Space Mono';font-size:9px;letter-spacing:.16em;color:var(--ash);text-transform:uppercase}
.lf-field input{background:#08070b;border:1px solid var(--line);color:var(--bone);font-family:'Space Mono';font-size:12px;padding:9px 11px;outline:none}
.lf-field input:focus{border-color:var(--magenta)}
.lf-genres{display:flex;flex-wrap:wrap;gap:6px}
.lf-gchip{font-family:'Space Mono';font-size:10px;color:var(--fog);background:#0a0810;border:1px solid var(--line);padding:6px 10px;cursor:pointer}
.lf-gchip.on{background:var(--cyan);color:#000;border-color:var(--cyan)}
.lf-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:2px}

/* my loops list */
.myloops{margin-top:22px}
.myloops h5{font-family:'Space Mono';font-size:10px;letter-spacing:.2em;color:var(--ash);text-transform:uppercase;margin-bottom:10px;border-bottom:1px solid #15121b;padding-bottom:8px}
.looprow{display:flex;align-items:center;gap:12px;padding:11px;background:var(--panel);border:1px solid var(--line);margin-bottom:8px}
.looprow .lp{flex:none;width:36px;height:36px;border-radius:50%;background:var(--siren);color:#000;border:none;display:grid;place-items:center;font-size:13px;cursor:pointer}
.looprow .lp.on{background:var(--magenta)}
.looprow .li{min-width:0;flex:none;width:150px}
.looprow .ln{font-family:'Anton';font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.looprow .ls{font-family:'Space Mono';font-size:9px;color:var(--ash)}
.looprow .lw{flex:1}
.looprow .lstat{flex:none;font-family:'Space Mono';font-size:10px;color:var(--magenta);text-align:right;white-space:nowrap}
.looprow .lstat span{display:block;color:var(--ash);font-size:8px}
.loopdel{flex:none;background:none;border:1px solid var(--line);color:var(--ash);width:30px;height:30px;cursor:pointer;font-size:13px}
.loopdel:hover{border-color:var(--blood);color:var(--blood)}

@media(max-width:560px){.deck{height:540px}.pc-name{font-size:26px}.pm-title{font-size:42px}}

/* live waveform animation (React port — bars breathe while the loop plays) */
.plugwave span{transform-origin:bottom}
.plugwave.on span{animation:plugbar .8s ease-in-out infinite alternate}
@keyframes plugbar{from{transform:scaleY(.55)}to{transform:scaleY(1)}}
