@font-face{font-family:'Pretendard Variable';src:url(/fonts/PretendardVariable.woff2) format('woff2-variations');font-weight:45 920;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url(/fonts/SpaceGrotesk-700.ttf) format('truetype');font-weight:500 800;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(/fonts/PlexMono-500.ttf) format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(/fonts/PlexMono-600.ttf) format('truetype');font-weight:600;font-display:swap}

:root{
  /* 무대 한 칸 = 16:9 무대 너비의 1/100 → 1920·4K 모두 같은 모양 */
  --u:min(1vw, calc(100vh * 16 / 9 / 100));
  --bg0:#0B0A1C; --bg1:#121035; --ind:#4F46E5; --ind2:#6366F1; --ind3:#818CF8;
  --lav:#A5B4FC; --lav2:#C7D2FE; --ink:#FFFFFF; --gold:#E7C766;
  --line:rgba(165,180,252,.26); --glass:rgba(20,18,56,.62);
  --ok:#34D399; --bad:#F87171;
  --kr:'Pretendard Variable',Pretendard,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --en:'Space Grotesk','Pretendard Variable',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg0);color:var(--ink);font-family:var(--kr);overflow:hidden;word-break:keep-all;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer}
kbd{font-family:var(--mono);font-weight:600}
[hidden]{display:none !important}

