@font-face{font-family:Onest;src:url(/fonts/onest-variable.ttf) format("truetype");font-style:normal;font-weight:100 900;font-display:swap}:root{font-family:Onest,Arial,sans-serif;color:#201f1c;background:#f7f4ee;font-synthesis:none}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}.startup-status{width:100%;height:100%;margin:0;padding:32px;display:flex;align-items:center;justify-content:center;color:#4b463e;background:#f7f4ee;font:600 32px/1.25 Onest,Arial,sans-serif;text-align:center}.startup-error{color:#8c2f20}.display{--background: #f7f4ee;--accent: #9c3d24;--foreground: #201f1c;min-height:100%;padding:32px;padding:clamp(24px,3vw,56px);color:#201f1c;color:var(--foreground);background:#f7f4ee;background:var(--background);display:flex;flex-direction:column;display:grid;grid-template-rows:auto 1fr auto;gap:24px;gap:clamp(18px,2vh,32px);text-wrap:pretty;hyphens:auto}header{display:flex;align-items:center;gap:24px;min-height:74px}.logo{width:82px;width:clamp(64px,6vw,110px);height:82px;height:clamp(64px,6vw,110px);object-fit:contain}h1{margin:0;color:#9c3d24;color:var(--accent);font-size:52px;font-size:clamp(42px,4vw,76px);line-height:1;letter-spacing:-.035em;text-wrap:balance}.page{display:flex;min-height:0;animation:page-in .35s ease-out}.page>.column{margin-right:32px}.page>.column:last-child{margin-right:0}@supports (display: grid){.page{display:grid;gap:28px;gap:clamp(28px,3vw,64px)}.page>.column{margin-right:0}}.column{flex:1 1 0;min-width:0;align-content:start;display:block;display:grid;grid-auto-rows:minmax(48px,auto)}h2{margin:8px 0 4px;padding-bottom:7px;border-bottom:3px solid #9c3d24;border-bottom-color:var(--accent);color:#9c3d24;color:var(--accent);font-size:30px;font-size:clamp(25px,2vw,36px);line-height:1.1;text-wrap:balance}.continued{opacity:.58;font-size:.55em;font-weight:500}.menu-item{min-width:0;min-height:64px;min-height:clamp(58px,7vh,86px);display:flex;align-items:flex-end;padding:5px 0;font-size:26px;font-size:clamp(22px,1.75vw,32px);line-height:1.18;transition:opacity .22s ease}@supports (display: grid){.menu-item{display:grid;grid-template-columns:minmax(0,auto) minmax(14px,1fr) max-content;column-gap:10px}}.page-transition{animation:page-in .52s cubic-bezier(.2,.8,.2,1)}.menu-item-enter{animation:item-in .42s both;animation-delay:var(--row-delay, 0ms)}.menu-item.unavailable.menu-item-enter{animation-name:item-in-unavailable}.item-name{min-width:0;overflow-wrap:break-word;hyphens:auto;word-break:normal}.dots{flex:1;align-self:end;min-width:14px;margin:0 10px .24em;border-bottom:2px dotted #a9a39a;border-bottom-color:color-mix(in srgb,currentColor 30%,transparent)}.menu-item .dots{margin-left:10px;margin-right:10px}.price{align-self:end;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.unavailable{opacity:.38}.unavailable .item-name,.unavailable .price{text-decoration:line-through;text-decoration-thickness:2px}.empty{display:flex;align-items:center;justify-content:center;color:#77716a;color:color-mix(in srgb,currentColor 50%,transparent);font-size:36px;font-size:clamp(28px,3vw,48px)}footer{display:flex;justify-content:space-between;align-items:center;min-height:22px;font-size:clamp(13px,1vw,18px);opacity:.6}.connection:before{content:"";display:inline-block;width:.65em;height:.65em;margin-right:.5em;border-radius:50%;background:#238636}.connection.offline:before{background:#b36b00}.status{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:32px;background:#f7f4ee;color:#4b463e;text-align:center;font:600 32px/1.25 Arial,sans-serif;font:600 clamp(24px,3vw,48px)/1.25 system-ui,sans-serif}.status-error{color:#8c2f20}.connect-screen{flex-direction:column;gap:16px}.connect-screen img{width:70vw;width:min(70vw,420px);height:auto;background:#fff;padding:12px}.connect-screen p{margin:0;max-width:720px;font-size:clamp(18px,2vw,28px)}.pairing-timer{color:#4b463e;font-variant-numeric:tabular-nums}.pairing-expired{color:#8c2f20}.connect-screen button{padding:12px 20px;border:0;border-radius:8px;color:#fff;background:#9c3d24;font:700 18px inherit;cursor:pointer}.staff-login,.staff-menu{min-height:100%;padding:40px;background:#f7f4ee;color:#201f1c}.staff-menu{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.staff-login{max-width:560px;margin:0 auto;display:grid;align-content:center;gap:16px}.staff-login h1{font-size:clamp(42px,7vw,72px)}.staff-login input{padding:16px;border:2px solid #9c3d24;border-radius:10px;font:inherit}.staff-login button,.staff-menu header button{padding:14px 24px;border:0;border-radius:999px;color:#fff;background:#9c3d24;font:700 18px inherit;cursor:pointer}.saved-credentials{color:#6c655d;font-size:14px}.staff-login .link-button{padding:0;border:0;border-radius:0;color:#70412f;background:transparent;font:inherit;text-decoration:underline;text-align:left}.staff-menu header{justify-content:space-between}.staff-tabs{display:flex;flex-wrap:wrap;gap:8px;max-width:900px;margin:20px auto;border-bottom:1px solid #d8d0c4}.staff-tabs button,.form-row button{padding:10px 16px;border:1px solid #c7bdb0;border-radius:8px;background:#fff;font:inherit;cursor:pointer}.staff-tabs button.active{color:#fff;background:#9c3d24}.form-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.form-row input,.form-row select{min-width:130px;flex:1;padding:11px;border:1px solid #c7bdb0;border-radius:8px;font:inherit}.csv-import{display:grid;gap:8px;margin:18px 0;padding:14px;border:1px solid #d8d0c4;border-radius:8px;background:#fffdfa}.csv-import label{display:inline-flex;width:fit-content;padding:0;border:0;color:#9c3d24;font-weight:700;cursor:pointer}.csv-import input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.csv-import small{color:#6c655d}.csv-import button{width:fit-content;padding:10px 16px;border:0;border-radius:8px;color:#fff;background:#9c3d24;font:inherit;cursor:pointer}.staff-menu section{max-width:900px;margin:28px auto}.staff-menu section h2{font-size:30px}.venue-settings{display:grid;gap:18px;padding:24px;border:1px solid #ded7cd;border-radius:18px;background:#fffdfa}.venue-settings h2{margin-top:0}.setting-field{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,2fr);align-items:center;gap:10px 18px;margin:0;padding:10px 0;border:0;cursor:default}.color-setting{grid-template-columns:minmax(150px,1fr) 64px minmax(110px,1fr)}.setting-field>span{font-weight:700}.setting-field input:not([type=color]){width:100%;min-width:0;padding:12px 14px;border:1px solid #c7bdb0;border-radius:9px;background:#fff;color:#201f1c;font:inherit}.color-setting input[type=color]{width:64px;height:44px;padding:4px;border:1px solid #c7bdb0;border-radius:9px;background:#fff;cursor:pointer}.color-setting input[type=color]+input{max-width:150px}.duration-setting{grid-template-columns:1fr 2fr}.duration-control{display:flex;align-items:center;gap:18px}.duration-control button{width:44px;height:44px;border:1px solid #c7bdb0;border-radius:50%;background:#fff;color:#9c3d24;font-size:25px;cursor:pointer}.duration-control button:disabled,.save-settings:disabled{opacity:.5;cursor:not-allowed}.duration-setting small{grid-column:2;color:#6c655d}.save-settings{justify-self:start;padding:13px 22px;border:0;border-radius:999px;color:#fff;background:#9c3d24;font:inherit;font-weight:700;cursor:pointer}.settings-success{margin:0;color:#237343}.venue-settings .status-error{margin:0;color:#8c2f20}.availability-list label,.staff-menu label{display:flex;align-items:center;gap:12px;padding:14px 10px;border-bottom:1px solid #d8d0c4;cursor:pointer}.availability-list label{will-change:transform;transition:opacity .22s ease}.staff-menu label span{flex:1;display:grid;gap:4px}.staff-menu label small{font-size:16px}.staff-menu label input{width:24px;height:24px;accent-color:#9c3d24}.staff-menu label em{font-style:normal;font-size:14px;color:#6c655d}.staff-menu label.unavailable{opacity:.5;text-decoration:line-through}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes item-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes item-in-unavailable{0%{opacity:0;transform:translateY(10px)}to{opacity:.38;transform:translateY(0)}}@media(max-width:899px){.display{padding:24px}.continued{display:none}}@media(max-width:600px){.staff-menu{padding:20px}.venue-settings{padding:16px}.setting-field,.duration-setting{grid-template-columns:1fr}.duration-setting small{grid-column:1}}@media(prefers-reduced-motion:reduce){.page,.page-transition,.menu-item-enter{animation:none}.availability-list label{transition:none!important}}.hub-login{min-height:100%;display:grid;place-items:center;padding:24px;color:#e7edf7;background:radial-gradient(circle at 15% 10%,#193c5a 0,transparent 36%),#07111e}.hub-login-card{width:min(100%,440px);padding:42px;border:1px solid #29445f;border-radius:24px;background:rgba(11,27,43,.92);box-shadow:0 28px 70px rgba(0,0,0,.36)}.hub-kicker{color:#61d5b7;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.hub-login h1,.hub-sidebar h1{margin:8px 0 10px;color:#fff;font-size:38px;letter-spacing:-.04em}.hub-login p{color:#9fb1c4}.hub-login input{width:100%;margin:18px 0 10px;padding:14px 16px;border:1px solid #36516c;border-radius:10px;color:#fff;background:#071421;font:inherit}.hub-login button,.hub-create>button{width:100%;padding:14px 18px;border:0;border-radius:10px;color:#061813;background:#61d5b7;font:800 15px inherit;cursor:pointer}.hub-login button:disabled,.backend-hub button:disabled{opacity:.55;cursor:wait}.backend-hub{--hub-bg: #f3f6f8;--hub-ink: #122231;min-height:100%;height:100%;display:grid;grid-template-columns:250px minmax(0,1fr);overflow:hidden;color:var(--hub-ink);background:var(--hub-bg)}.hub-sidebar{min-height:100%;display:flex;flex-direction:column;gap:36px;padding:30px 22px;color:#dce7f2;background:#091725}.hub-sidebar h1{font-size:28px}.hub-sidebar nav{display:grid;gap:6px}.hub-sidebar nav button,.hub-signout{padding:12px 14px;border:0;border-radius:9px;color:#9fb1c4;background:transparent;font:650 15px inherit;text-align:left;cursor:pointer}.hub-sidebar nav button:hover,.hub-sidebar nav button.active{color:#fff;background:#183047}.hub-sidebar nav button.active{box-shadow:inset 3px 0 #61d5b7}.hub-signout{margin-top:auto;border:1px solid #29445f}.hub-content{min-width:0;overflow:auto;padding:34px clamp(24px,4vw,58px) 70px}.hub-header{min-height:auto;justify-content:space-between;margin-bottom:26px}.hub-header h2{margin:5px 0 0;padding:0;border:0;color:var(--hub-ink);font-size:clamp(28px,3vw,42px);letter-spacing:-.035em}.hub-refresh{padding:10px 16px;border:1px solid #bfd0dc;border-radius:9px;color:#16344a;background:#fff;font:700 14px inherit;cursor:pointer}.hub-banner{margin:0 0 18px;padding:13px 16px;border-radius:10px}.hub-error{color:#a43131!important;background:#fff0ef}.hub-success{color:#17654f;background:#e5f8f1}.hub-metrics{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:14px;margin-bottom:20px}.hub-metrics article{padding:20px;border:1px solid #dbe4e9;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(20,44,61,.043)}.hub-metrics small{display:block;margin-bottom:8px;color:#697d8c}.hub-metrics strong{font-size:32px;font-variant-numeric:tabular-nums}.hub-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);gap:20px;align-items:start}.hub-card{min-width:0;padding:22px;border:1px solid #dbe4e9;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(20,44,61,.043)}.hub-card h3{margin:0;font-size:20px}.hub-card-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.hub-card-title small{color:#778a98}.hub-table-wrap{overflow-x:auto}.hub-card table{width:100%;border-collapse:collapse;font-size:14px}.hub-card th{padding:10px 9px;border-bottom:1px solid #dbe4e9;color:#718390;font-size:12px;text-align:left;text-transform:uppercase}.hub-card td{padding:14px 9px;border-bottom:1px solid #edf1f3;vertical-align:middle}.hub-card td>small,.hub-card td>b{display:block}.hub-card code{padding:3px 6px;border-radius:5px;color:#27506a;background:#edf5f8}.hub-actions{display:flex;gap:6px}.hub-actions button,.hub-secret button{padding:7px 9px;border:1px solid #bad0dc;border-radius:7px;color:#1e536e;background:#fff;font:650 12px inherit;cursor:pointer;white-space:nowrap}.hub-actions button.danger{color:#9c3333;border-color:#e2bcbc}.hub-create{display:grid;gap:13px}.hub-create label{display:grid;gap:6px;color:#4d6372;font-size:13px;font-weight:700}.hub-create input,.hub-secret textarea{width:100%;padding:11px 12px;border:1px solid #c8d5dd;border-radius:8px;color:var(--hub-ink);background:#fff;font:inherit}.hub-secret{display:grid;gap:8px;margin-top:8px;padding:13px;border-radius:10px;background:#fff5d9}.hub-secret p{margin:0;color:#755e28;font-size:12px}.hub-secret textarea{min-height:88px;resize:vertical;font-size:11px}.hub-function-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.hub-function{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid #edf1f3}.hub-function:first-of-type{border-top:0}.hub-function p{margin:8px 0 0;color:#617482;font-size:13px}.hub-function>span{padding:5px 8px;border-radius:999px;color:#35677d;background:#e8f3f6;font-size:11px;white-space:nowrap}.hub-log-list{display:grid}.hub-log{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(240px,1.4fr) auto;gap:18px;align-items:center;padding:14px 8px;border-top:1px solid #edf1f3}.hub-log:first-child{border-top:0}.hub-log>div{display:grid;gap:4px}.hub-log span,.hub-log time{color:#718390;font-size:12px}.hub-log p{margin:0;color:#445b69;font-size:14px}.hub-log.error{box-shadow:inset 3px 0 #c34b4b}.hub-log.warn{box-shadow:inset 3px 0 #d7a12f}.hub-empty{color:#718390}@media(max-width:1050px){.hub-grid,.hub-function-groups{grid-template-columns:1fr}}@media(max-width:760px){.backend-hub{grid-template-columns:1fr;overflow:auto}.hub-sidebar{min-height:auto;padding:18px;gap:14px}.hub-sidebar nav{display:flex;overflow-x:auto}.hub-sidebar nav button{white-space:nowrap}.hub-signout{margin:0}.hub-content{overflow:visible;padding:24px 16px 50px}.hub-metrics{grid-template-columns:repeat(2,1fr)}.hub-header{align-items:flex-start}.hub-log{grid-template-columns:1fr;gap:5px}}
