:root{--color-primary: #6366f1;--color-primary-dark: #4f46e5;--color-primary-soft: #eef2ff;--color-teal: #6366f1;--color-teal-dark: #4f46e5;--color-teal-soft: #eef2ff;--color-ink: #0f172a;--color-ink-muted: #64748b;--color-surface: #f8fafc;--color-surface-raised: #ffffff;--color-border: #e2e8f0;--color-danger: #ef4444;--color-danger-soft: #fef2f2;--color-success: #10b981;--color-success-soft: #ecfdf5;--color-amber: #f59e0b;--color-sidebar: #0a0a0a;--color-sidebar-hover: #1a1a1a;--color-sidebar-active: #6366f1;--sidebar-width: 260px;--font-display: "Inter", "DM Sans", system-ui, sans-serif;--font-body: "Inter", "DM Sans", system-ui, sans-serif;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--shadow-soft: 0 1px 3px rgba(15, 23, 42, .08);--space: clamp(1rem, 2vw, 1.75rem);color:var(--color-ink);background:var(--color-surface);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;margin:0}p{margin:0}a{color:var(--color-primary);text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}#root{display:flex;flex-direction:column}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1;width:min(960px,100%);margin:0 auto;padding:var(--space)}.app-main:has(.checkout-lane){width:min(1280px,100%);display:flex;flex-direction:column}.page{display:flex;flex-direction:column;gap:1.5rem;animation:rise-in .45s ease-out both}.page-header{display:flex;flex-direction:column;gap:.35rem}.page-header h1{font-size:clamp(1.75rem,3vw,2.25rem);color:var(--color-ink)}.page-header p{color:var(--color-ink-muted);font-size:1.05rem;max-width:36rem}.kiosk-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem var(--space);border-bottom:1px solid var(--color-border);background:#ffffffb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.brand-mark{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--color-teal);letter-spacing:-.03em}.brand-mark--hero{font-size:clamp(2.75rem,8vw,4.5rem);line-height:1;color:var(--color-teal)}.session-meta{display:flex;align-items:center;gap:.75rem;color:var(--color-ink-muted);font-size:.9rem}.session-meta code{font-family:var(--font-body);font-size:.85rem;background:var(--color-teal-soft);color:var(--color-teal-dark);padding:.2rem .55rem;border-radius:999px}.login-hero{min-height:100vh;display:grid;place-items:center;padding:var(--space);position:relative;overflow:hidden}.login-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(15,118,110,.08) 0%,transparent 45%),url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%230F766E' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}.login-panel{position:relative;width:min(420px,100%);display:flex;flex-direction:column;gap:1.75rem;animation:rise-in .55s ease-out both}.login-panel .brand-mark--hero{animation:brand-settle .7s cubic-bezier(.22,1,.36,1) both}.login-copy{display:flex;flex-direction:column;gap:.5rem}.login-copy h1{font-size:clamp(1.5rem,3vw,1.85rem)}.login-copy p{color:var(--color-ink-muted);font-size:1.05rem}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:.4rem}.field label,.field__label{font-size:.9rem;font-weight:600;color:var(--color-ink)}.input{width:100%;padding:.9rem 1rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-ink);transition:border-color .15s ease,box-shadow .15s ease}.input:focus{outline:none;border-color:var(--color-teal);box-shadow:0 0 0 3px #0f766e2e}.input--lg{font-size:1.25rem;padding:1.1rem 1.15rem;letter-spacing:.04em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.35rem;border:none;border-radius:var(--radius-md);font-weight:600;transition:transform .15s ease,background .15s ease,opacity .15s ease}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--color-teal);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-teal-dark)}.btn--secondary{background:transparent;color:var(--color-teal);border:1.5px solid var(--color-teal)}.btn--secondary:hover:not(:disabled){background:var(--color-teal-soft)}.btn--ghost{background:transparent;color:var(--color-ink-muted);border:1.5px solid var(--color-border)}.btn--danger{background:var(--color-danger-soft);color:var(--color-danger)}.btn--block{width:100%}.btn--lg{padding:1.05rem 1.5rem;font-size:1.05rem}.alert{padding:.85rem 1rem;border-radius:var(--radius-sm);font-size:.95rem}.alert--error{background:var(--color-danger-soft);color:var(--color-danger)}.alert--success{background:var(--color-success-soft);color:var(--color-success)}.checkout-lane{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:0;min-height:calc(100vh - 5.5rem);animation:rise-in .45s ease-out both;background:color-mix(in srgb,var(--color-surface-raised) 72%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.checkout-lane__scan,.checkout-lane__basket{display:flex;flex-direction:column;gap:1.25rem;padding:clamp(1.25rem,2.5vw,2rem);min-height:0}.checkout-lane__scan{background:linear-gradient(160deg,color-mix(in srgb,var(--color-teal) 8%,transparent),transparent 55%),var(--color-surface-raised);border-right:1px solid var(--color-border)}.checkout-lane__basket{background:color-mix(in srgb,var(--color-surface) 55%,var(--color-surface-raised))}.basket-header h2{font-family:var(--font-display);font-size:clamp(1.5rem,2.5vw,1.9rem);color:var(--color-ink);margin:0}.basket-header p{margin:.35rem 0 0;color:var(--color-ink-muted)}.basket-body{flex:1;overflow:auto;min-height:12rem;padding-right:.25rem}.basket-footer{display:flex;flex-direction:column;gap:1rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--color-border)}.scan-input-block{display:flex;flex-direction:column;gap:.75rem}.last-scanned{padding:1.25rem 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);animation:fade-slide .35s ease-out both;margin-top:auto}@media (max-width: 860px){.checkout-lane{grid-template-columns:1fr;min-height:auto}.checkout-lane__scan{border-right:none;border-bottom:1px solid var(--color-border)}.last-scanned{margin-top:0}}.last-scanned__label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-muted);font-weight:600;margin-bottom:.5rem}.last-scanned__name{font-family:var(--font-display);font-size:1.5rem;margin-bottom:.25rem}.last-scanned__meta{color:var(--color-ink-muted);display:flex;gap:1rem;flex-wrap:wrap}.line-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.line-item{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--color-border);animation:fade-slide .3s ease-out both}.line-item__name{font-weight:600}.line-item__meta{font-size:.9rem;color:var(--color-ink-muted)}.line-item__qty{font-variant-numeric:tabular-nums;color:var(--color-ink-muted)}.line-item__amounts{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;min-width:5.5rem}.line-item__total{font-weight:600;font-variant-numeric:tabular-nums;text-align:right}.line-item__discount{font-size:.82rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--teal-deep, #0d6e6e);text-align:right}.totals{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.totals__row{display:flex;justify-content:space-between;color:var(--color-ink-muted)}.totals__row--grand{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--color-ink);padding-top:.5rem;border-top:1px solid var(--color-border);margin-top:.25rem}.method-grid{display:grid;grid-template-columns:1fr;gap:.75rem}@media (min-width: 480px){.method-grid{grid-template-columns:repeat(3,1fr)}}.method-option{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-surface-raised);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem 1rem;text-align:center;font-weight:600;color:var(--color-ink);transition:border-color .15s ease,background .15s ease,transform .15s ease}.method-option:hover{border-color:var(--color-teal)}.method-option.is-selected{border-color:var(--color-teal);background:var(--color-teal-soft);color:var(--color-teal-dark);transform:translateY(-2px)}.method-option__hint{display:block;margin-top:.35rem;font-size:.8rem;font-weight:500;color:var(--color-ink-muted)}.receipt-number{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.5rem);color:var(--color-teal);letter-spacing:-.02em}.empty-state{padding:2rem 0;color:var(--color-ink-muted);text-align:center}.spinner{width:1.25rem;height:1.25rem;border:2px solid rgba(15,118,110,.25);border-top-color:var(--color-teal);border-radius:50%;animation:spin .7s linear infinite}.nav-actions{display:flex;gap:.5rem;flex-wrap:wrap}.footer-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.footer-actions .btn{flex:1;min-width:140px}.payment-progress{margin:1.25rem 0;padding:1.25rem 0;border-top:1px solid color-mix(in srgb,var(--color-ink) 12%,transparent);border-bottom:1px solid color-mix(in srgb,var(--color-ink) 12%,transparent);animation:rise-in .35s ease both}.payment-progress__message{margin:0 0 1rem;font-family:var(--font-display);font-size:1.25rem;color:var(--color-teal-dark)}.payment-progress__steps{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.payment-progress__steps li{text-transform:capitalize;font-size:.92rem;color:color-mix(in srgb,var(--color-ink) 45%,transparent);padding-left:1.4rem;position:relative}.payment-progress__steps li:before{content:"";position:absolute;left:0;top:.45rem;width:.55rem;height:.55rem;border-radius:50%;background:color-mix(in srgb,var(--color-ink) 25%,transparent)}.payment-progress__steps li[data-done=true]{color:var(--color-ink)}.payment-progress__steps li[data-done=true]:before{background:var(--color-teal)}.payment-progress__steps li[data-active=true]{color:var(--color-teal-dark);font-weight:600}.payment-progress__steps li[data-active=true]:before{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-teal) 30%,transparent);background:var(--color-teal-dark)}.payment-progress__meta{margin:.85rem 0 0;font-size:.85rem;color:color-mix(in srgb,var(--color-ink) 55%,transparent)}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes brand-settle{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-slide{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.line-item{grid-template-columns:1fr auto;grid-template-rows:auto auto}.line-item__amounts{grid-column:2;grid-row:1}.line-item button{grid-column:1 / -1;justify-self:start}.kiosk-header{flex-direction:column;align-items:flex-start}}.app-main:has(.admin-page){width:min(1200px,100%)}.session-link{color:var(--color-teal-dark);font-weight:600;text-decoration:none}.session-link:hover{text-decoration:underline}.admin-tabs{display:flex;gap:.5rem;flex-wrap:wrap;border-bottom:1px solid var(--color-border);padding-bottom:.75rem}.admin-tab{border:1px solid transparent;background:transparent;color:var(--color-ink-muted);padding:.65rem 1rem;border-radius:var(--radius-md);font:inherit;font-weight:600;cursor:pointer}.admin-tab.is-active{color:var(--color-teal-dark);background:var(--color-teal-soft);border-color:color-mix(in srgb,var(--color-teal) 25%,transparent)}.admin-panel{display:flex;flex-direction:column;gap:1.25rem}.admin-form{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised)}.admin-form h3{margin:0;font-family:var(--font-display);font-size:1.35rem}.admin-form__hint{margin:0;color:var(--color-ink-muted);font-size:.95rem}.admin-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem}.admin-form__actions{display:flex;gap:.75rem;flex-wrap:wrap}.admin-table-wrap{overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised)}.admin-table{width:100%;border-collapse:collapse;font-size:.95rem}.admin-table th,.admin-table td{text-align:left;padding:.8rem .9rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.admin-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-muted);background:color-mix(in srgb,var(--color-surface) 80%,white)}.admin-table tr[data-inactive=true] td{opacity:.55}.admin-table__actions{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end;white-space:nowrap}.start-session-page__header{text-align:center;margin-bottom:1.5rem}.start-choice-grid{display:grid;gap:1rem;max-width:720px;margin:0 auto}@media (min-width: 720px){.start-choice-grid{grid-template-columns:1fr 1fr}}.start-choice{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;background:var(--color-surface-raised);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:1.75rem 1.25rem;cursor:pointer;transition:border-color .15s ease,transform .15s ease,background .15s ease}.start-choice:hover:not(:disabled){border-color:var(--color-teal);transform:translateY(-2px)}.start-choice:disabled{opacity:.65;cursor:wait}.start-choice--member{border-color:color-mix(in srgb,var(--color-teal) 45%,var(--color-border));background:color-mix(in srgb,var(--color-teal-soft) 55%,var(--color-surface-raised))}.start-choice__title{display:block;font-size:1.15rem;font-weight:700;color:var(--color-ink);margin-bottom:.45rem}.start-choice__hint{display:block;font-size:.9rem;color:var(--color-ink-muted);line-height:1.4}.member-identify-panel{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem;margin-bottom:1rem}.member-identify-panel__title{margin:0 0 1rem;font-size:1rem}.member-mobile-hint{margin:.35rem 0 .75rem;color:var(--color-ink-muted);font-size:.85rem;line-height:1.4}.member-mobile-normalized{margin:0 0 .75rem;color:var(--color-teal-dark);font-size:.9rem;font-weight:600}.member-mobile-error{margin:0 0 .75rem;color:var(--color-danger, #b42318);font-size:.9rem}.member-register-form__grid{display:grid;gap:.85rem;margin-bottom:1rem}@media (min-width: 720px){.member-register-form__grid{grid-template-columns:1fr 1fr}}.member-register-form .field span,.member-register-form label span{display:block;margin-bottom:.35rem;font-weight:600;font-size:.9rem}.member-identify-divider{display:flex;align-items:center;gap:.75rem;margin:1rem 0;color:var(--color-ink-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.06em}.member-identify-divider:before,.member-identify-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.member-banner{margin-bottom:1rem;padding:.85rem 1rem;border-radius:var(--radius-md);background:var(--color-teal-soft);border:1px solid color-mix(in srgb,var(--color-teal) 35%,transparent);color:var(--color-teal-dark);font-size:1.05rem}.member-banner__points{font-weight:600}.supervisor-banner{display:flex;flex-direction:column;gap:.15rem;margin-bottom:1rem;padding:.85rem 1rem;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,#b45309 35%,transparent);background:color-mix(in srgb,#b45309 10%,transparent);color:#92400e;font-size:.95rem}.supervisor-unlock{margin-bottom:1rem}.supervisor-unlock__panel{display:flex;flex-direction:column;gap:.65rem;padding:.85rem 1rem;border-radius:var(--radius-md);border:1px dashed var(--color-border);background:color-mix(in srgb,var(--color-ink) 3%,transparent)}.supervisor-unlock__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.supervisor-unlock__header h3{margin:0;font-size:1rem}.supervisor-unlock__hint{margin:0;font-size:.9rem;color:var(--color-ink-muted)}.grandiose-plus-cta{display:flex;flex-direction:column;gap:.2rem;margin-bottom:1rem;padding:.95rem 1.1rem;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--color-teal) 40%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--color-teal-soft) 80%,white),var(--color-surface-raised));text-decoration:none;color:inherit;transition:transform .15s ease,border-color .15s ease}.grandiose-plus-cta:hover{transform:translateY(-1px);border-color:var(--color-teal)}.grandiose-plus-cta.is-disabled{opacity:.55;pointer-events:none}.grandiose-plus-cta__title{font-weight:700;color:var(--color-teal-dark);font-size:1.05rem}.grandiose-plus-cta__hint{color:var(--color-ink-muted);font-size:.9rem}.method-option.is-disabled{opacity:.5;cursor:not-allowed;transform:none}.admin-integrations{display:flex;flex-direction:column;gap:1rem}.admin-integrations__tabs{margin-top:.25rem}.master-data-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:.75rem 0 1rem}.master-data-tabs__btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink-muted);border-radius:999px;padding:.35rem .75rem;font-size:.8rem;cursor:pointer}.master-data-tabs__btn.is-active{background:var(--color-ink);color:#fff;border-color:var(--color-ink)}.admin-panel__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.admin-panel__header h2{margin:0 0 .25rem}.admin-panel__header p{margin:0;color:var(--color-ink-muted)}.admin-panel__actions{display:flex;gap:.5rem;align-items:center}.master-data-panel .admin-panel__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.master-data-panel .admin-panel__actions{display:flex;gap:.5rem;align-items:center}.admin-filters{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.1rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised)}.admin-filters__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.admin-filters__actions{display:flex;gap:.65rem;flex-wrap:wrap}.admin-table-wrap--wide{max-width:100%}.admin-table--all-cols{min-width:max-content}.admin-table--all-cols th,.admin-table--all-cols td{white-space:nowrap;max-width:18rem;overflow:hidden;text-overflow:ellipsis}.admin-table__sticky-actions{position:sticky;right:0;background:var(--color-surface-raised);box-shadow:-6px 0 10px #0000000a;z-index:1}.admin-table thead .admin-table__sticky-actions{background:color-mix(in srgb,var(--color-surface) 80%,white)}.admin-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2400;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#0f171673}.admin-dialog__card{width:min(100%,52rem);max-height:min(90vh,52rem);display:flex;flex-direction:column;gap:1rem;padding:1.25rem 1.35rem 1.35rem;border-radius:1rem;background:#fff;box-shadow:0 24px 60px #00000047;overflow:hidden}.admin-dialog__card--wide{width:min(100%,72rem);max-height:min(92vh,60rem)}.ls-nav-preview__grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;overflow:auto;min-height:0;flex:1}.admin-breadcrumb{margin:0 0 .35rem;font-size:.85rem;color:var(--color-ink-muted, #64748b)}.admin-breadcrumb a{color:inherit;text-decoration:underline;text-underline-offset:2px}.integration-log-detail__body{gap:1.25rem}.integration-log-detail__meta p{margin:.25rem 0;font-size:.95rem}.integration-log-detail__url{word-break:break-all}.integration-log-detail__error{color:var(--color-danger, #b42318)}.integration-log-detail__grid{overflow:visible;flex:none}.integration-log-detail__grid .code-preview{max-height:min(70vh,40rem)}.ls-nav-preview__grid h3{margin:0 0 .35rem;font-size:.85rem}.ls-nav-preview__code{margin:0;padding:.75rem;max-height:22rem;overflow:auto;border-radius:.5rem;background:#0f172a;color:#e2e8f0;font-size:.72rem;line-height:1.45;white-space:pre;word-break:normal;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.code-preview{position:relative;border:1px solid #e5e7eb;border-radius:.65rem;background:#fff;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.code-preview__lang{position:absolute;top:.45rem;left:.65rem;z-index:1;font-size:.68rem;font-weight:600;letter-spacing:.02em;text-transform:lowercase;color:#9ca3af;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;pointer-events:none}.code-preview__pre{margin:0;padding:1.55rem .85rem .85rem;max-height:22rem;overflow:auto;background:#fff;color:#111827;font-size:.78rem;line-height:1.5;white-space:pre;word-break:normal;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.code-preview .hl-tag{color:#9b2335;font-weight:500}.code-preview .hl-attr{color:#111827}.code-preview .hl-string{color:#15803d}.code-preview .hl-text{color:#1f2937}.code-preview .hl-meta{color:#6b7280}.code-preview .hl-key{color:#9b2335;font-weight:500}.code-preview .hl-number{color:#1d4ed8}.code-preview .hl-bool{color:#7c3aed}.code-preview .hl-punct{color:#6b7280}.badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700}.badge--ok{background:#dcfce7;color:#166534}.badge--err{background:#fee2e2;color:#991b1b}@media (max-width: 900px){.ls-nav-preview__grid{grid-template-columns:1fr}}.admin-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.admin-dialog__head h3{margin:0;font-family:var(--font-display);font-size:1.35rem}.admin-dialog__close{border:0;background:transparent;font-size:1.7rem;line-height:1;cursor:pointer;color:var(--color-ink-muted)}.admin-dialog__form{display:flex;flex-direction:column;gap:1rem;overflow:auto;min-height:0;padding-right:.15rem}.admin-dialog__body{display:flex;flex-direction:column;gap:.85rem;overflow:auto;min-height:0;flex:1;padding-right:.15rem}.ls-nav-preview.stack{display:flex;flex-direction:column;gap:.75rem;min-height:0}.admin-dialog__actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap;padding-top:.25rem}.admin-toolbar{display:flex;gap:.75rem;align-items:flex-end;margin:1rem 0;flex-wrap:wrap}.admin-integrations__panel{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised)}.admin-integrations__intro{color:var(--color-ink-muted);margin:0;max-width:52rem}.admin-integrations__hint{color:var(--color-ink-muted);margin:0 0 .5rem;font-size:.9rem;max-width:52rem}.admin-integrations__grid{display:grid;gap:.85rem;margin-bottom:.5rem}@media (min-width: 900px){.admin-integrations__grid{grid-template-columns:1fr 1fr}.admin-integrations__field--wide{grid-column:1 / -1}}.admin-integrations__field-hint{margin:.35rem 0 0;font-size:.85rem;color:var(--color-muted, #64748b)}.admin-integrations__saved{color:var(--color-teal-dark);margin:0;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell:has(.scan-items) .kiosk-header{display:none}.app-main:has(.scan-items){width:100%;max-width:none;margin:0;padding:0;flex:1;min-height:0}.app-shell:has(.scan-items){background:#f2ece4}.scan-items{--scan-forest: #1b3b36;--scan-cream: #f2ece4;--scan-teal-soft: #d0ede4;--scan-teal: #2a9d8f;--scan-ink-muted: #5c6b66;--scan-panel: #ffffff;--scan-finder: #141c1a;flex:1;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.7fr);gap:clamp(1rem,2vw,1.5rem);min-height:100vh;padding:clamp(1rem,2.2vw,1.75rem);background:var(--scan-cream);animation:rise-in .4s ease-out both;color:var(--scan-forest)}.scan-items__main{display:flex;flex-direction:column;gap:1.15rem;min-width:0;min-height:0}.scan-items__top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.scan-back{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .95rem;border-radius:10px;border:1px solid color-mix(in srgb,var(--scan-forest) 14%,transparent);background:#fff;color:var(--scan-forest);font-weight:500;font-size:.95rem;box-shadow:0 1px 2px #1b3b360a}.scan-back:hover{border-color:color-mix(in srgb,var(--scan-forest) 28%,transparent)}.scan-back span{font-size:1.25rem;line-height:1;margin-top:-.1rem}.scan-member-pill,.grandiose-plus-cta--compact{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .9rem;border-radius:999px;background:var(--scan-teal-soft);color:var(--scan-forest);font-weight:600;font-size:.92rem;border:none;text-decoration:none;margin:0}.grandiose-plus-cta--compact{flex-direction:row;gap:.4rem}.grandiose-plus-cta--compact .scan-member-pill__star,.scan-member-pill__star{color:#c4a35a;font-size:.95rem}.scan-items__header h1{font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3rem);font-weight:600;color:var(--scan-forest);letter-spacing:-.03em}.scan-items__header p{margin-top:.35rem;color:var(--scan-ink-muted);font-size:1.05rem}.scan-stage{display:flex;flex-direction:column;gap:1rem}.scan-viewfinder{position:relative;display:flex;align-items:center;justify-content:center;min-height:clamp(200px,32vh,320px);width:100%;border:none;border-radius:18px;background:var(--scan-finder);color:var(--scan-teal);cursor:pointer;padding:1.5rem;transition:transform .2s ease,box-shadow .2s ease}.scan-viewfinder:hover{transform:translateY(-1px);box-shadow:0 12px 28px #141c1a38}.scan-viewfinder__body{display:flex;flex-direction:column;align-items:center;gap:.75rem;z-index:1}.scan-viewfinder__icon{color:var(--scan-teal);opacity:.95}.scan-viewfinder__label{color:color-mix(in srgb,#fff 88%,var(--scan-teal));font-size:1.05rem;font-weight:500}.scan-viewfinder__corner{position:absolute;width:28px;height:28px;border-color:var(--scan-teal);border-style:solid;opacity:.9}.scan-viewfinder__corner--tl{top:18px;left:18px;border-width:3px 0 0 3px;border-radius:4px 0 0}.scan-viewfinder__corner--tr{top:18px;right:18px;border-width:3px 3px 0 0;border-radius:0 4px 0 0}.scan-viewfinder__corner--bl{bottom:18px;left:18px;border-width:0 0 3px 3px;border-radius:0 0 0 4px}.scan-viewfinder__corner--br{bottom:18px;right:18px;border-width:0 3px 3px 0;border-radius:0 0 4px}.scan-manual{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:stretch}.scan-manual__input{width:100%;padding:.95rem 1.1rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--scan-forest) 12%,transparent);background:#fff;color:var(--scan-forest);font-size:1.05rem;outline:none}.scan-manual__input::placeholder{color:color-mix(in srgb,var(--scan-ink-muted) 80%,transparent)}.scan-manual__input:focus{border-color:color-mix(in srgb,var(--scan-teal) 55%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--scan-teal-soft) 80%,transparent)}.scan-manual__add{min-width:5.5rem;border-radius:12px!important;background:var(--scan-forest)!important;border-color:var(--scan-forest)!important;color:#fff!important;padding-inline:1.4rem!important}.scan-manual__add:hover:not(:disabled){filter:brightness(1.08)}.scan-tip{display:flex;align-items:flex-start;gap:.85rem;padding:.95rem 1.15rem;border-radius:14px;background:var(--scan-teal-soft);color:var(--scan-forest);margin-top:auto}.scan-tip__icon{display:inline-flex;margin-top:.15rem;color:#8b6914;opacity:.85}.scan-tip__eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.02em;margin-bottom:.15rem}.scan-tip__product{font-size:1rem;font-weight:500}.scan-tip--idle .scan-tip__product{font-weight:400;color:var(--scan-ink-muted)}.scan-items__cart{display:flex;flex-direction:column;min-height:0;background:var(--scan-panel);border-radius:20px;box-shadow:0 10px 36px #1b3b3614;padding:1.25rem 1.25rem 1.15rem;gap:1rem}.scan-cart__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.scan-cart__header h2{font-family:var(--font-display);font-size:1.65rem;color:var(--scan-forest);margin:0}.scan-cart__badge{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;background:var(--scan-teal-soft);color:var(--scan-forest);font-size:.85rem;font-weight:600}.scan-cart__body{flex:1;overflow:auto;min-height:12rem}.scan-cart__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;min-height:14rem;text-align:center;color:var(--scan-ink-muted);padding:1.5rem 1rem}.scan-cart__empty-icon{color:color-mix(in srgb,var(--scan-ink-muted) 55%,transparent)}.scan-cart__empty p{max-width:14rem;line-height:1.45;font-size:.98rem}.scan-cart__footer{display:flex;flex-direction:column;gap:.85rem;margin-top:auto;padding-top:.75rem;border-top:1px solid color-mix(in srgb,var(--scan-forest) 8%,transparent)}.scan-cart__row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-variant-numeric:tabular-nums}.scan-cart__row--subtotal{font-weight:700;font-size:1.1rem;color:var(--scan-forest)}.scan-cart__row--muted{color:var(--scan-ink-muted);font-size:.95rem}.scan-cart__pay{width:100%;border:none;border-radius:14px;padding:1rem 1.1rem;font-size:1.08rem;font-weight:700;background:var(--scan-forest);color:#fff;transition:opacity .2s ease,transform .15s ease}.scan-cart__pay:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06)}.scan-cart__pay:disabled,.scan-cart__pay.is-disabled{background:#cfd8d5;color:color-mix(in srgb,var(--scan-forest) 45%,#fff);cursor:not-allowed;transform:none;filter:none}.scan-items .line-item{border-color:color-mix(in srgb,var(--scan-forest) 8%,transparent)}.scan-items .supervisor-unlock,.scan-items .supervisor-banner{margin-bottom:0}@media (max-width: 960px){.scan-items{grid-template-columns:1fr;min-height:auto}.scan-items__cart{min-height:22rem}.scan-tip{margin-top:0}}.app-main.admin-app-main{width:min(1200px,100%)}.gh-shell{display:flex;min-height:100vh;background:var(--color-surface)}.gh-shell__backdrop{display:none}.gh-sidebar{position:sticky;top:0;z-index:40;display:flex;flex-direction:column;width:var(--sidebar-width);min-width:var(--sidebar-width);height:100vh;background:var(--color-sidebar);color:#fff;border-right:1px solid rgba(255,255,255,.06)}.gh-sidebar__brand{padding:1.15rem 1.15rem 1rem}.gh-brand{display:flex;align-items:center;gap:.75rem;color:inherit;text-decoration:none;min-width:0}.gh-brand__mark{width:36px;height:36px;border-radius:8px;object-fit:cover;flex-shrink:0;background:#1d1d1c}.gh-brand__text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.gh-brand__text strong{font-size:.98rem;font-weight:700;letter-spacing:-.02em;color:#fff}.gh-brand__text small{font-size:.72rem;color:#ffffff8c;font-weight:500}.gh-sidebar__nav{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;flex:1;overflow:auto}.gh-nav-item{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;border-radius:10px;color:#ffffffb8;text-decoration:none;font-size:.92rem;font-weight:500;transition:background .15s ease,color .15s ease;border:0;background:transparent;width:100%;text-align:left;cursor:pointer;font:inherit}.gh-nav-item:hover{background:var(--color-sidebar-hover);color:#fff}.gh-nav-item.is-active{background:var(--color-sidebar-active);color:#fff;font-weight:600}.gh-nav-item__icon{display:inline-flex;width:1.35rem;height:1.35rem;align-items:center;justify-content:center;flex-shrink:0;opacity:.9}.gh-nav-item__label{flex:1;min-width:0}.gh-nav-item__caret{font-size:.7rem;opacity:.7;transition:transform .15s ease}.gh-nav-item__caret.is-open{transform:rotate(180deg)}.gh-nav-group{display:flex;flex-direction:column;gap:.15rem}.gh-nav-sub{display:flex;flex-direction:column;gap:.1rem;padding:.15rem 0 .35rem .55rem;margin-left:.85rem;border-left:1px solid rgba(255,255,255,.12)}.gh-nav-sub__item{display:block;padding:.42rem .7rem;border-radius:8px;color:#ffffff9e;text-decoration:none;font-size:.84rem;font-weight:500}.gh-nav-sub__item:hover{background:var(--color-sidebar-hover);color:#fff}.gh-nav-sub__item.is-active{background:var(--color-sidebar-active);color:#fff;font-weight:600}.gh-sidebar__footer{padding:.85rem 1rem 1.1rem;border-top:1px solid rgba(255,255,255,.08)}.gh-sidebar__user{display:flex;align-items:center;gap:.7rem;min-width:0}.gh-sidebar__user strong{display:block;font-size:.88rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gh-sidebar__user small{display:block;font-size:.72rem;color:#ffffff80}.gh-avatar{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;background:var(--color-primary);color:#fff;font-size:.8rem;font-weight:700;flex-shrink:0}.gh-avatar--sm{width:1.85rem;height:1.85rem;font-size:.75rem}.gh-main{flex:1;min-width:0;display:flex;flex-direction:column}.gh-topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4rem;padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid var(--color-border)}.gh-topbar__left{display:flex;align-items:center;gap:.75rem;min-width:0}.gh-topbar__titles h1{margin:0;font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--color-ink);font-family:var(--font-body)}.gh-topbar__titles p{margin:.1rem 0 0;font-size:.8rem;color:var(--color-ink-muted)}.gh-topbar__menu{display:none}.gh-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:1px solid var(--color-border);border-radius:10px;background:#fff;color:var(--color-ink)}.gh-topbar__right{display:flex;align-items:center;gap:.5rem}.gh-user-menu{position:relative}.gh-user-menu__trigger{display:inline-flex;align-items:center;gap:.55rem;padding:.25rem .55rem .25rem .25rem;border:1px solid var(--color-border);border-radius:999px;background:#fff;color:var(--color-ink);font:inherit;font-weight:600;font-size:.85rem}.gh-user-menu__name{padding-right:.35rem}.gh-user-menu__panel{position:absolute;right:0;top:calc(100% + .45rem);min-width:12rem;padding:.65rem;border:1px solid var(--color-border);border-radius:12px;background:#fff;box-shadow:0 10px 30px #0f172a1f;display:grid;gap:.5rem}.gh-user-menu__meta{display:grid;gap:.1rem;padding:.35rem .4rem .55rem;border-bottom:1px solid var(--color-border)}.gh-user-menu__meta strong{font-size:.88rem}.gh-user-menu__meta span{font-size:.75rem;color:var(--color-ink-muted)}.gh-content{flex:1;width:min(1200px,100%);margin:0 auto;padding:1.35rem 1.5rem 2rem}.admin-page{gap:1.25rem}.admin-page .page-header{display:none}.admin-integrations__tabs.admin-tabs{display:flex;gap:.5rem;flex-wrap:wrap;border-bottom:1px solid var(--color-border);padding-bottom:.75rem;margin-bottom:.25rem}.admin-integrations__tabs .admin-tab{border:1px solid transparent;background:transparent;color:var(--color-ink-muted);padding:.65rem 1rem;border-radius:var(--radius-md);font:inherit;font-weight:600;cursor:pointer}.admin-integrations__tabs .admin-tab.is-active{color:var(--color-primary-dark);background:var(--color-primary-soft);border-color:color-mix(in srgb,var(--color-primary) 25%,transparent)}.admin-form,.admin-table-wrap,.admin-integrations__panel{box-shadow:var(--shadow-soft);border-radius:12px}.admin-form h3{font-family:var(--font-body);font-size:1.05rem;font-weight:700}.btn--primary{background:var(--color-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-dark)}.login-hero{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(ellipse 70% 50% at 15% 0%,rgba(99,102,241,.18),transparent 55%),radial-gradient(ellipse 50% 40% at 100% 100%,rgba(14,165,233,.12),transparent 50%),#f8fafc}.login-panel{width:min(420px,100%);padding:2rem 1.75rem;border:1px solid var(--color-border);border-radius:16px;background:#fff;box-shadow:0 10px 40px #0f172a14}.login-panel .brand-mark--hero{display:flex;align-items:center;gap:.75rem;font-family:var(--font-body);font-size:1.15rem;font-weight:700;color:var(--color-ink);margin-bottom:1.25rem}.login-panel .brand-mark--hero:before{content:"";width:36px;height:36px;border-radius:8px;background:#1d1d1c url(/grandhub-logo.png) center / cover no-repeat;flex-shrink:0}.login-copy h1{font-family:var(--font-body);font-size:1.45rem;font-weight:700}@media (max-width: 900px){.gh-shell__backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;background:#0f172a73;opacity:0;pointer-events:none;transition:opacity .2s ease}.gh-shell.is-nav-open .gh-shell__backdrop{opacity:1;pointer-events:auto}.gh-sidebar{position:fixed;left:0;top:0;transform:translate(-105%);transition:transform .2s ease;z-index:40}.gh-shell.is-nav-open .gh-sidebar{transform:translate(0)}.gh-topbar__menu{display:inline-flex}.gh-user-menu__name{display:none}.gh-content{padding:1rem}}
