:root{--ink: #1c1917;--ink-soft: #57534e;--ink-faint: #a8a29e;--paper: #faf7f2;--card: #ffffff;--line: #e7e0d8;--accent: #d97706;--accent-deep: #b45309;--accent-soft: #fef3e2;--veg: #15803d;--nonveg: #b91c1c;--ok: #16a34a;--warn: #d97706;--bad: #dc2626;--k-bg: #0f141b;--k-card: #1a212b;--k-card-hi: #232d3a;--k-line: #2c3745;--k-ink: #f1f5f9;--k-ink-soft: #94a3b8;--k-placed: #fbbf24;--k-preparing: #38bdf8;--k-served: #4ade80;--radius: 14px;--shadow: 0 1px 2px rgba(28, 25, 23, .06), 0 4px 16px rgba(28, 25, 23, .07);--shadow-lift: 0 4px 8px rgba(28, 25, 23, .08), 0 12px 32px rgba(28, 25, 23, .14);--font: "Inter", system-ui, -apple-system, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--paper);color:var(--ink);line-height:1.45;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;font-size:16px}a{color:inherit;text-decoration:none}.center-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.empty-state{text-align:center;max-width:340px}.empty-state h1{font-size:22px;margin-bottom:8px}.empty-state p{color:var(--ink-soft);font-size:15px}.empty-emoji{font-size:52px;margin-bottom:14px}.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:16px;padding:14px 22px;border-radius:var(--radius);transition:transform .06s ease,box-shadow .15s ease,background .15s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow)}.btn-primary:hover{background:var(--accent-deep)}.btn-primary:disabled{background:var(--ink-faint);cursor:default;box-shadow:none}.btn-ghost{background:transparent;color:var(--ink-soft);font-weight:600}.veg-mark{width:16px;height:16px;border:1.6px solid var(--veg);border-radius:3px;display:inline-flex;align-items:center;justify-content:center;flex:none}.veg-mark:after{content:"";width:7px;height:7px;border-radius:50%;background:var(--veg)}.veg-mark.nonveg{border-color:var(--nonveg)}.veg-mark.nonveg:after{background:var(--nonveg)}.menu-page{padding-bottom:110px;min-height:100dvh}.menu-hero{background:linear-gradient(140deg,#1c1917,#33261a 60%,#4a2f14);color:#fdf6ec;padding:max(20px,env(safe-area-inset-top)) 20px 22px}.menu-hero .eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#d6b98c;font-weight:700;margin-bottom:4px}.menu-hero h1{font-size:26px;font-weight:800;letter-spacing:-.02em}.menu-hero .table-chip{display:inline-block;margin-top:10px;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);padding:5px 12px;border-radius:999px;font-size:13px;font-weight:600}.cat-nav{position:sticky;top:0;z-index:20;display:flex;gap:8px;overflow-x:auto;padding:12px 16px;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);scrollbar-width:none}.cat-nav::-webkit-scrollbar{display:none}.cat-chip{flex:none;padding:8px 15px;border-radius:999px;font-size:14px;font-weight:600;color:var(--ink-soft);background:var(--card);border:1px solid var(--line);transition:all .15s ease}.cat-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.menu-section{padding:20px 16px 4px}.menu-section h2{font-size:18px;font-weight:800;letter-spacing:-.01em;margin-bottom:12px}.item-card{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px;box-shadow:var(--shadow)}.item-info{flex:1;min-width:0}.item-name-row{display:flex;align-items:center;gap:8px}.item-name{font-weight:600;font-size:15.5px}.item-price{color:var(--ink-soft);font-size:14.5px;margin-top:3px;font-weight:500}.stepper{display:flex;align-items:center;border-radius:12px;overflow:hidden;flex:none}.stepper .add-btn{background:var(--accent-soft);color:var(--accent-deep);border:1.5px solid #f3d9ae;font-weight:800;font-size:14px;padding:9px 22px;border-radius:12px;transition:all .12s ease}.stepper .add-btn:active{transform:scale(.95)}.stepper.has-qty{background:var(--accent);color:#fff;box-shadow:var(--shadow)}.stepper.has-qty button{color:#fff;font-size:20px;font-weight:700;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.stepper.has-qty .qty{min-width:24px;text-align:center;font-weight:800;font-size:16px}.cart-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent,rgba(250,247,242,.6) 30%,var(--paper) 70%)}.cart-bar-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--ink);color:#fff;border-radius:18px;padding:15px 18px;box-shadow:var(--shadow-lift);width:100%;animation:rise .25s ease}@keyframes rise{0%{transform:translateY(80px);opacity:0}}.cart-bar-inner .cart-meta{font-size:13px;color:#d6d3d1;font-weight:500}.cart-bar-inner .cart-total{font-size:17px;font-weight:800}.cart-bar-inner .cart-cta{display:flex;align-items:center;gap:8px;font-weight:800;font-size:16px;color:#fcd34d}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#140f0a80;animation:fade .2s ease}@keyframes fade{0%{opacity:0}}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--card);border-radius:22px 22px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom));max-height:82dvh;overflow-y:auto;animation:slide-up .25s cubic-bezier(.2,.9,.3,1)}@keyframes slide-up{0%{transform:translateY(100%)}}.sheet h2{font-size:19px;font-weight:800;margin-bottom:4px}.sheet .sheet-sub{color:var(--ink-soft);font-size:13.5px;margin-bottom:14px}.sheet-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.sheet-row .sr-name{flex:1;font-weight:600;font-size:15px}.sheet-row .sr-price{font-weight:600;font-size:14.5px;white-space:nowrap}.sheet-total{display:flex;justify-content:space-between;padding:16px 0 6px;font-weight:800;font-size:17px}.note-input{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin:12px 0 16px;resize:none;background:var(--paper)}.note-input:focus{outline:none;border-color:var(--accent)}.status-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:48px 24px;text-align:center}.status-check{width:72px;height:72px;border-radius:50%;background:var(--ok);color:#fff;font-size:36px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;animation:pop .4s cubic-bezier(.3,1.6,.5,1)}@keyframes pop{0%{transform:scale(0)}}.status-page h1{font-size:24px;font-weight:800}.status-page .order-no{color:var(--ink-soft);margin:6px 0 26px;font-size:15px}.status-track{display:flex;align-items:center;gap:0;margin-bottom:30px}.status-step{display:flex;flex-direction:column;align-items:center;width:92px}.status-dot{width:34px;height:34px;border-radius:50%;background:var(--card);border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:15px;transition:all .3s ease}.status-step.done .status-dot{background:var(--ok);border-color:var(--ok);color:#fff}.status-step.current .status-dot{border-color:var(--accent);background:var(--accent-soft);animation:pulse-soft 1.6s ease infinite}@keyframes pulse-soft{0%,to{box-shadow:0 0 #d9770659}50%{box-shadow:0 0 0 9px #d9770600}}.status-step span{font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:7px}.status-step.done span,.status-step.current span{color:var(--ink)}.status-connector{height:2px;width:30px;background:var(--line);margin-bottom:22px}.status-connector.done{background:var(--ok)}.status-summary{width:100%;max-width:420px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;text-align:left}.k-root{min-height:100dvh;background:var(--k-bg);color:var(--k-ink)}.k-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:12px 16px;background:color-mix(in srgb,var(--k-bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--k-line)}.k-topbar .k-title{font-weight:800;font-size:17px;letter-spacing:-.01em}.k-topbar .k-sub{color:var(--k-ink-soft);font-size:12.5px}.k-nav{display:flex;gap:6px;margin-left:auto}.k-nav a,.k-nav button{padding:9px 14px;border-radius:10px;font-size:13.5px;font-weight:700;color:var(--k-ink-soft);background:transparent;border:1px solid transparent}.k-nav a.active{background:var(--k-card-hi);color:var(--k-ink);border-color:var(--k-line)}.offline-banner{background:#7c2d12;color:#ffedd5;text-align:center;font-size:13.5px;font-weight:600;padding:8px 14px}.pin-page{min-height:100dvh;background:var(--k-bg);color:var(--k-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.pin-page h1{font-size:21px;font-weight:800;margin-bottom:4px}.pin-page p{color:var(--k-ink-soft);font-size:14px;margin-bottom:26px}.pin-dots{display:flex;gap:14px;margin-bottom:28px}.pin-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--k-line);transition:all .12s ease}.pin-dot.filled{background:var(--k-preparing);border-color:var(--k-preparing)}.pin-pad{display:grid;grid-template-columns:repeat(3,76px);gap:12px}.pin-key{height:68px;border-radius:16px;background:var(--k-card);border:1px solid var(--k-line);color:var(--k-ink);font-size:24px;font-weight:700;transition:background .1s ease,transform .06s ease}.pin-key:active{background:var(--k-card-hi);transform:scale(.95)}.pin-error{color:#fca5a5;font-size:14px;font-weight:600;margin-top:18px;min-height:20px}.pin-shake{animation:shake .4s ease}@keyframes shake{20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}.k-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;padding:16px}.k-card{background:var(--k-card);border:1px solid var(--k-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.k-card.is-new{animation:flash-in 1.6s ease}@keyframes flash-in{0%{box-shadow:0 0 0 3px var(--k-placed);background:#2b2413}to{box-shadow:0 0 0 0 transparent}}.k-card-head{display:flex;align-items:center;gap:10px;padding:13px 15px;border-bottom:1px solid var(--k-line)}.k-table-label{font-size:18px;font-weight:800}.k-badge{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:4px 9px;border-radius:999px}.k-badge.placed{background:#fbbf2429;color:var(--k-placed)}.k-badge.preparing{background:#38bdf824;color:var(--k-preparing)}.k-badge.served{background:#4ade8024;color:var(--k-served)}.k-badge.waiter{background:#94a3b826;color:var(--k-ink-soft)}.k-elapsed{margin-left:auto;font-size:13px;font-weight:700;color:var(--k-ink-soft);font-variant-numeric:tabular-nums}.k-elapsed.late{color:var(--k-placed)}.k-items{padding:10px 15px;flex:1}.k-item-row{display:flex;gap:10px;padding:6px 0;font-size:15.5px}.k-item-row .k-qty{font-weight:800;color:var(--k-preparing);min-width:30px;font-variant-numeric:tabular-nums}.k-item-row .k-note{display:block;color:var(--k-placed);font-size:13px;font-weight:600}.k-customer-note{margin:4px 15px 10px;padding:8px 12px;background:#fbbf2414;border-left:3px solid var(--k-placed);border-radius:6px;color:#fde68a;font-size:13.5px}.k-card-actions{display:flex;border-top:1px solid var(--k-line)}.k-card-actions button{flex:1;padding:15px;font-size:15px;font-weight:800;color:var(--k-ink);background:var(--k-card-hi);transition:filter .1s ease}.k-card-actions button:active{filter:brightness(1.25)}.k-card-actions .k-advance.to-preparing{background:#14364a;color:var(--k-preparing)}.k-card-actions .k-advance.to-served{background:#143a24;color:var(--k-served)}.k-card-actions .k-cancel{flex:0 0 76px;color:#f87171;background:transparent;font-weight:700}.k-empty{grid-column:1 / -1;text-align:center;color:var(--k-ink-soft);padding:80px 20px}.k-empty .empty-emoji{font-size:44px}.k-empty h2{color:var(--k-ink);font-size:18px;margin:10px 0 4px}.tables-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:16px}.table-tile{border-radius:18px;padding:20px 14px;text-align:center;border:1.5px solid var(--k-line);background:var(--k-card);transition:transform .08s ease;display:block}.table-tile:active{transform:scale(.96)}.table-tile .tt-label{font-size:21px;font-weight:800}.table-tile .tt-state{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-top:7px}.table-tile .tt-meta{font-size:12.5px;color:var(--k-ink-soft);margin-top:5px;font-weight:600}.table-tile.free{opacity:.62}.table-tile.free .tt-state{color:var(--k-ink-soft)}.table-tile.occupied{border-color:#4ade8073}.table-tile.occupied .tt-state{color:var(--k-served)}.table-tile.attention{border-color:var(--k-placed);animation:pulse-amber 1.5s ease infinite}.table-tile.attention .tt-state{color:var(--k-placed)}@keyframes pulse-amber{0%,to{box-shadow:0 0 #fbbf2473}50%{box-shadow:0 0 0 10px #fbbf2400}}.k-count-header{padding:18px 16px 0;font-size:16px;font-weight:700;color:var(--k-ink-soft)}.k-count-header strong{color:var(--k-ink);font-size:19px}.qa-root{padding-bottom:96px}.qa-search{width:100%;background:var(--k-card);border:1.5px solid var(--k-line);border-radius:13px;color:var(--k-ink);padding:13px 16px}.qa-search:focus{outline:none;border-color:var(--k-preparing)}.qa-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--k-card);border:1px solid var(--k-line);border-radius:13px;padding:13px 15px;margin-bottom:8px;color:var(--k-ink);font-size:15.5px;font-weight:600}.qa-item .qa-price{margin-left:auto;color:var(--k-ink-soft);font-weight:600}.qa-item.picked{border-color:var(--k-preparing);background:#14364a}.qa-item .qa-qty{background:var(--k-preparing);color:#082f42;font-weight:800;border-radius:8px;min-width:30px;text-align:center;padding:2px 6px}.tab-table{width:100%;border-collapse:collapse}.tab-table td{padding:11px 8px;border-bottom:1px solid var(--k-line);font-size:15px}.tab-table .tt-qty{font-weight:800;color:var(--k-preparing);white-space:nowrap}.tab-table .tt-amt{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.tab-total-row td{font-weight:800;font-size:17px;border-bottom:none;padding-top:16px}.portal-root{min-height:100dvh;background:#f4f2ee}.portal-topbar{background:var(--ink);color:#fff;padding:14px 20px;display:flex;align-items:center;gap:12px}.portal-topbar .brand{font-weight:800;letter-spacing:-.01em}.portal-main{max-width:860px;margin:0 auto;padding:24px 16px 60px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px}@media (max-width: 420px){.pin-pad{grid-template-columns:repeat(3,minmax(64px,1fr));width:100%;max-width:300px}.k-board{grid-template-columns:1fr}}.vertical-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.vertical-card{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--card);padding:22px 12px;text-align:center;transition:all .12s ease}.vertical-card:hover{border-color:var(--accent)}.vertical-card.selected{border-color:var(--accent);background:var(--accent-soft)}.vertical-card .v-emoji{font-size:34px}.vertical-card .v-name{font-weight:800;margin-top:8px}.vertical-card .v-note{font-size:12px;color:var(--ink-soft);margin-top:3px}.tenant-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.tenant-card .t-head{display:flex;align-items:center;gap:10px}.tenant-card h3{font-size:17px;font-weight:800;flex:1}.v-badge{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep)}.v-badge.gym,.v-badge.clinic{background:#e0e7ff;color:#4338ca}.tenant-stats{display:flex;gap:16px;margin:12px 0;color:var(--ink-soft);font-size:13.5px;font-weight:600}.tenant-stats strong{color:var(--ink);font-size:16px;display:block}.tenant-links{display:flex;flex-wrap:wrap;gap:8px}.tenant-links a,.tenant-links button{font-size:12.5px;font-weight:700;padding:7px 11px;border-radius:9px;background:var(--paper);border:1px solid var(--line);color:var(--ink)}.tenant-links a:hover{border-color:var(--accent);color:var(--accent-deep)}.wizard-steps{display:flex;gap:6px;margin-bottom:18px}.wizard-steps .ws{flex:1;height:5px;border-radius:99px;background:var(--line)}.wizard-steps .ws.done{background:var(--accent)}.review-table{width:100%;border-collapse:collapse}.review-table td,.review-table th{padding:7px 6px;border-bottom:1px solid var(--line);font-size:14px;text-align:left}.review-table input[type=text]{width:100%;border:1px solid transparent;border-radius:6px;padding:5px 7px;font-size:14px;background:transparent}.review-table input[type=text]:focus{border-color:var(--accent);outline:none;background:#fff}.review-table input.price{width:74px;text-align:right}.review-table .cat-row td{background:var(--paper);font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.05em}.cred-box{background:var(--ink);color:#fff;border-radius:var(--radius);padding:16px 18px;font-size:14.5px;line-height:2}.cred-box code{background:#ffffff24;padding:2px 9px;border-radius:6px;font-size:14px}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);padding:34px 20px;text-align:center;color:var(--ink-soft);cursor:pointer;transition:all .15s ease;background:var(--card)}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:var(--accent-soft)}.lt-card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.lt-card.free{opacity:.6}.lt-card.occupied{border-color:#86efac}.lt-card.attention{border-color:var(--accent);animation:pulse-soft 1.6s ease infinite}.lt-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.lt-label{font-size:17px;font-weight:800}.lt-state{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.lt-state.free{color:var(--ink-faint)}.lt-state.occupied{color:var(--ok)}.lt-state.attention{color:var(--accent-deep)}.lt-empty{color:var(--ink-faint);font-size:13.5px;padding:6px 0 2px}.lt-order{border-top:1px dashed var(--line);padding:8px 0 4px}.lt-order-meta{font-size:12px;color:var(--ink-soft);font-weight:600;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.lt-badge{font-size:10px;font-weight:800;text-transform:uppercase;padding:2px 7px;border-radius:999px}.lt-badge.placed{background:#fef3c7;color:#92400e}.lt-badge.preparing{background:#e0f2fe;color:#075985}.lt-badge.served{background:#dcfce7;color:#166534}.lt-item{font-size:14px;padding:3px 0;font-weight:600}.lt-item .lt-qty{color:var(--accent-deep);font-weight:800}.lt-total{border-top:1px solid var(--line);margin-top:8px;padding-top:9px;font-size:13.5px;color:var(--ink-soft);display:flex;justify-content:space-between}.lt-total strong{color:var(--ink);font-size:15px}.qr-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--paper);overflow-y:auto}.qr-screen-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 24px;background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.qr-screen-head h2{font-size:22px;font-weight:800}.qr-screen-head p{color:var(--ink-soft);font-size:14px}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;padding:24px;max-width:1200px;margin:0 auto}.qr-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:18px;text-align:center}.qr-card img{width:100%;max-width:220px;image-rendering:pixelated}.qr-label{font-size:20px;font-weight:800;margin-bottom:8px}.qr-hint{color:var(--ink-soft);font-size:13px;font-weight:600;margin-top:6px}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px}.slot-chip{padding:12px 8px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;transition:all .12s ease}.slot-chip:active{transform:scale(.95)}.slot-chip.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow)}.appt-row{display:flex;align-items:center;gap:14px;background:var(--k-card);border:1px solid var(--k-line);border-radius:14px;padding:13px 16px;margin-bottom:10px;color:var(--k-ink);flex-wrap:wrap}.appt-time{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;min-width:56px}.appt-main{flex:1;min-width:160px}.appt-name{font-weight:700;font-size:15.5px}.appt-meta{color:var(--k-ink-soft);font-size:13px;margin-top:2px}.appt-actions{display:flex;align-items:center;gap:8px}.appt-actions button,.appt-actions a{padding:9px 14px;border-radius:10px;font-size:13.5px;font-weight:800;background:#14364a;color:var(--k-preparing)}.appt-actions button.done{background:#143a24;color:var(--k-served)}.appt-actions button.danger{background:transparent;color:#f87171;border:1px solid #7f1d1d}.appt-actions a{background:#1f3d2a;color:#4ade80;font-size:16px;padding:8px 12px}.k-badge.noshow{background:#f8717126;color:#f87171}.lt-badge.noshow{background:#fee2e2;color:#991b1b}.gy{--g-bg: #0c0f14;--g-panel: #141922;--g-panel2: #1b2230;--g-line: #263041;--g-fg: #eef2f7;--g-fg2: #9aa6b8;--g-fg3: #5c6a80;--g-accent: #2f6bff;--g-ok: #22c55e;--g-warn: #f59e0b;--g-bad: #ef4444;--g-wa: #25d366;--g-display: "Bebas Neue", "Oswald", Impact, "Arial Narrow", sans-serif;min-height:100dvh;background:var(--g-bg);color:var(--g-fg);font-family:"Manrope",var(--font);font-size:15px;line-height:1.45;color-scheme:dark}.gy .num,.gy-num{font-family:var(--g-display);font-variant-numeric:tabular-nums;letter-spacing:.01em}.gy h1,.gy h2,.gy h3,.gy p{margin:0}.gy input,.gy textarea,.gy select{color-scheme:dark}.gy a{color:inherit}.gy button:focus-visible,.gy a:focus-visible{outline:2px solid var(--g-accent);outline-offset:2px}.gy-wrap{max-width:440px;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 18px 40px}.gy-wide{max-width:1000px;margin:0 auto;padding:16px 16px 40px}.gy-center{min-height:100dvh;display:grid;place-content:center;text-align:center;padding:24px;color:var(--g-fg2)}.gy-center h1{color:var(--g-fg);font-size:22px;margin-bottom:8px}.gy-center .spinner{border-color:var(--g-line);border-top-color:var(--g-accent)}.gy-eyebrow{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--g-fg2);font-weight:700}.gy-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.gy-gym{font-weight:800;font-size:13.5px}.gy-hi{font-family:var(--g-display);font-size:34px;line-height:1;margin-top:14px;letter-spacing:.02em}.gy-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.gy-pill.ok{background:#22c55e24;color:var(--g-ok)}.gy-pill.warn{background:#f59e0b29;color:var(--g-warn)}.gy-pill.bad{background:#ef444429;color:var(--g-bad)}.gy-pill.mute{background:#9aa6b824;color:var(--g-fg2)}.gy-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px 18px;border-radius:14px;font-weight:800;font-size:15.5px;color:var(--g-fg);background:var(--g-panel2);transition:transform .06s ease,filter .15s ease;text-decoration:none}.gy-btn:active{transform:scale(.98)}.gy-btn:hover{filter:brightness(1.08)}.gy-btn:disabled{opacity:.5;cursor:default}.gy-btn.primary{background:var(--g-accent);color:#fff;box-shadow:0 8px 24px #2f6bff59}.gy-btn.bad{background:var(--g-bad);color:#fff;box-shadow:0 8px 24px #ef44444d}.gy-btn.ok{background:var(--g-ok);color:#06281a}.gy-btn.wa{background:var(--g-wa);color:#06281a}.gy-btn.small{padding:10px 14px;font-size:13.5px;border-radius:11px;width:auto}.gy-row{display:flex;gap:10px}.gy-row>*{min-width:0;flex:1}.gy-actions{display:grid;gap:8px;margin-top:16px}.gy-note{font-size:12.5px;color:var(--g-fg3);text-align:center;margin-top:10px}.gy-msg-ok{color:var(--g-ok);font-weight:700;font-size:13.5px;text-align:center;margin-top:10px}.gy-msg-bad{color:var(--g-bad);font-weight:700;font-size:13.5px;margin-top:8px}.gy-ring{position:relative;width:196px;height:196px;margin:18px auto 6px}.gy-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.gy-ring .track{stroke:var(--g-panel2)}.gy-ring .prog{stroke-linecap:round;transition:stroke-dashoffset 1.1s cubic-bezier(.2,.8,.2,1)}.gy-ring-mid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}.gy-ring-mid .big{font-family:var(--g-display);font-size:84px;line-height:.9}.gy-ring-mid .lbl{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--g-fg2);font-weight:700;margin-top:2px}.gy-plan-line{text-align:center;color:var(--g-fg2);font-size:13.5px;font-weight:600}.gy-plan-line b{color:var(--g-fg)}.gy-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.gy-stat{background:var(--g-panel);border-radius:14px;padding:12px 10px;text-align:center}.gy-stat .v{font-family:var(--g-display);font-size:30px;line-height:1}.gy-stat .k{font-size:11px;color:var(--g-fg2);font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-top:4px}.gy-heat{margin-top:16px;background:var(--g-panel);border-radius:14px;padding:12px 12px 10px}.gy-heat .h{display:flex;justify-content:space-between;font-size:11.5px;color:var(--g-fg2);font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.gy-heat .grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.gy-heat .wk{display:grid;grid-template-rows:repeat(7,1fr);gap:4px}.gy-heat .c{aspect-ratio:1;border-radius:3px;background:var(--g-panel2)}.gy-heat .c.on{background:var(--g-ok)}.gy-heat .c.today{outline:1.5px solid var(--g-fg2);outline-offset:-1.5px}.gy-qr{margin-top:16px;display:flex;gap:14px;align-items:center;background:var(--g-panel);border-radius:14px;padding:12px}.gy-qr img{width:96px;height:96px;border-radius:8px;background:#fff;flex:none;image-rendering:pixelated}.gy-qr .t{font-weight:800;font-size:14px}.gy-qr .s{color:var(--g-fg2);font-size:12.5px;margin-top:2px}.gy-upi{margin-top:14px;background:var(--g-panel);border-radius:14px;padding:14px}.gy-upi .amt{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.gy-upi .amt .num{font-size:38px;line-height:1}.gy-upi .amt span{color:var(--g-fg2);font-size:13px;font-weight:600;text-align:right}.gy-upi-id{margin-top:8px;display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--g-panel2);border-radius:10px;padding:9px 12px;font-size:13.5px;font-weight:700}.gy-upi-id button{color:#8fb0ff;font-weight:800;font-size:12.5px}.gy-card{background:var(--g-panel);border-radius:14px;padding:14px;margin-top:14px}.gy-card h3{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--g-fg2);margin-bottom:8px}.gy-line{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--g-line);font-size:14px}.gy-line:last-child{border-bottom:0}.gy-line .l{font-weight:700}.gy-line .r{color:var(--g-fg2);text-align:right;white-space:nowrap}.gy-line a{color:#8fb0ff;font-weight:700}.gy-receipt{background:#fff;color:#1c1917;border-radius:16px;padding:22px 20px;margin-top:14px;font-family:var(--font)}.gy-receipt .rh{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.gy-receipt .rh h2{font-size:20px;font-weight:800}.gy-receipt .rh small{color:#57534e;font-size:12.5px;display:block}.gy-receipt .rn{font-family:var(--g-display);font-size:22px;letter-spacing:.04em;text-align:right}.gy-receipt table{width:100%;border-collapse:collapse;margin-top:16px;font-size:14px}.gy-receipt td{padding:8px 0;border-bottom:1px solid #e7e0d8}.gy-receipt td:last-child{text-align:right;font-weight:700}.gy-receipt .total td{border-bottom:0;font-size:18px;font-weight:800;padding-top:12px}.gy-receipt .foot{margin-top:14px;font-size:11.5px;color:#78716c;text-align:center}.gy-hero{border-radius:20px;padding:20px 18px 18px;background:radial-gradient(120% 90% at 100% 0%,rgba(47,107,255,.35),transparent 55%),var(--g-panel);border:1px solid var(--g-line)}.gy-open{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--g-ok)}.gy-open.closed{color:var(--g-fg2)}.gy-open i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px #22c55e33}.gy-hero h2{font-family:var(--g-display);font-size:42px;line-height:.95;letter-spacing:.02em;margin-top:10px;text-wrap:balance}.gy-hero .tag{color:var(--g-fg2);margin-top:8px;font-size:14px;font-weight:600}.gy-hero .meta{margin-top:12px;display:grid;gap:4px;font-size:13px;color:var(--g-fg2);font-weight:600}.gy-hero .meta b{color:var(--g-fg)}.gy-plans{display:grid;gap:8px;margin-top:14px}.gy-planrow{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--g-panel);border:1px solid var(--g-line);border-radius:14px;padding:12px 14px;width:100%;text-align:left;color:inherit}.gy-planrow.best{border-color:var(--g-accent);background:linear-gradient(90deg,rgba(47,107,255,.14),var(--g-panel))}.gy-planrow.on{border-color:var(--g-ok)}.gy-planrow .nm{font-weight:800;font-size:15px}.gy-planrow .d{color:var(--g-fg2);font-size:12.5px;font-weight:600;margin-top:2px}.gy-planrow .pr{font-family:var(--g-display);font-size:28px;line-height:1;text-align:right}.gy-planrow .pr small{font-family:"Manrope",var(--font);font-size:11.5px;color:var(--g-fg2);font-weight:700;display:block}.gy-save{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8fb0ff;margin-left:8px}.gy-form{display:grid;gap:8px;margin-top:12px}.gy-input{width:100%;background:var(--g-panel);border:1.5px solid var(--g-line);border-radius:13px;color:var(--g-fg);padding:13px 16px;font-size:16px;font-weight:600}.gy-input:focus{outline:none;border-color:var(--g-accent)}.gy-input::placeholder{color:var(--g-fg3);font-weight:500}.gy-label{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--g-fg2);font-weight:800;margin:6px 0 -2px}.gy-dtop{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.gy-dtop .name{font-family:var(--g-display);font-size:26px;letter-spacing:.03em;line-height:1}.gy-dtop .sub{color:var(--g-fg2);font-size:12.5px;font-weight:600}.gy-strip{display:flex;gap:18px;flex-wrap:wrap;font-weight:700;font-size:13px;color:var(--g-fg2)}.gy-strip b{font-family:var(--g-display);font-size:22px;color:var(--g-fg);margin-right:4px;vertical-align:-2px}.gy-search{margin-top:16px;display:flex;gap:10px}.gy-search .gy-input{flex:1;min-width:0;font-size:20px;padding:14px 16px}.gy-search .scan{flex:none;display:inline-flex;align-items:center;gap:8px;padding:0 18px;border-radius:16px;background:var(--g-panel2);font-weight:800;color:var(--g-fg)}.gy-dmain{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-top:16px;align-items:start}@media (max-width: 720px){.gy-dmain{grid-template-columns:1fr}.gy-search .gy-input{font-size:17px}}.gy-list{display:grid;gap:6px;margin-top:10px}.gy-li{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--g-panel);border:1px solid var(--g-line);border-radius:13px;padding:11px 13px;color:var(--g-fg)}.gy-li:hover{border-color:var(--g-fg3)}.gy-li .nm{font-weight:800;font-size:15px}.gy-li .sb{color:var(--g-fg2);font-size:12.5px;font-weight:600}.gy-li .gy-pill{margin-left:auto}.gy-result{border-radius:20px;padding:20px;background:var(--g-panel);border:1px solid var(--g-line);display:grid;gap:14px}.gy-result.ok{background:linear-gradient(160deg,rgba(34,197,94,.22),rgba(34,197,94,.06) 60%,var(--g-panel));border-color:#22c55e80}.gy-result.warn{background:linear-gradient(160deg,rgba(245,158,11,.22),rgba(245,158,11,.06) 60%,var(--g-panel));border-color:#f59e0b80}.gy-result.bad{background:linear-gradient(160deg,rgba(239,68,68,.22),rgba(239,68,68,.06) 60%,var(--g-panel));border-color:#ef444473}.gy-who{display:flex;gap:14px;align-items:center}.gy-avatar{width:58px;height:58px;border-radius:16px;display:grid;place-content:center;font-family:var(--g-display);font-size:26px;background:var(--g-panel2);color:var(--g-fg);flex:none}.gy-who .n{font-family:var(--g-display);font-size:32px;line-height:1;letter-spacing:.02em}.gy-who .p{color:var(--g-fg2);font-size:13.5px;font-weight:600;margin-top:4px}.gy-state{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.gy-state .big{font-family:var(--g-display);font-size:44px;line-height:1;letter-spacing:.03em}.gy-state.ok .big{color:var(--g-ok)}.gy-state.warn .big{color:var(--g-warn)}.gy-state.bad .big{color:var(--g-bad)}.gy-state.mute .big{color:var(--g-fg2)}.gy-state .since{color:var(--g-fg2);font-weight:700;font-size:14px}.gy-chips{display:flex;gap:8px;flex-wrap:wrap}.gy-chip{padding:8px 14px;border-radius:999px;background:var(--g-panel2);font-weight:800;font-size:13px;border:1px solid transparent;color:var(--g-fg)}.gy-chip.on{border-color:var(--g-accent);color:#cfdcff;background:#2f6bff24}.gy-recent{background:var(--g-panel);border-radius:20px;padding:16px;display:grid;gap:10px;align-content:start}.gy-recent h3{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--g-fg2)}.gy-rc{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;font-size:14px}.gy-rc .t{color:var(--g-fg3);font-weight:700;font-variant-numeric:tabular-nums}.gy-rc .nm{font-weight:700}.gy-rc .st{font-size:12px;color:var(--g-fg2);font-weight:600}.gy-rc button{color:#8fb0ff;font-weight:800;font-size:12.5px}.gy-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.gy-dot.ok{background:var(--g-ok)}.gy-dot.warn{background:var(--g-warn)}.gy-dot.bad{background:var(--g-bad)}.gy-dot.mute{background:var(--g-fg3)}.gy-offline{background:#7c2d12;color:#ffedd5;text-align:center;font-size:13.5px;font-weight:600;padding:8px 14px;border-radius:10px;margin-top:12px}.gy-claim{border:1px solid rgba(47,107,255,.5);background:#2f6bff1a;border-radius:14px;padding:12px 14px;display:grid;gap:8px}.gy-claim b{font-size:14px}.pn-pill{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px;white-space:nowrap}.pn-pill.active{background:#dcfce7;color:#166534}.pn-pill.expiring{background:#fef3c7;color:#92400e}.pn-pill.grace,.pn-pill.expired{background:#fee2e2;color:#991b1b}.pn-pill.frozen,.pn-pill.left{background:#e7e5e4;color:#44403c}.pn-pill.cold{background:#e0e7ff;color:#3730a3}.pn-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.pn-row:last-child{border-bottom:0}.pn-row .nm{font-weight:700;font-size:15px}.pn-row .sb{font-size:13px;color:var(--ink-soft);margin-top:2px}.pn-acts{display:flex;gap:6px;align-items:center}.pn-wa{width:40px;height:40px;border-radius:50%;background:#25d366;display:grid;place-content:center;flex:none}.pn-wa svg{width:20px;height:20px;fill:#06281a}.pn-mini{font-size:12.5px;font-weight:700;padding:7px 10px;border-radius:9px;background:var(--paper);border:1px solid var(--line);color:var(--ink)}.pn-mini.danger{color:var(--bad)}.pn-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}.pn-tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.pn-tile .k{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.pn-tile .v{font-size:28px;font-weight:800;margin-top:4px}.pn-tile .s{font-size:12.5px;color:var(--ink-soft)}.pn-group h3{display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 6px}.pn-group h3 .cnt{margin-left:auto;font-weight:800;color:var(--ink);font-size:15px}.pn-link{color:var(--accent-deep);font-weight:700;word-break:break-all}
