:root{color-scheme:light;--red:#a32329;--blue:#257bc6;--paper:#f2f2f2;--u:calc(min(100vw,480px)/360);font-family:Arial,"Microsoft YaHei","PingFang SC",sans-serif;color:#080808;background:#e8eaed;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #347db3;outline-offset:3px}button{touch-action:manipulation}[hidden]{display:none!important}.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}.phone-page{width:100%;max-width:480px;min-height:100dvh;margin:0 auto;background:var(--paper);box-shadow:0 0 45px #1934450d}.app-header{position:sticky;top:0;z-index:10;background:#fff}
.navigation-bar{position:relative;height:calc(45 * var(--u));display:flex;align-items:center;justify-content:center;padding:0 calc(9 * var(--u))}.navigation-bar h1{font-size:calc(14.5 * var(--u));font-weight:400;margin:0;line-height:1.4}.back-button{position:absolute;left:calc(8 * var(--u));top:calc(9 * var(--u));width:calc(22 * var(--u));height:calc(28 * var(--u));border:0;background:none;padding:calc(6 * var(--u))}.back-button svg{height:100%;width:100%;fill:none;stroke:#080808;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.capsule{position:absolute;right:calc(8 * var(--u));height:calc(30 * var(--u));width:calc(91 * var(--u));display:flex;align-items:center;border:1px solid #e8e8e8;border-radius:calc(24 * var(--u));background:#fff}.capsule button{display:flex;align-items:center;justify-content:center;width:50%;height:100%;border:0;background:none;border-radius:inherit;padding:0}.capsule-divider{height:55%;width:1px;background:#e8e8e8}.three-dots{display:flex;align-items:center;justify-content:center;gap:calc(3 * var(--u))}.three-dots i{background:#151515;width:calc(3 * var(--u));height:calc(3 * var(--u));border-radius:50%}.three-dots i:nth-child(2){width:calc(5 * var(--u));height:calc(5 * var(--u))}.mini-circle{width:calc(17 * var(--u));height:calc(17 * var(--u));border:calc(2 * var(--u)) solid #151515;border-radius:50%;display:grid;place-items:center}.mini-circle i{width:calc(6 * var(--u));height:calc(6 * var(--u));background:#151515;border-radius:50%}
.page-content{padding:calc(14 * var(--u)) calc(14 * var(--u)) 0}.card{background:#fff;border-radius:calc(7 * var(--u));box-shadow:0 calc(2 * var(--u)) calc(7 * var(--u)) #00000008}.shop-card{position:relative;min-height:calc(168 * var(--u));padding:calc(14 * var(--u)) calc(12 * var(--u)) calc(12 * var(--u));overflow:hidden}.shop-heading{display:flex;align-items:center;gap:calc(8 * var(--u));position:relative;z-index:2}.shop-logo{width:calc(21 * var(--u));height:calc(20 * var(--u));color:var(--red);flex:none}.shop-heading h2{font-size:calc(16 * var(--u));line-height:calc(21 * var(--u));font-weight:700;letter-spacing:calc(-.5 * var(--u));margin:0;white-space:nowrap}.shop-ticket{position:absolute;right:calc(14 * var(--u));top:calc(31 * var(--u));font-size:calc(21 * var(--u));line-height:1.2;font-weight:700;color:var(--red);max-width:calc(85 * var(--u));white-space:nowrap}.shop-ticket.long-number{font-size:calc(15 * var(--u));max-width:calc(100 * var(--u));overflow:hidden;text-overflow:ellipsis}.stamp{--stamp-color:#4bc789;position:absolute;right:calc(74 * var(--u));top:calc(8 * var(--u));width:calc(84 * var(--u));height:calc(68 * var(--u));opacity:.88;filter:blur(calc(.35 * var(--u)));pointer-events:none}.stamp svg{width:100%;height:100%;overflow:visible}.stamp-art{transform:rotate(-29deg);transform-origin:50px 43px;fill:none;stroke:var(--stamp-color);stroke-width:1.7}.stamp-art rect{fill:#fff;fill-opacity:.94}.stamp-art text{fill:var(--stamp-color);stroke:none;font-family:"Microsoft YaHei",sans-serif;font-size:18px;font-weight:700;letter-spacing:1px}.stamp.is-taken{--stamp-color:#d4a636}.stamp.is-missed{--stamp-color:#c04f47}.stamp.is-cancelled{--stamp-color:#999}.shop-meta{display:grid;gap:calc(10 * var(--u));margin-top:calc(16 * var(--u))}.meta-row{display:grid;grid-template-columns:calc(15 * var(--u)) minmax(0,1fr);align-items:center;gap:calc(8 * var(--u));min-height:calc(22 * var(--u));font-size:calc(14 * var(--u));line-height:calc(21 * var(--u))}.meta-icon{width:calc(14 * var(--u));height:calc(14 * var(--u));fill:none;stroke:currentColor;stroke-width:1.5}.address-row{margin-top:calc(1 * var(--u));font-size:calc(12.5 * var(--u));line-height:calc(21 * var(--u))}.address-row .meta-icon{align-self:center}.address-row span{overflow-wrap:anywhere}.queue-card{margin-top:calc(14 * var(--u));padding:calc(13 * var(--u)) calc(12 * var(--u)) calc(12 * var(--u))}.queue-list{display:grid;gap:calc(10 * var(--u));margin:0}.queue-row{display:grid;grid-template-columns:calc(93 * var(--u)) minmax(0,1fr);font-size:calc(14.5 * var(--u));line-height:calc(18 * var(--u))}.queue-row dt{font-size:calc(14 * var(--u));font-weight:700;white-space:nowrap}.queue-row dd{margin:0;font-weight:400;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.queue-row dd.ticket-value{color:var(--red);font-weight:700}.queue-row #queue-time{font-size:calc(14.3 * var(--u));white-space:nowrap;letter-spacing:calc(-.16 * var(--u))}
.notice-board{position:relative;height:calc(102 * var(--u));margin-top:calc(28 * var(--u));display:block;isolation:isolate}.notice-reference{display:block;width:100%;height:100%;overflow:hidden}.time-display{margin-top:calc(24 * var(--u));text-align:center;color:var(--blue);font-size:calc(27 * var(--u));font-weight:700;line-height:calc(36 * var(--u));letter-spacing:calc(.2 * var(--u));white-space:nowrap;font-variant-numeric:tabular-nums;contain:layout style}.time-display.elapsed-clock{font-size:calc(25 * var(--u))}.anti-resale{margin:calc(23 * var(--u)) 0 0;text-align:center;color:var(--blue);font-size:calc(25 * var(--u));line-height:calc(37 * var(--u));font-weight:700;white-space:nowrap;letter-spacing:calc(.5 * var(--u))}.cancel-queue{display:block;margin-top:calc(12 * var(--u));width:100%;height:calc(45 * var(--u));color:#fff;border:0;border-radius:calc(24 * var(--u));background:var(--red);font-size:calc(18 * var(--u));letter-spacing:calc(3 * var(--u))}.page-bottom-space{height:calc(162 * var(--u))}
dialog{color:#18212a;border:0;padding:0;box-shadow:0 20px 100px #0003}dialog::backdrop{background:#1a20265c;backdrop-filter:blur(2px)}.editor-dialog{width:min(94vw,520px);max-height:min(90dvh,960px);border-radius:20px;overscroll-behavior:contain}.editor-dialog form{padding:24px}.editor-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.editor-header h2{font-size:24px;line-height:1.4;margin:3px 0 0;letter-spacing:-.5px}.eyebrow{font-size:10px;letter-spacing:2px;color:#9c3339;margin:0;font-weight:700}.close-editor{width:36px;height:36px;border:1px solid #eee;border-radius:50%;background:#f8f8f8;font-size:27px;line-height:30px;color:#555}.editor-intro{font-size:13px;line-height:1.7;margin:13px 0 20px;color:#68747e}.editor-fields{display:grid;gap:20px}.editor-fields fieldset{min-width:0;margin:0;padding:15px;border:1px solid #e6e8eb;border-radius:12px;display:grid;gap:13px}.editor-fields legend{font-size:13px;padding:0 7px;font-weight:700;color:#36434f}.editor-fields label{display:grid;gap:7px;font-size:12px;line-height:1.5;min-width:0;color:#4a535c}.editor-fields input:not([type=checkbox]),.editor-fields select,.editor-fields textarea{display:block;width:100%;min-width:0;border:1px solid #d6dce1;border-radius:7px;background:#fff;padding:10px;font-size:15px;line-height:1.5;color:#18212a;outline-offset:2px}.editor-fields input:focus,.editor-fields select:focus,.editor-fields textarea:focus{outline:2px solid #c38b8e;border-color:#a32329}.editor-fields textarea{resize:vertical}.editor-fields input[aria-invalid=true]{border:2px solid #b4232b}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-pair:has(input[type=datetime-local]){grid-template-columns:1fr}.editor-fields label.checkbox-field{display:flex;align-items:center;gap:9px;font-size:12px}.checkbox-field input{width:17px;height:17px;accent-color:var(--red);flex:none}.field-hint{font-size:11px;line-height:1.7;color:#899099;margin:0}.form-error{font-size:13px;color:#b4232b;line-height:1.7;margin:16px 0 0;min-height:0}.form-error:empty{display:none}.editor-actions{display:flex;justify-content:space-between;gap:12px;padding-top:20px}.editor-actions button{padding:11px 15px;border-radius:9px;font-size:13px;line-height:1.5}.reset-button{border:1px solid #dfe3e6;background:#fff;color:#697078}.save-button{border:1px solid var(--red);background:var(--red);color:#fff;min-width:130px;font-weight:600}.confirm-dialog{max-width:370px;width:90vw;padding:25px;border-radius:16px}.confirm-dialog h2{font-size:20px;margin:0 0 12px}.confirm-dialog p{font-size:14px;line-height:1.7;color:#64717c}.confirm-dialog div{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.confirm-dialog button{border:1px solid #ddd;border-radius:7px;padding:9px 12px;background:white;font-size:13px}.confirm-dialog #confirm-cancel{background:var(--red);color:#fff;border-color:var(--red)}.toast{position:fixed;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,15px);background:#232b32eb;color:white;padding:11px 18px;border-radius:9px;font-size:13px;line-height:1.6;max-width:90vw;width:max-content;z-index:100;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}.toast.show{opacity:1;transform:translate(-50%,0)}
html{scrollbar-width:none}html::-webkit-scrollbar{width:0;height:0}.shop-card{padding-bottom:calc(10 * var(--u))}.address-row{font-size:calc(13.3 * var(--u))}.shop-heading h2{min-width:0;overflow:hidden;text-overflow:ellipsis}
.shop-ticket{display:block;font-size:calc(18.5 * var(--u));transform-origin:center center;font-variant-numeric:tabular-nums;animation:ticket-breathe 1.6s ease-in-out infinite}
@keyframes ticket-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.135)}}
@media(max-width:360px){.editor-dialog form{padding:18px}.editor-fields fieldset{padding:12px}.field-pair{gap:9px}.editor-header h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){.toast{transition:none}.shop-ticket{animation:none}html{scroll-behavior:auto}}

/* Reference-aligned shop typography and outlined status lettering. */
.shop-heading{gap:calc(9 * var(--u))}
.shop-heading h2{font-size:calc(17.2 * var(--u));line-height:calc(22 * var(--u));letter-spacing:calc(-.65 * var(--u));font-weight:700}
.stamp{--stamp-color:#45c482;top:calc(7.5 * var(--u));opacity:.92;filter:blur(calc(.45 * var(--u)))}
.stamp-art{transform:rotate(-30deg);stroke-width:1.8}
.stamp-dots{stroke-width:1.35;stroke-dasharray:1.8 10;stroke-linecap:round}
.stamp-art .stamp-band{fill:#fff;fill-opacity:.98;stroke-width:1.8}
.stamp-star,.stamp-glyphs{fill:var(--stamp-color);stroke:none}
.stamp-glyphs,.stamp-live-label{display:none}
.stamp.is-called .stamp-glyphs-called,.stamp.is-taken .stamp-glyphs-taken,.stamp.is-missed .stamp-glyphs-missed,.stamp.is-cancelled .stamp-glyphs-cancelled{display:inline}
.stamp.is-taken{--stamp-color:#e2ae36}
.stamp.is-missed{--stamp-color:#c45a50}
.stamp.is-cancelled{--stamp-color:#999}
