.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.vertical-shell{display:grid;gap:20px;width:100%}.vertical-shell.vertical-shell-operator{gap:12px}.vertical-shell-operator .vertical-content{gap:0}.vertical-brand-bar{align-items:center;background:linear-gradient(135deg,var(--vertical-brand,var(--ink-950)) 0,color-mix(in srgb,var(--vertical-brand,var(--ink-950)) 72%,#000) 100%);border-radius:var(--radius-lg);box-shadow:0 12px 40px rgba(16,43,61,.18);color:var(--text-invert);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:14px 20px}.vertical-brand-identity{align-items:center;display:flex;gap:14px;min-width:0}.vertical-brand-logo{align-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:14px;display:grid;font-size:1rem;font-weight:600;height:44px;justify-items:center;letter-spacing:.04em;min-width:44px;overflow:hidden;width:44px}.vertical-brand-logo img{height:100%;object-fit:cover;width:100%}.vertical-brand-copy h2{font-size:1.05rem;font-weight:600;margin:0}.vertical-brand-copy p{color:rgba(247,249,251,.78);font-size:.82rem;margin:2px 0 0}.vertical-shift-bar{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.vertical-shift-pill{align-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:999px;display:inline-flex;font-size:.78rem;gap:8px;letter-spacing:.06em;padding:6px 12px;text-transform:uppercase}.vertical-shift-pill.is-open{background:rgba(72,187,120,.22);border-color:rgba(72,187,120,.45)}.vertical-shift-pill.is-closed{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.4)}.vertical-brand-btn{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:12px;color:var(--text-invert);cursor:pointer;font:inherit;font-size:.82rem;padding:8px 14px;transition:background .15s ease}.vertical-brand-btn:hover{background:rgba(255,255,255,.22)}.vertical-brand-btn.is-primary{background:rgba(255,255,255,.92);border-color:transparent;color:var(--ink-950);font-weight:500}.vertical-shell-header{align-items:flex-end;display:flex;gap:18px;justify-content:space-between}.vertical-shell-copy h1{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:500;margin:6px 0 0}.vertical-shell-subtitle{color:var(--text-soft);margin:8px 0 0;max-width:56ch}.vertical-shell-actions{display:flex;flex-wrap:wrap;gap:10px}.vertical-metrics{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.vertical-metric{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 8px 24px rgba(16,43,61,.06);display:grid;gap:4px;padding:14px 16px}.vertical-metric-label{color:var(--text-soft);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}.vertical-metric-value{font-size:1.35rem;font-weight:500}.vertical-metric-hint{color:var(--text-soft);font-size:.78rem;margin:0}.vertical-tabs{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:999px;box-shadow:0 6px 20px rgba(16,43,61,.06);display:flex;flex-wrap:wrap;gap:6px;padding:6px}.vertical-tab{background:transparent;border:0;border-radius:999px;color:var(--text-soft);cursor:pointer;font:inherit;font-size:.88rem;padding:10px 16px;transition:background .15s ease,color .15s ease}.vertical-tab:hover{background:rgba(255,255,255,.9);color:var(--text)}.vertical-tab.is-active{background:var(--ink-950);color:var(--text-invert)}.vertical-message{background:rgba(217,232,241,.65);border:1px solid rgba(132,169,192,.35);border-radius:var(--radius-md);margin:0;padding:12px 16px}.vertical-content{display:grid;gap:16px}.vertical-panel{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 10px 32px rgba(16,43,61,.07);display:grid;gap:14px;padding:18px 20px}.vertical-panel h2{font-size:1.1rem;font-weight:500;margin:0}.vertical-panel-wide{grid-column:1/-1}.vertical-panel-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.vertical-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;display:grid;gap:8px;padding:14px;transition:border-color .15s ease,box-shadow .15s ease}.vertical-card:hover{border-color:rgba(132,169,192,.45);box-shadow:0 10px 28px rgba(16,43,61,.08)}.vertical-card.is-selected{background:rgba(217,232,241,.75);border-color:rgba(26,61,84,.4)}.vertical-card-header{align-items:center;display:flex;justify-content:space-between;width:100%}.vertical-form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.badge,.status-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.68rem;font-weight:600;letter-spacing:.06em;padding:4px 10px;text-transform:uppercase;white-space:nowrap}.badge.available,.status-badge.available{background:rgba(72,187,120,.16);color:#166534}.badge.occupied,.status-badge.occupied{background:rgba(245,158,11,.16);color:#92400e}.badge.reserved,.status-badge.reserved{background:rgba(59,130,246,.14);color:#1e40af}.badge.cleaning,.status-badge.cleaning{background:rgba(99,102,241,.14);color:#3730a3}.badge.unavailable,.status-badge.unavailable{background:rgba(148,163,184,.2);color:#475569}.badge.critical{background:rgba(239,68,68,.14);color:#991b1b}.badge.high{background:rgba(245,158,11,.16);color:#92400e}.pos-layout{background:#eef2f6;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 16px 48px rgba(16,43,61,.1);display:grid;grid-template-columns:220px minmax(0,1fr) 320px;min-height:68vh;overflow:hidden}.pos-data-banner{align-items:center;background:#fff;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px 16px;grid-column:1/-1;padding:12px 16px}.pos-data-banner.is-error{background:#fff7ed;border-bottom-color:#fdba74}.pos-data-banner.is-error strong{color:#9a3412}.pos-data-banner p{color:var(--muted);flex:1 1 220px;margin:0}.pos-sidebar{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.pos-sidebar-header{border-bottom:1px solid var(--line);padding:14px 16px}.pos-sidebar-header h3{font-size:.82rem;font-weight:600;letter-spacing:.08em;margin:0;text-transform:uppercase}.pos-area-list{display:flex;flex-direction:column;flex-shrink:0;gap:4px;max-height:160px;overflow:auto;padding:10px}.pos-area-btn{background:transparent;border:1px solid transparent;border-radius:12px;color:var(--text-soft);cursor:pointer;font:inherit;padding:10px 12px;text-align:left}.pos-area-btn.is-active{background:rgba(217,232,241,.75);border-color:rgba(132,169,192,.4);color:var(--text);font-weight:500}.pos-table-legend{display:flex;flex-wrap:wrap;gap:8px;padding:0 10px 8px}.pos-table-legend-item{align-items:center;color:var(--text-soft);display:inline-flex;font-size:.68rem;gap:6px}.pos-table-legend-swatch{border-radius:999px;height:8px;width:8px}.pos-table-legend-swatch.is-free{background:#22c55e}.pos-table-legend-swatch.is-occupied{background:#f59e0b}.pos-table-legend-swatch.needs-attention{background:#3b82f6}.pos-table-grid{display:grid;flex:1;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));min-height:180px;overflow:auto;padding:10px}.pos-table-tile{background:#fff;border:1px solid var(--line);border-radius:14px;cursor:pointer;display:grid;gap:4px;padding:12px 10px;text-align:center;transition:transform .15s ease,box-shadow .15s ease}.pos-table-tile:hover:not(:disabled){box-shadow:0 8px 24px rgba(16,43,61,.08);transform:translateY(-1px)}.pos-table-tile.is-selected{background:rgba(217,232,241,.95);border-color:rgba(26,61,84,.65);box-shadow:0 0 0 2px rgba(26,61,84,.2);transform:translateY(-1px)}.pos-table-tile.is-free{border-color:rgba(34,197,94,.35)}.pos-table-tile.is-occupied{border-color:rgba(245,158,11,.4)}.pos-table-tile:disabled{cursor:not-allowed;opacity:.45}.pos-table-tile.is-occupied:not(:disabled){cursor:pointer;opacity:1}.pos-table-order-ref{color:var(--ink-700);font-size:.65rem;letter-spacing:.04em}.pos-main{display:flex;flex-direction:column;min-width:0;overflow:hidden}.pos-toolbar{align-items:center;background:#fff;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px;padding:12px 16px}.pos-order-types{display:flex;flex-wrap:wrap;gap:8px}.pos-order-type-btn{align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;cursor:pointer;display:inline-flex;font:inherit;font-size:.84rem;gap:8px;padding:8px 14px}.pos-order-type-btn.is-active{background:rgba(26,61,84,.08);border-color:rgba(26,61,84,.35);font-weight:500}.pos-search{flex:1;min-width:180px}.pos-search input{background:#f8fafc;border:1px solid var(--line);border-radius:12px;font:inherit;padding:10px 14px;width:100%}.pos-category-row{background:#fff;border-bottom:1px solid var(--line);display:flex;gap:8px;overflow-x:auto;padding:10px 16px}.pos-category-pill{background:#f1f5f9;border:0;border-radius:999px;color:var(--text-soft);cursor:pointer;flex-shrink:0;font:inherit;font-size:.82rem;padding:8px 14px}.pos-category-pill.is-active{background:var(--ink-950);color:var(--text-invert)}.pos-menu-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));overflow:auto;padding:16px}.pos-menu-card{background:#fff;border:1px solid var(--line);border-radius:16px;cursor:pointer;display:grid;gap:6px;min-height:108px;padding:14px;text-align:left;transition:box-shadow .15s ease}.pos-menu-card:hover{box-shadow:0 10px 28px rgba(16,43,61,.1)}.pos-menu-card strong{font-size:.92rem;line-height:1.3}.pos-menu-price{color:var(--ink-950);font-size:.95rem;font-weight:600}.pos-menu-meta{color:var(--text-soft);font-size:.72rem}.pos-order-panel{background:#fff;border-left:1px solid var(--line);display:flex;flex-direction:column}.pos-order-header{border-bottom:1px solid var(--line);display:grid;gap:10px;padding:16px}.pos-order-header h3{font-size:1rem;margin:0}.pos-order-fields{display:grid;gap:8px;grid-template-columns:1fr 1fr}.pos-order-fields label{display:grid;font-size:.72rem;gap:4px;text-transform:uppercase}.pos-order-fields input,.pos-order-fields select{border:1px solid var(--line);border-radius:10px;font:inherit;padding:8px 10px}.pos-cart{display:flex;flex:1;flex-direction:column;gap:8px;min-height:0;overflow:auto;padding:12px 16px}.pos-cart-item{align-items:center;background:#f8fafc;border:1px solid var(--line);border-radius:12px;display:flex;gap:10px;justify-content:space-between;padding:10px 12px}.pos-cart-item-info{display:grid;gap:2px;min-width:0}.pos-qty-controls{align-items:center;display:flex;gap:6px}.pos-qty-btn{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;cursor:pointer;display:grid;height:28px;justify-items:center;width:28px}.pos-order-footer{border-top:1px solid var(--line);display:grid;gap:12px;padding:16px}.pos-order-total{align-items:baseline;display:flex;justify-content:space-between}.pos-order-total strong{font-size:1.25rem}.pos-empty-state{align-content:center;color:var(--text-soft);display:grid;gap:8px;justify-items:center;padding:24px 16px;text-align:center}.pos-empty-state strong{color:var(--text)}.pos-kds-board{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.pos-kds-column{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:10px;min-height:320px;padding:14px}.pos-kds-column-header{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding-bottom:10px}.pos-kds-ticket{background:#fff;border:1px solid var(--line);border-radius:14px;display:grid;gap:8px;padding:12px}.pos-modal-backdrop{align-items:center;background:rgba(16,43,61,.45);display:grid;inset:0;justify-items:center;padding:24px;position:fixed;z-index:80}.pos-modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);display:grid;gap:16px;max-width:420px;padding:24px;width:100%}.restaurant-pos-footer-panels{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:16px}@media (max-width:1100px){.vertical-brand-bar,.vertical-shell-header{align-items:flex-start;flex-direction:column}.vertical-tabs{flex-wrap:nowrap;overflow-x:auto}.pos-layout{grid-template-columns:200px minmax(0,1fr);grid-template-rows:auto 1fr}.pos-order-panel{grid-column:1/-1;max-height:360px}.pos-kds-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.pos-layout{grid-template-columns:1fr;min-height:auto}.pos-sidebar{max-height:220px}.pos-table-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pos-kds-board{grid-template-columns:1fr}}.oss-integration-bar{background:linear-gradient(135deg,var(--vertical-surface,#f8fafc) 0,#ffffff 100%);border:1px solid color-mix(in srgb,var(--vertical-accent,#2563eb) 24%,#cbd5e1);border-radius:var(--radius-lg);display:grid;gap:12px;padding:14px 16px}.oss-integration-copy{align-items:flex-start;display:flex;gap:12px}.oss-integration-badge{background:color-mix(in srgb,var(--vertical-accent,#2563eb) 16%,white);border:1px solid color-mix(in srgb,var(--vertical-accent,#2563eb) 30%,#cbd5e1);border-radius:999px;color:var(--vertical-ink,#0f172a);font-size:.68rem;font-weight:700;letter-spacing:.08em;padding:4px 10px;text-transform:uppercase;white-space:nowrap}.oss-integration-copy strong{color:var(--vertical-ink,#0f172a);display:block;font-size:.95rem}.oss-integration-copy p{color:#475569;font-size:.8rem;line-height:1.45;margin:4px 0 0}.oss-integration-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.oss-status-pill{background:#f1f5f9;border-radius:999px;color:#64748b;font-size:.72rem;font-weight:600;padding:4px 10px}.oss-status-pill.is-online{background:#dcfce7;color:#166534}.oss-competitors{color:#64748b;font-size:.75rem}.oss-integration-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.oss-mode-toggle{background:#e2e8f0;border-radius:999px;display:inline-flex;padding:3px}.oss-mode-toggle button{background:transparent;border:0;border-radius:999px;color:#475569;cursor:pointer;font-size:.74rem;font-weight:600;padding:6px 12px}.oss-mode-toggle button.is-active{background:#ffffff;box-shadow:0 1px 4px rgba(15,23,42,.12);color:var(--vertical-ink,#0f172a)}.oss-launch-btn{background:var(--vertical-brand,#0f172a);border-radius:999px;color:#ffffff;font-size:.74rem;font-weight:600;padding:7px 12px;text-decoration:none}.oss-launch-btn.is-secondary{background:color-mix(in srgb,var(--vertical-accent,#2563eb) 88%,white)}.oss-launch-btn.is-ghost{background:transparent;border:1px solid #cbd5e1;color:#334155}.oss-native-embed{display:grid;gap:8px;min-height:70vh}.oss-native-embed iframe{border:1px solid #cbd5e1;border-radius:var(--radius-lg);height:70vh;width:100%}.oss-native-embed-note{font-size:.78rem}.metabase-embed{display:grid;gap:8px;min-height:75vh;width:100%}.metabase-embed iframe{border:0;border-radius:var(--radius-lg);height:75vh;width:100%}.metabase-embed-note{font-size:.78rem}.roundcube-embed{display:grid;gap:10px;min-height:75vh;width:100%}.roundcube-embed-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.roundcube-embed iframe{border:0;border-radius:var(--radius-lg);height:75vh;width:100%}.roundcube-embed-note{font-size:.78rem}.oss-whitelabel-embed{display:grid;gap:10px;min-height:75vh;width:100%}.oss-whitelabel-embed-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.oss-whitelabel-embed iframe{border:0;border-radius:var(--radius-lg);height:75vh;width:100%}.oss-whitelabel-embed-note{font-size:.78rem}.stepup-login-tagline{color:#64748b;font-size:.92rem;margin:.35rem 0 1rem;text-align:center}.oss-embed-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.vertical-shell.has-oss-theme .vertical-panel{background:linear-gradient(180deg,#ffffff 0,var(--vertical-surface,#f8fafc) 100%);border-color:color-mix(in srgb,var(--vertical-accent,#2563eb) 18%,#e2e8f0)}.vertical-shell.has-oss-theme .vertical-tab.is-active{background:color-mix(in srgb,var(--vertical-accent,#2563eb) 14%,white);border-color:color-mix(in srgb,var(--vertical-accent,#2563eb) 40%,#cbd5e1);color:var(--vertical-ink,#0f172a)}.vertical-shell.has-oss-theme .vertical-metric{border-color:color-mix(in srgb,var(--vertical-accent,#2563eb) 20%,#e2e8f0)}.vertical-shell[data-oss-theme=restaurant] .pos-table.is-active{box-shadow:0 0 0 2px var(--vertical-accent,#01baef)}