:root{--g:#103f33;--g2:#17634f;--lime:#dcf15c;--bg:#f3f5f2;--line:#e2e7e3;--muted:#69746f;--red:#cf4343}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#18221e;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.top{display:flex;justify-content:space-between;align-items:center;padding:14px 26px;background:#0b3027;color:#fff}.brand{display:flex;align-items:center;gap:12px}.mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--lime);color:#17352b;font-weight:900}.top small{display:block;color:#aac1b9}.roles{display:flex;gap:4px;padding:4px;border:1px solid #45645b;border-radius:12px}.roles button{padding:8px 12px;border:0;border-radius:9px;background:none;color:#c5d5d0}.roles .on{background:#fff;color:#17352b;font-weight:800}.shell{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 70px)}nav{padding:24px 14px;background:#103027;color:#d8e5e0}nav button,nav a{display:block;width:100%;margin:4px 0;padding:12px 14px;border:0;border-radius:12px;background:none;color:inherit;text-align:left;text-decoration:none}nav .on,nav button:hover,nav a:hover{background:#1a5141;color:#fff}main{padding:28px}.view{display:none}.view.on{display:block}.head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.head h1{margin:0 0 6px}.muted{color:var(--muted)}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:1.15fr .85fr}.card{padding:21px;border:1px solid var(--line);border-radius:19px;background:#fff;box-shadow:0 14px 45px #193a2e12}.card h2{margin:0 0 5px;font-size:19px}.form{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:18px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field span{font-size:13px;font-weight:700}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #d5ddd8;border-radius:11px;background:#fbfcfb}.field textarea{min-height:100px}.packs{display:grid;gap:9px;margin-top:18px}.pack{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:14px}.pack:has(input:checked){border-color:var(--g2);background:#f2faf7}.pack small{display:block;color:var(--muted)}.price{color:var(--g);font-size:18px}.actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:17px}.btn{padding:10px 15px;border:1px solid transparent;border-radius:11px;font-weight:800;text-decoration:none}.primary{background:var(--g);color:#fff}.ghost{background:#fff;border-color:#d5ddd8;color:#18221e}.accent{background:var(--lime);color:#193126}.danger{background:#fff3f3;border-color:#f0caca;color:var(--red)}.btn:disabled{opacity:.4;cursor:not-allowed}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.metric{padding:16px;border:1px solid var(--line);border-radius:15px;background:#fff}.metric:first-child{background:var(--lime)}.metric span{display:block;margin-bottom:7px;color:#617068;font-size:12px}.metric strong{font-size:25px}.pill{display:inline-block;padding:5px 9px;border-radius:99px;background:#dff5ec;color:#17634f;font-size:12px;font-weight:800}.pill.wait{background:#fff0be;color:#7c5900}.pill.paid{background:#dceffa;color:#075a82}.qr{text-align:center}.qrbox{display:grid;place-items:center;min-height:240px;margin-top:15px;border-radius:16px;background:#f2f5f2}.qrbox img{width:210px;height:210px;padding:8px;border-radius:9px;background:#fff}.qrbox .fake{display:grid;grid-template-columns:repeat(19,8px);gap:2px;padding:12px;background:#fff}.fake i{width:8px;height:8px;background:#132a22}.fake i.off{background:#fff}.bar{height:9px;margin-top:8px;border-radius:99px;background:#e7ece8;overflow:hidden}.bar i{display:block;height:100%;background:var(--g2)}table{width:100%;border-collapse:collapse;margin-top:12px}th,td{padding:12px 9px;border-bottom:1px solid var(--line);font-size:13px;text-align:left}th{color:var(--muted)}.log{display:grid;gap:11px;margin-top:16px}.log div{padding-left:16px;border-left:3px solid var(--g2)}.log p{margin:0 0 3px}.log small{color:var(--muted)}.empty{padding:35px;text-align:center;color:var(--muted)}.modal{position:fixed;inset:0;display:none;place-items:center;padding:20px;background:#071b16a8}.modal.on{display:grid}.modalbox{width:min(560px,100%);padding:23px;border-radius:18px;background:#fff}.toast{position:fixed;right:20px;bottom:20px;padding:13px 17px;border-radius:12px;background:#142a22;color:#fff;opacity:0;transform:translateY(15px);transition:.2s}.toast.on{opacity:1;transform:none}
.phone{max-width:460px;min-height:100vh;margin:auto;background:#f4f5f2;box-shadow:0 0 50px #1a382c20}.hero{padding:24px 19px 30px;background:linear-gradient(145deg,#153f34,#091f1a);color:#fff}.hero h1{margin:24px 0 10px}.meta{display:flex;flex-wrap:wrap;gap:7px}.meta span{padding:6px 8px;border:1px solid #41675d;border-radius:8px;font-size:12px}.seat{display:flex;justify-content:space-between;align-items:center;margin:-14px 15px 14px;padding:15px;border-radius:15px;background:var(--lime);box-shadow:0 10px 30px #183b2d18}.seat strong{display:block}.timer{font-size:22px;font-weight:900}.content{padding:0 15px 115px}.ccard{margin-bottom:13px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}.choice{display:block;margin:9px 0}.choice input{position:absolute;opacity:0}.choice article{padding:14px;border:1px solid var(--line);border-radius:13px}.choice input:checked+article{border:2px solid var(--g);background:#f1faf6}.choice header{display:flex;justify-content:space-between}.choice p{margin:7px 0 0;color:var(--muted);font-size:13px}.bottom{position:fixed;bottom:0;left:0;right:0;max-width:460px;margin:auto;padding:11px 15px;background:#ffffffee;border-top:1px solid var(--line)}.bottom .btn{width:100%;margin-top:6px}.state{display:grid;min-height:100vh;place-items:center;padding:28px;text-align:center}.success{padding:42px 20px;text-align:center}.check{display:grid;place-items:center;width:70px;height:70px;margin:auto;border-radius:50%;background:var(--g);color:#fff;font-size:30px}.ticket{margin:22px 0;padding:18px;border:1px dashed #9eaaa4;border-radius:15px;background:#fff;text-align:left}.ticket div{display:flex;justify-content:space-between;margin:9px 0}
@media(max-width:850px){.shell{grid-template-columns:1fr}nav{display:flex;overflow:auto;padding:8px}nav button,nav a{width:auto;white-space:nowrap}.grid.two{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}main{padding:16px}.top{padding:10px 13px}.top small{display:none}}@media(max-width:520px){.form{grid-template-columns:1fr}.field.full{grid-column:auto}.head{display:block}.metrics{gap:7px}.metric{padding:12px}.metric strong{font-size:21px}}
.participant-table{overflow:auto}.participant-table table{min-width:820px}.participant-table th:last-child,.participant-table td:last-child{min-width:130px}.participant-table .btn{display:inline-flex;min-width:96px;justify-content:center;white-space:nowrap}.waiter-games{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.waiter-game{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 14px 45px #193a2e12}.waiter-game header{display:flex;justify-content:space-between;gap:12px}.waiter-game .dealer{display:flex;align-items:center;gap:11px}.avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--g);color:#fff;font-weight:900}.waiter-game h2{margin:13px 0 5px}.waiter-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.waiter-stats span{padding:10px;border-radius:11px;background:#f2f5f2;font-size:13px}.reward-modal{width:min(760px,100%)}.players-pool{display:flex;flex-wrap:wrap;gap:12px;min-height:92px;margin:16px 0;padding:14px;border:1px dashed #b7c2bc;border-radius:15px;background:#f7f9f7}.player-chip{display:grid;justify-items:center;gap:5px;width:76px;padding:7px;border:2px solid transparent;border-radius:13px;background:#fff;cursor:grab}.player-chip.selected{border-color:var(--g2);background:#eaf7f2}.player-chip .avatar{width:42px;height:42px}.player-chip small{max-width:65px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reward-slots{display:grid;gap:11px}.reward-slot{display:grid;grid-template-columns:100px 1fr auto;align-items:center;gap:13px;min-height:82px;padding:13px;border:2px dashed #cad3ce;border-radius:15px;background:#fbfcfb}.reward-slot.over{border-color:var(--g2);background:#eef9f5}.reward-slot .rank{font-weight:900}.reward-slot .award{color:#8a6500;font-weight:900}.reward-slot .assigned{display:flex;align-items:center;gap:10px}.reward-slot .assigned .avatar{width:46px;height:46px}.reward-slot.empty-slot::after{content:"拖入参赛者头像";color:var(--muted);font-size:13px}
.participant-table .checkin-action{display:inline-flex!important;width:auto!important;height:auto!important;min-width:96px!important;padding:10px 15px!important;border-radius:11px!important;background:#fff!important;color:#18221e!important;font-size:13px!important;line-height:1.2!important}
.mobile-nav{display:none}
@media(max-width:700px){
  body{padding-bottom:76px;background:#eef2ef}
  .top{position:sticky;top:0;z-index:30;min-height:62px;padding:9px 12px;box-shadow:0 5px 22px #102f2718}
  .mark{width:38px;height:38px;border-radius:11px}.brand strong{font-size:14px}.roles{padding:3px}.roles button{padding:7px 9px;font-size:12px}
  .shell{display:block;min-height:auto}.shell>nav{display:none!important}main{padding:12px 10px 92px}
  .head{margin-bottom:13px}.head h1{font-size:23px}.head>.muted,.head div>.muted{font-size:13px;line-height:1.5}
  .card{padding:15px;border-radius:16px;box-shadow:0 8px 28px #193a2e0d}.grid{gap:11px}.grid.two{display:block}.grid.two>.card{margin-bottom:11px}
  .form{display:block}.field{margin-top:13px}.field input,.field select,.field textarea{min-height:46px;font-size:16px}.field textarea{min-height:105px}
  .pack{min-height:66px;padding:11px}.pack input{width:20px;height:20px}.price{font-size:16px}
  .actions .btn{min-height:44px;flex:1}
  .metrics{grid-template-columns:1fr 1fr;margin-bottom:11px}.metric{min-height:82px;padding:12px;border-radius:14px}.metric span{font-size:11px}.metric strong{font-size:22px}
  #live>.head{padding:3px 2px 0}#live>.head>.actions{position:fixed;right:10px;bottom:78px;left:10px;z-index:25;display:grid;grid-template-columns:1fr 1fr 1.2fr;margin:0;padding:8px;border:1px solid var(--line);border-radius:15px;background:#fffffff2;box-shadow:0 8px 30px #102f2730;backdrop-filter:blur(12px)}
  #live>.head>.actions .btn{min-width:0;padding:9px 5px;font-size:12px}
  #live .grid.two .card.qr{order:1}#live .grid.two .card:not(.qr){order:2}.qrbox{min-height:210px}.qrbox img{width:190px;height:190px}
  .participant-table{overflow:visible}.participant-table table{display:block;min-width:0}.participant-table thead{display:none}.participant-table tbody{display:grid;gap:10px;margin-top:13px}.participant-table tr{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:13px;border:1px solid var(--line);border-radius:15px;background:#fbfcfb}.participant-table td{display:grid;gap:4px;min-width:0!important;padding:9px 7px;border:0}.participant-table td::before{color:var(--muted);font-size:11px;font-weight:700}.participant-table td:nth-child(1)::before{content:"参赛顾客"}.participant-table td:nth-child(2)::before{content:"报名状态"}.participant-table td:nth-child(3)::before{content:"所购套餐"}.participant-table td:nth-child(4)::before{content:"进入时间"}.participant-table td:nth-child(5)::before{content:"占位倒计时"}.participant-table td:nth-child(6)::before{content:"现场操作"}.participant-table td:last-child{grid-column:1/-1}.participant-table td:last-child .btn{width:100%;min-height:42px}
  .waiter-games{grid-template-columns:1fr}.waiter-game{padding:16px}.waiter-game .btn{width:100%;min-height:48px}.waiter-stats span{display:flex;justify-content:space-between}
  .modal{align-items:end;padding:0}.modalbox{width:100%;max-height:88vh;overflow:auto;padding:19px 15px 24px;border-radius:22px 22px 0 0}.reward-modal{width:100%}.players-pool{gap:8px;padding:10px}.player-chip{width:68px}.reward-slot{grid-template-columns:70px 1fr;min-height:92px}.reward-slot .award{grid-column:1/-1}.reward-slot.empty-slot::after{font-size:12px}
  .mobile-nav{position:fixed;right:0;bottom:0;left:0;z-index:24;display:grid;grid-template-columns:repeat(5,1fr);height:68px;padding:6px max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff2;box-shadow:0 -6px 22px #102f2715;backdrop-filter:blur(14px)}
  .mobile-nav button,.mobile-nav a{display:grid;place-items:center;align-content:center;gap:2px;border:0;border-radius:12px;background:transparent;color:#738079;text-decoration:none}.mobile-nav button span,.mobile-nav a span{font-size:18px}.mobile-nav button b,.mobile-nav a b{font-size:11px}.mobile-nav button.on{color:var(--g);background:#edf7f3}
  body.waiter-mode{padding-bottom:0}body.waiter-mode .mobile-nav{display:none}body.waiter-mode main{padding-bottom:25px}
}

/* DrinkGo unified cream/orange admin theme */
:root{--g:#ff7417;--g2:#e85f08;--lime:#ffefd9;--bg:#fff3df;--line:#efdcca;--muted:#756c63}
.top{color:#18201c;background:#fff8ee;border-bottom:1px solid var(--line)}
.mark{color:#fff;background:linear-gradient(135deg,#ff9b32,var(--g))}
.top small{color:var(--muted)}
.roles{border-color:#efdcca;background:#fff3df}
.roles button{color:#756c63}
.roles .on{color:#c94f08;background:#ffefd9}
.shell nav{color:#6c6258;background:#fff8ee;border-right:1px solid var(--line)}
.shell nav .on,.shell nav button:hover,.shell nav a:hover{color:#c94f08;background:#ffefd9}
.primary{background:var(--g)}
.accent{color:#a43f00;background:#ffe2c8}
.metric:first-child{background:#ffefd9}
.pack:has(input:checked){border-color:#ff9b32;background:#fff8ee}
.price{color:#d85a0b}
.bar i{background:linear-gradient(90deg,#ff9b32,var(--g))}
.mobile-nav button.on{color:#c94f08;background:#ffefd9}
@media(max-width:700px){body{background:var(--bg)}}

.pack-thumb{width:54px;height:54px;border-radius:11px;object-fit:cover;background:#f1e3d2}.template-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.panel-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.panel-title p{margin:5px 0}.template-list{display:grid;gap:12px;margin-top:18px}.template-item{padding:14px;border:1px solid var(--line);border-radius:15px;background:#fffcf7}.template-fields{display:grid;grid-template-columns:90px 1fr 120px;gap:10px}.template-fields label,.reward-head label{display:grid;gap:5px;color:var(--muted);font-size:12px}.template-fields input,.reward-head input,.reward-row input{width:100%;padding:10px;border:1px solid #dfd2c5;border-radius:9px;background:#fff}.template-detail{grid-column:2/-1}.template-image{grid-row:1/3;display:grid;place-items:center;position:relative;min-height:104px;border:1px dashed #d7c3af;border-radius:12px;overflow:hidden;background:#fff4e6}.template-image img{width:100%;height:104px;object-fit:cover}.template-image input{position:absolute;inset:0;opacity:0;cursor:pointer}.template-actions{display:flex;justify-content:flex-end;margin-top:9px}.mini-danger{border:0;background:none;color:#c64b39;font-weight:700}.reward-head{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.reward-rows{display:grid;gap:7px;margin-top:10px}.reward-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}.reward-row button{border:0;background:none;color:#c64b39;font-size:20px}.add-rank{margin-top:9px;border:0;background:none;color:#d85a0b;font-weight:800}.template-savebar{position:sticky;bottom:12px;display:flex;justify-content:flex-end;align-items:center;gap:15px;margin-top:18px;padding:13px 16px;border:1px solid #ead6c0;border-radius:15px;background:#fffaf1e8;box-shadow:0 12px 35px #77431522;backdrop-filter:blur(10px)}.template-savebar span{color:var(--muted);font-size:13px}
@media(max-width:900px){.template-grid{grid-template-columns:1fr}}@media(max-width:620px){.template-fields{grid-template-columns:78px 1fr}.template-fields label:nth-of-type(2){grid-column:2}.template-detail{grid-column:1/-1}.template-savebar{bottom:75px;align-items:stretch;flex-direction:column}.reward-row{grid-template-columns:1fr 110px auto}}
