/* 투게더 — 공통 다크 테마 (사업기획서 팔레트: 골드/와인 on 다크) */
:root{
  --bg:#0c0b12; --bg2:#14121c; --panel:#1d1a2b;
  --gold:#d8a657; --gold-soft:#e7c98e; --wine:#c44e63;
  --ink:#f6f3ec; --mute:#a7a2b3; --line:rgba(216,166,87,.20);
  --card:rgba(255,255,255,.045); --ok:#37b26b; --bad:#e25563;
  --female:#e58ab0; --male:#6fa8e0;
}
*{box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent;}
html,body{height:100%; overflow-x:hidden;}
body{
  background:radial-gradient(120% 130% at 85% -10%, #2a2440 0%, var(--bg2) 42%, var(--bg) 100%);
  color:var(--ink); font-family:"Pretendard","Apple SD Gothic Neo",-apple-system,sans-serif;
  min-height:100%; -webkit-text-size-adjust:100%;
}
body:has(.modal-bg){overflow:hidden;}
a{color:inherit;}
button{font-family:inherit; cursor:pointer; border:none;}

/* 헤더 */
.top{
  position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:12px;
  padding:14px 18px; background:rgba(12,11,18,.82); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.top .brand{display:flex; align-items:center; gap:10px;}
.table-badge{background:#e03030; color:#fff; font-size:24px; font-weight:900;
  padding:0 18px; border-radius:0; letter-spacing:.04em; white-space:nowrap;
  align-self:stretch; display:flex; align-items:center; margin:-14px 0 -14px -18px;}
.brand-name{font-size:30px; font-weight:900; letter-spacing:-.01em;
  background:linear-gradient(90deg, #f9a8d4 0%, #fde68a 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;}
.brand-sub{font-size:15px; color:#f9a8d4; font-weight:400; letter-spacing:.08em;
  font-style:italic; opacity:.9; transition:opacity .6s ease;}
.top .spacer{flex:1;}
.top-mgmt-btns{display:flex; gap:6px;}
.top-mgmt-btn{background:rgba(216,166,87,.12); border:1px solid rgba(216,166,87,.3); color:var(--gold-soft);
  font-size:13px; font-weight:800; padding:7px 14px; border-radius:20px; cursor:pointer; white-space:nowrap;}
.top-mgmt-btn:active{background:rgba(216,166,87,.25);}
@media(max-width:600px){.top-mgmt-btn{font-size:14px; padding:6px 10px;}}
.dot{width:9px; height:9px; border-radius:50%; background:var(--bad); box-shadow:0 0 0 0 rgba(0,0,0,0);}
.dot.on{background:var(--ok); box-shadow:0 0 10px rgba(55,178,107,.7);}
.conn{font-size:14px; color:var(--mute); display:flex; align-items:center; gap:7px;}
.call-staff-btn{
  background:rgba(216,166,87,.18); border:2px solid var(--gold); color:var(--gold);
  border-radius:8px; padding:8px 14px; font-size:15px; font-weight:900; cursor:pointer;
  transition:background .15s; white-space:nowrap;
}
.call-staff-btn:active{background:rgba(216,166,87,.35);}
.call-staff-btn:disabled{opacity:.5; cursor:not-allowed;}

/* 레이아웃 */
.wrap{padding:18px; max-width:1280px; margin:0 auto;}
.cols{display:grid; grid-template-columns:1fr 1.25fr; gap:18px;}
@media(max-width:900px){ .cols{grid-template-columns:1fr;} }
.panel{background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:18px;}
.panel h2{font-size:15px; font-weight:900; color:var(--gold-soft); margin-bottom:14px; letter-spacing:-.01em;
  display:flex; align-items:center; gap:8px;}
.panel h2 .cnt{font-size:14px; color:var(--mute); font-weight:700;}

/* 버튼 */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:7px;
  background:var(--gold); color:#231a08; font-weight:900; font-size:15px;
  padding:12px 18px; border-radius:11px; letter-spacing:-.01em;}
.btn:active{transform:translateY(1px);}
.btn.ghost{background:transparent; color:var(--ink); border:1px solid var(--line);}
.btn.wine{background:var(--wine); color:#fff;}
.btn.close{background:rgba(255,255,255,.12); color:var(--ink); border:2px solid rgba(255,255,255,.4); font-size:17px; font-weight:900; letter-spacing:.04em;}
.btn.sm{padding:8px 12px; font-size:13px; border-radius:9px;}
.btn.block{width:100%;}
.btn[disabled]{opacity:.45; pointer-events:none;}

/* 입력 */
input,select{font-family:inherit; font-size:15px; color:var(--ink); background:#0f0e16;
  border:1px solid var(--line); border-radius:10px; padding:11px 12px; width:100%;}
input:focus,select:focus{outline:none; border-color:var(--gold);}
label.f{display:block; font-size:14px; color:var(--mute); font-weight:700; margin:0 0 5px 2px;}

/* 칩/배지 */
.chip{display:inline-flex; align-items:center; gap:5px; font-size:17px; font-weight:800;
  padding:7px 14px; border-radius:999px; background:var(--card); border:2px solid var(--line);}
.chip.f{color:var(--female);} .chip.m{color:var(--male);}
.tag{font-size:13px; font-weight:800; padding:2px 8px; border-radius:6px;}
.tag.sul{background:rgba(216,166,87,.16); color:var(--gold-soft);}
.tag.yumyo{background:rgba(96,165,250,.16); color:#93c5fd;}
.tag.anju{background:rgba(196,78,99,.16); color:#f0a6b3;}

/* 메뉴 관리 리스트 (POS) */
.mlist{display:flex; flex-direction:column; gap:8px;}
.mrow{display:flex; align-items:center; gap:10px; background:var(--card); border:1px solid var(--line);
  border-radius:11px; padding:10px 12px;}
.mrow .nm{font-weight:800; flex:1;}
.mrow .pr{font-weight:900; color:var(--gold-soft);}
.mrow.soldout{opacity:.5;}
.mrow.soldout .nm{text-decoration:line-through;}

/* 테이블 그리드 (POS) */
.tgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(132px,1fr)); gap:12px;}
.tcard{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px;
  text-align:center; cursor:pointer; transition:transform .1s, border-color .1s;}
.tcard:active{transform:scale(.97);}
.tcard.seated{border-color:var(--gold); background:rgba(216,166,87,.07);}
.tcard .no{font-size:22px; font-weight:900;}
.tcard .st{font-size:13px; color:var(--mute); font-weight:800; margin-top:2px;}
.tcard.seated .st{color:var(--gold-soft);}
.tcard .party{font-size:14px; margin-top:8px; display:flex; gap:6px; justify-content:center;}
.tcard .amt{font-size:15px; font-weight:900; color:var(--gold-soft); margin-top:8px;}
.tcard .empty-amt{font-size:14px; color:var(--mute); margin-top:8px;}
.tcard-orders{font-size:13px; color:var(--mute); margin-top:6px; line-height:1.6; display:flex; flex-wrap:wrap; gap:3px 6px; justify-content:center;}
.tcard-orders span{background:var(--card); border:1px solid var(--line); border-radius:6px; padding:1px 6px;}
.tcard-merge-badge{font-size:10px; font-weight:800; color:var(--gold-soft); background:rgba(216,166,87,.15);
  border:1px solid rgba(216,166,87,.3); border-radius:6px; padding:1px 5px; vertical-align:middle;}
.tcard-memo{margin-top:7px; font-size:16px; font-weight:900; color:#fff; background:rgba(192,122,30,.88);
  border-radius:8px; padding:3px 10px; letter-spacing:.04em; text-align:center;}

/* 모달 */
.modal-bg{position:fixed; inset:0; background:rgba(0,0,0,.62); display:flex; align-items:center;
  justify-content:center; z-index:50; padding:16px; overflow:hidden;}
.modal{background:var(--panel); border:2px solid rgba(216,166,87,.5); border-radius:18px; width:min(460px,100%);
  max-height:88vh; overflow-y:auto; overflow-x:hidden; padding:20px; box-shadow:0 8px 32px rgba(0,0,0,.6);}
.modal h3{font-size:22px; font-weight:900; margin-bottom:4px;}
.modal .sub{font-size:13px; color:var(--mute); margin-bottom:16px;}
.row{display:flex; gap:10px;}
.row > *{flex:1;}

/* 가로 레이아웃 모달 */
.h-modal{display:flex; overflow:hidden; padding:0 !important; max-height:96vh; min-height:480px;}
.h-modal-map{flex:1.5; position:relative; min-height:480px; border-right:1px solid rgba(216,166,87,.2);}
.h-modal-map .layout-stage{position:absolute !important; inset:0; height:100% !important; margin-top:0 !important;}
.h-modal-right{flex:1; padding:32px 24px; display:flex; flex-direction:column; gap:18px; min-width:280px; overflow-y:auto; justify-content:space-between; align-items:center; text-align:center;}
.h-modal-right .btn{width:100%;}
.h-party-tag{font-size:30px; font-weight:900; color:var(--gold-soft); line-height:1.4;}
.h-msg-text{font-size:28px; font-weight:800; color:#fff; background:rgba(255,255,255,.07); border-radius:12px; padding:18px; line-height:1.6; flex:1; width:100%; text-align:center;}

/* 선물버튼 흔들림 */
@keyframes shakeBtn{0%,100%{transform:translateX(0)} 15%{transform:translateX(-9px)} 35%{transform:translateX(9px)} 55%{transform:translateX(-5px)} 75%{transform:translateX(5px)} 90%{transform:translateX(-2px)}}
.shake-btn{animation:shakeBtn .5s ease;}
@keyframes gameNotifFlash{0%,100%{box-shadow:0 0 20px rgba(167,139,250,.4);transform:scale(1)} 50%{box-shadow:0 0 60px rgba(167,139,250,.9),0 0 120px rgba(167,139,250,.3);transform:scale(1.04)}}

/* 팝업 깜빡임 */
@keyframes pulse{0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.18);opacity:.7}}
@keyframes msgFlash{0%,100%{background:rgba(0,0,0,.62)} 25%,75%{background:rgba(96,165,250,.3)}}
.msg-flash{animation:msgFlash .45s ease 3;}
@keyframes giftFlash{0%,100%{background:rgba(0,0,0,.62)} 25%,75%{background:rgba(240,192,64,.25)}}
.gift-flash{animation:giftFlash .45s ease 3;}
@keyframes joinFlash{0%,100%{background:rgba(0,0,0,.62)} 25%,75%{background:rgba(244,114,182,.25)}}
.join-flash{animation:joinFlash .45s ease 3;}
@keyframes gameFlash{0%,100%{background:rgba(0,0,0,.62)} 25%,75%{background:rgba(167,139,250,.25)}}
.game-flash{animation:gameFlash .45s ease 3;}

/* 게임 버튼 */
.game-trigger{background:rgba(192,132,252,.18); border:2px solid rgba(192,132,252,.8); border-radius:18px; padding:8px 16px; font-size:17px; font-weight:900; color:#e9d5ff; display:flex; align-items:center; gap:4px; cursor:pointer; transition:background .15s; white-space:nowrap; box-shadow:0 0 8px rgba(192,132,252,.15);}
.game-trigger:active{background:rgba(167,139,250,.35);}

/* 화투 CSS 카드 */
.hwatu-card{
  width:64px; height:96px; border-radius:10px; border:2px solid rgba(255,255,255,.25);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; position:relative; box-shadow:0 4px 14px rgba(0,0,0,.5);
  transition:transform .15s;
}
.hwatu-card:hover{transform:translateY(-4px);}
.hwatu-symbol{font-size:24px; font-weight:900;}
.hwatu-month{font-size:14px; font-weight:900; letter-spacing:.05em;}
.hwatu-name{font-size:10px; opacity:.7;}
.hwatu-card.face-down{background:linear-gradient(135deg,#1a1040,#2a1860); border-color:rgba(167,139,250,.4);}
.hwatu-back-pattern{font-size:32px; opacity:.6;}

/* 섰다 두근두근 애니메이션 */
/* 가위바위보 두근두근 */
@keyframes rpsPulse{
  0%,100%{transform:scale(1) translateY(0);}
  20%{transform:scale(1.12) translateY(-10px);}
  40%{transform:scale(0.92) translateY(4px);}
  60%{transform:scale(1.08) translateY(-7px);}
  80%{transform:scale(0.96) translateY(2px);}
}
@keyframes rpsReveal{
  0%{transform:scale(0) rotate(-20deg); opacity:0;}
  60%{transform:scale(1.2) rotate(5deg); opacity:1;}
  100%{transform:scale(1) rotate(0deg); opacity:1;}
}
.rps-pulse{animation:rpsPulse .45s ease-in-out infinite;}
.rps-pulse:nth-child(3){animation-delay:.15s;}
.rps-reveal{animation:rpsReveal .4s cubic-bezier(.34,1.56,.64,1) both;}
@keyframes cardDrumroll{
  0%  {transform:translateY(0) rotate(0deg) scale(1);}
  15% {transform:translateY(-8px) rotate(-6deg) scale(1.05);}
  30% {transform:translateY(2px) rotate(4deg) scale(0.97);}
  45% {transform:translateY(-6px) rotate(-4deg) scale(1.04);}
  60% {transform:translateY(2px) rotate(5deg) scale(0.98);}
  75% {transform:translateY(-5px) rotate(-3deg) scale(1.03);}
  90% {transform:translateY(1px) rotate(2deg) scale(0.99);}
  100%{transform:translateY(0) rotate(0deg) scale(1);}
}
.card-drumroll{animation:cardDrumroll .5s ease-in-out infinite;}
.card-drumroll:nth-child(2){animation-delay:.12s;}

/* 섰다 카드 플립 (뒷면→앞면) */
.hwatu-wrap{perspective:600px; width:64px; height:96px;}
.hwatu-inner{
  position:relative; width:100%; height:100%;
  transform-style:preserve-3d; transition:transform .6s ease;
}
.hwatu-inner.flipped{transform:rotateY(180deg);}
.hwatu-front,.hwatu-back{
  position:absolute; width:100%; height:100%;
  backface-visibility:hidden; border-radius:10px;
}
.hwatu-back{background:linear-gradient(135deg,#1a1040,#2a1860); border:2px solid rgba(167,139,250,.4); display:flex; align-items:center; justify-content:center; font-size:32px; opacity:.9;}
.hwatu-front{transform:rotateY(180deg);}

/* 주문 내역 줄 */
.oline{display:flex; align-items:center; gap:10px; padding:12px 0; border-bottom:1px dashed var(--line); font-size:18px;}
.oline .nm{flex:1; font-weight:700;}
.oline .qx{color:var(--mute); font-size:16px;}
.oline .am{font-weight:900; color:var(--gold-soft); font-size:18px;}
.total-row{display:flex; justify-content:space-between; align-items:baseline; margin-top:14px;
  padding-top:12px; border-top:2px solid var(--line);}
.total-row .lab{font-weight:800; color:var(--mute);}
.total-row .val{font-size:26px; font-weight:900; color:var(--gold);}

/* 입장 — 구성(여자만/남자만/혼성) 선택 */
.seg-label{font-size:20px; font-weight:900; color:var(--gold-soft); text-align:left;
  margin:0 0 12px 2px; letter-spacing:.02em;}
.seg{display:flex; gap:12px;}
.seg-btn{flex:1; display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:24px 8px; background:var(--card); border:1px solid var(--line); border-radius:16px;
  color:var(--ink); font-weight:900; font-size:22px; transition:transform .1s, border-color .1s;}
.seg-btn:active{transform:scale(.97);}
.seg-btn .ic{font-size:36px; line-height:1;}
.seg-btn.f .ic{color:var(--female);} .seg-btn.m .ic{color:var(--male);} .seg-btn.x .ic{color:var(--gold-soft);}
.seg-btn.on{border-color:var(--gold); background:rgba(216,166,87,.12); box-shadow:inset 0 0 0 1px var(--gold);}

/* 입장 — 인원(1~8) 선택 */
.count-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
.cnt-btn{padding:22px 0; border-radius:14px; background:var(--card); border:1px solid var(--line);
  color:var(--ink); font-weight:900; font-size:30px; transition:transform .1s;}
.cnt-btn:active{transform:scale(.95);}
.cnt-btn.on{background:var(--gold); color:#231a08; border-color:transparent;}

/* 혼성 칩 */
.chip.x{color:var(--gold-soft);}

/* 메뉴 주문 그리드 (태블릿) */
.tabs{display:flex; gap:8px; margin-bottom:14px;}
.tab{flex:1; padding:10px 8px; border-radius:11px; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.18);
  font-weight:900; font-size:clamp(24px,5vw,36px); color:var(--ink); text-align:center; line-height:1.2;}
.tab.on{background:var(--gold); color:#231a08; border-color:transparent;}
.menu-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px;}
.mi{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:16px 14px; text-align:left;}
.mi .nm{font-weight:800; font-size:16px;}
.mi .pr{color:var(--gold-soft); font-weight:900; margin-top:6px;}
.mi.soldout{opacity:.4; pointer-events:none;}
.mi .qbar{display:flex; align-items:center; justify-content:space-between; margin-top:12px;}
.mi .qbar button{width:38px; height:38px; border-radius:10px; font-size:20px; font-weight:900;
  background:#0f0e16; border:1px solid var(--line); color:var(--ink);}
.mi .qbar .q{font-weight:900; font-size:18px;}

/* 하단 고정 바 (태블릿 장바구니/계산서) */
.bottombar{position:sticky; bottom:0; background:rgba(12,11,18,.92); backdrop-filter:blur(8px);
  border-top:1px solid var(--line); padding:14px 18px; display:flex; align-items:center; gap:14px;}
.bottombar .sum{flex:1;}
.bottombar .sum .lab{font-size:14px; color:var(--mute); font-weight:700;}
.bottombar .sum .val{font-size:22px; font-weight:900; color:var(--gold);}

/* ===== 손님 주문화면 2단 (왼쪽 메뉴 / 오른쪽 장바구니) ===== */
.order-2col{display:grid; grid-template-columns:1fr 360px; gap:16px; max-width:1280px;
  margin:0 auto; padding:16px; align-items:start;}
.menu-col{min-width:0;}
.cart-col{position:sticky; top:72px;}
@media(max-width:760px){ .order-2col{grid-template-columns:1fr;} .cart-col{position:static;} }

/* 메뉴 카드 격자 (네모칸) */
.menu-cards{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px;}
.mcard{background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden;
  cursor:pointer; display:flex; flex-direction:column; transition:transform .1s, border-color .1s;}
.mcard:active{transform:scale(.98); border-color:var(--gold);}
.mcard.soldout{opacity:.5;}
.mcard .pic{position:relative; width:100%; height:0; padding-top:100%; background:#0f0e16;}
.mcard .pic img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.mcard .pic .ph{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:38px; opacity:.65;}
.mcard .pic .plus{position:absolute; right:8px; bottom:8px; width:30px; height:30px; border-radius:50%;
  background:var(--gold); color:#231a08; font-size:20px; font-weight:900;
  display:flex; align-items:center; justify-content:center; box-shadow:0 3px 10px rgba(0,0,0,.4);}
.mcard .pic .sold{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(180,30,40,.75); color:#fff; font-size:22px; font-weight:900; border-radius:0; letter-spacing:.03em;}
.mcard .body{padding:10px 12px 12px; flex:1; display:flex; flex-direction:column; gap:3px; text-align:center; align-items:center;}
.mcard .body .nm{font-weight:800; font-size:22px; line-height:1.25;}
.mcard .body .desc{color:var(--mute); font-size:14px; line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.mcard .body .pr{color:var(--gold-soft); font-weight:900; font-size:17px; margin-top:6px;}

/* 장바구니 패널 */
.cart-panel{background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:16px;}
.cart-head{display:flex; align-items:center; gap:8px; padding-bottom:11px; margin-bottom:4px;
  border-bottom:1px solid var(--line);}
.lab2{font-size:13px; color:var(--mute); font-weight:700;}
.bill{font-size:20px; font-weight:900; color:var(--gold);}
.cart-list{display:flex; flex-direction:column; margin:4px 0 6px;}
.citem{display:flex; align-items:center; gap:10px; padding:14px 0; border-bottom:1px dashed var(--line);}
.citem .nm{flex:1; min-width:0; font-weight:700; font-size:21px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.qstep{display:flex; align-items:center; gap:8px; flex:0 0 auto;}
.qstep button{width:42px; height:42px; border-radius:10px; font-size:24px; font-weight:900;
  background:#0f0e16; border:1px solid var(--line); color:var(--ink);}
.qstep .q{font-weight:900; min-width:26px; text-align:center; font-size:22px;}
.citem .am{display:none;}
.citem .rm{background:transparent; color:var(--bad); font-size:17px; font-weight:700;
  padding:6px 12px; border-radius:6px; border:1px solid rgba(226,85,99,.35); flex:0 0 auto;
  margin-left:12px;}
.cart-sum{display:none;}
.btn.gift{background:var(--wine); color:#fff;}
.btn.block + .btn.block{margin-top:9px;}
.msg-grid .btn.block + .btn.block{margin-top:0;}
.ordered .oline{padding:7px 0;}

/* POS 메뉴 목록 썸네일/설명 */
.mthumb{width:46px; height:46px; flex:0 0 46px; border-radius:8px; overflow:hidden; background:#0f0e16;
  display:flex; align-items:center; justify-content:center;}
.mthumb img{width:100%; height:100%; object-fit:cover;}
.mthumb span{font-size:22px; opacity:.7;}
.mdesc{font-size:14px; color:var(--mute); margin-top:2px; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap;}

/* ===== 매장 배치도(테이블 위치) ===== */
.layout-stage{position:relative; width:100%; height:68vh; max-height:620px; margin-top:14px;
  background:radial-gradient(120% 120% at 50% 0%, rgba(216,166,87,.05), transparent 60%), #100e18;
  border:1px dashed var(--line); border-radius:14px; overflow:hidden; touch-action:none;}
.ltoken{position:absolute; transform:translate(-50%,-50%); width:60px; height:60px; padding:4px;
  border-radius:13px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-weight:900; font-size:10px; background:#211d30; border:2px solid rgba(255,255,255,.85); color:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.6); user-select:none; touch-action:none;}
.ltoken .n{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; text-align:center; font-size:16px;}
.ltoken .ptag{font-size:11px; font-weight:800; margin-top:1px; line-height:1.2; opacity:.9; white-space:nowrap; text-align:center;}
.ltoken.seated{background:var(--gold); border-color:#fff; color:#231a08;}
.ltoken.seated.female{background:var(--female); border-color:#fff; color:#3a0a1e;}
.ltoken.seated.male{background:var(--male); border-color:#fff; color:#0a1e38;}
.ltoken.seated.mixed{background:var(--gold); border-color:#fff; color:#231a08;}
.ltoken.empty{background:#6b6580; border-color:rgba(255,255,255,.7); color:#fff;}
.ltoken.me{background:#22c55e; border-color:#fff; border-width:3px; color:#052e16;
  box-shadow:0 0 0 3px rgba(34,197,94,.5), 0 0 14px rgba(34,197,94,.6);}
.ltoken.sender{background:var(--gold); border-color:#fff; color:#231a08; z-index:6;
  animation:senderpulse 1s ease-in-out infinite;}
@keyframes senderpulse{
  0%,100%{box-shadow:0 0 0 0 rgba(216,166,87,.75), 0 2px 8px rgba(0,0,0,.5);
    transform:translate(-50%,-50%) scale(1);}
  50%{box-shadow:0 0 0 12px rgba(216,166,87,0), 0 2px 8px rgba(0,0,0,.5);
    transform:translate(-50%,-50%) scale(1.18);}}
.ltoken .meTag{font-size:11px; font-weight:800; color:#052e16; margin-top:1px;}
.ltoken.drag{z-index:5; box-shadow:0 6px 18px rgba(0,0,0,.5); transform:translate(-50%,-50%) scale(1.12);}
.layout-stage.edit .ltoken{cursor:grab;}
.layout-stage:not(.edit) .ltoken.seated{cursor:pointer;}
.layout-stage:not(.edit) .ltoken.seated:active{transform:translate(-50%,-50%) scale(1.12);}

/* ===== 선물 도착 배너 (받는 쪽) ===== */
.giftcard{margin:14px 16px 0; background:var(--panel); border:1px solid var(--gold);
  border-radius:14px; padding:14px 16px; box-shadow:0 6px 20px rgba(216,166,87,.18);}
.giftcard .gtitle{font-weight:900; color:var(--gold-soft); font-size:15px;}
.giftcard .gitems{margin-top:6px; font-weight:700; color:var(--ink);}
.celebrate-modal .gitems{font-size:24px; font-weight:900; color:#fff;
  letter-spacing:.02em; text-shadow:0 2px 12px rgba(0,0,0,.5);}

/* 선물 도착 — 가운데 반짝 팝업 */
.celebrate-modal{text-align:center; position:relative; overflow:hidden;
  background:linear-gradient(160deg, rgba(216,166,87,.15) 0%, rgba(29,26,43,1) 60%);
  border:3px solid var(--gold) !important;
  animation:giftBorder 2.4s ease-in-out infinite;}
@keyframes giftBorder{
  0%,100%{border-color:#d8a657; box-shadow:0 0 0 4px rgba(216,166,87,.35), 0 0 40px rgba(216,166,87,.45), 0 8px 32px rgba(0,0,0,.6);}
  33%  {border-color:#e58ab0; box-shadow:0 0 0 4px rgba(229,138,176,.35), 0 0 40px rgba(229,138,176,.45), 0 8px 32px rgba(0,0,0,.6);}
  66%  {border-color:#6fa8e0; box-shadow:0 0 0 4px rgba(111,168,224,.35), 0 0 40px rgba(111,168,224,.45), 0 8px 32px rgba(0,0,0,.6);}}
.celebrate-modal h3{color:var(--gold); font-size:22px !important; text-shadow:0 0 12px rgba(216,166,87,.6);}
.sparkles{font-size:26px; letter-spacing:6px; line-height:1.8; text-align:center; width:100%;
  display:block; overflow:hidden; animation:twinkle 1.1s ease-in-out infinite;}
@keyframes twinkle{0%,100%{opacity:.55; transform:scale(.97);} 50%{opacity:1; transform:scale(1.03);}}
@keyframes pop{0%{transform:scale(.3); opacity:0;} 70%{transform:scale(1.15);} 100%{transform:scale(1); opacity:1;}}
@keyframes bellShake{
  0%,100%{transform:translate(-50%,-50%) rotate(0deg) scale(1);}
  8%{transform:translate(-50%,-50%) rotate(-18deg) scale(1.08);}
  16%{transform:translate(-50%,-50%) rotate(18deg) scale(1.08);}
  24%{transform:translate(-50%,-50%) rotate(-14deg) scale(1.05);}
  32%{transform:translate(-50%,-50%) rotate(14deg) scale(1.05);}
  40%{transform:translate(-50%,-50%) rotate(-8deg) scale(1.02);}
  48%{transform:translate(-50%,-50%) rotate(8deg) scale(1.02);}
  56%,100%{transform:translate(-50%,-50%) rotate(0deg) scale(1);}
}
@keyframes bellFadeIn{from{opacity:0; transform:translate(-50%,-50%) scale(.6);} to{opacity:1; transform:translate(-50%,-50%) scale(1);}}
@keyframes bellFadeOut{from{opacity:1; transform:translate(-50%,-50%) scale(1);} to{opacity:0; transform:translate(-50%,-50%) scale(.7);}}
.bell-notify-popup{position:fixed; inset:0; z-index:999; pointer-events:none;}
.bn-inner{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  background:rgba(20,18,28,.96); border:3px solid var(--nc,var(--gold));
  box-shadow:0 0 0 6px color-mix(in srgb,var(--nc,var(--gold)) 20%,transparent), 0 12px 60px rgba(0,0,0,.7);
  border-radius:24px; padding:32px 48px; text-align:center; pointer-events:all; cursor:pointer;
  animation:bellFadeIn .3s ease, bellShake 1s ease .3s;
  min-width:260px;
}
.bn-inner:active{opacity:.8;}
.bell-notify-popup.bn-out .bn-inner{animation:bellFadeOut .4s ease forwards;}
.bn-icon{font-size:72px; line-height:1; margin-bottom:12px;}
.bn-label{font-size:26px; font-weight:900; color:var(--nc,var(--gold)); letter-spacing:-.01em;}
.bn-sub{font-size:15px; color:var(--mute); margin-top:8px; font-weight:600;}
@keyframes floaty{0%,100%{transform:translateY(0);} 50%{transform:translateY(-7px);}}
.msg-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(8px,1.5vw,14px); margin-top:14px;}
.msg-grid > .btn{align-self:stretch; display:flex; align-items:center; justify-content:center; text-align:center; padding:clamp(16px,2.5vw,24px) 10px; font-size:clamp(17px,2.2vw,22px); box-sizing:border-box;}
.msg-cell{display:flex;}
.msg-cell .btn{flex:1; display:flex; align-items:center; justify-content:center; text-align:center; padding:clamp(16px,2.5vw,24px) 10px; font-size:clamp(17px,2.2vw,22px); box-sizing:border-box;}
.emoji-btn{width:clamp(52px,7vw,68px); height:clamp(52px,7vw,68px); font-size:clamp(26px,3.5vw,34px); border-radius:14px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); cursor:pointer;
  transition:background .12s; display:flex; align-items:center; justify-content:center;}
.emoji-btn:active{background:rgba(216,166,87,.25); border-color:var(--gold);}
.msg-arrival-modal{
  background:linear-gradient(160deg, rgba(111,168,224,.12) 0%, rgba(29,26,43,1) 60%);
  border:3px solid #6fa8e0 !important;
  box-shadow:0 0 0 4px rgba(111,168,224,.2), 0 0 40px rgba(111,168,224,.3);
  animation:pop .35s ease;
}
.msg-arrival-text{
  font-size:20px; font-weight:700; color:var(--ink); letter-spacing:.02em; line-height:1.6;
  background:rgba(255,255,255,.06); border-radius:14px; padding:24px 20px;
  border:1px solid rgba(255,255,255,.12); margin-top:14px;
}

/* ── 화면보호기 ── */
.ss-root{position:fixed; inset:0; z-index:200; background:#06050d; cursor:pointer;}
.ss-float-brand{
  position:absolute; top:5%; left:0; right:0;
  text-align:center;
  font-size:clamp(52px, 9vw, 130px); font-weight:900; letter-spacing:.04em; white-space:nowrap;
  color:rgba(255,255,255,.20); pointer-events:none;
  animation:ssFloat 12s ease-in-out infinite alternate;
}
.ss-brand-sub{font-size:.65em; font-weight:900; letter-spacing:.02em;}
@keyframes ssFloat{from{top:5%} to{top:9%}}
.ss-canvas{position:absolute; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:1;}
.ss-image{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1;}
.ss-quote{position:absolute; top:50%; left:0; right:0; transform:translateY(-50%);
  text-align:center; transition:opacity .6s ease; pointer-events:none; padding:0 40px;}
.ss-quote-text{font-size:30px; font-weight:700; color:rgba(246,243,236,.40);
  line-height:1.75; letter-spacing:.01em; margin-bottom:18px; white-space:pre-line;}
.ss-quote-src{font-size:19px; font-weight:500; color:rgba(216,166,87,.40); letter-spacing:.05em;}
.ss-hint{position:absolute; bottom:56px; left:0; right:0; text-align:center; font-size:22px; font-weight:600; color:rgba(255,255,255,.40); z-index:2;}
.ss-contact{position:absolute; bottom:18px; left:0; right:0; text-align:center;
  font-size:18px; font-weight:500; color:rgba(255,255,255,.30); letter-spacing:.02em; z-index:2;}

/* 보낸 쪽 답례 팝업 */
#celebrate{position:fixed; left:0; right:0; top:14%; z-index:90; display:flex; flex-direction:column;
  align-items:center; gap:12px; pointer-events:none; padding:0 12px;}
.reply-pop{pointer-events:auto; min-width:240px; max-width:92vw; text-align:center; padding:18px 22px;
  border-radius:18px; background:var(--panel); border:1px solid var(--gold); cursor:pointer;
  box-shadow:0 12px 36px rgba(216,166,87,.3); animation:pop .45s ease;}
.reply-pop.no{border-color:var(--line); box-shadow:0 12px 36px rgba(0,0,0,.45);}
.reply-pop .rtitle{font-size:14px; color:var(--mute); font-weight:800;}
.reply-pop .rmsg{font-size:20px; font-weight:900; color:var(--gold-soft); margin-top:6px;}
.reply-pop.no .rmsg{color:var(--ink);}
.reply-pop.msg{border-color:var(--male); box-shadow:0 12px 36px rgba(111,168,224,.28);}
.reply-pop.msg .rmsg{color:#cfe0f5;}

/* 옆 테이블에 — 메시지/합석 액션 */
.t2t{margin-top:14px; padding-top:12px; border-top:1px dashed var(--line);}
.t2t-lab{font-size:13px; color:var(--mute); font-weight:800; margin:0 0 8px 2px;}
.t2t .btn{font-size:24px; padding:18px 12px; opacity:1;}
.t2t .btn.ghost{background:rgba(167,139,250,.15); border:1px solid rgba(167,139,250,.55); color:#c4b5fd;}
.btn.join-cta{
  background:rgba(180,60,90,.25);
  border:1px solid rgba(180,60,90,.55);
  color:#f0a0b8; font-size:24px; font-weight:900; opacity:1;
}
.btn.join-cta:active{transform:translateY(1px);}

.empty-hint{color:var(--mute); text-align:center; padding:30px 10px; font-size:14px;}

/* 연결 끊김 오버레이 */
#conn-overlay{
  position:fixed; inset:0; z-index:9999;
  background:rgba(12,11,18,.9); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .4s;
}
#conn-overlay.visible{ opacity:1; pointer-events:all; }
.conn-overlay-inner{ text-align:center; }
.conn-ov-icon{ font-size:54px; animation:connBounce 1.8s ease-in-out infinite; }
.conn-ov-msg{ font-size:22px; font-weight:900; color:var(--ink); margin-top:18px; }
.conn-ov-sub{ font-size:14px; color:var(--mute); margin-top:8px; }
@keyframes connBounce{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-8px);} }

/* ===== 골든벨 ===== */
.golden-bell-trigger{
  background:rgba(240,192,64,.18); border:2px solid rgba(240,192,64,.65);
  border-radius:18px; padding:8px 16px; font-size:17px; font-weight:900;
  color:#f0c040; display:flex; align-items:center; gap:4px; cursor:pointer;
  transition:background .15s; white-space:nowrap;
  box-shadow:0 0 8px rgba(240,192,64,.15);
}
.golden-bell-trigger:active{ background:rgba(240,192,64,.35); }
.ltoken.golden{
  border-color:#f0c040; color:#f0c040;
  box-shadow:0 0 0 0 rgba(240,192,64,.7);
  animation:goldenPulse 1.4s ease-in-out infinite;
}
@keyframes goldenPulse{
  0%{box-shadow:0 0 0 0 rgba(240,192,64,.7);}
  70%{box-shadow:0 0 0 10px rgba(240,192,64,0);}
  100%{box-shadow:0 0 0 0 rgba(240,192,64,0);}
}
.btn.golden-bell-btn{
  background:rgba(240,192,64,.2); border:2px solid rgba(240,192,64,.6);
  color:#f0c040; font-size:16px; font-weight:900;
}
.btn.golden-bell-btn:active{ transform:scale(.97); }
.golden-bell-popup{
  position:fixed; inset:0; z-index:300;
  background:rgba(8,6,16,.92); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center;
  flex-direction:column;
  animation:gbFadeIn .4s ease;
}
@keyframes gbFadeIn{from{opacity:0; transform:scale(.95)}to{opacity:1; transform:scale(1)}}
.golden-bell-inner{ text-align:center; padding:32px 24px; }
.gb-icon{ font-size:72px; animation:gbRing 1s ease-in-out 3; }
@keyframes gbRing{0%,100%{transform:rotate(0)}20%{transform:rotate(-15deg)}40%{transform:rotate(15deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(10deg)}}
.gb-title{ font-size:28px; font-weight:900; color:#f0c040; margin-top:12px; }
.gb-drink{ font-size:22px; font-weight:700; color:#fff; margin-top:8px; }
.gb-msg{ font-size:15px; color:rgba(255,255,255,.6); margin-top:8px; }
.gb-confetti-row{ display:flex; justify-content:center; gap:4px; margin-bottom:4px; }
.gb-cf{ font-size:22px; display:inline-block; animation:gbCf .6s ease-out both; }
@keyframes gbCf{from{opacity:0; transform:translateY(-18px) scale(.6)}to{opacity:1; transform:translateY(0) scale(1)}}

/* ===== 직원 호출 항목 선택 (테이블) ===== */
.call-item-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(10px,2vw,16px); margin-top:16px;}
.call-item-btn{padding:clamp(18px,3.5vw,32px) 8px; border-radius:18px; border:2px solid rgba(216,166,87,.35);
  background:rgba(216,166,87,.07); color:var(--ink); font-size:clamp(20px,3.5vw,32px); font-weight:900;
  cursor:pointer; transition:background .15s, border-color .15s; text-align:center;}
.call-item-btn.selected{background:rgba(216,166,87,.3); border-color:var(--gold); color:var(--gold);}
.call-item-btn:active{transform:scale(.96);}

/* ===== 직원 호출 항목 태그 (POS 큐) ===== */
.oq-call-tags{display:flex; flex-wrap:wrap; gap:5px; margin-top:5px;}
.call-tag{background:rgba(216,166,87,.18); border:1px solid rgba(216,166,87,.4);
  color:var(--gold-soft); font-size:12px; font-weight:700; padding:2px 8px; border-radius:20px;}

/* ===== 호출 항목 설정 (POS 모달) ===== */
.call-settings-row{display:flex; align-items:center; justify-content:space-between;
  padding:10px 0; border-bottom:1px solid var(--line);}
.call-settings-row:last-child{border-bottom:none;}
.call-settings-name{font-size:15px; font-weight:700; color:var(--ink);}
.call-settings-name.disabled{color:var(--mute); text-decoration:line-through;}
.setting-input{background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:10px 14px; color:var(--ink); font-size:14px; outline:none;}
.setting-input:focus{border-color:var(--gold);}

/* 합석 대기 바 (POS 상단) */
#merge-bar{padding:0 18px; display:flex; flex-wrap:wrap; gap:8px;}
.merge-alert{background:rgba(216,166,87,.12); border:1px solid var(--gold); border-radius:12px; padding:14px 16px; margin:12px 0 0; display:inline-flex; flex-direction:column; width:auto;}
.merge-alert-title{font-size:14px; font-weight:800; color:var(--gold-soft);}

/* 합석 */
.join-wait{font-size:14px; color:var(--gold-soft); margin-top:10px; text-align:center; padding:8px; border-radius:10px; background:rgba(216,166,87,.1); border:1px dashed var(--gold);}
.merge-group{margin-bottom:10px; padding-bottom:10px; border-bottom:1px dashed var(--line);}
.merge-group:last-child{border-bottom:none;}
.merge-label{font-size:14px; font-weight:900; color:var(--gold-soft); margin:8px 0 6px;}
.merge-sub-total{display:flex; justify-content:space-between; font-size:13px; color:var(--mute); margin-top:6px;}
.merge-sub-total b{color:var(--ink); font-weight:900;}
.toast{position:fixed; left:50%; bottom:90px; transform:translateX(-50%); background:var(--gold);
  color:#231a08; font-weight:900; padding:12px 20px; border-radius:12px; z-index:10000; box-shadow:0 8px 24px rgba(0,0,0,.4);}

/* ===== 이벤트 관리 (POS) ===== */
.evrow{display:flex; align-items:flex-start; gap:12px; background:var(--card); border:1px solid var(--line);
  border-radius:11px; padding:12px 14px; margin-bottom:8px; transition:border-color .2s;}
.evrow.active{border-color:var(--ok); background:rgba(55,178,107,.06);}
.ev-left{display:flex; align-items:flex-start; gap:10px; flex:1; min-width:0;}
.ev-toggle-btn{background:transparent; border:1px solid var(--line); border-radius:8px;
  padding:6px 10px; font-size:13px; font-weight:800; white-space:nowrap; flex:0 0 auto; color:var(--ink);}
.evrow.active .ev-toggle-btn{border-color:var(--ok); color:var(--ok);}
.ev-info{flex:1; min-width:0;}
.ev-name{font-weight:800; font-size:14px;}
.ev-detail{font-size:14px; color:var(--mute); margin-top:2px;}
.ev-reward{font-size:14px; color:var(--gold-soft); margin-top:3px; font-weight:700;}
.ev-actions{display:flex; gap:6px; flex:0 0 auto;}

/* ===== 이벤트 당첨 팝업 (태블릿) ===== */
.event-celebrate{position:fixed; inset:0; background:rgba(10,8,20,.94); z-index:9999;
  display:flex; align-items:center; justify-content:center; animation:fadeIn .3s;}
@keyframes fadeIn{from{opacity:0;} to{opacity:1;}}
.ev-cel-inner{text-align:center; padding:32px 28px; max-width:480px;}
.ev-cel-sparks{font-size:32px; letter-spacing:6px; animation:celBounce 1s ease-in-out infinite;}
@keyframes celBounce{0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);}}
.ev-cel-trophy{font-size:96px; margin:10px 0; animation:celPulse 1.2s ease-in-out infinite;}
@keyframes celPulse{0%,100%{transform:scale(1);} 50%{transform:scale(1.12);}}
.ev-cel-title{font-size:44px; font-weight:900; color:#FFD700; letter-spacing:-.02em;
  text-shadow:0 0 24px rgba(255,215,0,.6); margin-bottom:6px;}
.ev-cel-count{font-size:22px; color:#ffe08a; font-weight:800; margin-bottom:14px;}
.ev-cel-name{font-size:20px; color:#fff; font-weight:700; margin-bottom:4px;}
.ev-cel-reward{font-size:30px; font-weight:900; color:#FFD700; margin:6px 0 20px;
  background:rgba(255,215,0,.12); border:2px solid rgba(255,215,0,.35);
  border-radius:14px; padding:12px 24px; display:inline-block;}
.ev-cel-hint{font-size:13px; color:rgba(255,255,255,.35); margin-top:22px;}

/* 태블릿 이벤트 당첨 내역 (주문화면) */
.ev-wins-box{margin-top:14px; padding:12px 14px; background:rgba(216,166,87,.1);
  border:1px solid rgba(216,166,87,.35); border-radius:12px;}
.ev-win-row{display:flex; justify-content:space-between; align-items:center;
  padding:5px 0; border-bottom:1px dashed rgba(216,166,87,.2);}
.ev-win-row:last-child{border-bottom:none;}
.ev-win-name{font-size:13px; font-weight:800; color:var(--gold-soft);}
.ev-win-reward{font-size:13px; font-weight:700; color:var(--ink);}

/* 버튼 한 줄 2열 */
.cart-action-row{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:8px;}
.cart-action-row .btn{width:100%; justify-content:center; font-size:24px; padding:18px 12px;}

/* 주문 확인 팝업 - 글씨/버튼 확대 */
.order-confirm-modal h3{font-size:40px;}
.order-confirm-modal .sub{font-size:20px;}
.order-confirm-modal .oline{font-size:22px;}
.order-confirm-modal .oline .qx{font-size:19px;}
.order-confirm-modal .oline .am{font-size:22px;}
.order-confirm-modal .row .btn{font-size:24px; padding:18px 12px;}

/* 주문내역 버튼 */
.order-history-btn{margin-top:10px; font-size:23px; padding:18px; width:100%; justify-content:center;}

/* 주문내역 총액 */
.order-history-total{display:flex; justify-content:space-between; align-items:center;
  padding:14px 0; margin-bottom:6px; border-bottom:1px solid var(--line);
  font-size:20px; font-weight:800; color:var(--gold-soft);}

/* 받은선물 무료 표시 */
.free-gift{color:var(--ok); font-size:16px; font-weight:800;}

/* ===== 매출 통계 패널 ===== */
.stats-period-btns{display:flex; gap:6px; margin-bottom:16px; flex-wrap:wrap;}
.stats-period-btn{background:transparent; border:1px solid var(--line); color:var(--mute);
  font-size:13px; font-weight:700; padding:7px 16px; border-radius:20px; cursor:pointer;}
.stats-period-btn.on{background:var(--gold); color:#231a08; border-color:var(--gold);}

.stats-summary{display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap;}
.stats-summary-item{flex:1; min-width:110px; background:rgba(216,166,87,.08);
  border:1px solid var(--line); border-radius:12px; padding:12px 16px; text-align:center;}
.stats-summary-label{font-size:13px; color:var(--mute); font-weight:700; margin-bottom:6px; letter-spacing:.04em;}
.stats-summary-val{font-size:20px; font-weight:900; color:var(--gold-soft);}

.stats-section-title{font-size:14px; font-weight:800; color:var(--mute); letter-spacing:.08em;
  text-transform:uppercase; margin:16px 0 8px;}

.stat-bars{display:flex; flex-direction:column; gap:6px; margin-bottom:4px;}
.stat-bar-row{display:flex; align-items:center; gap:8px;}
.stat-bar-label{font-size:14px; color:var(--mute); font-weight:700; width:60px; flex-shrink:0; text-align:right;}
.stat-bar-track{flex:1; height:14px; background:rgba(255,255,255,.07); border-radius:7px; overflow:hidden;}
.stat-bar-fill{height:100%; background:linear-gradient(90deg, var(--gold) 0%, var(--gold-soft) 100%);
  border-radius:7px; transition:width .4s ease;}
.stat-bar-val{font-size:14px; color:var(--ink); font-weight:700; width:90px; flex-shrink:0; text-align:right;}

.stats-two-col{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:4px;}
@media(max-width:600px){.stats-two-col{grid-template-columns:1fr;}}

/* ===== 주문 알림 큐 ===== */
/* 주문 벨 배지 버튼 */
.oq-bell-btn{position:relative;}
.oq-bell-badge{display:inline-flex; align-items:center; justify-content:center;
  background:var(--bad); color:#fff; border-radius:999px; font-size:12px; font-weight:900;
  min-width:20px; height:20px; padding:0 5px; margin-left:4px; vertical-align:middle;}
/* 주문 큐 모달 내부 */
.oq-modal-section{margin-bottom:16px;}
.oq-modal-title{display:flex; align-items:center; gap:8px; font-size:14px; font-weight:900;
  margin-bottom:8px;}
.oq-time{font-size:12px; color:var(--mute); font-weight:700; margin-left:6px;}
.oq-header{display:flex; align-items:center; gap:10px; font-size:15px; font-weight:900; color:var(--bad);}
.oq-all-btn{margin-left:auto; background:var(--bad); color:#fff; border:none; border-radius:8px;
  padding:5px 14px; font-size:13px; font-weight:800; cursor:pointer;}
.oq-item{display:flex; align-items:center; gap:12px; background:rgba(255,255,255,.05);
  border:1px solid rgba(226,85,99,.3); border-radius:10px; padding:10px 14px;}
.oq-table{font-size:16px; font-weight:900; color:var(--ink); min-width:110px;}
.oq-party{font-size:13px; font-weight:700; color:var(--mute);}
.oq-items{flex:1; font-size:14px; color:var(--gold-soft); font-weight:700;}
.oq-confirm{background:var(--ok); color:#fff; border:none; border-radius:8px;
  padding:8px 18px; font-size:14px; font-weight:900; cursor:pointer; white-space:nowrap;}
.oq-confirm:active{transform:scale(.96);}
