
:root {
  --bg:#090807; --panel:#15110f; --panel2:#1d1713; --line:#443329;
  --text:#f3e8dc; --muted:#a89583; --gold:#d8ae69; --red:#a24b45; --green:#6e9b77;
}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 50% -10%,#291611 0,#100d0b 35%,#070606 100%);
 color:var(--text);font-family:system-ui,-apple-system,"Pretendard","Noto Sans KR",sans-serif}
button,input,select{font:inherit}
button{cursor:pointer}
.app{max-width:1240px;margin:auto;padding:12px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
 border:1px solid var(--line);background:#15110fee;border-radius:12px;padding:11px 13px}
.logo{font-weight:900;letter-spacing:.08em;color:#efd4a0}
.small{font-size:11px;color:var(--muted)}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tabs button{background:#14100e;color:#c6b3a2;border:1px solid #3a2e27;border-radius:8px;padding:8px 11px}
.tabs button.active{border-color:var(--gold);background:#2a2019;color:white}
.screen{display:none;margin-top:12px} .screen.active{display:block}
.phone{max-width:520px;margin:auto;background:#0f0c0b;border:1px solid #4c392d;border-radius:15px;overflow:hidden;box-shadow:0 20px 60px #0008;transition:background .45s ease,border-color .45s ease,box-shadow .45s ease}
#player .phone.midnight{background:radial-gradient(circle at 50% 5%,#51130f 0,#240b09 35%,#0f0707 76%);border-color:#8b312b;box-shadow:0 20px 70px #5c0d0d55}
#player .phone.midnight .gameHead{background:#2a0e0c;border-bottom-color:#6d2924}
#player .phone.midnight .story{background:#2a0e0d;border-color:#723029;color:#f0c0b8}
#player .phone.midnight .monster{border-color:#5b2a25;background:#1c0e0c}
#player .phone.midnight .me,
#player .phone.midnight .inventory,
#player .phone.midnight .stage{border-color:#603029;background:#1d0e0c}
#player .phone.midnight .time{color:#ffb6aa}
#player .phone.midnight .stageTitle{color:#f2b0a7}
.hero{text-align:center;padding:20px 15px;border-bottom:1px solid #3b2c24;background:linear-gradient(#39221b,#16100e)}
.hero h1{margin:0;font-size:24px;color:#f0d6a2;letter-spacing:.06em}
.hero p{margin:6px 0 0;color:#b7a18e;font-size:12px}
.pad{padding:14px} .label{font-size:12px;color:#d4bea8;margin:11px 0 7px}
.input{width:100%;padding:12px;background:#0c0a09;color:white;border:1px solid #574234;border-radius:8px}
.charGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.char{border:1px solid #382e27;background:#161210;border-radius:9px;padding:6px 4px;text-align:center;color:#ddd}
.char.selected{outline:2px solid var(--gold);background:#2a211b} .char.taken{opacity:.3;pointer-events:none}
.char img{width:100%;height:95px;object-fit:contain;image-rendering:pixelated;display:block}
.char span{font-size:11px;color:#dfcebd}
.primary{width:100%;padding:12px;border:1px solid #946f45;border-radius:8px;background:linear-gradient(#6a4a2f,#49311f);color:white;font-weight:900;margin-top:12px}
.primary:disabled{opacity:.35;cursor:not-allowed}
.waiting{display:none;text-align:center;padding:28px 18px}
.waiting img{width:118px;height:118px;object-fit:contain;image-rendering:pixelated}
.waiting h2{font-size:17px;margin:10px 0 5px;color:#ecd19e} .waiting p{font-size:12px;color:#ad9986;margin:0}
.gameView{display:none}
.gameHead{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;border-bottom:1px solid #392b24;background:#15110f}
.roundClock .time{font-size:23px;font-weight:900;color:#eed4a1} .roundClock .round{font-size:10px;color:#a28d7a}
.countdown{text-align:right} .countdown small{display:block;color:#9e8978;font-size:9px} .countdown strong{font-size:23px;color:#fff3d8;font-variant-numeric:tabular-nums}
.countdown.warn strong{color:#e99b88}
.story{margin:10px 10px 0;padding:9px;border:1px solid #49372e;background:#171310;border-radius:8px;text-align:center;font-size:11px;color:#d5c2b1;line-height:1.5}
.monsterGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:10px}
.monster{position:relative;border:1px solid #3b2f27;background:#15110f;border-radius:8px;padding:6px;min-width:0}
.monImg{width:100%;height:90px;object-fit:contain;image-rendering:pixelated}
.mname{text-align:center;font-size:10px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hpbar{height:6px;background:#34211d;border-radius:99px;overflow:hidden;margin:5px 0 3px} .hpbar i{display:block;height:100%;background:#a64f47}
.hpnum{font-size:9px;color:#c9b5a4;text-align:center}
.loot{display:flex;justify-content:center;gap:3px;flex-wrap:wrap;margin-top:5px;min-height:22px}
.lootItem{display:flex;align-items:center;gap:1px;font-size:9px;color:#cbb7a4} .lootItem img{width:18px;height:18px;object-fit:contain;image-rendering:pixelated}
.me{margin:0 10px 10px;padding:8px;border:1px solid #413229;background:#15110f;border-radius:8px;display:flex;align-items:center;gap:8px}
.me img{width:48px;height:48px;object-fit:contain;image-rendering:pixelated} .me b{font-size:12px} .me small{display:block;color:#968373;font-size:10px;margin-top:2px}
.grit{margin-left:auto;text-align:right} .grit strong{display:block;color:#efc36d;font-size:18px}
.inventory{margin:0 10px 10px;padding:8px;border:1px solid #3d3028;background:#12100e;border-radius:8px}
.inventoryHead{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#b6a28f;margin-bottom:6px}
.inventoryItems{display:flex;gap:5px;flex-wrap:wrap;min-height:24px}
.invItem{display:flex;align-items:center;gap:2px;border:1px solid #342921;background:#0d0b0a;border-radius:6px;padding:3px 5px;font-size:9px;color:#d0bdab}
.invItem img{width:20px;height:20px;object-fit:contain;image-rendering:pixelated}
.cardsLeft{font-size:10px;color:#bfa98f;margin-top:7px;text-align:center}
.merchantStage{margin:0 10px 13px;padding:10px;border:1px solid #6e5035;background:#1b1510;border-radius:9px}
.soulHero{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:10px 12px;border:1px solid #755a3b;background:#120e0b;border-radius:9px}
.soulHero .soulLabel{font-size:10px;color:#b9a28b}.soulHero strong{font-size:26px;color:#f1d797}.soulHero img{width:42px;height:42px;object-fit:contain;image-rendering:pixelated}
.shopBudget{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}
.shopBudget div{padding:7px;border:1px solid #3b3028;background:#100d0b;border-radius:7px;text-align:center;font-size:9px;color:#a99583}
.shopBudget b{display:block;color:#f0d1a0;font-size:13px;margin-top:2px}
.shopNotice{min-height:18px;margin-top:7px;text-align:center;font-size:10px;color:#d99187;font-weight:800}
.shopGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px}
.shopItem{border:1px solid #403128;background:#100d0b;border-radius:8px;padding:6px;text-align:center;min-width:0}
.shopItem img{width:42px;height:42px;object-fit:contain;image-rendering:pixelated}
.shopItem b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shopItem small{display:block;font-size:9px;color:#b29e89;margin:2px 0 5px}
.qtyPicker{display:grid;grid-template-columns:30px 1fr 30px;gap:3px;align-items:center}
.qtyPicker button{height:29px;border-radius:6px;border:1px solid #5a4433;background:#251a14;color:#eee0d2;font-size:15px;font-weight:900}
.qtyPicker button:disabled{opacity:.35}
.qtyValue{height:29px;display:grid;place-items:center;border:1px solid #44352b;background:#17110e;border-radius:6px;color:#f2d5a3;font-size:13px;font-weight:900}
.itemCost{font-size:9px;color:#9f8e7e;margin-top:4px;min-height:12px}
.settleBox{margin-top:10px;border-top:1px solid #3e3027;padding-top:9px}
.settleGold{display:flex;justify-content:space-between;align-items:end}
.settleGold strong{font-size:25px;color:#f1c66f}
.breakdown{font-size:9px;color:#a99583;line-height:1.55;margin-top:6px}
.finalCard{display:none;margin:12px 10px;padding:16px;border:1px solid #8b663e;background:#21170f;border-radius:10px;text-align:center}
.finalCard .rank{font-size:28px;font-weight:900;color:#f0c66e}.finalCard .gold{font-size:18px;color:#f4ddac;margin-top:3px}
.rankTable{display:grid;gap:5px;margin-top:8px}
.rankEntry{display:grid;grid-template-columns:42px 1fr 70px;gap:8px;align-items:center;padding:7px;border-bottom:1px solid #2f251e;font-size:11px}
.rankEntry .r{color:#edc678;font-weight:900}.rankEntry .g{text-align:right;color:#efcf91;font-weight:900}
.stage{margin:0 10px 13px;padding:10px;border:1px solid #56362f;background:#1e1412;border-radius:9px}
.stageTitle{font-size:14px;font-weight:900;color:#e8c09b} .stageSub{font-size:10px;color:#af998a;margin-top:3px;line-height:1.45}
.bidRow{display:grid;grid-template-columns:44px 1fr 44px;gap:6px;margin-top:9px}
.bidRow button,.bidRow input{border:1px solid #513d33;background:#0f0d0c;color:white;border-radius:7px;padding:9px;text-align:center}
.submitDone{display:none;margin-top:8px;text-align:center;font-size:11px;color:#a7c9ae}
.waitMini{text-align:center;padding:12px 8px;color:#c9b8a8;font-size:12px}
.waitMini b{display:block;color:#f0d3a0;margin-bottom:4px}
.actionGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}
.action{border:1px solid #49372d;background:#100d0c;color:#eee0d3;border-radius:8px;padding:11px 4px;text-align:center}
.action.selected{outline:2px solid var(--gold);background:#2b2018}
.action strong{display:block;font-size:20px;color:#ffd99a} .action small{font-size:9px;color:#a99583}
.adminGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:860px){.adminGrid{grid-template-columns:1fr}}
.panel{border:1px solid #433329;background:#15110f;border-radius:11px;padding:13px}
.panel h2{font-size:14px;color:#e7c99b;margin:0 0 10px}
.statrow{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #30261f;font-size:12px}
.adminBtns{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.adminBtns button{padding:8px 10px;border-radius:7px;border:1px solid #574236;background:#231a15;color:#eee0d2}
.adminBtns .go{background:#503822;border-color:#9b7448;color:white;font-weight:900}
.playerRows{display:grid;gap:6px}
.playerRow{display:flex;align-items:center;gap:8px;border:1px solid #30261f;padding:7px;border-radius:7px;background:#100d0c}
.playerRow img{width:38px;height:38px;object-fit:contain;image-rendering:pixelated}
.playerRow .meta{font-size:11px} .playerRow .meta small{display:block;color:#958371}
.timerControls{display:grid;grid-template-columns:70px 70px 1fr;gap:6px;align-items:end}
.timerControls input{width:100%;padding:8px;background:#0e0c0b;color:white;border:1px solid #49372d;border-radius:7px}
.timerControls label{font-size:10px;color:#a59180}
.rankBox{display:none;margin-top:10px}
.rankRow{display:grid;grid-template-columns:34px 1fr 54px;gap:7px;align-items:center;padding:7px;border-bottom:1px solid #2d241f;font-size:11px}
.rankRow .rank{color:#eac782;font-weight:900} .rankRow .amt{text-align:right;color:#f3cf84;font-weight:900}
.order{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.order select{width:100%;background:#0f0d0c;color:white;border:1px solid #44352c;border-radius:6px;padding:7px 4px;font-size:10px}
.beamRankWrap{margin:18px auto 8px;max-width:900px}
.beamRankTitle{text-align:center;font-size:12px;color:#d7bf9a;margin-bottom:7px}
.beamRank{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}
.beamRank span{border:1px solid #4a382e;background:#17120f;border-radius:999px;padding:6px 9px;font-size:11px;color:#dfcdb9}
.beamRank span.current{border-color:#dfb66e;background:#3a291c;color:#fff0cb}
.beamOrderPanel{max-width:860px;margin:18px auto 0;border:1px solid #574033;background:#14100e;border-radius:12px;padding:14px}
.beamOrderTitle{text-align:center;color:#efce97;font-size:17px;font-weight:900}
.beamOrderHelp{text-align:center;color:#a99583;font-size:11px;margin:5px 0 12px}
.beamOrderGrid{display:grid;gap:6px}
.beamOrderCell{border:1px solid #403128;background:#0e0c0b;border-radius:7px;padding:6px;min-width:0}
.beamOrderCell label{display:block;font-size:12px;font-weight:900;color:#e9c77f;margin-bottom:3px}
.beamOrderCell select{width:100%;padding:6px 4px;background:#181310;color:#fff;border:1px solid #5a4334;border-radius:6px;font-size:10px;min-width:0}
.beamOrderCell select:disabled{opacity:.45}
.beamConfirm{display:block;width:min(360px,100%);margin:9px auto 0;padding:8px;border-radius:7px;border:1px solid #9a7548;background:#513822;color:white;font-size:12px;font-weight:900}
.beamConfirm:disabled{opacity:.35;cursor:not-allowed}
.beamWaiting{text-align:center;padding:18px;color:#a99583;font-size:12px}

.beamLineupWrap{display:none;margin:10px 0 2px}
.beamLineupTitle{text-align:center;font-size:10px;color:#b9a38d;margin-bottom:4px}
.beamLineup{display:flex;justify-content:center;align-items:flex-end;gap:6px;min-height:170px;overflow:hidden;padding:0 4px}
.fighter{position:relative;flex:0 1 104px;min-width:78px;max-width:104px;text-align:center;font-size:14px;color:#c9b8a5;transition:transform .22s ease,opacity .2s ease}
.fighter img{width:92px;height:125px;max-width:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 5px 5px #0008)}
.fighter .ord{position:absolute;left:4px;top:1px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#2c2018;border:1px solid #9d774a;color:#f8d99a;font-size:14px;font-weight:900}
.fighter.active{transform:translateY(-10px) scale(1.07)}
.fighter.active img{animation:fighterAttack .72s ease-in-out}
.fighter.healing img{animation:healingPulse .72s ease-in-out}
.healIcon{
  position:absolute;left:50%;top:10px;transform:translateX(-50%);
  width:32px;height:32px;border-radius:7px;display:grid;place-items:center;
  background:#d9ffe0;color:#28743c;border:2px solid #6bc47e;
  font-size:23px;font-weight:1000;line-height:1;
  box-shadow:0 0 12px #8dff9a88;
  animation:healFloat .72s ease-out forwards;
  z-index:5
}
@keyframes fighterAttack{0%{transform:translateY(0)}35%{transform:translateY(-28px) translateX(16px) scale(1.1)}65%{transform:translateY(-28px) translateX(16px) scale(1.1)}100%{transform:translateY(0)}}
@keyframes healingPulse{0%,100%{filter:drop-shadow(0 5px 5px #0008)}45%{filter:drop-shadow(0 0 11px #8dff9acc) brightness(1.25)}}
@keyframes healFloat{0%{opacity:0;transform:translate(-50%,8px) scale(.7)}25%{opacity:1;transform:translate(-50%,-4px) scale(1)}100%{opacity:0;transform:translate(-50%,-28px) scale(.9)}}
@media(max-width:1000px){
  .beamLineup{gap:4px;min-height:145px}
  .fighter{flex-basis:86px;min-width:66px;max-width:86px;font-size:12px}
  .fighter img{width:76px;height:104px}
  .fighter .ord{width:25px;height:25px;font-size:12px}
}

.monster.hit{animation:monsterHit .38s linear}
.monster.dead{animation:monsterDead .45s ease forwards}
.damagePopup{position:absolute;z-index:7;right:8px;top:8px;font-size:31px;font-weight:1000;color:#fff2d8;text-shadow:0 2px 0 #7a1712,0 0 10px #e14d3d;pointer-events:none;animation:damageFloat .72s ease-out forwards}
@keyframes damageFloat{0%{opacity:0;transform:translateY(8px) scale(.72)}20%{opacity:1;transform:translateY(0) scale(1.18)}100%{opacity:0;transform:translateY(-30px) scale(.96)}}
@keyframes monsterHit{0%,100%{transform:translateX(0);filter:none}20%{transform:translateX(-8px);filter:brightness(2)}40%{transform:translateX(8px);filter:brightness(.7) sepia(1) saturate(4)}60%{transform:translateX(-6px);filter:brightness(2)}80%{transform:translateX(4px)}}
@keyframes monsterDead{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.68) translateY(14px)}}
.emptyMonster{border:1px dashed #332821;background:#0d0b0a;border-radius:8px;min-height:142px;display:grid;place-items:center;color:#594b40;font-size:10px}

.settingsGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.settingsGrid label{font-size:10px;color:#a99482}
.settingsGrid select{width:100%;margin-top:4px;padding:8px;background:#0e0c0b;color:#fff;border:1px solid #49372d;border-radius:7px}
.cardSet{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}
.resolveList{display:grid;gap:5px;margin-top:8px}
.resolveRow{display:grid;grid-template-columns:28px 1fr 68px 50px;gap:5px;align-items:center;border-bottom:1px solid #2d241e;padding:5px 0;font-size:10px}
.resolveRow .done{color:#91bd98}
.battleLive{margin-top:10px;padding:9px;border:1px solid #49362c;background:#0f0d0c;border-radius:8px}
.battleLive .main{font-size:12px;color:#edd09b;font-weight:800}
.battleLive .sub{font-size:10px;color:#aa9583;margin-top:4px;line-height:1.45}
.soulLog{display:grid;gap:8px;margin-top:8px}
.soulRound{border:1px solid #3d3027;background:#100d0b;border-radius:8px;padding:8px}
.soulRoundHead{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:900;color:#e7c789;margin-bottom:6px}
.soulRoundEntries{display:flex;gap:5px;flex-wrap:wrap}
.soulEntry{display:flex;align-items:center;gap:5px;border:1px solid #403229;background:#18120f;border-radius:7px;padding:5px 6px;font-size:10px}
.soulEntry.paid{opacity:.48;text-decoration:line-through}
.soulEntry button{padding:4px 6px;border:1px solid #554234;background:#251a14;color:#dfc9b3;border-radius:5px;font-size:9px}
.reconcileRows{display:grid;gap:5px;margin-top:8px}
.reconcileRow{display:grid;grid-template-columns:1fr 90px 120px;gap:7px;align-items:center;padding:6px 0;border-bottom:1px solid #2e251f;font-size:10px}
.reconcileRow input{width:100%;padding:7px;background:#0d0b0a;color:#fff;border:1px solid #49372d;border-radius:6px;text-align:center}
.correctionGrid{display:grid;grid-template-columns:1.2fr .7fr .8fr 1fr .7fr;gap:7px;align-items:end;margin-top:8px}
.correctionGrid label{font-size:9px;color:#a99583}
.correctionGrid select,.correctionGrid input{width:100%;margin-top:4px;padding:7px;background:#0d0b0a;color:#fff;border:1px solid #49372d;border-radius:6px}
.soundCheck{margin:14px auto 0;max-width:760px;border:1px solid #4b392d;background:#100d0b;border-radius:9px;padding:9px}
.soundCheckTitle{text-align:center;font-size:10px;color:#b8a38f;margin-bottom:7px}
.soundBtns{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}
.soundBtns button{padding:7px 10px;border:1px solid #634b37;background:#251a14;color:#ead7c1;border-radius:7px;font-size:10px}
.testOnly{font-size:9px;color:#806f61;text-align:center;margin-top:8px}
@media(max-width:760px){.correctionGrid{grid-template-columns:1fr 1fr}.reconcileRow{grid-template-columns:1fr 80px 100px}}

.queueGroups{display:grid;gap:10px}
.queueTitle{font-size:11px;color:#d8bd99;margin-bottom:5px}
.queueChips{display:flex;gap:5px;flex-wrap:wrap}
.chip{border:1px solid #3c3028;background:#100d0c;border-radius:999px;padding:5px 8px;font-size:10px;color:#c9b6a5}
.chip b{color:#e3c58e;margin-right:3px}
.displayStage{border:1px solid #47362b;background:#0b0908;border-radius:12px;padding:14px;min-height:650px}
.displayTitle{text-align:center;color:#edcf99;font-weight:900;letter-spacing:.08em}
.displayTimer{text-align:center;font-size:28px;color:#fff0d0;font-weight:900;margin-top:5px;font-variant-numeric:tabular-nums}
.displayMonsters{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:15px}
.displayMonsters .monster .monImg{height:118px}
.displayOrder{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-top:15px}
.slot{border:1px solid #43342b;background:#17120f;border-radius:6px;padding:7px 2px;text-align:center;font-size:9px;min-height:34px}
.displayChars{display:flex;justify-content:center;align-items:flex-end;gap:7px;margin-top:30px;overflow:hidden}
.pc{min-width:62px;text-align:center;font-size:9px;color:#b9a693} .pc img{width:62px;height:82px;object-fit:contain;image-rendering:pixelated}
.beamFinal{display:none;max-width:760px;margin:22px auto 0;border:1px solid #7f5c38;background:#17110d;border-radius:12px;padding:16px}
.beamFinal h2{text-align:center;color:#f1ca82;margin:0 0 10px;font-size:22px}
.beamFinal .rankEntry{font-size:14px;padding:9px}
.footer{text-align:center;color:#75685d;font-size:10px;margin:10px}

/* ===== MULTIPLAYER DEPLOYMENT ===== */
body{min-height:100vh}.deployShell{max-width:1220px;margin:0 auto;padding:14px}.deployTop{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);background:#15110fee;border-radius:12px;padding:11px 13px;margin-bottom:12px}.deployTop h1{font-size:15px;margin:0;color:#efd4a0;letter-spacing:.06em}.cardBox{border:1px solid var(--line);background:#15110f;border-radius:12px;padding:13px;margin-bottom:10px}.cardBox h2{font-size:13px;margin:0 0 9px;color:#e9c77f}.formRow{display:flex;gap:7px;flex-wrap:wrap;align-items:end}.formRow label{font-size:10px;color:var(--muted);flex:1;min-width:130px}.formRow input,.formRow select{width:100%;margin-top:4px;padding:9px;border:1px solid #4a392e;background:#0d0b0a;color:#fff;border-radius:7px}.primaryBtn,.secondaryBtn,.dangerBtn{border-radius:8px;padding:9px 12px;font-weight:800}.primaryBtn{border:1px solid #9a7548;background:#513822;color:#fff}.secondaryBtn{border:1px solid #514034;background:#211914;color:#e9d8c8}.dangerBtn{border:1px solid #70443f;background:#351714;color:#efc1ba}.primaryBtn:disabled,.secondaryBtn:disabled,.dangerBtn:disabled{opacity:.35;cursor:not-allowed}.statusLine{font-size:10px;color:#a99583;margin-top:7px;line-height:1.45}.errorLine{color:#e9968c;font-size:10px;margin-top:7px}.successLine{color:#9ac9a2;font-size:10px;margin-top:7px}.bigCode{text-align:center;font-size:32px;letter-spacing:.14em;color:#f0ca83;font-weight:1000;padding:8px}.lobbyPeople{display:flex;gap:6px;flex-wrap:wrap}.personChip{border:1px solid #46362d;background:#110e0c;border-radius:8px;padding:6px 8px;font-size:10px}.charGridDeploy{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.charPick{border:1px solid #3d3028;background:#100d0b;color:#dccbbb;border-radius:8px;padding:6px;text-align:center}.charPick img{display:block;width:62px;height:74px;object-fit:contain;image-rendering:pixelated;margin:auto}.charPick.selected{border-color:#dbad68;background:#2d2119}.charPick:disabled{opacity:.22}.gameGrid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.adminTable{display:grid;gap:4px}.adminRow{display:grid;grid-template-columns:34px 1.2fr .8fr .8fr;gap:7px;align-items:center;border-bottom:1px solid #2c241e;padding:6px 0;font-size:10px}.badgeOK{color:#91bd98}.badgeWait{color:#a99583}.beamShell{max-width:1500px;margin:auto;padding:12px}.beamHeader{text-align:center;padding:10px}.beamHeader .clock{font-size:42px;font-weight:1000;color:#efcb84}.beamHeader .sub{font-size:12px;color:#a99583}.beamMonsterRow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.beamOrderGridDeploy{display:grid;gap:5px;margin-top:8px}.beamOrderCellDeploy{border:1px solid #403128;background:#0e0c0b;border-radius:7px;padding:5px}.beamOrderCellDeploy label{display:block;font-size:11px;color:#e9c77f;font-weight:900;margin-bottom:3px}.beamOrderCellDeploy select{width:100%;padding:6px 3px;background:#181310;color:#fff;border:1px solid #5a4334;border-radius:6px;font-size:10px}.beamLineupDeploy{display:flex;justify-content:center;align-items:flex-end;gap:6px;min-height:175px;margin-top:8px;overflow:hidden}.fighterDeploy{position:relative;flex:0 1 104px;min-width:76px;max-width:104px;text-align:center;font-size:13px;color:#c9b8a5}.fighterDeploy img{width:92px;height:125px;max-width:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 5px 5px #0008)}.fighterDeploy .ord{position:absolute;left:4px;top:1px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#2c2018;border:1px solid #9d774a;color:#f8d99a;font-size:14px;font-weight:900}.fighterDeploy.active img{animation:fighterAttack .72s ease-in-out}.fighterDeploy.healing img{animation:healingPulse .72s ease-in-out}.beamDamage{position:absolute;right:8px;top:8px;z-index:9;font-size:31px;font-weight:1000;color:#fff2d8;text-shadow:0 2px 0 #7a1712,0 0 10px #e14d3d;animation:damageFloat .72s ease-out forwards}.soundCheckBottom{margin-top:240px;border:1px solid #3d3027;background:#0e0c0b;border-radius:8px;padding:8px;text-align:center}.soundCheckBottom button{margin:3px;padding:7px 10px;border:1px solid #5a4334;background:#211914;color:#e9d8c8;border-radius:6px}.soulAwardRound{border:1px solid #3d3027;background:#100d0b;border-radius:8px;padding:8px;margin-top:6px}.soulAwardItems{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.soulAwardItem{border:1px solid #44352b;background:#18120f;border-radius:6px;padding:5px 7px;font-size:10px}.soulAwardItem.paid{opacity:.45;text-decoration:line-through}.merchantQty{display:grid;grid-template-columns:30px 1fr 30px;gap:3px;align-items:center}.merchantQty button{height:30px;border:1px solid #5a4433;background:#251a14;color:#eee0d2;border-radius:6px;font-size:15px}.merchantQty .qty{height:30px;display:grid;place-items:center;border:1px solid #44352b;background:#17110e;border-radius:6px;font-weight:900}.modalShade{position:fixed;inset:0;background:#000b;display:grid;place-items:center;z-index:99;padding:12px}.modalBox{max-width:430px;width:100%;background:#17120f;border:1px solid #5a4334;border-radius:12px;padding:14px}.hidden{display:none!important}
@media(max-width:760px){.deployShell{padding:8px}.gameGrid2{grid-template-columns:1fr}.beamMonsterRow{grid-template-columns:repeat(3,1fr)}.adminRow{grid-template-columns:30px 1fr .7fr}.adminRow>*:nth-child(4){display:none}.beamLineupDeploy{gap:3px}.fighterDeploy{min-width:58px;font-size:10px}.fighterDeploy img{width:70px;height:96px}.fighterDeploy .ord{width:24px;height:24px;font-size:11px}.charGridDeploy{grid-template-columns:repeat(3,1fr)}}

/* V18 field-test polish */
.bidControl{display:grid;grid-template-columns:46px 1fr 46px;gap:7px;margin-top:10px}
.bidControl button,.bidControl input{min-height:42px;border:1px solid #5a4334;background:#0f0d0c;color:#fff;border-radius:8px;text-align:center;font-weight:800}
.bidControl input{font-size:18px}

.actionGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.action{position:relative;min-height:86px;border:1px solid #5b4638;background:linear-gradient(180deg,#1e1814,#100d0b);color:#eee0d3;border-radius:11px;padding:12px 5px 10px;text-align:center;font-family:inherit;box-shadow:inset 0 1px 0 #ffffff09;transition:transform .12s ease,border-color .12s ease,background .12s ease,box-shadow .12s ease}
.action strong{display:block;font-size:27px;line-height:1;color:#f5d495;font-weight:1000;letter-spacing:-.02em}
.action small{display:block;font-size:10px;line-height:1.25;color:#b7a38f;margin-top:9px;min-height:13px;word-break:keep-all}
.action:hover:not(:disabled){border-color:#8b6845;background:#241b15}
.action.selected{outline:none;border-color:#f0bd67;background:linear-gradient(180deg,#51351d,#2c2016);box-shadow:0 0 0 2px #f0bd6755,0 0 20px #d79d3e22;transform:translateY(-2px)}
.action.selected::after{content:"선택";position:absolute;right:5px;top:5px;padding:2px 5px;border-radius:99px;background:#efbd69;color:#2a1b10;font-size:8px;font-weight:1000}
.action.restAction{border-color:#4f5845;background:linear-gradient(180deg,#1b2119,#10130e)}
.action.restAction strong{font-size:17px;line-height:1.15;color:#b9d7ae;padding-top:4px}
.action.restAction small{color:#9eaf96;margin-top:10px;font-size:9px}
.action.restAction.selected{border-color:#9fc58d;background:linear-gradient(180deg,#35442f,#202b1d);box-shadow:0 0 0 2px #a8ce9655,0 0 20px #76a96322}
.action.restAction.selected::after{background:#a8ce96;color:#172014}
.action:disabled{opacity:.34;cursor:not-allowed;filter:saturate(.5)}

.qrInvite{display:flex;align-items:center;justify-content:center;gap:12px;margin:2px auto 10px;max-width:360px;padding:9px;border:1px solid #49382d;background:#100d0b;border-radius:10px}
.qrCode{flex:0 0 auto;background:#fff;padding:6px;border-radius:7px;line-height:0}
.qrCode img,.qrCode canvas{display:block;max-width:100%;height:auto!important}
.qrInvite .qrCode{width:112px;height:112px;overflow:hidden}
.qrInvite .qrCode img,.qrInvite .qrCode canvas{width:100%!important;height:100%!important}
.qrInvite b{display:block;color:#efcb84;font-size:12px;margin-bottom:4px}
.qrInvite span{display:block;color:#a99583;font-size:9px;line-height:1.45}

.bidStatusGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:5px;margin-top:8px}
.bidStatusRow{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #352b24;background:#100d0b;border-radius:7px;padding:7px 8px;font-size:10px}
.bidStatusRow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bidStatusRow b{font-size:9px;white-space:nowrap}

.queueAdminGroup{margin-top:11px;padding-top:9px;border-top:1px solid #30261f}
.queueAdminTitle{font-size:11px;font-weight:900;color:#d9bd8c;margin-bottom:6px}
.queueChips{display:flex;gap:5px;flex-wrap:wrap}
.queueChip{display:inline-flex;align-items:center;gap:4px;border:1px solid #3e322a;background:#100d0b;border-radius:7px;padding:5px 6px;font-size:9px;color:#b9a795}
.queueChip b{display:grid;place-items:center;min-width:17px;height:17px;border-radius:50%;background:#261d17;color:#e1bf83;font-size:8px}
.queueChip small{font-size:7px;color:#7f7165;margin-left:2px}
.queueChip.active{border-color:#b1824e;background:#2b2017;color:#f0d5a3;box-shadow:0 0 0 1px #b1824e22}
.queueChip.active small{color:#e8bd72;font-weight:900}
.queueChip.done{opacity:.43}
.queueChip.done small{color:#91b697}

.beamHeader{text-align:center;padding:5px 10px 15px}
.beamTimerLabel{font-size:15px;font-weight:800;color:#b5a18d;letter-spacing:.16em}
.beamBigTimer{font-size:clamp(68px,8vw,108px);line-height:1;font-weight:1000;color:#fff0d0;font-variant-numeric:tabular-nums;letter-spacing:.02em;text-shadow:0 4px 24px #000}
.beamRoundLine{margin-top:7px;font-size:clamp(17px,2vw,27px);font-weight:900;color:#efcb84;letter-spacing:.08em}
.beamLobbyInvite{display:grid;justify-items:center;gap:9px;margin:28px auto 0;max-width:500px;text-align:center}
.beamLobbyCode{font-size:42px;letter-spacing:.16em;color:#f0ca83;font-weight:1000}
.beamQr{width:190px;height:190px;overflow:hidden}
.beamQr img,.beamQr canvas{width:100%!important;height:100%!important}
.beamLobbyText{font-size:13px;line-height:1.55;color:#b7a492}

.soundCheckBottom{max-width:300px;margin:72vh auto 20px;border:1px solid #2f2822;background:#0b0908;border-radius:6px;padding:4px;text-align:center;opacity:.38}
.soundCheckTinyTitle{font-size:7px;color:#806f61;letter-spacing:.08em;margin-bottom:2px}
.soundCheckBottom button{margin:1px;padding:3px 5px;border:1px solid #3e332b;background:#15110e;color:#8f7f70;border-radius:4px;font-size:7px}

@media(max-width:390px){
  .actionGrid{gap:5px}
  .action{min-height:80px;padding-left:3px;padding-right:3px}
  .action strong{font-size:23px}
  .action.restAction strong{font-size:15px}
  .action small{font-size:8px}
}
.queueChip.elapsed{opacity:.55;border-style:dashed}.queueChip.elapsed small{color:#b7a38e}

/* FINAL field-safety additions */
.testModeWarning{margin-top:8px;padding:8px 10px;border:1px solid #6b4d2e;background:#21170f;border-radius:8px;color:#e3c18b;font-size:10px;line-height:1.45}
.emergencyProgress{border-color:#715033;background:#1a130e}
.emergencyProgressGrid{display:grid;grid-template-columns:1.25fr 1fr auto;gap:7px;align-items:end;margin-top:9px}
.emergencyProgressGrid label{font-size:9px;color:#a99583}
.emergencyProgressGrid select,.emergencyProgressGrid input{width:100%;margin-top:4px;padding:8px;background:#0d0b0a;color:#fff;border:1px solid #49372d;border-radius:6px}
@media(max-width:760px){.emergencyProgressGrid{grid-template-columns:1fr 1fr}.emergencyProgressGrid button{grid-column:1/-1}}
