/* v23: the waiting board and menu use the storefront's red, paper and brass. */
.queue-board{max-width:1208px;margin:24px auto 0;border:1px solid #e5d5c2;border-radius:18px;background:#fffcf5;box-shadow:0 8px 30px #71402d0d;overflow:hidden;color:#4c3830}
.queue-content,.queue-admin-preview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.queue-current{position:relative;padding:24px 30px;background:linear-gradient(120deg,#fff2e5,#fffaf1);border-left:6px solid #b9233d;min-width:0}
.queue-eyebrow{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:800;letter-spacing:.13em;color:#9b3e48}
.queue-dot{display:inline-block;width:7px;height:7px;flex:none;border-radius:50%;background:#b9233d;box-shadow:0 0 0 4px #b9233d0d}
.queue-number{display:flex;align-items:baseline;gap:12px;margin:8px 0 6px;color:#b9233d}
.queue-number strong{font:800 clamp(32px,4vw,56px)/1.15 system-ui,sans-serif;letter-spacing:.045em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;min-width:0}
.queue-number>span{font-size:14px;font-weight:700;flex:none}
.queue-rest strong{font-size:clamp(28px,3.5vw,38px);letter-spacing:.13em}
.queue-greeting{margin:8px 0 0;font-size:12px;line-height:1.7;color:#806555;overflow-wrap:anywhere}
.queue-greeting time{display:block;font-weight:700;color:#785047}
.queue-upcoming{padding:24px 30px;min-width:0;align-self:center}
.queue-upcoming-title{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:12px;font-weight:700}
.queue-upcoming-title>span+span{font-size:11px;color:#917a66}
.queue-upcoming-title b{font-size:18px;color:#b9233d;margin:0 3px;font-variant-numeric:tabular-nums}
.queue-tickets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0;margin:10px 0;list-style:none}
.queue-tickets li{padding:8px 10px;min-width:0;text-align:center;border:1px solid #e9dbc8;border-top:3px solid #d9b98c;border-radius:5px;background:#fffdfa}
.queue-tickets small{display:block;color:#9f8370;font-size:9px;letter-spacing:.1em}
.queue-tickets strong{display:block;font-size:22px;line-height:1.5;color:#694737;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.queue-tickets li>span{font-size:10px;color:#937c6e}
.queue-tickets li.queue-empty{grid-column:1/-1;padding:19px 10px;border-style:dashed;border-width:1px;color:#9a8270;font-size:13px}
.queue-note{font-size:10px;color:#a18d7c;margin:8px 0 0}
[data-state=rest] .queue-dot{background:#b79975;box-shadow:0 0 0 4px #b7997512}
.queue-loading{grid-column:1/-1;padding:24px;margin:0;text-align:center;color:#886956;font-size:13px}
.queue-sync{margin:0;padding:10px 18px;background:#fff0cf;color:#815828;font-size:12px;line-height:1.6;border-top:1px solid #ecd7b3}
.queue-sync[hidden]{display:none!important}
.queue-admin-strip{margin:12px 0;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background:#fff5e9;border:1px solid #ead7c0}
.queue-admin-strip>[data-queue-board]{flex:1;min-width:0}
.queue-admin-strip .queue-content{display:block}
.queue-compact-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:#846c5e}
.queue-compact-current strong{font-size:23px;color:#b9233d;overflow-wrap:anywhere;max-width:100%;font-variant-numeric:tabular-nums}
.queue-compact-detail{margin-top:4px;font-size:11px;color:#836b5b;line-height:1.7;overflow-wrap:anywhere}
.queue-admin-strip>button{flex:none;font-size:12px;min-height:44px}
.queue-admin-strip .queue-sync{margin-top:8px;border-radius:5px;padding:7px}
.queue-editor-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0 14px}
.queue-editor-heading h3{margin:5px 0 0;font-size:20px}
.queue-admin-preview{overflow:hidden;border:1px solid #ead7c0;border-radius:12px;margin-bottom:20px;background:#fffaf3}
.queue-admin-preview .queue-current,.queue-admin-preview .queue-upcoming{padding:18px}
.queue-admin-preview .queue-number strong{font-size:32px}
.queue-admin-preview .queue-tickets{gap:5px}
.queue-admin-preview .queue-tickets li{padding:8px 4px}
.queue-admin-preview .queue-tickets strong{font-size:18px}
#queueForm{display:block;text-align:left}
.queue-input-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px}
.queue-input-grid label{min-width:0;font-size:13px;font-weight:700;color:#624a40}
.queue-input-grid input,.queue-input-grid textarea{display:block;width:100%;min-width:0;max-width:100%;margin-top:7px;border:1px solid #d9cabc;border-radius:9px;padding:12px;font:16px system-ui,sans-serif;color:#47362e;background:#fffdfa}
.queue-input-grid textarea{resize:vertical;line-height:1.6;min-height:110px}
.queue-input-grid small{display:block;margin-top:7px;color:#94816f;font-size:11px;font-weight:400;line-height:1.8}
.queue-input-grid textarea:focus-visible{outline:3px solid #d5a749;outline-offset:2px}
.queue-waiting-field{grid-column:1/-1}
.queue-draft-note{font-size:12px;color:#8f6946;line-height:1.7}
.queue-editor-actions{display:flex;flex-wrap:wrap;gap:10px}
.queue-editor-actions button{min-height:44px;flex:1;white-space:normal}
#panel #queueSave{background:#b9233d;color:#fff}
#panel #queueSave:hover:not(:disabled){background:#981b33}
#panel .queue-secondary{background:#f6eee4;color:#735446;border:1px solid #e1cbb1}
#panel .queue-secondary:hover:not(:disabled){background:#eadcc8;color:#66422f}
#queueEditorStatus{font-size:13px;line-height:1.7;color:#4b7253;margin:12px 0}
#queueEditorStatus.queue-error{color:#b9233d}
.header-inner .site-nav #menuLink{border-color:#d9b793;color:#923b35;background:#fff4e4}
/* 4 links have their own rows on phones; action buttons never overlap them. */
@media(max-width:1100px){.header-inner .site-nav{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:650px){.header-inner .site-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.header-inner .site-nav a{font-size:12px;min-height:40px}.queue-board{margin:16px 16px 0;border-radius:14px}.queue-content,.queue-admin-preview{grid-template-columns:1fr}.queue-current{padding:20px 22px;border-left-width:4px}.queue-number strong{font-size:clamp(30px,10vw,46px)}.queue-rest strong{font-size:30px}.queue-upcoming{padding:16px 22px;border-top:1px dashed #ead7c0}.queue-tickets{gap:8px}.queue-tickets strong{font-size:21px}.queue-admin-strip{align-items:flex-start;flex-wrap:wrap}.queue-admin-strip>button{margin-left:auto}.queue-input-grid{grid-template-columns:minmax(0,1fr)}.queue-editor-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.queue-editor-actions #queueClear{grid-column:1/-1}.queue-editor-actions button{padding:12px 8px;font-size:13px}}
@media(min-width:651px) and (max-width:1240px){.queue-board{margin-left:16px;margin-right:16px}}
/* Full screen single-image album. No image crop or changes to the menu artwork. */
#menuDialog{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#211d1af7;color:#fff9ec;overflow:hidden;box-shadow:none}
#menuDialog[open]{display:flex;flex-direction:column;animation:menu-arrive .18s ease-out}
#menuDialog::backdrop{background:#151210ed;backdrop-filter:blur(8px)}
.menu-toolbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px max(18px,env(safe-area-inset-right)) 14px max(18px,env(safe-area-inset-left));padding-top:max(14px,env(safe-area-inset-top));border-bottom:1px solid #d8bd8624;background:#28221e}
.menu-heading{min-width:0}.menu-heading h2{margin:0;color:#fff3df;font-size:18px;font-weight:700}.menu-heading p{margin:4px 0 0;font-size:10px;letter-spacing:.18em;color:#c6ac88}
.menu-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.menu-controls button,.menu-controls a{display:grid;place-items:center;min-width:44px;min-height:44px;padding:9px 12px;border:1px solid #d5ba823b;border-radius:8px;background:#ffffff09;color:#f3e2c9;font:700 13px system-ui,sans-serif;text-decoration:none;cursor:pointer}
.menu-controls button:hover:not(:disabled),.menu-controls a:hover{background:#ffffff1c}
.menu-controls #menuClose{font-size:26px;line-height:1;padding:5px;background:#b9233d;border-color:#b9233d;color:#fff}
.menu-controls #menuZoomIn,.menu-controls #menuZoomOut{font-size:22px;line-height:1}
#menuZoomValue{min-width:40px;font-size:11px;color:#cbb595;text-align:center;font-variant-numeric:tabular-nums}
.menu-viewport{position:relative;flex:1;min-height:0;overflow:auto;touch-action:none;overscroll-behavior:contain;outline:none;scrollbar-color:#8e7962 #28221e}
.menu-viewport:focus-visible{box-shadow:inset 0 0 0 2px #d8b679}
.menu-canvas{display:flex;justify-content:center;align-items:center;min-width:100%;min-height:100%;padding:16px}
#menuImage{display:block;max-width:none;flex:none;object-fit:contain;box-shadow:0 10px 60px #0006;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
.menu-viewport.is-zoomed{cursor:grab}.menu-viewport.is-dragging{cursor:grabbing}
#menuStatus{position:absolute;left:20px;right:20px;top:45%;text-align:center;color:#d6bd9d;font-size:14px;line-height:1.7;pointer-events:none}
.menu-hint{flex:none;text-align:center;color:#b9a087;font-size:11px;margin:0;padding:10px 16px max(10px,env(safe-area-inset-bottom));background:#28221e;border-top:1px solid #d8bd8624}
@keyframes menu-arrive{from{opacity:0}to{opacity:1}}
@media(max-width:650px){.menu-toolbar{gap:10px;flex-wrap:wrap;padding-left:12px;padding-right:12px}.menu-heading{flex:1}.menu-heading h2{font-size:16px}.menu-controls{gap:5px;width:100%}.menu-controls #menuClose{margin-left:auto}.menu-controls button,.menu-controls a{padding:8px;font-size:12px}.menu-controls #menuZoomIn,.menu-controls #menuZoomOut{font-size:20px}.menu-hint{font-size:10px}}
@media(prefers-reduced-motion:reduce){#menuDialog[open]{animation:none}}

/* v24: opt-in chime notice and a single gentle highlight on newly called tickets. */
.queue-sound-note{margin:0;padding:12px 24px;border-top:1px solid #ecdcc9;background:#fff7eb;color:#8c5039;font-size:12px;line-height:1.7}
.queue-sound-note small{display:block;padding-left:20px;color:#937e69;font-size:11px}
.queue-number-new{animation:queue-number-glow 1.6s ease-out}
@keyframes queue-number-glow{0%{color:#a66b12;text-shadow:0 0 18px #efc470;transform:translateY(2px)}45%{color:#b9233d;text-shadow:0 0 10px #edc277}100%{text-shadow:none;transform:none}}
.display-header-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center!important;justify-content:flex-end}
#displaySoundToggle{min-height:44px;padding:10px 14px;border:1px solid #eebd7470;border-radius:12px;background:#ffffff0d;color:#fff4d9;font:700 13px system-ui,sans-serif;cursor:pointer}
#displaySoundToggle:focus-visible{outline:3px solid #e5a900;outline-offset:2px}
@media(max-width:650px){.queue-sound-note{padding:12px 18px}.display-header-actions{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){.queue-number-new{animation:none}}

/* v25: keep the test button inside the waiting board, away from the mobile nav. */
.queue-sound-note{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px}
.queue-sound-copy{flex:1;min-width:180px}.queue-sound-copy p{margin:0}
.queue-sound-note [data-test-queue-sound]{flex:none;min-height:44px;padding:10px 16px;border:1px solid #d6b98d;border-radius:9px;background:#fffaf1;color:#864c37;font:700 13px system-ui,sans-serif;cursor:pointer}
.queue-sound-note [data-test-queue-sound]:hover:not(:disabled){background:#f3e2c7;color:#643b29}
.queue-sound-note [data-test-queue-sound]:disabled{opacity:.6;cursor:wait}
.queue-sound-note [data-test-queue-sound]:focus-visible{outline:3px solid #d5a749;outline-offset:2px}
.queue-sound-note [data-sound-test-result]{flex-basis:100%;margin:0;font-size:11px;color:#785c42}
.queue-sound-note [data-sound-test-result]:empty{display:none}
@media(max-width:400px){.queue-sound-note [data-test-queue-sound]{width:100%}}