#bg{position:fixed;inset:0;background:#0B0A1C url(/img/bg.jpg) center/cover no-repeat}
#bg-old{background:
  radial-gradient(60% 70% at 85% 10%, rgba(79,70,229,.42), transparent 70%),
  radial-gradient(55% 65% at 8% 95%, rgba(99,102,241,.26), transparent 70%),
  radial-gradient(40% 40% at 45% 55%, rgba(30,27,75,.6), transparent 80%),
  linear-gradient(160deg,#0E0C26 0%,#0B0A1C 55%,#0D0B24 100%)}
#bg::after{content:"";position:absolute;inset:0;opacity:.35;
  background-image:linear-gradient(rgba(165,180,252,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(165,180,252,.07) 1px,transparent 1px);
  background-size:calc(var(--u)*4) calc(var(--u)*4);
  mask-image:radial-gradient(80% 80% at 50% 45%,#000 30%,transparent 85%)}

.stage{position:absolute;left:50%;top:50%;width:calc(var(--u)*100);height:calc(var(--u)*56.25);transform:translate(-50%,-50%);overflow:hidden}
.stage::before{content:"";position:absolute;left:0;right:0;top:0;height:calc(var(--u)*.16);background:linear-gradient(90deg,transparent,var(--ind3) 15%,var(--lav) 50%,var(--ind3) 85%,transparent);opacity:.85}

/* 머리 */
.top{position:absolute;left:calc(var(--u)*3);right:calc(var(--u)*3);top:calc(var(--u)*1.6);height:calc(var(--u)*3.6);display:flex;align-items:center;gap:calc(var(--u)*2)}
.brand{display:flex;align-items:center;gap:calc(var(--u)*1.1);flex:none}
.brand img{height:calc(var(--u)*2.3);display:block}
.brand .bt{display:flex;flex-direction:column;gap:calc(var(--u)*.2)}
.brand .bt b{font-family:var(--mono);font-weight:600;font-size:calc(var(--u)*1.15);letter-spacing:.14em;color:var(--lav)}
.brand .bt span{font-family:var(--en);font-weight:700;font-size:calc(var(--u)*.95);letter-spacing:.02em;color:var(--lav2);opacity:.85}
.brand .dv{width:1px;height:calc(var(--u)*2.2);background:rgba(255,255,255,.25)}
.brand .ld{font-family:var(--mono);font-weight:600;font-size:calc(var(--u)*1.05);letter-spacing:.22em;color:var(--ink);display:flex;flex-direction:column;gap:calc(var(--u)*.15)}
.brand .ld span{font-family:var(--kr);font-weight:600;letter-spacing:.06em;font-size:calc(var(--u)*.95);color:var(--lav2)}
.fair{margin-left:auto;display:flex;align-items:baseline;gap:calc(var(--u)*.6);padding:calc(var(--u)*.55) calc(var(--u)*1.3);border:1px solid var(--line);border-radius:999px;background:rgba(14,12,40,.55);white-space:nowrap}
.fair .fl{font-size:calc(var(--u)*.95);color:var(--lav);font-weight:600}
.fair b{font-family:var(--mono);font-weight:600;font-size:calc(var(--u)*1.45);color:var(--ink);letter-spacing:.04em}
.fair .fu{font-size:calc(var(--u)*.95);color:var(--lav)}
.fair .sep{width:1px;height:calc(var(--u)*1.2);background:var(--line);margin:0 calc(var(--u)*.4);align-self:center}
.tools{display:flex;align-items:center;gap:calc(var(--u)*.6);flex:none}
.tb{display:inline-flex;align-items:center;gap:calc(var(--u)*.5);height:calc(var(--u)*2.4);padding:0 calc(var(--u)*1);border-radius:calc(var(--u)*.6);border:1px solid var(--line);background:rgba(20,18,56,.5);font-size:calc(var(--u)*.9);font-weight:600;color:var(--lav2)}
.tb:hover{border-color:var(--ind3);color:#fff}
.tb.icon{width:calc(var(--u)*2.4);padding:0;justify-content:center}
.tb svg{width:calc(var(--u)*1.2);height:calc(var(--u)*1.2)}
.tb kbd{font-size:calc(var(--u)*.7);opacity:.7}
.save{display:inline-flex;align-items:center;gap:calc(var(--u)*.45);height:calc(var(--u)*2.4);padding:0 calc(var(--u)*.9);border-radius:calc(var(--u)*.6);border:1px solid transparent;background:transparent;font-size:calc(var(--u)*.82);font-weight:600;color:var(--lav)}
.save::before{content:"";width:calc(var(--u)*.6);height:calc(var(--u)*.6);border-radius:50%;background:var(--ok);box-shadow:0 0 calc(var(--u)*.5) var(--ok)}
.save.busy::before{background:var(--lav);box-shadow:none}
.save.bad{color:#fff;background:rgba(248,113,113,.22);border-color:var(--bad)}
.save.bad::before{background:var(--bad);box-shadow:0 0 calc(var(--u)*.5) var(--bad)}

.warn{position:absolute;left:calc(var(--u)*35);right:calc(var(--u)*3);top:calc(var(--u)*6.1);padding:calc(var(--u)*.55) calc(var(--u)*1.1);border-radius:calc(var(--u)*.6);background:rgba(248,113,113,.18);border:1px solid var(--bad);color:#fff;font-size:calc(var(--u)*.95);font-weight:600;z-index:5}

/* 왼쪽 상품 패널 */
.left{position:absolute;left:calc(var(--u)*3);top:calc(var(--u)*7.4);width:calc(var(--u)*29);bottom:calc(var(--u)*4.2);display:flex;flex-direction:column}
.ptag{font-family:var(--mono);font-weight:600;font-size:calc(var(--u)*1);letter-spacing:.22em;color:var(--lav)}
.photo{position:relative;margin-top:calc(var(--u)*.9);width:100%;height:calc(var(--u)*20);border-radius:calc(var(--u)*1.2);background:#FFFFFF;overflow:hidden;box-shadow:0 calc(var(--u)*1) calc(var(--u)*3) rgba(5,4,20,.55);border:1px solid rgba(199,210,254,.5)}
.photo img{position:absolute;inset:calc(var(--u)*1.2);width:calc(100% - var(--u)*2.4);height:calc(100% - var(--u)*2.4);object-fit:contain;display:block}
.photo .ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u)*.6);color:#5B54C9;text-align:center;padding:calc(var(--u)*1.5)}
.photo .ph svg{width:calc(var(--u)*4.4);height:calc(var(--u)*4.4);opacity:.8}
.photo .ph b{font-family:var(--en);font-size:calc(var(--u)*2.2);font-weight:800;color:#3730A3}
.photo .ph span{font-size:calc(var(--u)*1.35);font-weight:700;color:#4338CA}
.rank{margin-top:calc(var(--u)*1.4);display:flex;align-items:baseline;gap:calc(var(--u)*.4);line-height:.9}
.rank .rn{font-family:var(--en);font-weight:800;font-size:calc(var(--u)*7);color:var(--gold);letter-spacing:-.03em}
.rank .rs{font-weight:800;font-size:calc(var(--u)*3.4)}
.pname{margin-top:calc(var(--u)*.8);font-size:calc(var(--u)*2.45);font-weight:800;letter-spacing:-.02em;line-height:1.18}
.pcount{margin-top:calc(var(--u)*1);align-self:flex-start;display:inline-flex;align-items:center;gap:calc(var(--u)*.6);padding:calc(var(--u)*.45) calc(var(--u)*1.1);border-radius:999px;background:rgba(79,70,229,.32);border:1px solid rgba(129,140,248,.6);font-size:calc(var(--u)*1.25);font-weight:700;color:var(--lav2)}
.pcount b{color:#fff;font-family:var(--en);font-size:calc(var(--u)*1.45)}
.pnav{margin-top:auto;display:flex;align-items:center;gap:calc(var(--u)*.8)}
.nav{display:inline-flex;align-items:center;gap:calc(var(--u)*.3);height:calc(var(--u)*2.5);padding:0 calc(var(--u)*.9);border-radius:calc(var(--u)*.6);border:1px solid var(--line);background:rgba(20,18,56,.5);font-size:calc(var(--u)*.95);font-weight:700;color:var(--lav2)}
.nav svg{width:calc(var(--u)*1.1);height:calc(var(--u)*1.1)}
.nav:disabled{opacity:.3;cursor:default}
.dots{flex:1;display:flex;justify-content:center;gap:calc(var(--u)*.55)}
.dots i{width:calc(var(--u)*.8);height:calc(var(--u)*.8);border-radius:50%;background:rgba(165,180,252,.25);border:1px solid rgba(165,180,252,.45)}
.dots i.done{background:var(--ind2);border-color:var(--ind3)}
.dots i.cur{background:#fff;border-color:#fff;box-shadow:0 0 calc(var(--u)*.6) rgba(255,255,255,.7)}

/* 오른쪽 추첨 */
.right{position:absolute;left:calc(var(--u)*35);right:calc(var(--u)*3);top:calc(var(--u)*7.4);bottom:calc(var(--u)*4.2);display:flex;flex-direction:column;align-items:center}
.reels{display:flex;gap:calc(var(--u)*1.6);margin-top:calc(var(--u)*.6)}
.reel{position:relative;width:calc(var(--u)*13.4);height:calc(var(--u)*19);border-radius:calc(var(--u)*1.4);overflow:hidden;
  background:linear-gradient(180deg,rgba(10,9,30,.95),rgba(30,27,75,.9) 50%,rgba(10,9,30,.95));
  border:calc(var(--u)*.12) solid rgba(129,140,248,.55);
  box-shadow:inset 0 0 calc(var(--u)*2.5) rgba(0,0,0,.65),0 calc(var(--u)*.8) calc(var(--u)*2.6) rgba(5,4,20,.6)}
.reel::before,.reel::after{content:"";position:absolute;left:0;right:0;height:28%;z-index:2;pointer-events:none}
.reel::before{top:0;background:linear-gradient(180deg,rgba(8,7,26,.96),transparent)}
.reel::after{bottom:0;background:linear-gradient(0deg,rgba(8,7,26,.96),transparent)}
.cells{position:absolute;inset:0}
.cell{position:absolute;left:0;right:0;top:0;height:100%;display:flex;align-items:center;justify-content:center;
  font-family:var(--en);font-weight:700;font-size:calc(var(--u)*15.5);line-height:1;font-variant-numeric:tabular-nums;color:#fff;will-change:transform;text-shadow:0 0 calc(var(--u)*1.5) rgba(129,140,248,.45)}
.reel.blur .cell{filter:blur(calc(var(--u)*.12));color:#E0E7FF}
.reel.land{border-color:#fff;box-shadow:inset 0 0 calc(var(--u)*2.5) rgba(0,0,0,.5),0 0 calc(var(--u)*2.2) rgba(129,140,248,.85)}
.reel.idle .cell{color:rgba(199,210,254,.35);text-shadow:none}
.status{margin-top:calc(var(--u)*1.1);height:calc(var(--u)*2);font-size:calc(var(--u)*1.35);font-weight:700;color:var(--lav2);text-align:center}
.status b{color:#fff}
.status.alert{color:#FCA5A5}
.slotsHead{margin-top:calc(var(--u)*.6);width:100%;display:flex;align-items:center;gap:calc(var(--u)*1);font-family:var(--mono);font-weight:600;font-size:calc(var(--u)*.95);letter-spacing:.18em;color:var(--lav)}
.slotsHead i{flex:1;height:1px;background:var(--line)}
.slots{margin-top:calc(var(--u)*.9);width:100%;display:flex;justify-content:center;gap:calc(var(--u)*1.1)}
.slot{--w:calc(var(--u)*10.6);width:var(--w);height:calc(var(--u)*8);border-radius:calc(var(--u)*1);border:calc(var(--u)*.1) dashed rgba(165,180,252,.45);background:rgba(14,12,40,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u)*.3);position:relative}
.slot .sl{font-family:var(--mono);font-weight:600;font-size:calc(var(--u)*.85);letter-spacing:.12em;color:var(--lav)}
.slot .sn{font-family:var(--en);font-weight:800;font-size:calc(var(--u)*4.2);line-height:1;letter-spacing:.02em;color:rgba(199,210,254,.35);font-variant-numeric:tabular-nums}
.slot.cur{border-style:solid;border-color:#fff;background:rgba(79,70,229,.22);box-shadow:0 0 calc(var(--u)*1.6) rgba(129,140,248,.6)}
.slot.cur .sl{color:#fff}
.slot.win{border-style:solid;border-color:var(--ind3);background:linear-gradient(160deg,var(--ind),#3730A3)}
.slot.win .sl{color:var(--lav2)}
.slot.win .sn{color:#fff}
.slot.pop{animation:pop .6s cubic-bezier(.2,1.6,.4,1)}
@keyframes pop{0%{transform:scale(.7);opacity:.3}100%{transform:scale(1);opacity:1}}
.actions{margin-top:auto;display:flex;gap:calc(var(--u)*1)}
.go{display:inline-flex;align-items:center;justify-content:center;gap:calc(var(--u)*1);min-width:calc(var(--u)*20);height:calc(var(--u)*4.4);padding:0 calc(var(--u)*2);border:0;border-radius:calc(var(--u)*1);background:linear-gradient(180deg,var(--ind2),var(--ind));font-size:calc(var(--u)*1.75);font-weight:800;color:#fff;box-shadow:0 calc(var(--u)*.5) calc(var(--u)*1.8) rgba(79,70,229,.55),inset 0 1px 0 rgba(255,255,255,.25)}
.go kbd{font-size:calc(var(--u)*.85);padding:calc(var(--u)*.2) calc(var(--u)*.55);border-radius:calc(var(--u)*.35);background:rgba(255,255,255,.18)}
.go:disabled{opacity:.4;cursor:default}
.go.next{background:linear-gradient(180deg,#F4F3FF,#C7D2FE);color:#312E81}
.go.next kbd{background:rgba(49,46,129,.12)}
.go.spin{background:linear-gradient(180deg,#312E81,#1E1B4B);border:1px solid var(--ind3)}

.foot{position:absolute;left:calc(var(--u)*3);right:calc(var(--u)*3);bottom:calc(var(--u)*1.3);display:flex;align-items:center;gap:calc(var(--u)*1.1);font-family:var(--mono);font-size:calc(var(--u)*.78);letter-spacing:.14em;color:rgba(165,180,252,.7);white-space:nowrap}
.foot b{color:var(--lav2);font-weight:600}
.foot .ln{flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.foot .keys{letter-spacing:.04em;font-family:var(--kr);font-size:calc(var(--u)*.78)}

/* 덮개 공통 */
.ov{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:rgba(6,5,20,.72);backdrop-filter:blur(calc(var(--u)*.4))}
.mcard{width:calc(var(--u)*58);padding:calc(var(--u)*2.6) calc(var(--u)*3);border-radius:calc(var(--u)*1.6);background:linear-gradient(170deg,#1B1850,#100E30);border:1px solid rgba(165,180,252,.45);box-shadow:0 calc(var(--u)*2) calc(var(--u)*6) rgba(0,0,0,.6);text-align:center;animation:rise .35s ease-out}
@keyframes rise{from{transform:translateY(calc(var(--u)*2));opacity:0}to{transform:none;opacity:1}}
.mctx{font-size:calc(var(--u)*1.45);font-weight:700;color:var(--lav2)}
.mctx b{color:var(--gold);font-family:var(--en)}
.mnum{margin-top:calc(var(--u)*.6);font-family:var(--en);font-weight:800;font-size:calc(var(--u)*15);line-height:1;letter-spacing:.04em;color:#fff;text-shadow:0 0 calc(var(--u)*3) rgba(129,140,248,.7);font-variant-numeric:tabular-nums}
.mq{margin-top:calc(var(--u)*1);font-size:calc(var(--u)*1.4);font-weight:600;color:var(--lav2)}
.mbtns{margin-top:calc(var(--u)*1.8);display:flex;gap:calc(var(--u)*1.2);justify-content:center}
.mb{display:inline-flex;align-items:center;justify-content:center;gap:calc(var(--u)*.8);height:calc(var(--u)*4.2);padding:0 calc(var(--u)*2);border-radius:calc(var(--u)*.9);border:1px solid var(--line);background:rgba(255,255,255,.06);font-size:calc(var(--u)*1.4);font-weight:800;color:#fff}
.mb kbd{font-size:calc(var(--u)*.8);padding:calc(var(--u)*.15) calc(var(--u)*.5);border-radius:calc(var(--u)*.3);background:rgba(255,255,255,.15)}
.mb.ok{background:linear-gradient(180deg,var(--ind2),var(--ind));border-color:transparent;min-width:calc(var(--u)*20)}
.mb.no{border-color:rgba(248,113,113,.7);color:#FECACA}
.mhint{margin-top:calc(var(--u)*1.2);font-size:calc(var(--u)*.95);color:var(--lav);opacity:.85}
.ccard{width:calc(var(--u)*44);padding:calc(var(--u)*2.2) calc(var(--u)*2.4);border-radius:calc(var(--u)*1.3);background:#15123F;border:1px solid var(--bad)}
.ct{font-size:calc(var(--u)*1.7);font-weight:800}
.cb{margin-top:calc(var(--u)*.8);font-size:calc(var(--u)*1.1);line-height:1.5;color:var(--lav2)}
.cbtns{margin-top:calc(var(--u)*1.6);display:flex;justify-content:flex-end;gap:calc(var(--u)*.8)}
.cbtns .mb{height:calc(var(--u)*3.2);font-size:calc(var(--u)*1.1)}

/* 최종 결과 */
.final{flex-direction:column;align-items:stretch;justify-content:flex-start;padding:calc(var(--u)*2.4) calc(var(--u)*4) calc(var(--u)*2);background:rgba(8,7,26,.94)}
.fhead{display:flex;align-items:flex-end;gap:calc(var(--u)*2)}
.fk{font-family:var(--mono);font-weight:600;font-size:calc(var(--u)*1.05);letter-spacing:.24em;color:var(--lav)}
.fh{font-size:calc(var(--u)*3.4);font-weight:800;letter-spacing:-.02em;margin-top:calc(var(--u)*.2)}
.fmeta{margin-left:auto;font-family:var(--mono);font-size:calc(var(--u)*.95);color:var(--lav);letter-spacing:.06em;text-align:right;line-height:1.6}
.frows{margin-top:calc(var(--u)*1.6);flex:1;display:flex;flex-direction:column;gap:calc(var(--u)*.9);min-height:0}
.frow{flex:1;min-height:0;display:grid;grid-template-columns:calc(var(--u)*9) calc(var(--u)*7) calc(var(--u)*22) 1fr;align-items:center;gap:calc(var(--u)*1.4);padding:0 calc(var(--u)*1.6);border-radius:calc(var(--u)*1.1);background:rgba(30,27,75,.55);border:1px solid var(--line)}
.frow .fr{font-family:var(--en);font-weight:800;font-size:calc(var(--u)*3.6);color:var(--gold);line-height:1}
.frow .fr small{font-family:var(--kr);font-size:calc(var(--u)*1.7);color:#fff;margin-left:calc(var(--u)*.2)}
.frow .ft{height:calc(var(--u)*6);border-radius:calc(var(--u)*.7);background:#FFFFFF;display:flex;align-items:center;justify-content:center;overflow:hidden}
.frow .ft img{max-width:88%;max-height:88%;object-fit:contain}
.frow .fn{font-size:calc(var(--u)*1.7);font-weight:800;line-height:1.2}
.frow .fn small{display:block;font-size:calc(var(--u)*1);font-weight:600;color:var(--lav);margin-top:calc(var(--u)*.3)}
.frow .fc{display:flex;flex-wrap:wrap;gap:calc(var(--u)*.8)}
.chip{min-width:calc(var(--u)*8.4);padding:calc(var(--u)*.4) calc(var(--u)*1);border-radius:calc(var(--u)*.7);background:linear-gradient(160deg,var(--ind),#3730A3);border:1px solid var(--ind3);text-align:center;font-family:var(--en);font-weight:800;font-size:calc(var(--u)*3.3);line-height:1.1;font-variant-numeric:tabular-nums}
.chip.empty{background:transparent;border-style:dashed;color:rgba(199,210,254,.35)}

.toast{position:fixed;left:50%;bottom:calc(var(--u)*5.6);transform:translateX(-50%);z-index:90;max-width:calc(var(--u)*70);padding:calc(var(--u)*.8) calc(var(--u)*1.6);border-radius:calc(var(--u)*.8);background:#1E1B4B;border:1px solid var(--ind3);font-size:calc(var(--u)*1.1);font-weight:600;box-shadow:0 calc(var(--u)*1) calc(var(--u)*3) rgba(0,0,0,.5)}
.toast.err{background:#3B1020;border-color:var(--bad)}

/* 설정 패널 (일반 크기) */
.settings{position:fixed;inset:0;z-index:50;background:rgba(6,5,20,.6);display:flex;justify-content:flex-end}
.sp{width:min(980px,100vw);height:100%;overflow:auto;background:#100E2C;border-left:1px solid var(--line);padding:22px 28px 60px;font-size:15px}
.sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.sh b{font-size:22px}
.sp .tb{height:34px;padding:0 14px;font-size:14px;border-radius:8px}
.sp section{border-top:1px solid var(--line);padding:16px 0}
.sp h3{margin:0 0 10px;font-size:17px}
.sp h3 small{font-weight:500;color:var(--lav);font-size:13px;margin-left:8px}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.row label{display:flex;align-items:center;gap:6px;color:var(--lav2)}
.grow{flex:1}
.sp input[type=number],.sp input[type=text],.sp input[type=url]{background:#0B0A1C;border:1px solid var(--line);color:#fff;border-radius:7px;padding:7px 9px;font:inherit}
.sp input[type=number]{width:90px}
.sb{height:36px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:#1A1745;font-size:14px;font-weight:700;color:var(--lav2)}
.sb:hover{border-color:var(--ind3);color:#fff}
.sb.pri{background:var(--ind);border-color:var(--ind);color:#fff}
.sb.bad{background:rgba(248,113,113,.15);border-color:var(--bad);color:#FECACA}
.sb.mini{height:30px;padding:0 9px;font-size:13px}
.note{margin:8px 0 0;color:var(--lav);font-size:13px;line-height:1.5}
.dirty{color:#FCD34D;font-size:13px;font-weight:700}
.prow{display:grid;grid-template-columns:28px 64px 70px 1fr 70px 190px 30px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px dashed rgba(165,180,252,.15)}
.prow .ord{display:flex;flex-direction:column;gap:2px}
.prow .ord button{height:18px;width:26px;padding:0;border-radius:4px;border:1px solid var(--line);background:#1A1745;font-size:10px;color:var(--lav2)}
.prow .th{width:64px;height:48px;border-radius:6px;background:#FFFFFF;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#4338CA;font-size:11px;font-weight:700}
.prow .th img{max-width:100%;max-height:100%;object-fit:contain}
.prow input{width:100%}
.prow .pc{display:flex;flex-direction:column;gap:4px}
.prow .pc input[type=url]{font-size:12px;padding:5px 7px}
.prow .pc .up{display:flex;gap:4px}
.prow .del{height:30px;width:30px;padding:0;border-radius:6px;border:1px solid rgba(248,113,113,.5);background:transparent;color:#FCA5A5}
.phd{font-size:12px;color:var(--lav);padding-bottom:4px;border-bottom:1px solid var(--line)}
.log{margin-top:10px;max-height:260px;overflow:auto;font-family:var(--mono);font-size:13px;color:var(--lav2);background:#0B0A1C;border:1px solid var(--line);border-radius:8px;padding:8px 10px;line-height:1.7}
.log .x{color:#FCA5A5}
.log .q{color:#FCD34D}
.danger h3{color:#FCA5A5}

/* 잠금 */
.lock{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#0B0A1C url(/img/bg.jpg) center/cover no-repeat}
.lcard{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(420px,90vw)}
.lcard img{height:54px}
.lk{font-family:var(--mono);font-weight:600;letter-spacing:.2em;color:var(--lav);font-size:14px}
.lh{font-size:34px;font-weight:800;margin-bottom:8px}
.lcard input{width:100%;height:52px;border-radius:10px;border:1px solid var(--line);background:#0B0A1C;color:#fff;font-size:20px;padding:0 16px;text-align:center;letter-spacing:.2em}
.lcard .go{width:100%;min-width:0;height:52px;font-size:19px}
.lerr{min-height:22px;color:#FCA5A5;font-weight:700}
.shake{animation:shake .4s}
@keyframes shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.prow input[type=number]{width:100%}
