:root{--bg: #f5f6f7;--surface: #ffffff;--surface2: #eef0f3;--border: #dee1e6;--text: #1a1d26;--foreground: #1a1d26;--muted: #6b7280;--heading-muted: #5c6370;--accent: #ec9a1e;--accent-hover: #d98916;--accent-dim: #c77a0f;--link: #3f4453;--warn: #b8860b;--danger: #c92a2a;--ok: #2b8a3e;--sidebar-bg: #3f4453;--sidebar-bg-active: #2e3344;--sidebar-text: rgba(255, 255, 255, .88);--sidebar-text-muted: rgba(255, 255, 255, .55);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);line-height:1.5}#app,#admin-root{min-height:100%}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell-loading{padding:1rem 1.5rem;color:var(--muted)}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}@media(max-width:768px){.shell{grid-template-columns:1fr}}.shell-nav{background:var(--sidebar-bg);border-right:1px solid color-mix(in srgb,var(--sidebar-bg) 88%,#000);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.5rem}.shell-brand{font-weight:700;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;color:var(--sidebar-text-muted);margin-bottom:.75rem}.shell-nav-property{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.12)}.shell-nav-property label{font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sidebar-text-muted)}.shell-nav-property-select{width:100%;max-width:100%;box-sizing:border-box;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;font:inherit;font-size:.82rem;line-height:1.3;padding:.5rem .55rem;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:var(--sidebar-bg-active);color:var(--sidebar-text);cursor:pointer}.shell-nav-property-select:hover{border-color:#ffffff4d}.shell-nav-property-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #ec9a1e59}.shell-nav-property-select:disabled{opacity:.55;cursor:not-allowed}.shell-nav-property-select option{color:var(--text);background:var(--surface)}.shell-nav-property-err{font-size:.72rem;color:#ffb4b4;margin:0;line-height:1.35}.shell-nav a,.shell-nav .shell-nav-item{padding:.45rem .6rem;border-radius:4px;color:var(--sidebar-text);display:block;border:none;background:transparent;font:inherit;text-align:left;width:100%;cursor:pointer;text-decoration:none}.shell-nav a:hover,.shell-nav .shell-nav-item:hover{background:#0000002e;text-decoration:none;color:#fff}.shell-nav a.active,.shell-nav .shell-nav-item.active{background:var(--sidebar-bg-active);color:#fff}.shell-main{padding:1.5rem clamp(1rem,2.5vw,2.5rem) 3rem;width:100%;max-width:none;min-width:0;box-sizing:border-box}.shell-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem}h1{font-size:1.65rem;font-weight:600;margin:0 0 .5rem}h2{font-size:1.15rem;font-weight:600;margin:2rem 0 .75rem;color:var(--heading-muted)}.shell-main>h1:first-child,.shell-main .page-head h1{margin-top:0}.lead{color:var(--muted);margin:0 0 1.5rem;max-width:min(72ch,100%)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.1rem 1.25rem;box-shadow:0 1px 2px #0000000a}.panel h2{margin-top:0;font-size:1.05rem}.field{display:flex;flex-direction:column;gap:.35rem;margin:1rem 0;color:var(--muted);font-size:.9rem}.field input{font:inherit;padding:.45rem .55rem;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text)}.hint{color:var(--muted);line-height:1.45;margin:0 0 .5rem}.err,.flash-err{color:var(--danger);margin:.5rem 0;font-size:.88rem}.flash-ok{color:var(--ok);font-size:.88rem;margin-bottom:.75rem}button,.btn{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.45rem .85rem;border-radius:4px;font-size:.875rem;font:inherit}button:hover,.btn:hover{background:var(--surface2);border-color:#cfd3d9}button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover,.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}a.btn{text-decoration:none;display:inline-block}a.btn:hover{text-decoration:none}.ghost{background:transparent;color:var(--muted)}.ghost-wide{width:100%;margin-top:.5rem}html.kiosk-root{font-size:clamp(13px,1.25vmin + .42rem,16px);-webkit-text-size-adjust:100%}html.kiosk-root,html.kiosk-root body{margin:0;min-height:100%;min-height:100dvh;background:#121212}html.kiosk-root #app{min-height:100dvh}@media(min-width:961px){html.kiosk-root #app{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden}.kiosk-terminal:not(.kiosk-terminal--pair){flex:1;min-height:0;overflow:hidden}}.kiosk-terminal{--kiosk-bg: #121212;--kiosk-card-bg: #1e1e1e;--kiosk-sidebar-bg: #1a1a1a;--kiosk-accent: #ff9d00;--kiosk-accent-hover: #eb9000;--kiosk-accent-muted: #664200;--kiosk-text: #ffffff;--kiosk-text-muted: #9ca3af;--kiosk-border: #333333;--kiosk-btn-text: #1a1512;--kiosk-pad-x: clamp(.45rem, 1.8vw, .9rem);--kiosk-pad-y: clamp(.4rem, 1.5vh, .75rem);--kiosk-gap: clamp(.4rem, 1.4vmin, .65rem);--kiosk-touch: clamp(2.15rem, 6.2vmin, 2.5rem);box-sizing:border-box;min-height:100dvh;min-height:100vh;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0);background:var(--kiosk-bg);color:var(--kiosk-text);display:flex;flex-direction:column;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-synthesis:weight}.kiosk-terminal--pair{padding:var(--kiosk-pad-y) var(--kiosk-pad-x);justify-content:center;align-items:center}.kiosk-pair-panel{width:100%;max-width:min(22rem,100%);background:var(--kiosk-card-bg);border:1px solid var(--kiosk-border);border-radius:clamp(8px,1.2vmin,12px);padding:clamp(.85rem,3vmin,1.15rem)}.kiosk-pair-panel h1{margin:0 0 .35rem;font-size:clamp(1.05rem,2.8vmin,1.25rem);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.kiosk-pair-panel .lead{color:var(--kiosk-text-muted);margin:0 0 .75rem;font-size:clamp(.82rem,2.2vmin,.92rem)}.kiosk-pair-panel input{width:100%;padding:clamp(.45rem,1.8vmin,.6rem) .55rem;border-radius:8px;border:1px solid var(--kiosk-border);background:var(--kiosk-bg);color:var(--kiosk-text);font:inherit;margin-top:.3rem}.kiosk-pair-panel .btn.primary{margin-top:.75rem;width:100%;min-height:var(--kiosk-touch);padding:.5rem .75rem;border-radius:10px;font-weight:800;font-size:clamp(.82rem,2.2vmin,.95rem);text-transform:uppercase;letter-spacing:.06em;background:var(--kiosk-accent);border-color:var(--kiosk-accent);color:var(--kiosk-btn-text)}.kiosk-header{display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:clamp(.65rem,2.5vw,1.75rem);row-gap:.35rem;padding:var(--kiosk-pad-y) var(--kiosk-pad-x);padding-bottom:clamp(.45rem,1.8vh,.85rem);border-bottom:1px solid var(--kiosk-border)}.kiosk-header-hint-wrap{display:flex;justify-content:flex-end;align-items:flex-end;min-width:0;width:100%}.kiosk-header-brand{display:flex;flex-direction:column;gap:.15rem}.kiosk-header-brand .kiosk-label{font-size:clamp(.62rem,1.6vmin,.72rem);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--kiosk-text-muted)}.kiosk-header-brand .kiosk-location{font-size:clamp(1.35rem,3.2vmin + .5rem,2rem);font-weight:800;letter-spacing:.04em;text-transform:uppercase;line-height:1.02}.kiosk-header-hint{margin:0;display:flex;flex-direction:column;gap:.08em;font-size:clamp(.78rem,1.85vmin,.92rem);font-weight:500;color:var(--kiosk-text-muted);line-height:1.35;text-align:right;max-width:min(16.5rem,100%)}.kiosk-header-hint-line{display:block}.kiosk-body{flex:1;display:grid;grid-template-columns:minmax(0,2fr) minmax(min(100%,clamp(15.5rem,30vw,22rem)),1fr);grid-template-rows:1fr;gap:0;min-height:0}.kiosk-main{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--kiosk-border)}.kiosk-main>.kiosk-header{flex-shrink:0}@media(min-width:961px){.kiosk-body,.kiosk-main{overflow:hidden}.kiosk-rail{overflow:hidden;min-height:0;max-height:100%}.kiosk-rail>.kiosk-rail-section:first-child{flex-shrink:0}.kiosk-rail>.kiosk-rail-section:nth-child(2){flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.kiosk-rail>.kiosk-rail-section:last-child{flex-shrink:0}.kiosk-rail>.kiosk-rail-section:nth-child(2) .kiosk-cart-lines{flex:1 1 auto;min-height:0;max-height:none}}@media(max-width:960px){.kiosk-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.kiosk-main{border-right:none;border-bottom:1px solid var(--kiosk-border)}}.kiosk-catalog{flex:1;min-width:0;min-height:0;padding:var(--kiosk-pad-y) var(--kiosk-pad-x);padding-bottom:clamp(.5rem,1.8vh,.9rem);overflow:auto;display:flex;flex-direction:column;align-items:stretch}.kiosk-catalog>.kiosk-catalog-grid{flex:0 0 auto;width:100%}.kiosk-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--kiosk-gap);align-items:start;align-content:start}@media(min-width:640px){.kiosk-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:900px){.kiosk-catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1180px){.kiosk-catalog-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.kiosk-product{text-align:center;background:var(--kiosk-card-bg);border:2px solid transparent;border-radius:clamp(8px,1.2vmin,11px);padding:0;overflow:hidden;color:inherit;display:flex;flex-direction:column;cursor:pointer;position:relative;width:100%;min-width:0;align-self:start;transition:border-color .18s ease,box-shadow .18s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-moz-appearance:none;appearance:none;-webkit-appearance:none}.kiosk-terminal .kiosk-product:hover{background:var(--kiosk-card-bg);color:var(--kiosk-text);border-color:var(--kiosk-accent)}.kiosk-terminal .kiosk-product:focus-visible{outline:none;background:var(--kiosk-card-bg);color:var(--kiosk-text);border-color:var(--kiosk-accent)}.kiosk-terminal .kiosk-product:active{background:var(--kiosk-card-bg);color:var(--kiosk-text)}.kiosk-product--in-cart{border-color:var(--kiosk-accent)}.kiosk-product-badge{position:absolute;top:clamp(.3rem,1.1vmin,.5rem);right:clamp(.3rem,1.1vmin,.5rem);z-index:1;min-width:clamp(1.35rem,4vmin,1.65rem);height:clamp(1.35rem,4vmin,1.65rem);padding:0 clamp(.28rem,1vmin,.42rem);border-radius:999px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:0;border:1px solid color-mix(in srgb,var(--kiosk-accent) 70%,transparent);background:color-mix(in srgb,var(--kiosk-accent) 22%,var(--kiosk-card-bg));color:color-mix(in srgb,var(--kiosk-accent) 92%,#fff);font-variant-numeric:tabular-nums;line-height:1;opacity:0;transform:scale(.9);pointer-events:none;transition:opacity .18s ease,transform .18s ease,background .18s ease}.kiosk-product:not(.kiosk-product--in-cart) .kiosk-product-badge{font-weight:300;font-size:clamp(1rem,2.9vmin,1.22rem)}.kiosk-product--in-cart .kiosk-product-badge{font-weight:600;font-size:clamp(.85rem,2.5vmin,1.05rem);opacity:1;transform:scale(1);background:color-mix(in srgb,var(--kiosk-accent) 34%,var(--kiosk-card-bg))}@media(hover:hover)and (pointer:fine){.kiosk-terminal .kiosk-product:hover .kiosk-product-badge,.kiosk-terminal .kiosk-product:focus-visible .kiosk-product-badge{opacity:1;transform:scale(1)}}.kiosk-product .kiosk-product-img-wrap{width:100%;height:clamp(5.25rem,17vh,8.25rem);height:clamp(5.25rem,17dvh,8.25rem);min-height:5.25rem;max-height:8.25rem;flex-shrink:0;background:linear-gradient(180deg,color-mix(in srgb,var(--kiosk-text) 10%,var(--kiosk-card-bg)) 0%,var(--kiosk-card-bg) 100%);display:flex;align-items:center;justify-content:center}.kiosk-product .kiosk-product-img-wrap img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;display:block}.kiosk-product .ph{width:100%;height:clamp(5.25rem,17vh,8.25rem);height:clamp(5.25rem,17dvh,8.25rem);min-height:5.25rem;max-height:8.25rem;flex-shrink:0;background:linear-gradient(180deg,color-mix(in srgb,var(--kiosk-text) 10%,var(--kiosk-card-bg)),var(--kiosk-card-bg))}.kiosk-product-body{padding:clamp(.4rem,1.4vmin,.6rem) clamp(.45rem,1.6vmin,.65rem) clamp(.45rem,1.6vmin,.7rem);flex-shrink:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.2rem;background:var(--kiosk-card-bg)}.kiosk-product-title{color:var(--kiosk-text);font-weight:800;font-size:clamp(.72rem,1.9vmin,.88rem);text-transform:uppercase;letter-spacing:.06em;line-height:1.2}.kiosk-product-price{color:var(--kiosk-accent);font-weight:800;font-size:clamp(.85rem,2.3vmin,1.05rem)}@media(max-width:639px){.kiosk-product-price{font-size:clamp(1.275rem,3.45vmin,1.575rem)}}.kiosk-rail{min-width:0;min-height:0;background:var(--kiosk-sidebar-bg);display:flex;flex-direction:column;align-self:stretch}.kiosk-rail-section{padding:clamp(.55rem,2vmin,.85rem) clamp(.55rem,2.2vmin,.9rem);border-bottom:1px solid var(--kiosk-border)}.kiosk-rail-section:first-child{padding-top:var(--kiosk-pad-y)}.kiosk-rail-section:last-child{border-bottom:none}.kiosk-nfc{border-radius:clamp(8px,1.2vmin,11px);padding:clamp(.5rem,1.8vmin,.75rem) clamp(.55rem,2vmin,.8rem);min-height:clamp(3rem,9.5vmin,4.1rem);display:flex;gap:clamp(.45rem,1.8vmin,.75rem);align-items:center;cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:transparent;border:2px dashed var(--kiosk-border);transition:border-color .2s ease,background .2s ease}.kiosk-nfc:hover{background:#ffffff08}.kiosk-nfc--waiting{border-width:3px;border-style:dashed;border-color:var(--kiosk-accent);background:color-mix(in srgb,var(--kiosk-accent) 8%,transparent);animation:kiosk-nfc-pulse 1.25s ease-in-out infinite;min-height:clamp(4.5rem,14.25vmin,6.15rem);padding:clamp(.75rem,2.7vmin,1.15rem) clamp(.6rem,2.2vmin,.95rem)}.kiosk-nfc--waiting .kiosk-nfc-icon .kiosk-nfc-card-svg{width:clamp(2.85rem,8.2vmin,3.65rem)}.kiosk-nfc--waiting .kiosk-nfc-title{font-size:clamp(.95rem,2.75vmin,1.18rem);margin-bottom:.22rem}.kiosk-nfc--waiting .kiosk-nfc-sub{font-size:clamp(.9rem,2.55vmin,1.08rem);line-height:1.4}@keyframes kiosk-nfc-pulse{0%,to{box-shadow:0 0 0 1px color-mix(in srgb,var(--kiosk-accent) 65%,transparent),0 0 clamp(18px,4vmin,28px) clamp(3px,1vmin,6px) color-mix(in srgb,var(--kiosk-accent) 45%,transparent),inset 0 0 clamp(10px,2.5vmin,18px) color-mix(in srgb,var(--kiosk-accent) 12%,transparent);border-color:var(--kiosk-accent);filter:brightness(1.02)}50%{box-shadow:0 0 0 clamp(3px,.9vmin,5px) color-mix(in srgb,var(--kiosk-accent) 35%,transparent),0 0 clamp(26px,6vmin,40px) clamp(6px,1.6vmin,12px) color-mix(in srgb,var(--kiosk-accent) 40%,transparent),inset 0 0 clamp(14px,3.2vmin,22px) color-mix(in srgb,var(--kiosk-accent) 22%,transparent);border-color:color-mix(in srgb,var(--kiosk-accent) 85%,#fff);filter:brightness(1.12)}}.kiosk-nfc-icon{display:flex;align-items:center;justify-content:center;line-height:0;color:var(--kiosk-accent);flex-shrink:0}.kiosk-nfc-icon .kiosk-nfc-card-svg{display:block;width:clamp(2.35rem,6.8vmin,3rem);height:auto;aspect-ratio:48 / 32}.kiosk-nfc--identified{cursor:default;pointer-events:none;border-style:solid;border-color:color-mix(in srgb,var(--kiosk-accent) 50%,var(--kiosk-border));background:color-mix(in srgb,var(--kiosk-text) 4%,transparent);min-height:clamp(3.75rem,12vmin,5.5rem);align-items:center}.kiosk-nfc--identified:hover{background:color-mix(in srgb,var(--kiosk-text) 4%,transparent)}.kiosk-nfc-avatar{flex-shrink:0;width:clamp(2.6rem,8.5vmin,3.5rem);height:clamp(2.6rem,8.5vmin,3.5rem);border-radius:clamp(7px,1.1vmin,11px);background:color-mix(in srgb,var(--kiosk-text) 14%,transparent);color:var(--kiosk-accent);display:flex;align-items:center;justify-content:center}.kiosk-nfc-person-svg{width:58%;height:58%}.kiosk-nfc-guest-text{min-width:0;flex:1}.kiosk-nfc-title{font-weight:800;font-size:clamp(.68rem,1.9vmin,.8rem);letter-spacing:.06em;text-transform:uppercase;margin:0 0 .15rem}.kiosk-nfc-sub{margin:0;font-size:clamp(.72rem,2vmin,.84rem);color:var(--kiosk-text-muted);line-height:1.35}.kiosk-nfc-guest{font-weight:800;font-size:clamp(1.12rem,3.6vmin,1.95rem);line-height:1.12;margin:0 0 .2rem;text-transform:uppercase;letter-spacing:.045em;word-break:break-word}.kiosk-nfc-room{margin:0;font-size:clamp(.84rem,2.45vmin,1.05rem);font-weight:700;color:var(--kiosk-accent)}.kiosk-cart-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.65rem}.kiosk-cart-head-icon{color:var(--kiosk-accent);font-size:1.15rem}.kiosk-cart-head h2{margin:0;font-size:clamp(.72rem,2vmin,.82rem);font-weight:800;letter-spacing:.07em;text-transform:uppercase;flex:1}.kiosk-cart-badge{min-width:clamp(1.25rem,3.8vmin,1.45rem);height:clamp(1.25rem,3.8vmin,1.45rem);padding:0 .3rem;border-radius:999px;background:var(--kiosk-accent);color:var(--kiosk-btn-text);font-weight:800;font-size:clamp(.68rem,1.9vmin,.76rem);display:inline-flex;align-items:center;justify-content:center}.kiosk-cart-lines{flex:1;min-height:clamp(2.5rem,8vmin,3.5rem);max-height:min(34dvh,220px);overflow-y:auto}.kiosk-cart-lines:has(.kiosk-cart-empty){display:flex;align-items:center;justify-content:center;text-align:center}.kiosk-cart-empty{margin:0;font-size:clamp(.75rem,2vmin,.84rem);color:var(--kiosk-text-muted)}.kiosk-cart-line{display:flex;align-items:center;gap:.65rem;padding:.55rem 0;border-bottom:1px solid var(--kiosk-border)}.kiosk-cart-line:last-child{border-bottom:none}.kiosk-cart-thumb{width:clamp(2rem,6vmin,2.35rem);height:clamp(2rem,6vmin,2.35rem);border-radius:6px;background:var(--kiosk-card-bg);flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.kiosk-cart-thumb img{width:100%;height:100%;object-fit:contain}.kiosk-cart-thumb .ph{width:100%;height:100%;background:#2a2a2a}.kiosk-cart-line-main{flex:1;min-width:0}.kiosk-cart-line-title{font-weight:700;font-size:clamp(.68rem,1.9vmin,.78rem);text-transform:uppercase;letter-spacing:.03em}.kiosk-cart-line-price{font-size:clamp(.65rem,1.8vmin,.74rem);color:var(--kiosk-text-muted)}.kiosk-cart-line-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.kiosk-cart-line-actions button{width:var(--kiosk-touch);height:var(--kiosk-touch);min-width:var(--kiosk-touch);min-height:var(--kiosk-touch);padding:0;border-radius:7px;border:1px solid var(--kiosk-border);background:var(--kiosk-card-bg);color:var(--kiosk-text);font-size:clamp(1rem,2.8vmin,1.2rem);font-weight:600;line-height:1;cursor:pointer}.kiosk-cart-line-actions button:hover{border-color:var(--kiosk-accent)}.kiosk-cart-line-actions .kiosk-qty{min-width:1.35rem;text-align:center;font-weight:800;font-size:clamp(.82rem,2.2vmin,.95rem)}.kiosk-cart-line-actions .kiosk-trash{width:var(--kiosk-touch);height:var(--kiosk-touch);min-width:var(--kiosk-touch);min-height:var(--kiosk-touch);font-size:clamp(.95rem,2.6vmin,1.05rem)}.kiosk-total-row{display:flex;justify-content:space-between;align-items:baseline;padding:.85rem 0 .25rem}.kiosk-total-row .kiosk-total-label{font-weight:800;font-size:clamp(.68rem,1.9vmin,.76rem);letter-spacing:.09em;text-transform:uppercase}.kiosk-total-row .kiosk-total-value{font-size:clamp(1.05rem,3.2vmin,1.35rem);font-weight:800;color:var(--kiosk-accent)}.kiosk-book{width:100%;margin-top:clamp(.45rem,1.5vmin,.65rem);min-height:clamp(2.35rem,7vmin,2.85rem);padding:clamp(.45rem,1.6vmin,.65rem) clamp(.55rem,2vmin,.85rem);border-radius:clamp(8px,1.2vmin,11px);border:none;font:inherit;font-weight:800;font-size:clamp(.72rem,2vmin,.88rem);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .15s ease,color .15s ease,opacity .15s ease}@media(max-width:639px){.kiosk-nfc--identified .kiosk-nfc-guest{font-size:clamp(1.456rem,4.68vmin,2.535rem)}.kiosk-nfc--identified .kiosk-nfc-room{font-size:clamp(1.092rem,3.185vmin,1.365rem)}.kiosk-cart-head-icon{font-size:1.725rem}.kiosk-cart-head h2{font-size:clamp(1.08rem,3vmin,1.23rem)}.kiosk-cart-badge{min-width:clamp(1.875rem,5.7vmin,2.175rem);height:clamp(1.875rem,5.7vmin,2.175rem);padding:0 .45rem;font-size:clamp(1.02rem,2.85vmin,1.14rem)}.kiosk-cart-empty{font-size:clamp(1.125rem,3vmin,1.26rem)}.kiosk-cart-thumb{width:clamp(3rem,9vmin,3.525rem);height:clamp(3rem,9vmin,3.525rem);border-radius:9px}.kiosk-cart-line-title{font-size:clamp(1.02rem,2.85vmin,1.17rem)}.kiosk-cart-line-price{font-size:clamp(.975rem,2.7vmin,1.11rem)}.kiosk-cart-line-actions button{width:calc(var(--kiosk-touch) * 1.5);height:calc(var(--kiosk-touch) * 1.5);min-width:calc(var(--kiosk-touch) * 1.5);min-height:calc(var(--kiosk-touch) * 1.5);border-radius:10px;font-size:clamp(1.5rem,4.2vmin,1.8rem)}.kiosk-cart-line-actions .kiosk-qty{min-width:2.025rem;font-size:clamp(1.23rem,3.3vmin,1.425rem)}.kiosk-cart-line-actions .kiosk-trash{width:calc(var(--kiosk-touch) * 1.5);height:calc(var(--kiosk-touch) * 1.5);min-width:calc(var(--kiosk-touch) * 1.5);min-height:calc(var(--kiosk-touch) * 1.5);font-size:clamp(1.425rem,3.9vmin,1.575rem)}.kiosk-total-row .kiosk-total-label{font-size:clamp(1.02rem,2.85vmin,1.14rem)}.kiosk-total-row .kiosk-total-value{font-size:clamp(1.575rem,4.8vmin,2.025rem)}.kiosk-book{margin-top:clamp(.86rem,2.87vmin,1.24rem);min-height:clamp(4.5rem,13.4vmin,5.45rem);padding:clamp(.86rem,3.06vmin,1.24rem) clamp(1.05rem,3.83vmin,1.62rem);border-radius:clamp(15px,2.3vmin,21px);font-size:clamp(1.38rem,3.83vmin,1.68rem)}}.kiosk-book:disabled{background:var(--kiosk-accent-muted);color:color-mix(in srgb,var(--kiosk-text) 38%,var(--kiosk-bg));cursor:not-allowed;opacity:1}.kiosk-book:not(:disabled){background:var(--kiosk-accent);color:var(--kiosk-btn-text)}.kiosk-book:not(:disabled):hover{background:var(--kiosk-accent-hover)}.kiosk-err{margin:.5rem 0 0;font-size:.82rem;color:#f87171}.kiosk-err--nfc{font-size:clamp(.9rem,2.55vmin,1.08rem);line-height:1.4;font-weight:500;margin-top:.65rem}.kiosk-offline{font-size:.78rem;color:#f87171;margin:.35rem 0 0}.kiosk-success-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vmin,2rem);background:#000000b8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.kiosk-success-modal{width:min(100%,22rem);padding:clamp(1.35rem,4.5vmin,1.85rem) clamp(1.25rem,4vmin,1.65rem);border-radius:clamp(12px,2vmin,18px);background:color-mix(in srgb,var(--kiosk-sidebar-bg) 96%,#000);border:1px solid var(--kiosk-border);box-shadow:0 clamp(12px,4vmin,24px) clamp(32px,8vmin,48px) #00000073,0 0 0 1px color-mix(in srgb,var(--kiosk-accent) 18%,transparent);text-align:center}.kiosk-success-check{width:clamp(3rem,10vmin,3.75rem);height:clamp(3rem,10vmin,3.75rem);margin:0 auto clamp(.85rem,2.5vmin,1.1rem);border-radius:50%;background:#22c55e;color:#fff;display:flex;align-items:center;justify-content:center}.kiosk-success-check-svg{width:55%;height:55%}.kiosk-success-title{margin:0 0 clamp(.75rem,2.2vmin,1rem);font-size:clamp(.88rem,2.5vmin,1.05rem);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--kiosk-text)}.kiosk-success-body{margin:0;font-size:clamp(.88rem,2.45vmin,1.02rem);line-height:1.45;color:color-mix(in srgb,var(--kiosk-text) 88%,transparent)}.kiosk-success-amount{font-weight:700;color:var(--kiosk-text)}.kiosk-success-target{display:inline;font-weight:800;color:var(--kiosk-accent);text-transform:uppercase;letter-spacing:.04em}.kiosk-success-hint{margin:clamp(.9rem,2.8vmin,1.2rem) 0 0;font-size:clamp(.72rem,2vmin,.82rem);color:var(--kiosk-text-muted)}.admin-stack{display:flex;flex-direction:column;gap:1.25rem;width:100%;max-width:min(1280px,100%)}.admin-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:.25rem 0}.admin-table-scroll--catalog .admin-table{min-width:1080px}.admin-table td.admin-table-actions,.admin-table th.admin-table-actions{white-space:nowrap;width:1%}.admin-tab-bar{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}.admin-tab{padding:.4rem .75rem;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--muted);font:inherit;font-size:.875rem;cursor:pointer}.admin-tab:hover{background:var(--surface2);color:var(--text)}.admin-tab.active{background:var(--surface);border-color:var(--border);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0000000a}.admin-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.35rem 1.5rem 1.5rem;box-shadow:0 1px 2px #0000000a}.admin-panel h2{margin-top:0;margin-bottom:.5rem;color:var(--heading-muted)}.admin-kiosk-preview .kiosk-layout{display:grid;grid-template-columns:1fr min(340px,100%);gap:1.25rem;align-items:start;min-width:0}@media(max-width:880px){.admin-kiosk-preview .kiosk-layout{grid-template-columns:1fr}}.admin-kiosk-preview .catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.85rem}.admin-kiosk-preview .tile{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:0;overflow:hidden;color:inherit;display:flex;flex-direction:column;box-shadow:0 1px 2px #0000000a}.admin-kiosk-preview .tile:hover{border-color:#cfd3d9}.admin-kiosk-preview .tile img{width:100%;aspect-ratio:4/3;object-fit:contain;object-position:center;display:block;background:linear-gradient(160deg,var(--surface2),#e2e5ea)}.admin-kiosk-preview .tile .ph{aspect-ratio:4/3;background:linear-gradient(160deg,var(--surface2),#e2e5ea)}.admin-kiosk-preview .tile-body{padding:.75rem .85rem 1rem}.admin-kiosk-preview .tile .title{font-weight:600;margin-bottom:.25rem}.admin-kiosk-preview .tile .price{color:var(--accent-dim);font-weight:600}.admin-kiosk-preview .kiosk-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.1rem 1.25rem;box-shadow:0 1px 2px #0000000a;position:sticky;top:1rem}.admin-kiosk-preview .kiosk-sidebar h2{margin-top:0}.admin-kiosk-preview .cart-line{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem 0;border-bottom:1px solid var(--border)}.admin-kiosk-preview .cart-line .title{font-weight:600;font-size:.95rem}.admin-kiosk-preview .cart-line .sub{font-size:.8rem;color:var(--muted)}.admin-kiosk-preview .qty{display:flex;align-items:center;gap:.35rem}.admin-kiosk-preview .qty button{width:2rem;height:2rem;padding:0;background:var(--surface2)}.admin-kiosk-preview .sum{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.75rem;font-size:1.05rem}.admin-badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .45rem;border-radius:4px;background:#ec9a1e2e;color:#a35f00;margin-left:.35rem;vertical-align:middle}.admin-badge.off{background:#6b728024;color:var(--muted)}.admin-field-row{display:flex;flex-direction:column;gap:.35rem;margin:1rem 0;color:var(--muted);font-size:.9rem}.admin-field-row input,.admin-field-row select{font:inherit;padding:.45rem .55rem;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text)}.admin-field-row--checkbox{flex-direction:row;align-items:flex-start;gap:.5rem}.admin-field-row--checkbox input[type=checkbox]{margin-top:.2rem;flex-shrink:0;width:auto}.admin-hint-small{font-size:.78rem;color:var(--muted);margin:.25rem 0 0;line-height:1.4}.admin-msg{margin-top:0;padding:.75rem 1rem;border-radius:8px;font-size:.9rem;line-height:1.45}.admin-msg.ok{background:color-mix(in srgb,var(--ok) 12%,transparent);border:1px solid color-mix(in srgb,var(--ok) 35%,var(--border));color:var(--text)}.admin-msg.bad{background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));color:var(--danger)}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-table th,.admin-table td{text-align:left;padding:.65rem .85rem;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table th{color:var(--muted);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.admin-table tr:last-child td{border-bottom:none}.admin-table code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.82rem}.btn.ghost.admin-catalog-img-remove{color:#c62828;border-color:#c6282866}.btn.ghost.admin-catalog-img-remove:hover:not(:disabled){background:#c628281a;border-color:#c628288c;color:#b71c1c}.empty{color:var(--muted);padding:2rem 1rem;text-align:center;border:1px dashed var(--border);border-radius:10px}
