:root{
  --bg:#f5f5f4;--surface:#fff;--sub:#fafaf9;--line:#e4e4e2;--line2:#efefed;--line3:#cdcdca;--chip:#f0f0ee;
  --ink:#0c0c0c;--ink2:#333331;--mute:#5f5f5c;--faint:#767673;
  --acc:#d03a1d;--acc-bg:#fcede9;--acc-t:#c2361b;
  --pos:#18794e;--pos-bg:#e9f6ef;--neg:#c2361b;--neg-bg:#fcede9;--warn:#a15c07;--warn-bg:#fdf4e4;
  --mark:#d03a1d;--pri:#0c0c0c;--r:6px;
  --sh:0 1px 2px rgba(0,0,0,.05);--sh2:0 2px 4px rgba(0,0,0,.06),0 8px 20px -6px rgba(0,0,0,.16);--tip:#0c0c0c;
}
.top{border-bottom:2px solid var(--ink)}
.title{letter-spacing:.04em}
.ev-name{color:var(--ink2);font-weight:600}
.dday{font-size:12.5px;color:var(--mute)}
.dday b{font:800 18px "Inter",system-ui;color:var(--acc-t);margin:0 2px}
.w96{width:96px}.w81{width:81%!important}
.kpi .s .mbar b{background:var(--acc)}
.neg-t{color:var(--neg)!important}
.lg-a{--k:var(--acc)}.lg-t{--k:#6b6b68}
.h190{height:190px}.h170{height:170px}
.g-fm{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}
.fcol,.qcol,.gcol{display:grid;gap:12px;min-width:0}
.pf{margin:12px 16px 16px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.pf-hero{background:#0c0c0c;color:#fff;padding:16px 18px;display:grid;gap:2px;position:relative}
.pf-hero::after{content:"";position:absolute;right:18px;top:16px;width:46px;height:46px;border-radius:50%;border:2px solid var(--acc);box-shadow:inset 0 0 0 6px #0c0c0c,inset 0 0 0 8px var(--acc)}
.pf-date{font:700 11.5px "Inter",system-ui;letter-spacing:.12em;color:#f2a693}
.pf-hero b{font-size:20px;letter-spacing:.03em}
.pf-hero span:last-child{display:flex;align-items:center;gap:6px;font-size:12px;color:#c9c9c6}
.pf-sec{padding:12px 18px 0;display:grid;gap:7px;min-width:0}
.pf-row{display:grid;grid-template-columns:1fr 1fr;gap:0}
.lb{font-size:12px;font-weight:700;color:var(--ink2)}
.types{display:grid;gap:6px}
.types button{display:grid;grid-template-columns:18px 1fr auto;gap:12px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:6px;padding:10px 12px}
.types .rd{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line3)}
.types button[aria-pressed="true"]{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.types button[aria-pressed="true"] .rd{border:5px solid var(--ink)}
.types b{font-size:13.5px;display:block}
.types .sub{font-size:11.5px}
.types .pr{font:700 15px "Inter",system-ui;text-align:right;display:grid;line-height:1.3}
.types .pr span{font:600 11px "Noto Sans CJK JP",system-ui;color:var(--mute)}
.types .pr span.lo{color:var(--acc-t)}
.types button:disabled{opacity:.5;cursor:not-allowed}
.step{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;height:34px;justify-self:start}
.step button{border:0;background:none;width:34px;height:32px;display:grid;place-items:center}
.step b{min-width:34px;text-align:center;font-size:15px;border-left:1px solid var(--line);border-right:1px solid var(--line);line-height:32px}
.inp{height:36px;border:1px solid var(--line);border-radius:6px;padding:0 11px;display:flex;align-items:center;font-size:13px;white-space:nowrap;overflow:hidden}
.pf-pay{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 18px;border-top:1px solid var(--line);background:var(--sub)}
.pf-pay div{flex:1;display:grid;line-height:1.3}
.pf-pay b{font:800 22px "Inter",system-ui}
.sold{display:flex;align-items:center;gap:8px}
.sold .mbar{width:110px}
.sold .mbar b{background:var(--ink)}
.sold.hot .mbar b{background:var(--acc)}
/* QR */
.g-qr{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:24px}
.tkwrap{background:repeating-linear-gradient(45deg,#ececea 0 1px,transparent 1px 9px),#f0f0ee;border:1px solid var(--line);border-radius:10px;padding:24px 26px}
.tk{background:#fff;border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.08),0 14px 28px -14px rgba(0,0,0,.3);overflow:hidden;position:relative}
.tk-top{background:#0c0c0c;color:#fff;padding:16px 18px 14px;display:grid;gap:2px}
.tk-top b{font-size:17px}
.tk-place{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#c9c9c6}
.tk-mid{display:grid;justify-items:center;gap:6px;padding:18px 0 14px}
.tk-id{font-size:12px;letter-spacing:.12em;color:var(--ink2)}
.tk-perf{height:0;border-top:2px dashed var(--line3);margin:0 14px;position:relative}
.tk-perf::before,.tk-perf::after{content:"";position:absolute;top:-11px;width:20px;height:20px;border-radius:50%;background:#efefed}
.tk-perf::before{left:-24px}.tk-perf::after{right:-24px}
.tk-dl{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:12px 18px 4px;gap:10px}
.tk-dl dt{font-size:11px;color:var(--mute)}
.tk-dl dd{margin:0;font-weight:700;font-size:14px}
.tk-note{font-size:11.5px;color:var(--mute);padding:8px 18px 16px;line-height:1.6}
.qstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:var(--sh)}
.qstats>div{padding:12px 16px;display:grid;line-height:1.35}
.qstats>div+div{border-left:1px solid var(--line2)}
.qstats b{font:700 22px/1.3 "Inter",system-ui}
.mut{color:var(--mute)}
/* gate */
.g-gt{grid-template-columns:300px minmax(0,1fr) 300px;align-items:start}
.cam{margin:12px 16px 0;height:230px;border-radius:8px;background:#1b1b1a;display:grid;place-items:center;position:relative;overflow:hidden}
.cam::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 4px)}
.cam-f{width:160px;height:160px;position:relative;display:grid;place-items:center;background:#f3f3f1;border-radius:6px}
.cam-f i{position:absolute;width:26px;height:26px;border:3px solid #fff}
.cam-f i:nth-child(1){left:-12px;top:-12px;border-right:0;border-bottom:0}
.cam-f i:nth-child(2){right:-12px;top:-12px;border-left:0;border-bottom:0}
.cam-f i:nth-child(3){left:-12px;bottom:-12px;border-right:0;border-top:0}
.cam-f i:nth-child(4){right:-12px;bottom:-12px;border-left:0;border-top:0}
.cam-l{position:absolute;left:-6px;right:-6px;height:2px;background:var(--acc);top:50%;animation:scanl 2.4s ease-in-out infinite}
@keyframes scanl{0%,100%{transform:translateY(-70px)}50%{transform:translateY(70px)}}
.res{margin:12px 16px 16px;border-radius:8px;padding:14px;display:flex;align-items:center;gap:12px;transition:background .2s}
.res div{flex:1;display:grid;line-height:1.35}
.res b{font-size:19px}
.res span{font-size:12.5px}
.res-ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:none}
.res-ic svg{width:22px;height:22px;stroke-width:2.6}
.res-t{font-size:11.5px!important;align-self:flex-start;color:var(--mute)}
.res.ok{background:var(--pos-bg);color:#0f5a39}.res.ok .res-ic{background:var(--pos)}
.res.dup{background:var(--warn-bg);color:#7a4505}.res.dup .res-ic{background:var(--warn)}
.res.ng{background:var(--neg-bg);color:#992a14}.res.ng .res-ic{background:var(--neg)}
.gtop{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:12px}
.ring-c{display:grid;grid-template-columns:132px 1fr;gap:16px;align-items:center;padding:16px;position:relative}
.ring-t{position:absolute;left:16px;top:16px;width:132px;height:132px;display:grid;place-content:center;text-align:center;line-height:1.25}
.ring-t b{font-size:24px}.ring-t span{font-size:11px;color:var(--mute)}
.ring-s{display:grid;gap:2px}
.ring-s>b{font:800 30px/1.2 "Inter",system-ui}
.gl{padding:8px 16px 12px;display:grid}
.gr{display:grid;grid-template-columns:76px 1fr 54px;gap:10px;align-items:center;font-size:12.5px;padding:6px 0}
.gr .mbar b{background:var(--ink)}
.gr.busy .mbar b{background:var(--acc)}
.gr .num{text-align:right}
.gr .w{font-size:11px;color:var(--mute);grid-column:2/-1;margin-top:-4px}
.gr.busy .w{color:var(--acc-t);font-weight:600}
.logc{min-height:100%}
.livedot{width:7px;height:7px;border-radius:50%;background:var(--pos);animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.3}}
.log{list-style:none;margin:10px 0 0;padding:0;border-top:1px solid var(--line)}
.log li{display:grid;grid-template-columns:20px 1fr auto;gap:10px;align-items:center;padding:9px 16px;border-bottom:1px solid var(--line2);font-size:12.5px}
.log li.in{animation:slin .4s ease-out}
@keyframes slin{from{background:#fff7d6}to{background:#fff}}
.log .ic{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#fff}
.log .ic svg{width:12px;height:12px;stroke-width:2.8}
.log .ok .ic{background:var(--pos)}.log .dup .ic{background:var(--warn)}.log .ng .ic{background:var(--neg)}
.log div{display:grid;line-height:1.35}
.log div span{font-size:11.5px;color:var(--mute)}
.log time{font:11.5px "Inter",system-ui;color:var(--mute)}
@media (max-width:1280px){.g-gt{grid-template-columns:280px minmax(0,1fr)}.logc{grid-column:1/-1}}
@media (max-width:1100px){.g-fm,.g-qr{grid-template-columns:minmax(0,1fr)}.tkwrap{max-width:380px;justify-self:center;width:100%}.gtop{grid-template-columns:1fr}}
@media (max-width:860px){.g-gt{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .ev-name{display:none}
  .pf{margin:10px 12px 12px}
  .pf-row{grid-template-columns:1fr}
  .pf-sec{padding:10px 14px 0}
  .pf-hero::after{display:none}
  .pf-pay{padding:12px 14px}
  .qstats{grid-template-columns:1fr 1fr}
  .qstats>div:nth-child(3){border-left:0}
  .qstats>div:nth-child(n+3){border-top:1px solid var(--line2)}
  .qstats>div{padding:10px 12px}
  .tkwrap{padding:16px}
  .sold .mbar{width:60px}
  .ring-c{grid-template-columns:120px 1fr}
}
.src{padding:10px 16px 14px;display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}
.sr{display:grid;grid-template-columns:84px 1fr 40px;gap:8px;align-items:center;font-size:12.5px;padding:4px 0}
.sr .mbar b{background:var(--ink)}
.sr:first-child .mbar b{background:var(--acc)}
.sr .num{text-align:right}
@media (max-width:760px){.src{grid-template-columns:1fr}}
