/* Colours are packages/design-system/tokens.json, as docs/design/ARYA_DESIGN.md sets them. --green and --lime are older names for the accent and its tint. */
:root{--bg:#F4F2FB;--surface:#FFFFFF;--ink:#140F33;--muted:#5A5775;--line:#E2DFF0;--green:#D1056A;--lime:#ECE6FF;--warning:#B35309;--radius:12px;font-family:Inter,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,select{font:inherit}button,.button{min-height:48px;padding:11px 18px;border-radius:12px;border:1px solid transparent;background:var(--green);color:white;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,.button:hover{filter:brightness(.93)}button:disabled{opacity:.55;cursor:wait}button.secondary,.button.secondary{background:white;color:var(--ink);border-color:var(--line)}:focus-visible{outline:2px solid #4907AF;outline-offset:2px}.sidebar :focus-visible{outline-color:#FFFFFF}input,select{min-height:48px;border:1px solid #7F7B9E;background:white;border-radius:12px;padding:10px 12px;max-width:100%;color:var(--ink)}label{display:grid;gap:7px;font-size:14px;font-weight:600}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.2px;line-height:1.18;margin-bottom:12px}h2{font-size:20px;letter-spacing:-.4px}h3{font-size:17px}p{line-height:1.6}.muted{color:var(--muted)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.8px;color:var(--green);margin-bottom:14px}.brand{text-decoration:none;font-size:25px;letter-spacing:3px;font-weight:800;display:block}.brand span{display:block;font-size:12px;letter-spacing:5px;font-weight:600;margin-top:2px}.layout{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#1a133c;color:#f4f3fa;padding:32px 22px;display:flex;flex-direction:column;gap:35px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{display:block;text-decoration:none;padding:13px;border-radius:8px;font-size:14px}.sidebar nav a:hover{background:#FFFFFF1F}.sidebar nav a[aria-current=page]{background:#c0b6f2;color:#1c153d;font-weight:700}.sidebar-footer{margin-top:auto;font-size:12px;line-height:1.8;color:#c8c4d9}.workspace{min-width:0}.topbar{background:white;border-bottom:1px solid var(--line);padding:16px 36px;display:flex;justify-content:space-between;align-items:center;gap:16px}.topbar .identity{font-size:13px}.badge{display:inline-flex;padding:6px 10px;border-radius:8px;background:#ECEAF5;color:#140F33;font-size:12px;font-weight:650}.badge.warning{background:#FBEBDA;color:#140F33}main.content{padding:36px;max-width:1600px;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.heading p{margin-bottom:0}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.metric,.panel,.cards article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.metric p{font-size:13px;color:var(--muted);margin-bottom:14px}.metric strong{font-size:30px;letter-spacing:-1px}.metric small{display:block;margin-top:14px;color:var(--muted);font-size:12px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.panel-head h2{margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px;white-space:nowrap}th{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:650}td,th{padding:16px 10px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}.empty{padding:45px 20px;text-align:center;color:var(--muted)}.notice{padding:13px 16px;border:1px solid #B35309;background:#FBEBDA;border-radius:8px;color:#140F33;font-size:13px}.error{background:#FAE3E3;border:1px solid #B91C1C;color:#140F33;padding:14px;border-radius:8px}.success{background:#DFF3EB;color:#140F33;padding:14px;border-radius:8px}.login{max-width:460px;margin:8vh auto;padding:36px;background:white;border:1px solid var(--line);border-radius:16px}.login .brand{margin-bottom:40px}.login h1{font-size:28px}.login form{display:grid;gap:20px;margin-top:28px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.form-row{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.form-row label{flex:1;min-width:160px}.form-row button{flex:none}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px}.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.product{background:white;border:1px solid var(--line);color:var(--ink);display:flex;align-items:start;flex-direction:column;justify-content:space-between;min-height:130px;text-align:left;padding:18px}.product:hover{border-color:var(--green);background:var(--bg)}.product small{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.product strong{font-size:16px;margin:12px 0}.product span{color:var(--green)}.basket{position:sticky;top:20px;align-self:start}.basket-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.basket-line button{min-height:36px;padding:6px 10px}.basket-total{display:flex;justify-content:space-between;font-size:22px;font-weight:700;margin:24px 0}.basket form{display:grid;gap:14px}.tickets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.ticket header{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px}.ticket ul{padding-left:20px;line-height:2}.ticket button{width:100%;margin-top:20px}.website{max-width:1160px;margin:auto;padding:50px 28px}.website>.brand{margin-bottom:100px}.website h1{font-size:clamp(38px,6vw,72px);max-width:1000px;letter-spacing:-2.5px}.intro{font-size:20px;max-width:680px;color:var(--muted)}.website .notice{display:inline-block}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:65px}.cards p{color:var(--muted);margin:0}.skip{position:absolute;left:12px;top:-60px;background:white;padding:12px;z-index:5}.skip:focus{top:12px}#message:empty{display:none}#message{margin-bottom:20px}.receipt{margin-top:20px;font-size:14px}.receipt h3{margin-bottom:8px}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.products{grid-template-columns:repeat(2,1fr)}.tickets{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:190px 1fr}.sidebar{padding:28px 16px}.pos-layout{grid-template-columns:1fr}.basket{position:static}}@media(max-width:700px){.layout{display:block}.sidebar{padding:18px;gap:20px}.sidebar .brand span,.sidebar-footer{display:none}.sidebar nav{display:flex;flex-wrap:wrap;gap:5px}.sidebar nav a{padding:10px;font-size:12px}.topbar{padding:14px 18px;flex-wrap:wrap}main.content{padding:24px 16px}.heading{align-items:start;flex-direction:column;gap:15px}.heading select{width:100%}.metrics{gap:10px}.metric{padding:16px}.metric strong{font-size:25px}.panel{padding:18px}.tickets,.cards{grid-template-columns:1fr}.login{margin:30px 16px;padding:28px}.website>.brand{margin-bottom:65px}.website h1{letter-spacing:-1.5px}.identity{overflow-wrap:anywhere}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media print{.sidebar,.topbar,.heading,.products,.basket form,#message{display:none}.layout,.pos-layout{display:block}.basket{border:0}.notice{display:none}}

.till-codes{display:grid;gap:12px;margin-top:12px}.till-code{display:block;font:600 1.25rem/1.4 ui-monospace,Consolas,monospace;letter-spacing:.04em;overflow-wrap:anywhere;user-select:all}

/* Shared desktop rail, mobile drawer and operational header. */
.sidebar .brand .brand-name{display:block}.sidebar .brand .brand-name small{display:block}.layout.is-collapsed:not(.mobile-nav-open) .sidebar .brand .brand-name{display:none}
.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}
[hidden]{display:none!important}.layout{grid-template-columns:248px minmax(0,1fr);transition:grid-template-columns .18s ease}.layout.is-collapsed{grid-template-columns:84px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;padding:27px 16px 18px;gap:0;background:linear-gradient(135deg,#0F054D 0%,#3A0CA3 80%,#B3096F 100%);border-right:0;overflow:hidden;z-index:50}.sidebar .brand{display:flex;align-items:center;gap:12px;padding:0 9px;margin-bottom:42px;font-size:20px;letter-spacing:2px;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:36px;height:38px;border:1px solid #847cac;border-radius:9px;color:#c6bcf9;font-size:24px;flex:none}.sidebar .brand-name{display:block;font-size:21px;letter-spacing:3px;margin:0}.brand-name small{display:block;font-size:12px;letter-spacing:5px;margin-top:3px;color:#ECE6FF}.nav-caption{font-size:12px;letter-spacing:1.8px;font-weight:700;color:#ECE6FF;padding:0 14px;margin-bottom:15px}.sidebar nav{gap:7px}.sidebar nav a{display:flex;align-items:center;gap:12px;min-height:48px;padding:13px 14px;border-radius:12px;white-space:nowrap;font-size:14px;color:#ECE6FF}.sidebar nav a svg,.sidebar-collapse svg{width:20px;height:20px;flex:none}.sidebar nav a[aria-current=page]{background:#FFFFFF1F;color:#FFFFFF;font-weight:600;box-shadow:inset 4px 0 0 #FD0679}.nav-current{display:none}.sidebar-footer{padding:15px 6px 0;margin-top:auto}.sidebar-status{display:flex;gap:10px;align-items:start;color:#ECE6FF;font-size:12px;line-height:1.8;white-space:nowrap}.sidebar-status strong{font-weight:500;color:#FFFFFF}.status-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#ab9fe7;margin-top:6px}.sidebar-collapse{display:flex;justify-content:start;width:100%;border-top:1px solid #FFFFFF47;background:transparent;color:#ECE6FF;border-radius:0;margin-top:22px;padding:17px 6px 0;font-size:12px;font-weight:500;gap:10px}.is-collapsed .brand-name,.is-collapsed .nav-caption,.is-collapsed .nav-label,.is-collapsed .sidebar-status,.is-collapsed .nav-current{display:none}.is-collapsed .sidebar .brand{padding-left:6px}.is-collapsed .sidebar nav a{justify-content:center;padding:14px}.is-collapsed .sidebar-collapse{justify-content:center}.is-collapsed .sidebar-collapse svg{transform:rotate(180deg)}.topbar{position:sticky;top:0;z-index:40;height:78px;padding:0 32px;gap:20px;border-bottom:1px solid #E2DFF0;box-shadow:0 1px 0 #fff;background:#fffffffa;backdrop-filter:blur(12px)}.header-start,.header-tools{display:flex;align-items:center;gap:18px;min-width:0}.header-tools{gap:14px}.icon-button{position:relative;background:transparent;color:#504c63;border:1px solid transparent;border-radius:12px;min-width:48px;min-height:48px;width:48px;padding:10px;flex:none}.icon-button svg{width:21px;height:21px}.icon-button:hover{background:#eeedf3;filter:none}.breadcrumbs{display:flex;gap:13px;font-size:12px;white-space:nowrap;color:#646174}.breadcrumbs strong{font-weight:600;color:#29253d}.header-branch select{border-color:#E2DFF0;background:#f8f8fa;font-size:12px;max-width:235px;min-height:48px;padding:8px 12px;font-weight:600}.connection-chip{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;color:#474068}.connection-chip svg{width:18px;height:18px}.header-account{display:flex;align-items:center;gap:10px;padding-left:15px;border-left:1px solid #E2DFF0}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:#e6e3f1;color:#3a3556;flex:none}.account-detail{display:grid;gap:3px;font-size:12px}.account-detail strong{font-weight:650}.account-detail small{font-size:12px;color:#625f73}.notification-anchor{position:relative}.notification-count{position:absolute;top:3px;right:2px;min-width:16px;height:16px;border-radius:9px;background:#B91C1C;color:white;font-size:12px;line-height:16px;border:2px solid white;box-sizing:content-box}.notification-panel{position:absolute;right:0;top:56px;width:min(365px,calc(100vw - 32px));padding:0;background:#fff;border:1px solid #E2DFF0;border-radius:16px;box-shadow:0 8px 24px #0F054D3D;overflow:hidden;z-index:70}.notification-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.notification-heading h2{font-size:15px;margin:0}.notification-item{display:flex;gap:12px;padding:18px;border-bottom:1px solid var(--line)}.notification-item h3,.notifications-empty h3{font-size:13px;margin:0 0 5px}.notification-item p,.notifications-empty p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}.notification-symbol{display:inline-grid;place-items:center;width:35px;height:35px;flex:none;background:#ECEAF5;border-radius:8px;color:#4a4272}.notification-symbol svg{width:18px;height:18px}.notifications-empty{padding:30px 22px;text-align:center}.notifications-empty .notification-symbol{margin-bottom:15px}.workspace-date{font-size:12px;white-space:nowrap;color:#676477}.content .heading{margin-bottom:25px}.content .eyebrow{font-size:12px;letter-spacing:1.9px}.content h1{font-size:30px;letter-spacing:-1.1px}.content .heading p.muted{font-size:13px}.content .metrics{gap:17px}.content .metric{border-radius:12px;padding:23px;box-shadow:none}.content .metric strong{font-size:31px}.content .panel{border-radius:12px;box-shadow:none}.content .panel h2{font-size:17px}.sidebar-backdrop{position:fixed;inset:78px 0 0;background:#0F054DD9;z-index:45;border:0;border-radius:0;cursor:default;width:100%;height:calc(100dvh - 78px)}
@media(min-width:801px){.sidebar-backdrop{display:none!important}}
@media(max-width:1200px){.connection-chip span{display:none}.account-detail{display:none}.header-tools{gap:8px}.topbar{padding:0 22px}.header-start{gap:10px}.header-account{padding-left:9px}}
@media(max-width:800px){.layout,.layout.is-collapsed{display:block}.sidebar{position:fixed;top:78px;left:0;height:calc(100dvh - 78px);width:248px;transform:translateX(-100%);transition:transform .18s ease;display:flex;flex-direction:column;padding:26px 16px}.mobile-nav-open .sidebar{transform:translateX(0)}.sidebar .brand{display:flex;margin-bottom:30px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{padding:13px 14px;font-size:13px;justify-content:start}.sidebar-footer{display:block}.sidebar .brand-name,.sidebar .nav-caption,.sidebar .nav-label,.sidebar .sidebar-status{display:block}.sidebar .sidebar-status{display:flex}.sidebar .brand-name small{display:block}.sidebar .sidebar-collapse{justify-content:start}.sidebar-collapse svg{transform:none!important}.topbar{height:78px;padding:0 14px;flex-wrap:nowrap;gap:8px;backdrop-filter:none;background:white;z-index:60}.header-start{gap:2px}.breadcrumbs>span{display:none}.breadcrumbs strong{font-size:12px}.header-branch select{max-width:180px;font-size:12px;padding:6px 8px}.header-tools{gap:3px}.header-account{display:none}.connection-chip{display:none}.icon-button{min-width:48px;width:48px;padding:9px}.heading .workspace-date{display:none}main.content{padding:26px 18px}.content .heading h1{font-size:27px}.content .heading{gap:14px}.notification-panel{position:fixed;right:14px;top:70px}.drawer-open{overflow:hidden}}
@media(max-width:440px){.breadcrumbs{display:none}.header-branch select{max-width:165px}.content .metric{padding:17px}.content .metric strong{font-size:26px}.header-tools{margin-left:auto}.content .metric small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.layout,.sidebar{transition:none}}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:end}.onboarding-form{display:grid;gap:22px}.onboarding-form>button{justify-self:start}.domain-input{display:flex;align-items:center;border:1px solid #7F7B9E;border-radius:12px;background:#F4F2FB;overflow:hidden;min-height:48px}.domain-input input{width:100%;min-width:0;border:0;border-radius:0;background:white}.domain-input span{font-size:12px;padding:0 12px;white-space:nowrap;color:#565268}.module-options{border:1px solid var(--line);border-radius:12px;padding:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px}.module-options legend{font-size:13px;font-weight:650;padding:0 7px}.module-options label{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:500;min-height:48px}.module-options input{min-height:20px;width:18px;height:18px;accent-color:var(--green)}.domain-row{display:flex;gap:15px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.domain-row p{font-size:12px;margin:5px 0 0}.dns-records{display:grid;gap:8px}.dns-records dt{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.dns-records dd{font-family:Consolas,monospace;font-size:13px;overflow-wrap:anywhere;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#F4F2FB}.workspace-host{font-size:20px;font-weight:650;overflow-wrap:anywhere}.module-tags{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:800px){.form-grid{grid-template-columns:1fr}.module-options{grid-template-columns:repeat(2,minmax(0,1fr))}.domain-row{align-items:start;flex-direction:column}.sidebar .brand .brand-name{display:block!important}}@media(max-width:440px){.module-options{grid-template-columns:1fr}}
.pos-type-options{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pos-type-options legend{font-size:14px;font-weight:600;padding:0;margin-bottom:10px}.pos-type-card{display:flex;align-items:flex-start;gap:12px;padding:18px;min-height:96px;border:2px solid var(--line);border-radius:var(--radius);background:white;cursor:pointer;font-weight:500}.pos-type-card:hover{border-color:#7F7B9E}.pos-type-card:has(input:checked){border-color:var(--green);background:#E6E3F3}.pos-type-card:has(input:focus-visible){outline:2px solid #4907AF;outline-offset:2px}.pos-type-card input{width:20px;height:20px;min-height:20px;margin:2px 0 0;accent-color:var(--green);flex:none}.pos-type-card input:focus-visible{outline:none}.pos-type-card strong{display:block;font-size:17px;margin-bottom:4px}.pos-type-card small{display:block;font-size:13px;line-height:1.45;color:var(--muted)}.module-options label:has(input:disabled){color:var(--muted)}.pos-type-cell{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.pos-type-cell .badge{white-space:nowrap}.pos-type-cell button{min-height:48px;padding:7px 12px;font-size:13px;white-space:nowrap}dialog.confirm{width:min(560px,calc(100vw - 32px));border:0;border-radius:var(--radius);padding:26px;color:var(--ink);box-shadow:0 8px 24px #0F054D3D}dialog.confirm::backdrop{background:#0F054DD9}dialog.confirm h2{margin-bottom:14px}dialog.confirm h3{font-size:14px;margin:16px 0 6px}dialog.confirm ul{margin:0;padding-left:20px;font-size:14px;line-height:1.55}.confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:22px}@media(max-width:560px){.pos-type-options{grid-template-columns:1fr}}
/* The owner's logo on a white plate, as docs/design/ARYA_DESIGN.md sets it. The sidebar's gradient is tokens.json's gradient.brand. */
.brand-plate{display:inline-flex;align-items:center;gap:10px;background:#FFFFFF;color:var(--ink);border-radius:12px;padding:6px 14px 6px 6px;font-size:15px;letter-spacing:.5px;font-weight:800;text-decoration:none;width:fit-content}
.brand-plate img{display:block;width:36px;height:36px;flex:none}
.brand-plate .brand-name,.sidebar .brand.brand-plate .brand-name{font-size:15px;letter-spacing:.5px;margin:0;color:var(--ink);font-weight:800;white-space:nowrap}
.sidebar .brand.brand-plate{display:inline-flex;padding:6px 14px 6px 6px;margin-bottom:30px;font-size:15px;letter-spacing:.5px}
.layout.is-collapsed:not(.mobile-nav-open) .sidebar .brand.brand-plate{padding:4px}
.layout.is-collapsed:not(.mobile-nav-open) .sidebar .brand.brand-plate .brand-name{display:none}
.website .brand-plate,.login .brand-plate{display:inline-flex}
/* The menu's Tills lands on this card, clear of the fixed header. */
#tills{scroll-margin-top:96px}
/* A table of businesses reads as cards where its columns cannot all fit. */
@media(max-width:1100px){.stack-table,.stack-table tbody,.stack-table tr,.stack-table td{display:block;width:100%}.stack-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.stack-table tr{padding:12px 0;border-bottom:1px solid var(--line)}.stack-table td{display:flex;gap:12px;justify-content:space-between;padding:6px 0;border:0;text-align:right}.stack-table td::before{content:attr(data-label);font-weight:600;color:var(--muted);text-align:left;flex:none}.stack-table .pos-type-cell{align-items:flex-end}}
.form-wide{grid-column:1/-1}textarea{width:100%;font:inherit;padding:12px;border:1px solid var(--line);border-radius:8px;min-height:72px}.once-panel{display:grid;gap:14px}.once-row{display:grid;gap:8px;justify-items:start}.once-row code{overflow-wrap:anywhere;font-size:1rem}.once-row button,[data-owner-link]{min-height:48px}
main button{min-height:48px}
.skeleton-page{display:grid;gap:16px}.skeleton-page i{display:block;height:96px;border-radius:12px;background:var(--line);opacity:.55}@media (prefers-reduced-motion:no-preference){.skeleton-page i{animation:skeleton-pulse 1.4s ease-in-out infinite}}@keyframes skeleton-pulse{50%{opacity:.25}}
.record-cards,.record-cards tbody{display:block;width:100%}.record-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.record-cards tr{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;padding:18px;margin-bottom:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.record-cards td{display:block;border:0;padding:0;text-align:left}.record-cards td::before{content:attr(data-label);display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.record-cards td:first-child{grid-column:1/-1;font-size:1.1rem}.record-cards .pos-type-cell{align-items:flex-start}
.conn-group{margin-top:28px}.conn-group h2{font-size:1rem;margin:0 0 12px}.conn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.conn-card{display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.conn-card header{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;justify-content:space-between}.conn-card h3{margin:0;font-size:1.05rem}.conn-card p{margin:0}.conn-status{font-size:13px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--bg);color:var(--muted)}.conn-status.is-good{background:#D8F3E3;color:#0B5A2E}.conn-status.is-bad{background:#FBDDE3;color:#8A1230}.conn-status.is-wait{background:#FFF1CC;color:#6B4E00}.conn-failed{color:#8A1230}.conn-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px}.conn-form input:not([type=radio]){min-height:48px;width:100%}.conn-form .pos-type-card{justify-content:flex-start;align-items:center}.conn-form .pos-type-card input{width:auto;flex:none}.conn-form .pos-type-card span{flex:1}.conn-group-note{margin:-4px 0 12px;max-width:70ch}dialog .confirm-actions button{min-height:48px}@media (max-width:480px){.conn-grid{grid-template-columns:minmax(0,1fr)}}
.money-ltr{direction:ltr;unicode-bidi:isolate}.sales-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:18px}.segmented{display:flex;flex-wrap:wrap;gap:6px}.segmented button{min-height:48px}.sales-dates{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.sales-dates input,.sales-branch select{min-height:48px}.sales-branch{display:grid;gap:4px}.sales-silent{margin-bottom:18px}.sales-silent ul{margin:6px 0 0;padding-inline-start:18px}.sales-block{display:grid;gap:18px;margin-bottom:18px}.sales-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.sales-columns .panel{margin:0}.share-list,.day-list,.receipt-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}.share-list li{display:grid;grid-template-columns:1fr auto;gap:4px 12px}.share-list i{grid-column:1/-1;height:8px;border-radius:4px;background:linear-gradient(to right,var(--green) var(--share,0%),var(--line) var(--share,0%))}[dir=rtl] .share-list i{transform:scaleX(-1)}.day-list li{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line)}.day-list li:last-child{border-bottom:0}.receipt-row{all:unset;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;width:100%;min-height:64px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.receipt-row:hover{background:var(--bg)}.receipt-row:focus-visible{outline:2px solid var(--green);outline-offset:2px}.receipt-row>span:first-child{display:grid;gap:2px}.receipt-tags{display:flex;flex-wrap:wrap;gap:6px}.sales-stale{margin-top:8px}@media (max-width:640px){.receipt-row{grid-template-columns:minmax(0,1fr) auto}.receipt-tags{grid-column:1/-1;grid-row:2}.sales-columns{grid-template-columns:minmax(0,1fr)}}

.tax-status{font-size:1.15rem;font-weight:600;margin:0 0 8px}#tax-form input[type=date],#tax-form select,#tax-form input[name=taxNumber],#tax-form input[name=flatRate]{min-height:48px;width:100%}
/* Licence dialog on xpanel: the quick actions stand apart from the form that sets dates by hand. */
.licence-quick{margin-bottom:8px}.licence-quick+p{margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}
/* Hub Licences: one row a seat, its state in words beside when it was last heard of. */
.lic-seats{list-style:none;margin:0;padding:0;display:grid;gap:10px}.lic-seat{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.lic-seat>div:first-child{flex:1 1 200px;min-width:0;display:grid;gap:2px}.lic-seat-facts{display:grid;gap:4px;justify-items:start}.lic-seat-free{background:var(--bg);border-style:dashed}.lic-type{font-size:22px;letter-spacing:-.4px}.lic-history{list-style:none;margin:0;padding:0;display:grid;gap:8px}.lic-history li{display:grid;grid-template-columns:minmax(120px,auto) 1fr auto;gap:12px;font-size:14px}.lic-head{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:700px){.lic-head{grid-template-columns:1fr}.lic-history li{grid-template-columns:1fr}.lic-seat button{width:100%}}
/* Hub Website: the section list and its controls on the left, the shop on a phone on the right. Buttons, not drag, so a keyboard and a tablet both work. */
.sd{display:grid;gap:18px}.sd-status{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-start;justify-content:space-between}.sd-status-main{flex:1 1 320px;min-width:0}.sd-status-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:6px}.sd-status-head h2{margin:0;font-size:1.15rem}.sd-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end}.sd-actions button,.sd-actions .button{min-height:48px}.sd-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none}.sd-saved{font-size:14px;color:var(--muted);min-height:20px}.sd-saved.is-good{color:#0B5A2E}.sd-saved.is-bad{color:#8A1230;font-weight:600}
.sd-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sd-steps li{display:flex;gap:10px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-weight:600}.sd-step-mark{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--bg);color:var(--muted)}.sd-steps li.is-done .sd-step-mark{background:#D8F3E3;color:#0B5A2E}
.sd-grid{display:grid;grid-template-columns:minmax(0,1fr) 404px;gap:18px;align-items:start}.sd-editor{display:grid;gap:18px;min-width:0}.sd-card{margin:0}.sd-card h2{font-size:1.05rem;margin:0 0 8px}.sd-field{margin:0 0 22px;padding:0;border:0}.sd-field:last-child{margin-bottom:0}.sd-field h3,.sd-field legend{font-size:.95rem;font-weight:700;margin:0 0 10px;padding:0}
.sd-logo-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.sd-logo{display:grid;place-items:center;width:168px;height:96px;border:1px dashed var(--line);border-radius:12px;background:repeating-conic-gradient(#f4f3f8 0 25%,#fff 0 50%) 0 0/16px 16px;padding:8px}.sd-logo img{max-width:100%;max-height:100%;object-fit:contain}.sd-logo-actions{display:grid;gap:6px;flex:1 1 220px}.sd-logo-actions p{margin:0}.sd-file{display:inline-flex;align-items:center;justify-content:center;min-height:48px;cursor:pointer;width:max-content}.sd-file:focus-within{outline:2px solid var(--green);outline-offset:2px}
.sd-theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.sd-theme{position:relative;display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;min-height:48px}.sd-theme input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.sd-theme:has(input:checked){border-color:var(--green);box-shadow:0 0 0 2px var(--green)}.sd-theme:has(input:focus-visible){outline:2px solid var(--green);outline-offset:3px}.sd-theme-swatch{display:flex;height:40px;border-radius:8px;overflow:hidden;border:1px solid var(--line)}.sd-theme-swatch i{flex:1;background:var(--swatch,#fff)}.sd-theme-swatch i+i{flex:0 0 38%}.sd-theme small{font-size:13px;line-height:1.35}
.sd-colours{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sd-colours label{display:grid;gap:6px}.sd-colours select{min-height:48px}.sd-colour{display:flex;gap:10px;align-items:center;min-height:48px;padding:0 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.sd-colour input{width:44px;height:36px;padding:0;border:0;background:none;cursor:pointer}.sd-colour code{font-size:14px}.sd-contrast{margin-top:12px;display:grid;gap:8px}.sd-contrast p{margin:0}.sd-contrast button{display:inline-flex;gap:8px;align-items:center;width:max-content}.sd-swatch{display:inline-block;width:20px;height:20px;border-radius:6px;background:var(--swatch,#fff);border:1px solid rgba(0,0,0,.2)}
.sd-list{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px}.sd-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:8px 8px 8px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.sd-row.is-hidden{background:var(--bg);border-style:dashed}.sd-row.is-hidden .sd-row-text strong{color:var(--muted)}.sd-row-text{flex:1 1 180px;min-width:0;display:grid;gap:2px}.sd-row-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-row-text .badge{justify-self:start}.sd-row-actions{display:flex;gap:2px;flex-wrap:wrap}.sd-row-actions .icon-button[disabled]{opacity:.35}.sd-row-actions .icon-button svg{width:20px;height:20px}
.sd-add{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.sd-add-pick{display:grid;gap:6px;flex:1 1 220px}.sd-add select{min-height:48px}.sd-add button{display:inline-flex;gap:8px;align-items:center;min-height:48px}.sd-branch{display:grid;gap:6px;margin-bottom:14px}.sd-branch select{min-height:48px}
.sd-versions{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sd-versions li{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.sd-versions li:last-child{border-bottom:0}.sd-versions li>div{display:grid;gap:2px}.sd-versions button{min-height:48px}
.sd-preview{position:sticky;top:84px;display:grid;gap:10px;justify-items:center}.sd-phone{width:392px;height:760px;padding:12px;border-radius:44px;background:#16131f;box-shadow:0 18px 40px rgba(20,15,51,.18)}.sd-phone iframe{width:100%;height:100%;border:0;border-radius:32px;background:#fff}.sd-preview-note{text-align:center;max-width:360px;margin:0}
.sd-dialog{width:min(640px,calc(100vw - 32px))}.sd-dialog textarea{width:100%;min-height:120px}.sd-dialog input:not([type=checkbox]):not([type=radio]),.sd-dialog select{min-height:48px;width:100%}.sd-check{display:flex;gap:10px;align-items:center;min-height:48px}.sd-check input{width:22px;height:22px}.sd-pictures{border:0;padding:0;margin:0;display:grid;gap:8px}.sd-picture-grid{display:flex;flex-wrap:wrap;gap:8px}.sd-picture{position:relative;display:grid;place-items:center;width:128px;height:98px;border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer}.sd-picture input{position:absolute;top:6px;left:6px;width:22px;height:22px;margin:0}.sd-picture img{width:100%;height:100%;object-fit:cover}.sd-picture:has(input:checked){box-shadow:0 0 0 3px var(--green)}.sd-picture-none span{font-size:13px;color:var(--muted);padding:0 8px;text-align:center}.sd-items{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:10px}.sd-item{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:10px;border-bottom:1px dashed var(--line)}.sd-item>label{display:grid;gap:4px}.sd-item>button{justify-self:start;min-height:48px}.sd-items>button{display:inline-flex;gap:8px;align-items:center;justify-self:start;min-height:48px}.sd-left{margin:4px 0 12px;padding-inline-start:20px}
@media (max-width:1180px){.sd-grid{grid-template-columns:minmax(0,1fr)}.sd-preview{position:static;order:-1}.sd-phone{width:min(392px,100%);height:680px}}
@media (max-width:640px){.sd-steps{grid-template-columns:1fr}.sd-colours,.sd-item{grid-template-columns:minmax(0,1fr)}.sd-actions{justify-content:flex-start}.sd-actions>*{flex:1 1 auto}.sd-phone{height:600px;border-radius:32px;padding:8px}.sd-phone iframe{border-radius:24px}.sd-row-actions{width:100%;justify-content:space-between}}
/* Google guide: each link with its own copy button, readable on a phone. */
.gbp-steps{margin:0 0 14px;padding-inline-start:20px;display:grid;gap:6px}.gbp-links{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:10px}.gbp-links li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.gbp-links span{grid-column:1/-1;font-weight:600;font-size:14px}.gbp-links code{overflow-wrap:anywhere;font-size:14px}.gbp-links button{min-height:48px}
/* Hub Platforms: a card for each platform, then the live orders, newest first, each saying it has not reached a till. */
.inbound-live{margin-top:22px}.inbound-orders{list-style:none;margin:0;padding:0;display:grid;gap:12px}.inbound-order{display:grid;gap:10px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.inbound-head{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}.inbound-ref{font-size:1.5rem;letter-spacing:.04em;margin-inline-end:4px}.inbound-test{background:#FFF1CC;color:#6B4E00;font-weight:700}.inbound-lines{list-style:none;margin:0;padding:0;display:grid;gap:4px}.inbound-lines li,.inbound-foot{display:flex;justify-content:space-between;gap:12px}.inbound-foot{padding-top:8px;border-top:1px solid var(--line)}.inbound-order p{margin:0}.inbound-card .conn-actions button{min-height:48px}
/* Hub Live orders, deciding a site order: allergy first and loud, then the facts, then one clear next step. Chips are 48px for a finger. */
.inbound-order.is-new{border-color:var(--green);box-shadow:inset 4px 0 0 var(--green)}.inbound-allergy{margin:0;padding:10px 12px;border-radius:10px;background:#FBDDE3;color:#8A1230;font-weight:800;letter-spacing:.01em}.inbound-facts{margin:0;font-weight:600}.inbound-foot a{font-weight:600}.inbound-actions{flex-wrap:wrap}.inbound-actions button{min-height:48px;min-width:120px}.decide-choices{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.decide-choices legend{font-weight:600;margin-bottom:8px;padding:0}.choice-chip{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 16px;border:2px solid var(--line);border-radius:999px;background:var(--surface);cursor:pointer;font-weight:600}.choice-chip:has(input:checked){border-color:var(--green);background:var(--lime)}.choice-chip input{width:20px;height:20px;accent-color:var(--green)}.tick-row{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 12px;border:2px solid var(--line);border-radius:12px;font-weight:600;cursor:pointer}.tick-row input{width:22px;height:22px;accent-color:var(--green);flex:none}button.danger{background:#B42318;border-color:#B42318;color:#fff}
/* Stripe wizard: six numbered steps, what to copy beside each, done steps ticked, steps not reachable yet dimmed. Refund lines under a card-paid order. */
dialog.wizard-dialog{width:min(720px,calc(100vw - 24px));max-height:calc(100vh - 24px)}.wizard{display:grid;gap:14px}.wizard-mode{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-mode small{display:block;color:var(--muted);font-weight:400;margin-top:2px}.wizard-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}.wizard-step{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--surface)}.wizard-step.is-done{border-color:#9FD8B5}.wizard-step.is-later{opacity:.55}.wizard-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.wizard-head h3{margin:0;font-size:1rem;flex:1}.wizard-n{flex:none;width:32px;height:32px;border-radius:999px;display:grid;place-items:center;font-weight:800;background:var(--lime);color:var(--green)}.is-done .wizard-n{background:#D8F3E3;color:#0B5A2E}.wizard-body p{margin:0 0 10px}.wizard-list{margin:0 0 10px;padding-inline-start:20px;font-weight:600}.wizard-label{font-weight:600}.copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin:0 0 10px;padding:8px 8px 8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.copy-row code{overflow-wrap:anywhere;font-size:14px}.copy-row button{min-height:48px}.button-link{display:inline-flex;align-items:center;min-height:48px;font-weight:700;color:var(--green);text-underline-offset:3px}.wizard-form button{min-height:48px}.inbound-money{list-style:none;margin:0;padding:0;display:grid;gap:6px}.inbound-money li{display:flex;justify-content:space-between;gap:10px;align-items:center}@media (max-width:640px){.wizard-mode{grid-template-columns:1fr}}
/* Your web address: records in a table with copy buttons, and each finding ticked or flagged in words. */
.domain-add{align-items:flex-end;margin-top:12px}.domain-add label{flex:1 1 280px}.domain-list{display:grid;gap:16px;margin-top:18px}.domain-card{display:grid;gap:10px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.domain-card p,.domain-card h4{margin:0}.domain-head{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}.domain-head h3{margin:0;font-size:1.25rem;overflow-wrap:anywhere}.dns-table{width:100%;border-collapse:collapse}.dns-table th,.dns-table td{text-align:start;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.dns-table code{overflow-wrap:anywhere;margin-inline-end:8px}.copy-button{min-height:48px}.domain-mx{font-weight:700;color:var(--warning)}.diag-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.diag{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px}.diag.is-ok{background:#E9F7EF}.diag.is-bad{background:#FFF1CC}.diag-mark{flex:none;width:24px;height:24px;border-radius:999px;display:grid;place-items:center;font-weight:800;background:var(--surface)}.domain-sim{border-inline-start:4px solid var(--warning)}.small{font-size:.9rem}@media (max-width:640px){.dns-table thead{display:none}.dns-table tr{display:grid;gap:4px;padding:8px 0;border-bottom:1px solid var(--line)}.dns-table td{border:0;padding:2px 0}}
/* Reservations: a day's bookings as cards with one next step each, and Set up in plain sections. Late and care notes stand out; every control is at least 48px. */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.res-tabs{display:flex;gap:8px;margin-bottom:16px}.res-tab{min-height:48px;padding:0 18px;border-radius:999px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font-weight:700}.res-tab.is-on{border-color:var(--green);background:var(--lime);color:var(--green)}.res-day{flex-wrap:wrap;gap:10px}.res-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.res-nav button{min-height:48px;min-width:48px}.res-date input{min-height:48px}.res-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.res-card{display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.res-card.is-late{border-color:#E8A0AF;box-shadow:inset 4px 0 0 #B42318}.res-time strong{display:block;font-size:1.5rem;font-variant-numeric:tabular-nums}.res-time small{color:var(--muted)}.res-main{display:grid;gap:8px}.res-main p{margin:0}.res-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.res-head strong{font-size:1.1rem}.res-where{font-weight:600}.res-main .conn-actions button{min-height:48px}.res-quiet{color:#8A1230}.res-setup{display:grid;gap:16px}.res-area{border:1px solid var(--line);border-radius:14px;padding:14px;margin:0 0 12px;display:grid;gap:10px;background:var(--bg)}.res-fields{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.res-fields label{flex:1 1 140px;display:grid;gap:4px}.res-fields button,.res-table button,.res-setup>section>button{min-height:48px}.res-tables{display:grid;gap:8px}.res-table{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:10px;border-radius:10px;background:var(--surface)}.res-table label{flex:1 1 110px;display:grid;gap:4px}.res-table .tick-row{flex:0 1 auto}.res-row{border:0;margin:0 0 12px;padding:0 0 12px;border-bottom:1px dashed var(--line)}.res-days{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.day-chip{padding:0 12px}.res-save{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;align-items:center;padding:12px;background:var(--bg);border-top:1px solid var(--line)}.res-save button{min-height:48px;min-width:160px}@media (max-width:640px){.res-card{grid-template-columns:1fr}.res-time{display:flex;gap:10px;align-items:baseline}}

/* Table colours (design 02 slice 7): the palette of packages/core/table-palette.mjs as classes, because a page of this product may not carry inline styles. */
.tc-green { --tc-fill: #DFF3EB; --tc-edge: #047857; }
.tc-teal { --tc-fill: #D5F0F2; --tc-edge: #0E7490; }
.tc-blue { --tc-fill: #DCE7FB; --tc-edge: #1D4ED8; }
.tc-violet { --tc-fill: #E7DDFA; --tc-edge: #6D28D9; }
.tc-pink { --tc-fill: #FBDDEC; --tc-edge: #BE185D; }
.tc-amber { --tc-fill: #FBEBDA; --tc-edge: #B35309; }
.tc-red { --tc-fill: #FAE3E3; --tc-edge: #B91C1C; }
.tc-grey { --tc-fill: #ECEAF5; --tc-edge: #5A5775; }
.table-preview { display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm); padding: var(--space-sm) var(--space-md); border-radius: var(--radius-md); background: var(--tc-fill); border: 4px solid var(--tc-edge); color: #140F33; }
.swatch { display: inline-block; width: 1.25rem; height: 1.25rem; margin-inline-end: var(--space-xs); vertical-align: middle; border-radius: 0.4rem; background: var(--tc-fill); border: 3px solid var(--tc-edge); }
.table-colours { max-width: 960px; }

/* QR codes (table ordering): the switch panel, the print toolbar, one card per code. Icon and word on every state, never colour alone. */
.qr-live { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; }
.qr-live-main { display: flex; align-items: center; gap: 16px; min-width: 0; }
.qr-live-main h2 { margin: 0; font-size: 1.25rem; }
.qr-live-main p { margin: 2px 0 0; }
.qr-live-mark { width: 52px; height: 52px; flex: none; border-radius: 50%; display: grid; place-items: center; border: 2px solid currentColor; }
.qr-live-mark svg { width: 26px; height: 26px; }
.qr-live-mark.is-good { color: #047857; background: #DFF3EB; }
.qr-live-mark.is-wait { color: #8A3F06; background: #FBEBDA; }
.qr-live-mark.is-off { color: var(--muted); background: var(--bg); }
.qr-live-actions, .qr-toolbar, .qr-area-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.qr-live-actions button, .qr-toolbar .button, .qr-toolbar button, .qr-area-actions .button, .qr-area-actions button { min-height: 48px; }
.qr-toolbar { margin: 20px 0 4px; align-items: center; }
.qr-toolbar .button svg { width: 20px; height: 20px; margin-inline-end: 6px; vertical-align: -4px; }
.qr-area { margin-top: 28px; }
.qr-area-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.qr-area-head h2 { margin: 0; font-size: 1.125rem; }
.qr-area-head p { margin: 4px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.qr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px; }
.qr-card { display: grid; grid-template-columns: 112px 1fr; gap: 14px; padding: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.qr-card.is-off .qr-picture img { opacity: 0.45; }
.qr-picture { display: block; width: 112px; height: 112px; border-radius: 10px; border: 1px solid var(--line); background: #fff; padding: 6px; }
.qr-picture img { width: 100%; height: 100%; display: block; }
.qr-card-body { min-width: 0; display: grid; align-content: start; gap: 6px; }
.qr-card-body h3 { margin: 0; font-size: 1.0625rem; }
.qr-card-body p { margin: 0; }
.qr-card-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.qr-card-actions .button, .qr-card-actions button { min-height: 44px; padding-inline: 12px; }
.qr-chip { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 3px 10px; border-radius: 999px; font-size: 0.8125rem; font-weight: 700; border: 1px solid currentColor; }
.qr-chip svg { width: 16px; height: 16px; }
.qr-chip.is-on { color: #047857; background: #DFF3EB; }
.qr-chip.is-off { color: #5A5775; background: var(--bg); }
.qr-empty { text-align: center; display: grid; justify-items: center; gap: 8px; }
.qr-empty > svg { width: 48px; height: 48px; color: var(--muted); }
.qr-rules { display: grid; gap: 24px; margin-top: 16px; }
.qr-field { border: 0; padding: 0; margin: 0; display: grid; gap: 10px; }
.qr-field legend h2 { margin: 0 0 4px; font-size: 1.125rem; }
.qr-hours { display: grid; gap: 8px; }
.qr-hour { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; }
.qr-hour label { display: grid; gap: 2px; }
.qr-hour select, .qr-hour input, .qr-input input, .qr-input select { min-height: 48px; }
.qr-input { display: grid; gap: 4px; max-width: 360px; }
.qr-error { color: #B91C1C; font-weight: 700; }
.qr-privacy { margin-top: 28px; max-width: 72ch; }
@media (max-width: 520px) { .qr-card { grid-template-columns: 88px 1fr; } .qr-picture { width: 88px; height: 88px; } }

/* ---- S65 and S125: one visual language for the pages built on this branch. Colours are the design tokens: violet for choice and focus, magenta for the one primary action, green for done, amber for waiting. ---- */
.ico{flex:none;vertical-align:-.2em}
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px 4px 8px;border-radius:999px;font-size:13px;font-weight:650;line-height:1.35;white-space:nowrap;background:#ECEAF5;color:#3D3A57}
.pill-good{background:#DFF3EB;color:#035E44}.pill-wait{background:#FBEBDA;color:#8A3F06}.pill-brand{background:#ECE6FF;color:#4907AF}.pill-bad{background:#FAE3E3;color:#8E1616}
.pill-dashed{background:transparent;border:1px dashed #7F7B9E;color:#3D3A57}
.tile{width:48px;height:48px;border-radius:14px;display:inline-grid;place-items:center;flex:none;background:color-mix(in srgb,var(--tint,#4907AF) 11%,#fff);color:var(--tint,#4907AF)}
.tile-sm{width:40px;height:40px;border-radius:12px}.tile-lg{width:60px;height:60px;border-radius:18px}
.toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;justify-content:space-between;margin-bottom:20px}
.segmented button{gap:6px}
.field-inline{display:grid;gap:6px;font-size:13px;font-weight:650;color:var(--muted)}.field-inline input,.field-inline select{min-height:48px;color:var(--ink);font-weight:500}
.field-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px}
.stack{display:grid;gap:20px}.stack>.panel{margin:0}
.panel-title{display:flex;align-items:center;gap:12px;font-size:17px;letter-spacing:-.2px;margin:0 0 16px}
.step-no{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#4907AF;color:#fff;font-size:14px;font-weight:700}
.hint{color:var(--muted);font-size:13.5px;margin:14px 0 0}
.note{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:13.5px;margin:20px 2px 0}.note .ico{margin-top:2px}
.status{display:flex;align-items:center;gap:8px;min-height:24px;margin:0;font-weight:600}.status-good{color:#035E44}.status-bad{color:#B91C1C}
.hero{display:flex;gap:18px;align-items:center;padding:22px 24px;border-radius:18px;margin-bottom:18px;border:1px solid var(--line);background:linear-gradient(135deg,#fff 0%,#F7F5FD 100%)}
.hero h2{margin:2px 0 4px;font-size:24px;letter-spacing:-.5px}.hero p{margin:0}.hero-eyebrow{font-size:12px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase}
.hero-good{--tint:#047857;border-inline-start:5px solid #047857}.hero-good .hero-eyebrow{color:#035E44}.hero-wait{--tint:#B35309;border-inline-start:5px solid #B35309}.hero-wait .hero-eyebrow{color:#8A3F06}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:grid;gap:4px}.stat p{margin:0;font-size:13px;font-weight:650;color:var(--muted)}.stat strong{font-size:24px;letter-spacing:-.6px;font-variant-numeric:tabular-nums}.stat small{color:var(--muted);font-size:12.5px}
.till-list{list-style:none;margin:0;padding:0;display:grid}.till-row{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.till-row:last-child{border-bottom:0}.till-who{display:grid;flex:1;min-width:0}.till-who small{overflow-wrap:anywhere}
.data-table{width:100%;border-collapse:collapse}.data-table th{font-size:12px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);text-align:start;padding:10px 12px;border-bottom:2px solid var(--line)}.data-table td{padding:14px 12px;border-bottom:1px solid var(--line)}.data-table tr:last-child td{border-bottom:0}.data-table .num{text-align:end;font-variant-numeric:tabular-nums}
.empty-inline{display:flex;gap:12px;align-items:center;color:var(--muted);padding:6px 0}.empty-inline p{margin:0}
.pick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.pick{display:block;cursor:pointer}.pick input{position:absolute;opacity:0;width:1px;height:1px}
.pick-body{position:relative;display:grid;gap:6px;align-content:start;height:100%;padding:20px;border:1.5px solid var(--line);border-radius:16px;background:#fff;transition:border-color .15s,box-shadow .15s}
.pick-body .tile{margin-bottom:6px}.pick-body strong{font-size:16px}.pick-body small{color:var(--muted);font-size:13.5px;line-height:1.5}
.cols{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.cols code,.file-chip code{font:12px/1.4 ui-monospace,Consolas,monospace;background:#F4F2FB;color:#3D3A57;border-radius:6px;padding:3px 7px}
.pick-check{position:absolute;inset-block-start:16px;inset-inline-end:16px;color:#4907AF;opacity:0}
.pick:hover .pick-body{border-color:#C9C5DE}.pick input:checked+.pick-body{border-color:#4907AF;box-shadow:0 0 0 1px #4907AF inset,0 6px 20px rgba(73,7,175,.10)}.pick input:checked+.pick-body .pick-check{opacity:1}.pick input:focus-visible+.pick-body{outline:3px solid #4907AF;outline-offset:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:600;gap:6px}.chip:hover{filter:none;background:#F4F2FB}.chip[aria-pressed=true]{background:#4907AF;border-color:#4907AF;color:#fff}.chip .count{font-size:12px;font-weight:700;opacity:.75}
.download-bar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#0F054D 0%,#3A0CA3 85%);color:#fff;border:0}
.download-bar .file-chip{display:flex;gap:14px;align-items:center;min-width:0}.download-bar .tile{background:rgba(255,255,255,.14);color:#fff}.download-bar small{color:#ECE6FF;display:block}.download-bar code{background:rgba(255,255,255,.14);color:#fff;overflow-wrap:anywhere}
.primary-action{min-height:52px;padding:12px 26px;background:#D1056A;font-size:16px;box-shadow:0 6px 18px rgba(209,5,106,.35)}.primary-action:hover{background:#A80455;filter:none}.download-bar .primary-action:focus-visible{outline-color:#fff}
.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.mini{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 16px;border:1px dashed #C9C5DE;border-radius:14px;background:#FBFAFE}.mini strong{flex:1;min-width:80px}
@media (max-width:640px){.hero{padding:18px}.hero h2{font-size:20px}.download-bar .primary-action{width:100%}.toolbar{align-items:stretch}.segmented{width:100%}.segmented button{flex:1}}
@media (prefers-reduced-motion:reduce){.pick-body,.addon,.chip{transition:none}}
.note-warn{color:#8A3F06}

.primary-action svg{width:20px;height:20px}.note-warn{margin-bottom:14px}.stats{margin-bottom:20px}#view>.panel{margin-bottom:20px}
@media (max-width:640px){.segmented button{padding:10px 6px;font-size:14px;min-width:0}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:last-child:nth-child(odd){grid-column:1/-1}.hero{gap:12px}.tile-lg{width:48px;height:48px}}

/* ---- S125: add-ons in the Hub, plugins in xpanel. ---- */
.addon-hero{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;background:linear-gradient(135deg,#0F054D 0%,#3A0CA3 82%,#7A0A6E 100%);border:0;color:#fff;padding:26px 28px}
.addon-hero .tile{background:rgba(255,255,255,.14);color:#fff}.addon-hero h2{color:#fff;margin:2px 0 6px}.addon-hero .hero-eyebrow{color:#FFD3E8}.addon-hero .muted{color:#ECE6FF;max-width:62ch}
.hero-stats{display:flex;gap:10px;margin:0}.hero-stats div{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:10px 16px;min-width:92px;text-align:center}.hero-stats dt{font-size:12px;color:#ECE6FF;font-weight:650}.hero-stats dd{margin:2px 0 0;font-size:26px;font-weight:700;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.toolbar-end{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.search{position:relative;display:flex;align-items:center;min-width:240px}.search .ico{position:absolute;inset-inline-start:14px;color:var(--muted);pointer-events:none}.search input{width:100%;min-height:48px;padding-inline-start:42px;border-radius:999px}
.chips .chip .count{font-variant-numeric:tabular-nums}
.addon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:20px}
.addon{display:flex;flex-direction:column;gap:14px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 2px rgba(20,15,51,.04);transition:box-shadow .18s,border-color .18s,transform .18s}
.addon:hover{border-color:#C9C5DE;box-shadow:0 10px 28px rgba(20,15,51,.09);transform:translateY(-2px)}
.addon.is-soon{background:#FBFAFE;border-style:dashed;box-shadow:none}.addon.is-soon:hover{transform:none;box-shadow:none}.addon.is-soon .tile{filter:grayscale(.35);opacity:.85}
.addon-top{display:flex;gap:14px;align-items:center}.addon-id{min-width:0}.addon-id h3{margin:0;font-size:17px;letter-spacing:-.2px}.addon-id p{margin:2px 0 0;color:var(--muted);font-size:13px}
.addon-state{display:flex;flex-wrap:wrap;gap:6px}
.addon-price{margin:0;display:flex;align-items:baseline;gap:6px}.addon-price strong{font-size:24px;letter-spacing:-.6px;font-variant-numeric:tabular-nums}.addon-price span{color:var(--muted);font-size:13px}.addon-price.lead{margin:14px 0 4px}
.addon-countries{display:flex;flex-wrap:wrap;gap:6px}.chip-sm{display:inline-flex;align-items:center;min-height:26px;padding:2px 9px;border-radius:8px;background:#F4F2FB;color:#3D3A57;font-size:12px;font-weight:650;letter-spacing:.3px}.chip-price{background:#ECE6FF;color:#3A0CA3;letter-spacing:0}
.addon footer{margin-top:auto;padding-top:4px}.addon footer button{width:100%}
.empty-state{display:grid;justify-items:center;gap:8px;padding:56px 24px;text-align:center;color:var(--muted)}.empty-state h2{margin:6px 0 0;color:var(--ink)}
dialog.sheet{margin:0 0 0 auto;padding:0;border:0;width:min(560px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;border-radius:22px 0 0 22px;background:#fff;color:var(--ink);box-shadow:-18px 0 60px rgba(15,5,77,.28);overflow:hidden}
dialog.sheet[open]{display:flex;flex-direction:column;animation:sheet-in .22s ease-out}
dialog.sheet::backdrop{background:rgba(15,5,77,.58)}
@keyframes sheet-in{from{transform:translateX(32px);opacity:0}to{transform:none;opacity:1}}
.sheet-form{display:flex;flex-direction:column;min-height:0;flex:1}
.sheet-head{display:flex;gap:16px;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line);flex:none}.sheet-head>div{flex:1;min-width:0}.sheet-head h2{margin:0;font-size:20px;letter-spacing:-.4px}.sheet-head p{margin:2px 0 0;font-size:13.5px}
.sheet-body{padding:22px 24px;overflow:auto;flex:1;display:grid;gap:22px;align-content:start}.sheet-body h3{font-size:14px;letter-spacing:.2px;margin:0 0 10px}
.sheet-foot{flex:none;padding:16px 24px;border-top:1px solid var(--line);background:#FBFAFE;display:grid;gap:8px}.sheet-foot .button-row{justify-content:flex-end}.sheet-foot .status:empty{display:none}
.stepper{display:flex;gap:6px;list-style:none;margin:0;padding:0}.stepper li{flex:1;display:grid;justify-items:center;gap:6px;font-size:12.5px;font-weight:650;color:var(--muted);text-align:center;position:relative}
.stepper li span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#ECEAF5;color:#3D3A57;font-size:13px;font-weight:700;position:relative;z-index:1}
.stepper li::before{content:"";position:absolute;inset-block-start:13px;inset-inline:-50% 50%;height:2px;background:#E2DFF0}.stepper li:first-child::before{display:none}
.stepper li.is-done span{background:#047857;color:#fff}.stepper li.is-done::before,.stepper li.is-now::before{background:#047857}.stepper li.is-now span{background:#4907AF;color:#fff;box-shadow:0 0 0 4px #ECE6FF}.stepper li.is-now,.stepper li.is-done{color:var(--ink)}
.banner{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;margin:0}.banner p{margin:2px 0 0;font-size:13.5px;line-height:1.5}.banner strong{font-size:14px}.banner-good{background:#DFF3EB;color:#035E44}.banner-wait{background:#FBEBDA;color:#6E3205}
.check-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.check-list li{display:flex;gap:10px;align-items:flex-start;line-height:1.45}.check-list .ico{margin-top:1px;color:#047857}.check-never .ico{color:#7F7B9E}.check-never li{color:#3D3A57}
.setup-steps{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:10px}.setup-steps li{display:flex;gap:12px;align-items:center}.setup-steps span:last-child{display:grid}
.price-box{background:#F7F5FD;border:1px solid var(--line);border-radius:16px;padding:16px 18px}.price-box dl{margin:0 0 10px;display:grid;gap:8px}.price-box dl div{display:flex;justify-content:space-between;gap:12px}.price-box dt{color:var(--muted)}.price-box dd{margin:0;font-variant-numeric:tabular-nums;font-weight:650}.price-box .total{border-top:1px solid var(--line);padding-top:10px;font-size:17px}.price-box .total dt{color:var(--ink);font-weight:650}.price-box p{margin:0;font-size:13px;display:flex;gap:6px;align-items:flex-start}
.consent{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1.5px solid #4907AF;border-radius:14px;background:#F7F5FD;cursor:pointer;font-weight:600;font-size:14.5px;line-height:1.5}.consent input{width:24px;height:24px;flex:none;accent-color:#4907AF;margin-top:1px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .form-wide{grid-column:1/-1}.form-grid input:not([type=radio]):not([type=checkbox]),.form-grid select,.form-grid textarea{width:100%}
.perm-grid{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.perm-grid legend{font-weight:650;margin-bottom:10px;padding:0}.perm-grid .hint{grid-column:1/-1;margin:4px 0 0;display:flex;gap:6px;align-items:flex-start}
.perm{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;font-weight:500;min-height:48px}.perm:has(input:checked){border-color:#4907AF;background:#F7F5FD}.perm input{width:20px;height:20px;flex:none;accent-color:#4907AF;margin-top:2px}.perm span{display:grid;gap:2px;font-size:13.5px}.perm code{font:11.5px ui-monospace,Consolas,monospace;color:var(--muted)}
.price-head,.price-row{display:grid;grid-template-columns:80px 90px 1fr;gap:10px}.price-head{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.price-row{margin-bottom:10px}.price-row input{min-width:0;width:100%}#price-add{margin-top:6px}
.cell-id{display:flex;gap:12px;align-items:center}.cell-id>div{display:grid}.cell-id small{font-size:12.5px}
.panel.flush{padding:0;overflow:hidden}.panel.flush .data-table th:first-child,.panel.flush .data-table td:first-child{padding-inline-start:22px}
.tint-box{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;background:#F7F5FD;border:1px solid var(--line);border-radius:14px;padding:16px;margin:16px 0}.tint-box .hint{flex-basis:100%;margin:0;display:flex;gap:6px}
#plug-business .field-inline select{min-width:280px}
@media (max-width:900px){.addon-hero{grid-template-columns:auto 1fr}.hero-stats{grid-column:1/-1}}
@media (max-width:700px){.addon-hero{grid-template-columns:1fr;padding:20px}.hero-stats div{flex:1;min-width:0}.search{min-width:0;width:100%}.toolbar-end{width:100%}.toolbar-end .primary-action{width:100%}.addon-grid{grid-template-columns:1fr}
 dialog.sheet{margin:auto 0 0;width:100vw;height:auto;max-height:92dvh;border-radius:22px 22px 0 0}dialog.sheet[open]{animation:sheet-up .22s ease-out}.form-grid,.perm-grid{grid-template-columns:1fr}.stepper li{font-size:11.5px}}
@keyframes sheet-up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){dialog.sheet[open]{animation:none}.addon:hover{transform:none}}
.data-table{min-width:640px}.table-wrap{overflow-x:auto}

/* ---- The ARYA Store, inside the Hub. ---- */
.layout.is-store{grid-template-columns:minmax(0,1fr)}.is-store .sidebar,.is-store .sidebar-backdrop,.is-store #menu-toggle,.is-store .content>.heading{display:none}
.is-store .content{padding-top:20px}
.store{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:start}
.store-nav{position:sticky;top:12px;display:grid;gap:14px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;max-height:calc(100dvh - 24px);overflow:auto}
.store-back{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;margin:-4px -4px 0;border-radius:12px;background:linear-gradient(135deg,#0F054D,#3A0CA3);color:#fff;font-weight:650;font-size:13.5px;text-decoration:none;letter-spacing:.2px}.store-back:hover{filter:brightness(1.12)}.store-back:focus-visible{outline-color:#4907AF}
.store-brand{display:flex;gap:12px;align-items:center}.store-brand strong{display:block;font-size:19px;letter-spacing:-.4px}.store-brand small{color:var(--muted)}
.store-mine,.store-kind{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:6px 10px;border-radius:12px;border:0;background:transparent;color:var(--ink);font-weight:600;text-align:start;justify-content:flex-start}
.store-mine:hover,.store-kind:hover{background:#F4F2FB;filter:none}.store-mine.is-on,.store-kind.is-on{background:#ECE6FF;color:#3A0CA3}.store-mine span,.store-kind span:nth-child(2){flex:1}.store-mine b,.store-kind b{font-size:12px;min-width:24px;text-align:center;padding:2px 8px;border-radius:999px;background:#F4F2FB;color:#3D3A57;font-variant-numeric:tabular-nums}
.store-kinds{display:grid;gap:2px;border-top:1px solid var(--line);padding-top:10px}
.tile-xs{width:30px;height:30px;border-radius:9px}.store-others{font-weight:500;font-size:13.5px;color:#3D3A57;border-top:1px solid var(--line);padding-top:12px}
.store-main{display:grid;gap:26px;min-width:0}.store-head h1{font-size:28px;margin:0 0 4px}.store-head p{margin:0}
.store-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.store-section-head h2{margin:0;font-size:22px;letter-spacing:-.4px}
.link-button{min-height:44px;background:transparent;color:#4907AF;padding:0 8px;border:0;font-weight:650}.link-button:hover{filter:none;text-decoration:underline}
.carousel{display:grid;gap:12px}.slide{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:28px;align-items:center;min-height:240px;padding:34px 38px;border-radius:24px;color:#fff;background:#3A0CA3;background-image:linear-gradient(120deg,#0F054D 0%,#3A0CA3 70%,#7A0A6E 100%);overflow:hidden;position:relative}
.slide-text{display:grid;gap:10px;position:relative}.slide h2{font-size:34px;letter-spacing:-.8px;margin:0;color:#fff}.slide p{margin:0;color:#ECE6FF;max-width:52ch;line-height:1.55;font-size:16px}.slide .hero-eyebrow{color:#FFD3E8}
.slide-art{display:grid;place-items:center;height:200px;border-radius:50%;background:rgba(255,255,255,.1);box-shadow:0 0 0 14px rgba(255,255,255,.05),0 0 0 30px rgba(255,255,255,.03);color:#fff}
.dots{display:flex;gap:8px;justify-content:center}.dot{min-height:44px;width:44px;padding:0;background:transparent;border:0;position:relative}.dot::after{content:"";position:absolute;inset:17px;border-radius:50%;background:#C9C5DE}.dot[aria-current=true]::after{background:#4907AF;inset:15px}
.app-list{display:grid;border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden}
.app-row{display:grid;grid-template-columns:minmax(0,1fr) auto 190px;gap:18px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}.app-row:last-child{border-bottom:0}.app-row.is-soon{background:#FBFAFE}
.app-main{display:flex;gap:16px;align-items:center;min-width:0;color:inherit;text-decoration:none}.app-main:focus-visible{outline:2px solid #4907AF;outline-offset:4px;border-radius:12px}
.app-text{display:grid;gap:2px;min-width:0}.app-text strong{font-size:16.5px;letter-spacing:-.2px}.app-text span{color:#3D3A57;font-size:14px;line-height:1.45}.app-text small{color:var(--muted);font-size:12.5px}
.app-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:240px}
.app-buy{display:grid;gap:8px;justify-items:end}.app-buy .button{min-width:120px}.app-price{display:flex;align-items:baseline;gap:6px;justify-content:flex-end}.app-price strong{font-size:18px;font-variant-numeric:tabular-nums}.app-price small{color:var(--muted);font-size:12.5px}.app-soon{justify-self:end}
.crumbs{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13.5px}.crumbs a{color:#4907AF;font-weight:600}
.detail-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px 28px}.detail-title h1{font-size:30px;margin:0}.detail-title p{margin:2px 0 8px}
.detail-buy{display:grid;gap:10px;justify-items:end}.detail-buy .app-price strong{font-size:26px}
.detail-about p{max-width:70ch;line-height:1.65}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.detail-grid .panel{margin:0}
.facts{margin:0;display:grid;gap:12px}.facts div{display:grid;grid-template-columns:120px 1fr;gap:12px}.facts dt{color:var(--muted);font-weight:600;font-size:13.5px}.facts dd{margin:0}
.panel .panel-title{margin-bottom:12px}
@media (max-width:980px){.store{grid-template-columns:1fr}.store-nav{position:static;max-height:none}.store-kinds{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.slide{grid-template-columns:1fr;padding:26px}.slide-art{display:none}.app-row{grid-template-columns:minmax(0,1fr);gap:12px}.app-chips{justify-content:flex-start;max-width:none}.app-buy{grid-template-columns:1fr auto;justify-items:start;align-items:center}.detail-head{grid-template-columns:auto 1fr}.detail-buy{grid-column:1/-1;justify-items:start}}

.store-brand{background:transparent;border:0;padding:0;min-height:48px;justify-content:flex-start;text-align:start;color:inherit;cursor:pointer}.store-brand:hover{filter:none}
.store-others input{width:22px;min-height:22px;height:22px;padding:0;flex:none}
@media (max-width:980px){.store-nav{padding:12px;gap:10px}.store-kinds{display:flex;overflow-x:auto;gap:6px;padding:8px 0 4px;scrollbar-width:thin}.store-kind{flex:none;width:auto;white-space:nowrap;padding:6px 14px 6px 8px;border:1px solid var(--line);border-radius:999px;min-height:44px}.store-kind b{display:none}.store-brand{min-height:44px}}

/* ---- The update channel: the banner, the Updates page and xpanel's releases. ---- */
.update-banner{display:flex;gap:14px;align-items:center;margin:0 0 18px;padding:14px 18px;border-radius:16px;background:linear-gradient(135deg,#F7F5FD 0%,#ECE6FF 100%);border:1px solid #D9D0F5;color:var(--ink)}
.update-banner>div{flex:1;min-width:0}.update-banner strong{display:block;font-size:15px}.update-banner p{margin:2px 0 0;font-size:13.5px;color:#3D3A57;line-height:1.5}.update-banner .tile{background:#4907AF;color:#fff}.update-banner .button{min-height:44px;white-space:nowrap}
.update-banner.is-due{background:linear-gradient(135deg,#FFF8EE 0%,#FBEBDA 100%);border-color:#F0CFA6}.update-banner.is-due .tile{background:#B35309}
.update-banner.is-late{background:linear-gradient(135deg,#FFF3F3 0%,#FAE3E3 100%);border-color:#EDB4B4}.update-banner.is-late .tile{background:#B91C1C}
.how-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}.how-list li{display:flex;gap:14px;align-items:flex-start}.how-list p{margin:2px 0 0;font-size:13.5px}
.release-list{display:grid;gap:18px}
.release-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 24px;display:grid;gap:16px;box-shadow:0 1px 2px rgba(20,15,51,.04)}
.release-card header{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.release-card header>div:nth-child(2){flex:1;min-width:160px}.release-card h3{margin:2px 0 0;font-size:24px;letter-spacing:-.5px}.release-pills{display:flex;gap:8px;flex-wrap:wrap}
.release-notes{display:grid;gap:8px}.release-notes p{margin:0;line-height:1.55}.release-notes p:first-child{font-size:16px;font-weight:600}
.banner-bad{background:#FAE3E3;color:#7A1212}
.inline-stats{display:flex;gap:12px;margin:0}.inline-stats div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 18px;min-width:110px}.inline-stats dt{font-size:12px;font-weight:650;color:var(--muted)}.inline-stats dd{margin:2px 0 0;font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.rollout{display:flex;align-items:center;gap:10px;min-width:150px}.rollout-bar{flex:1;height:8px;border-radius:999px;background:#ECEAF5;overflow:hidden}.rollout-bar i{display:block;height:100%;background:linear-gradient(90deg,#4907AF,#D1056A);border-radius:999px}.rollout b{font-variant-numeric:tabular-nums;font-size:13px}
button.secondary.danger{color:#B91C1C;border-color:#EDB4B4}button.secondary.danger:hover{background:#FAE3E3;filter:none}.danger-action{background:#B91C1C;box-shadow:0 6px 18px rgba(185,28,28,.3)}.danger-action:hover{background:#8E1616}
.package-box{border:1px solid var(--line);border-radius:14px;padding:16px;margin:0;display:grid;gap:12px}.package-box legend{font-weight:650;padding:0 6px}.package-box[hidden]{display:none}.mono{font:13px ui-monospace,Consolas,monospace}
@media (max-width:700px){.update-banner{flex-wrap:wrap}.update-banner .button{width:100%}.inline-stats{width:100%}.inline-stats div{flex:1}}
.data-table td .button-row{display:flex;flex-wrap:nowrap;gap:10px}.data-table td button{white-space:nowrap}

/* ---- Layout polish for the Hub and xpanel: a field in a row of fields fills its label and never spills onto the next one; boxed rows and cards keep 16 px inside; a line that may be long wraps instead of being cut. */
.form-row label>:is(input,select,textarea){width:100%;min-width:0}
.mini{padding:16px}
.sd-row{padding:8px 16px}.sd-row-text small{white-space:normal;overflow:visible;overflow-wrap:anywhere}
@media (max-width:980px){.store-nav{padding:16px}}
/* Touch-first till and its embedded branch management workspace. */
.epos-admin.rail-collapsed{grid-template-columns:76px minmax(0,1fr)}.epos-admin.rail-collapsed .admin-sidebar-title>div,.epos-admin.rail-collapsed summary,.epos-admin.rail-collapsed .admin-sidebar-note,.epos-admin.rail-collapsed button>span{display:none}.epos-admin.rail-collapsed .epos-admin-sidebar button{justify-content:center;padding:12px}.epos-admin.rail-collapsed details{margin-bottom:14px}.epos-admin.rail-collapsed .admin-sidebar-title{padding:0;justify-content:center}.epos-admin.rail-collapsed .epos-admin-sidebar{padding:24px 9px}.terminal :focus-visible{outline:3px solid #bd821f;outline-offset:3px}@media(max-width:700px){.epos-admin.rail-collapsed{display:block}.epos-admin.rail-collapsed .epos-admin-sidebar{display:none}}
.terminal-mode{background:#eae9f2}.terminal{--t-blue:#4907AF;--t-teal:#D1056A;--t-line:#E2DFF0;--t-ink:#140F33;--t-muted:#5A5775;color:var(--t-ink);font-family:Inter,"Segoe UI",sans-serif;min-height:100dvh;display:flex;flex-direction:column}.terminal svg{width:21px;height:21px;flex:none}.terminal button{font-weight:600;border-radius:7px;min-height:48px}.terminal-header{height:72px;background:#1a104a;color:#fff;display:flex;align-items:center;gap:25px;padding:0 24px;flex:none;border-bottom:1px solid #3a3261}.terminal-brand{display:flex;align-items:center;gap:10px;flex:none}.terminal-mark{display:grid;place-items:center;width:33px;height:35px;border:1px solid #948cbb;color:#c2baee;border-radius:8px;font-size:23px;font-weight:700}.terminal-brand>strong{font-size:21px;letter-spacing:2px;line-height:1}.terminal-brand>strong>span{font-size:9px;display:block;letter-spacing:5px;margin-top:5px;color:#bdb6dd}.terminal-location{font-size:12px;font-weight:600}.terminal-location small{display:block;font-size:9px;color:#aba4d1;margin-top:5px;letter-spacing:1px}.terminal-header-end{margin-left:auto;display:flex;align-items:center;gap:16px}.terminal-network{display:flex;align-items:center;gap:7px;font-size:10px;color:#cec9e8}.terminal-network i{width:6px;height:6px;background:#8573dc;border-radius:50%}.terminal .t-icon{min-width:44px;width:44px;min-height:44px;padding:10px;background:transparent;color:#c9c3e8;border:1px solid #4e4770}.terminal .t-icon:hover{background:#322a5e}.terminal-user{display:flex;gap:10px;align-items:center;border-left:1px solid #4a436e;padding-left:18px;font-size:12px}.terminal-user small{display:block;font-size:10px;color:#b7b1d6;text-transform:capitalize;margin-top:4px}.terminal .t-signout{font-size:11px;min-height:38px;background:transparent;color:#d3cfe8;border:1px solid #4e4770;padding:8px 12px}.terminal .t-back{background:#eeecf7;color:#261e52;font-size:12px;min-height:40px}.terminal-message:empty{display:none}.terminal-message{padding:11px 24px;background:#e6e3f5;border-bottom:1px solid #c0bcd8;font-size:13px;line-height:1.5;color:#281e57}.terminal-message.is-error{background:#fff0e9;color:#8b3b28;border-color:#e0b8a9}.terminal-footer{height:32px;display:flex;align-items:center;justify-content:space-between;font-size:10px;padding:0 22px;background:#fff;color:#696289;border-top:1px solid var(--t-line);margin-top:auto;gap:12px}.terminal-sales{height:calc(100dvh - 104px);min-height:650px;display:grid;grid-template-columns:minmax(0,1fr) 355px}.terminal-work{min-width:0;background:#eae9f2;overflow:auto}.terminal-tabs{height:60px;display:flex;align-items:stretch;padding:0 22px;gap:8px;background:#f8f7fb;border-bottom:1px solid var(--t-line);position:sticky;top:0;z-index:5}.terminal-tabs button{min-width:110px;color:#6b648a;background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;font-size:12px;padding:12px 16px}.terminal-tabs button[aria-current=page]{border-bottom-color:#261091;color:#1d0c73}.terminal-tabs button svg{width:18px;height:18px}.terminal-session{font-size:10px;letter-spacing:1.6px;margin-left:auto;display:flex;align-items:center;color:#807b9a}.terminal-menu-tools{padding:25px 25px 18px;display:flex;justify-content:space-between;align-items:center;gap:18px}.t-eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#6c658d;margin:0}.terminal-search{display:flex;align-items:center;background:white;border:1px solid #cfcbe3;border-radius:7px;padding-left:12px;width:min(330px,60%);color:#7e779e}.terminal-search input{border:0;background:transparent;min-width:0;width:100%;font-size:12px;min-height:44px}.terminal-search svg{width:17px;height:17px}.terminal-categories{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 25px 25px}.terminal .category-tile{display:flex;align-items:start;justify-content:center;flex-direction:column;gap:9px;min-height:90px;padding:17px;background:#3721a2;color:white;border:2px solid transparent;text-align:left;font-size:13px;border-radius:8px}.category-tile small{font-size:10px;font-weight:400;opacity:.85}.terminal .category-all{background:#261869}.terminal .tone-0{background:#3d2e89}.terminal .tone-1{background:#50409f}.terminal .tone-2{background:#817250}.terminal .tone-3{background:#6d648d}.terminal .tone-4{background:#8c665b}.terminal .category-tile.selected{border-color:white;outline:2px solid #281970;outline-offset:1px;box-shadow:0 4px 9px #2a205e24}.product-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 25px 15px}.product-section-heading h2{font-size:17px;margin:0;letter-spacing:-.3px}.product-section-heading>span{font-size:10px;color:#6e678d}.terminal-product-grid{padding:0 25px 25px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.terminal .terminal-product{min-height:154px;display:flex;flex-direction:column;align-items:start;padding:16px;background:#fff;border:1px solid #d4d0e5;color:#2b244d;gap:8px;text-align:left;position:relative;box-shadow:0 2px 4px #29215004}.terminal .terminal-product:hover{border-color:#34238a;background:#f8f7fc;filter:none}.product-glyph{display:grid;place-items:center;width:34px;height:34px;background:#eeedf4;color:#6d668d;border-radius:7px;font-size:11px;font-weight:700}.terminal-product strong{font-size:13px;line-height:1.4}.terminal-product .product-category{font-size:10px;color:#7e7997;font-weight:400}.product-price{font-size:13px;color:#25137b;margin-top:auto}.terminal-ticket{background:#fff;border-left:1px solid #cfcbe0;display:flex;flex-direction:column;min-width:0;overflow:hidden}.ticket-title{padding:22px 22px 19px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--t-line);flex:none}.ticket-title h1{font-size:18px;letter-spacing:-.5px;margin:8px 0 0}.ticket-title>svg{width:23px;height:23px;color:#918baf}.ticket-number{font-size:10px;color:#918cad;letter-spacing:.7px;margin-left:14px;font-weight:500}.ticket-lines{overflow:auto;flex:1;min-height:120px}.ticket-empty{text-align:center;padding:60px 30px;color:#80799f}.ticket-empty>svg{width:42px;height:42px;color:#b5b1cb}.ticket-empty h2{font-size:15px;color:#4a436e;line-height:1.5;margin:22px 0 9px}.ticket-empty p{font-size:12px;line-height:1.7}.ticket-columns{padding:12px 20px;display:grid;grid-template-columns:1fr 35px 65px;gap:8px;font-size:9px;letter-spacing:1.2px;color:#8782a0;background:#f8f8fb}.ticket-columns span:last-child{text-align:right}.terminal .ticket-line{display:grid;grid-template-columns:1fr 35px 65px;align-items:center;gap:8px;text-align:left;width:100%;padding:16px 20px;border:0;border-bottom:1px solid #e6e5f0;border-radius:0;background:white;color:#2f2852;min-height:76px;font-size:12px;font-weight:500}.terminal .ticket-line.selected{background:#e9e6f5;box-shadow:inset 3px 0 #261097}.ticket-line>span>strong{display:block;font-size:12px}.ticket-line small{display:block;font-size:10px;color:#85809f;font-weight:400;margin-top:6px}.ticket-line>strong{text-align:right;font-size:12px}.ticket-actions{display:flex;gap:8px;align-items:center;padding:12px 20px;background:#eeedf6;flex:none;border-top:1px solid #dedbed}.terminal .ticket-actions button{width:38px;min-height:38px;background:white;border:1px solid #ccc8e0;color:#413677;padding:6px;border-radius:7px;font-size:19px}.ticket-actions>span{font-size:12px;min-width:25px;text-align:center}.terminal .ticket-actions button:last-child{font-size:10px;width:auto;margin-left:auto;padding:6px 12px}.ticket-summary{padding:22px 20px;flex:none;border-top:1px solid var(--t-line)}.ticket-summary>div{display:flex;justify-content:space-between;font-size:11px;color:#716b90;margin-bottom:18px}.ticket-summary>div strong{color:#372f5d}.ticket-summary .ticket-grand{align-items:center;font-size:15px;color:#39325e}.ticket-grand strong{font-size:32px;font-weight:650;letter-spacing:-1px}.ticket-summary>p{font-size:10px;color:#8b86a4;margin:-7px 0 22px}.ticket-summary .ticket-bottom{display:grid;grid-template-columns:1fr 1.5fr;gap:10px;margin:0}.terminal .ticket-bottom button{font-size:11px;background:#f6eded;color:#a14d40;border:1px solid #e5d1cc;min-height:54px;padding:12px 8px}.terminal .ticket-bottom .t-pay{background:#047857;color:white;border-color:#047857;font-size:13px}.terminal .t-pay:disabled{opacity:.4;cursor:default}.payment-screen{max-width:720px;margin:0 auto;padding:25px 30px}.terminal .payment-back{background:transparent;color:#5b5386;font-size:12px;padding:0;min-height:40px;margin-bottom:15px}.payment-screen>h2{font-size:29px;letter-spacing:-1px;margin:10px 0 22px}.payment-due{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#dfdbf1;border-radius:8px;margin-bottom:20px;font-size:13px}.payment-due strong{font-size:30px;letter-spacing:-1px}.cash-display{font-size:12px;margin-bottom:12px}.cash-display input{text-align:right;font-size:32px;min-height:70px;border-color:#c2bdda}.payment-keyboard{display:grid;grid-template-columns:1fr 115px;gap:10px}.numeric-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.terminal .numeric-pad button{min-height:67px;background:white;border:1px solid #cac6e0;color:#2f255f;font-size:24px;font-weight:500}.quick-cash{display:grid;gap:8px}.terminal .quick-cash button{background:#dddaee;border:1px solid #c8c4e0;color:#3a306c;font-size:13px;padding:8px}.payment-methods{display:grid;grid-template-columns:1.3fr 1fr;gap:10px;margin:20px 0 12px}.terminal .cash-method{background:#047857;color:white;min-height:58px}.payment-methods>button:disabled{background:#dcdae7;color:#6e698a;cursor:not-allowed;opacity:1}.payment-screen>.muted{font-size:11px}.payment-success{padding:20px;border:1px solid #aca5d1;background:#e8e5f5;border-radius:8px;color:#271d57;margin-top:18px;font-size:13px}.payment-success small{line-height:1.6}.t-empty{padding:45px 25px;text-align:center;color:#746d94;grid-column:1/-1}.t-order-list,.table-map{padding:26px}.t-order-list>article{display:flex;align-items:center;gap:22px;background:white;padding:20px;border-bottom:1px solid var(--t-line);font-size:13px}.t-order-list article>div{flex:1}.t-order-list small{display:block;color:#847ea1;font-size:10px;margin-top:7px}.table-map-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-top:23px}.dining-table{border:1px solid #cbc7e1;border-radius:10px;padding:22px;display:grid;place-items:center;gap:10px;background:#f9f9fc;min-height:130px}.dining-table svg{width:30px;height:30px;color:#7d72b5}.dining-table small{font-size:10px;color:#7d769f}.epos-admin{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100dvh - 104px)}.epos-admin-sidebar{background:#fff;border-right:1px solid #d9d6e8;padding:24px 14px;display:flex;flex-direction:column}.admin-sidebar-title{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:#3a3261;margin-bottom:32px;padding:0 8px}.admin-sidebar-title .terminal-mark{background:#eeedf6;border-color:#cac6df;color:#3a2e76}.admin-sidebar-title small{font-size:9px;display:block;color:#7c759e;font-weight:400;margin-top:5px}.epos-admin-sidebar details{margin-bottom:18px}.epos-admin-sidebar summary{font-size:9px;font-weight:700;letter-spacing:1.3px;color:#7d769f;padding:10px 10px;cursor:pointer}.terminal .epos-admin-sidebar button{display:flex;align-items:center;justify-content:start;gap:12px;width:100%;border:0;background:white;color:#585080;font-size:12px;font-weight:500;text-align:left;padding:11px 13px;min-height:45px}.epos-admin-sidebar button svg{width:17px;height:17px}.terminal .epos-admin-sidebar button[aria-current=page]{background:#e7e4f4;color:#210f7a;font-weight:650;box-shadow:inset 3px 0 #3a269e}.admin-sidebar-note{font-size:10px;line-height:1.7;color:#8a84a7;margin-top:auto;padding:18px 12px}.epos-admin-main{padding:32px 36px;min-width:0;max-width:1600px}.admin-page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.admin-page-heading h1{font-size:28px;letter-spacing:-1px;margin:10px 0 7px}.admin-page-heading p:last-child{font-size:12px;color:#7e789c;margin:0}.admin-card{border:1px solid #dad7ea;background:#fff;border-radius:10px;padding:25px;margin-bottom:23px;box-shadow:0 2px 4px #21175003}.admin-card h2{font-size:16px;color:#362e60;letter-spacing:-.3px;margin-bottom:25px}.admin-card-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid #e5e3f0;margin-bottom:23px;padding-bottom:18px}.admin-card-heading h2{margin:0}.admin-card-heading>span{font-size:10px;color:#8882a6}.admin-form{display:grid;gap:24px}.admin-form label{font-size:11px;color:#615a84;font-weight:600;gap:8px}.admin-form input,.admin-form select,.admin-form textarea{font-size:13px;min-height:46px;border:1px solid #cdc9e2;background:#fbfbfd;color:#3a3260;border-radius:6px;padding:11px 12px;width:100%}.admin-form textarea{font-family:inherit;resize:vertical}.admin-form input[readonly]{color:#807a9e;background:#f3f2f7}.admin-helper{font-size:11px;line-height:1.8;color:#8079a1;margin:0}.admin-checks{border:1px solid #dcd9eb;border-radius:7px;display:grid;gap:16px;padding:18px}.admin-checks legend{font-size:11px;color:#645d8a;padding:0 7px}.admin-checks label{display:flex;align-items:center;gap:12px}.admin-checks input{width:18px;min-height:18px;accent-color:#230e8c}.admin-form-footer{display:flex;justify-content:space-between;gap:25px;align-items:center;padding-top:20px;border-top:1px solid #e3e0ef}.admin-form-footer>span{font-size:10px;color:#8983a7;max-width:400px;line-height:1.7}.terminal .admin-primary{background:#210e82;color:white;font-size:12px;min-height:46px;padding:12px 22px;justify-self:start}.terminal .admin-small{background:#f8f7fb;border:1px solid #d2cee3;color:#594f8d;font-size:10px;min-height:34px;padding:6px 12px}.admin-card table{font-size:12px}.admin-card th{font-size:9px;letter-spacing:1px}.admin-card td{white-space:normal}.admin-search{max-width:350px;margin:0 0 20px;font-size:11px}.admin-search input{font-size:12px;border-color:#d6d2e7}.role-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.role-cards article{border:1px solid #dddaec;border-radius:8px;padding:20px;background:#fbfbfd}.role-cards h3{font-size:14px;text-transform:capitalize}.role-cards small{font-size:10px;color:#7d76a0}.role-cards ul{padding-left:16px;color:#6e6791;font-size:11px;line-height:1.9}.admin-report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.admin-report-metrics article{display:grid;gap:15px;padding:22px}.admin-report-metrics article>span{font-size:11px;color:#7e789d}.admin-report-metrics article>strong{font-size:29px;letter-spacing:-1px}.admin-report-metrics article>small{font-size:9px;color:#8e89aa}.terminal-dark .terminal-work{background:#1c153d}.terminal-dark .terminal-menu-tools .t-eyebrow,.terminal-dark .product-section-heading{color:#cac5e6}.terminal-dark .product-section-heading h2{color:#e6e3f4}.terminal-dark .terminal-product{background:#2f2756;color:white;border-color:#423a68}.terminal-dark .product-price{color:#b7afdf}.terminal-dark .product-glyph{background:#423a69;color:#c2bbe1}
@media(min-width:1600px){.terminal-product-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.terminal-sales{grid-template-columns:minmax(0,1fr) 390px}}
@media(max-width:1200px){.terminal-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.terminal-categories{grid-template-columns:repeat(3,minmax(0,1fr))}.terminal-header{gap:18px;padding:0 18px}.terminal-header-end{gap:10px}.terminal-network{display:none}.terminal-user{padding-left:10px}.terminal-sales{grid-template-columns:minmax(0,1fr) 320px}.epos-admin{grid-template-columns:205px minmax(0,1fr)}.epos-admin-main{padding:26px 24px}.role-cards{grid-template-columns:repeat(2,1fr)}.admin-report-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.terminal-location{display:none}.terminal-header{height:64px}.terminal-sales{height:auto;min-height:calc(100dvh - 96px);grid-template-columns:minmax(0,1fr) 300px}.terminal-tabs{padding:0 12px;gap:0}.terminal-tabs button{min-width:80px;padding:10px;font-size:11px}.terminal-session{display:none}.terminal-categories{padding:0 16px 20px;gap:8px}.terminal-menu-tools{padding:20px 16px 16px;align-items:start;flex-direction:column}.terminal-search{width:100%}.terminal-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 16px 20px;gap:9px}.product-section-heading{padding:0 16px 15px}.product-section-heading>span{display:none}.terminal .category-tile{min-height:76px;font-size:11px;padding:12px}.terminal .category-tile small{font-size:9px}.terminal-ticket{min-height:650px}.terminal-header-end .terminal-user>span{display:none}.terminal-user{border:0;padding:0}.table-map-grid{grid-template-columns:repeat(2,1fr)}.epos-admin{grid-template-columns:180px minmax(0,1fr)}.epos-admin-sidebar{padding:22px 9px}.epos-admin-main{padding:22px 18px}.admin-card{padding:20px}.admin-page-heading h1{font-size:25px}.role-cards{grid-template-columns:1fr}.payment-screen{padding:20px 17px}.payment-keyboard{grid-template-columns:1fr 85px}.terminal .numeric-pad button{min-height:60px}.payment-methods{grid-template-columns:1fr}}
@media(max-width:700px){.terminal-header{padding:0 14px;gap:10px}.terminal-brand>strong{font-size:17px}.terminal-header-end{gap:8px}.terminal-user{display:none}.terminal .t-signout{font-size:10px;padding:8px}.terminal-sales{display:block}.terminal-ticket{min-height:450px;border:1px solid #d0cce2;border-radius:10px;margin:18px}.terminal-work{overflow:visible}.terminal-tabs{position:static}.terminal-menu-tools{flex-direction:row;align-items:center}.terminal-search{width:65%}.terminal-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.terminal .terminal-product{min-height:145px;padding:12px}.terminal-product strong{font-size:12px}.terminal-categories{grid-template-columns:repeat(3,minmax(0,1fr))}.ticket-empty{padding:35px 22px}.ticket-lines{min-height:160px}.terminal-footer{height:auto;min-height:36px;font-size:9px;flex-wrap:wrap;padding:10px 15px}.epos-admin{display:block}.epos-admin-sidebar{border-right:0;border-bottom:1px solid #d9d6e8;display:block;padding:15px}.admin-sidebar-title,.admin-sidebar-note{display:none}.epos-admin-sidebar details{margin:0 0 8px}.epos-admin-sidebar summary{padding:8px}.terminal .epos-admin-sidebar button{display:inline-flex;width:auto;margin:3px 4px 3px 0;font-size:11px;min-height:40px;border-radius:6px}.admin-page-heading{margin-bottom:22px}.admin-page-heading h1{font-size:24px}.admin-form-footer{flex-direction:column;align-items:start}.admin-report-metrics{gap:10px}.admin-report-metrics article{padding:17px}.admin-report-metrics article>strong{font-size:25px}.terminal .t-back{font-size:11px;padding:8px 11px}.t-back svg{display:none}}
@media(max-width:400px){.terminal-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.terminal-brand .terminal-mark{display:none}.terminal-menu-tools .t-eyebrow{font-size:8px}.terminal-header-end{gap:5px}.terminal .t-icon{width:36px;min-width:36px;min-height:38px;padding:7px}.terminal .t-signout{padding:7px}.terminal-header{gap:7px}}
@media(prefers-reduced-motion:reduce){.terminal *{transition:none!important;animation:none!important}}
/* The owner's logo, on a white plate as the design says, never redrawn. */
img.terminal-mark{background:#FFFFFF;border:0;padding:2px;object-fit:contain}
/* The one sign-in layout, drawn by sign-in.mjs. Colours are tokens.json; a panel re-themes it by setting the --auth-* properties on .auth. */
.auth{--auth-start:#0F054D;--auth-mid:#3A0CA3;--auth-end:#B3096F;--auth-pink:#FD0679;--auth-accent:#D1056A;--auth-accent-pressed:#A80455;--auth-ink:#140F33;--auth-muted:#5A5775;--auth-line:#E2DFF0;--auth-boundary:#7F7B9E;--auth-focus:#4907AF;--auth-soft:#ECE6FF;--auth-danger:#B91C1C;--auth-surface:#FFFFFF;
  display:grid;grid-template-columns:minmax(440px,1fr) minmax(0,1.12fr);min-height:100vh;min-height:100dvh;background:var(--auth-surface);color:var(--auth-ink)}
.auth-main{display:flex;flex-direction:column;min-width:0;padding:32px clamp(28px,5vw,72px) 28px}
.auth-head{display:flex;align-items:center;gap:14px;min-height:48px}
.auth-head .brand-plate{padding:0;background:transparent;border-radius:0}
.auth-panel{font-size:14px;font-weight:600;color:var(--auth-muted);padding-left:14px;border-left:1px solid var(--auth-line);line-height:24px;white-space:nowrap}
.auth-body{width:100%;max-width:400px;margin:auto;padding:48px 0;animation:auth-in .42s cubic-bezier(.2,0,0,1) both}
.auth-body h1{font-size:34px;line-height:40px;letter-spacing:-.9px;margin:0 0 10px}
.auth-lead{font-size:16px;line-height:24px;color:var(--auth-muted);margin:0 0 30px}
.auth #message{margin-bottom:20px;font-size:14px;line-height:20px;border-radius:12px}
.auth #message.error{display:block;padding:12px 14px;border-left:4px solid var(--auth-danger)}
.auth-form{display:grid;gap:20px}
.auth-field{display:grid;gap:8px}
.auth-field label{font-size:14px;line-height:20px;font-weight:600;color:var(--auth-ink)}
.auth-control{position:relative}
.auth-control input{display:block;width:100%;max-width:none;min-height:52px;padding:13px 16px;border:1px solid var(--auth-boundary);border-radius:12px;background:var(--auth-surface);color:var(--auth-ink);font-size:16px;line-height:24px;transition:border-color .12s,box-shadow .12s}
.auth-control input:hover{border-color:var(--auth-muted)}
.auth-control input:focus{border-color:var(--auth-focus);box-shadow:0 0 0 1px var(--auth-focus)}
.auth-control input:focus-visible{outline:2px solid var(--auth-focus);outline-offset:2px}
.auth-control input[aria-invalid=true]{border-color:var(--auth-danger);box-shadow:0 0 0 1px var(--auth-danger)}
.auth-control input[name=code]{letter-spacing:.3em;font-variant-numeric:tabular-nums}
.auth-control:has(.auth-reveal) input{padding-right:88px}
.auth .auth-reveal{position:absolute;top:4px;right:4px;bottom:4px;min-height:44px;min-width:72px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--auth-focus);font-size:14px;font-weight:600}
.auth .auth-reveal:hover{background:var(--auth-soft);filter:none}
.auth-error{display:flex;gap:6px;align-items:flex-start;margin:0;font-size:14px;line-height:20px;font-weight:500;color:var(--auth-danger)}
.auth-error::before{content:"!";display:inline-grid;place-items:center;flex:none;width:18px;height:18px;margin-top:1px;border-radius:50%;background:var(--auth-danger);color:#FFFFFF;font-size:12px;font-weight:800;line-height:1}
.auth .auth-submit{width:100%;min-height:52px;margin-top:6px;border-radius:12px;background:var(--auth-accent);color:#FFFFFF;font-size:16px;font-weight:650;box-shadow:0 4px 12px #D1056A40;transition:background-color .12s,box-shadow .12s}
.auth .auth-submit:hover{background:var(--auth-accent-pressed);filter:none}
.auth .auth-submit:active{box-shadow:none}
.auth .auth-submit:disabled{opacity:1;cursor:progress;background:var(--auth-accent-pressed)}
.auth-submit[aria-busy=true]::before{content:"";width:18px;height:18px;flex:none;border:2px solid #FFFFFF66;border-top-color:#FFFFFF;border-radius:50%;animation:auth-spin .8s linear infinite}
.auth-note{list-style:none;display:grid;gap:10px;margin:28px 0 0;padding:20px 0 0;border-top:1px solid var(--auth-line)}
.auth-note li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:20px;color:var(--auth-muted)}
.auth-note svg{flex:none;margin-top:1px;color:var(--auth-focus)}
.auth-foot{font-size:12px;line-height:16px;letter-spacing:.3px;color:var(--auth-muted)}
/* The brand side: the logo's gradient, one of the website's photographs and three cards from the product's own screens. */
.auth-brand{position:sticky;top:16px;height:calc(100vh - 32px);height:calc(100dvh - 32px);min-height:560px;margin:16px 16px 16px 0;border-radius:24px;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(28px,4vw,56px);color:#FFFFFF;background-color:var(--auth-start);background-size:cover;background-position:center}
.auth-brand::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 70% at 100% 100%,#B3096FCC 0%,#B3096F00 60%),linear-gradient(180deg,#0F054D59 0%,#3A0CA31F 34%,#0F054DD9 68%,#0F054DF7 100%)}
/* Each photograph is cropped to keep its till or screen in the frame. */
.auth-scene-restaurant{background-image:url(/sign-in/restaurant.webp);background-position:32% center}
.auth-scene-kitchen{background-image:url(/sign-in/kitchen.webp);background-position:56% top}
.auth-scene-market{background-image:url(/sign-in/market.webp);background-position:64% center}
.auth-scene-takeaway{background-image:url(/sign-in/takeaway.webp);background-position:86% center}
.auth-pitch{max-width:520px}
.auth-pitch-panel{display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;font-size:14px;line-height:20px;font-weight:700;letter-spacing:.6px;color:#ECE6FF}
.auth-pitch-panel::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--auth-pink)}
.auth-pitch h2{font-size:clamp(26px,2.6vw,36px);line-height:1.15;letter-spacing:-.8px;margin:0 0 12px;color:#FFFFFF;text-wrap:balance}
.auth-body h1{text-wrap:balance}.auth-lead,.auth-pitch p{text-wrap:pretty}
.auth-pitch p{font-size:16px;line-height:24px;margin:0;color:#ECE6FF}
.auth-cards{list-style:none;margin:0;padding:0}
.auth-card{position:absolute;display:flex;align-items:center;gap:12px;min-width:208px;padding:12px 18px 12px 12px;border-radius:16px;background:#FFFFFFF2;color:var(--auth-ink);box-shadow:0 16px 48px #0F054D52;animation:auth-rise .6s cubic-bezier(.2,0,0,1) both}
/* The cards sit where each photograph has nothing to show, never over the product's own screen. */
.auth-card-1{top:8%;left:6%;animation-delay:.12s}
.auth-card-2{top:22%;right:6%;animation-delay:.22s}
.auth-card-3{top:50%;left:6%;animation-delay:.32s}
.auth-scene-restaurant .auth-card-2{top:12%}
.auth-scene-restaurant .auth-card-3{top:56%;left:auto;right:8%}
.auth-scene-market .auth-card-3{top:63%;left:auto;right:4%}
.auth-scene-takeaway .auth-card-3{top:62%}
.auth-scene-kitchen .auth-card-1{top:40%;left:auto;right:6%}
.auth-scene-kitchen .auth-card-2{top:52%;right:auto;left:6%}
.auth-scene-kitchen .auth-card-3{top:64%;left:auto;right:10%}
.auth-card-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:var(--auth-soft);color:var(--auth-focus)}
.auth-card-icon svg{display:block}
.auth-card-words{display:grid;gap:2px}
.auth-card strong{font-size:14px;line-height:20px;font-weight:650;white-space:nowrap}
.auth-card-words span{font-size:13px;line-height:18px;color:var(--auth-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.auth-card-3 .auth-card-words span{display:flex;align-items:center;gap:6px}
.auth-card-3 .auth-card-words span::before{content:"";width:8px;height:8px;border-radius:50%;background:#047857;box-shadow:0 0 0 3px #04785733}
@keyframes auth-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes auth-rise{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@keyframes auth-spin{to{transform:rotate(360deg)}}
@media(max-width:1180px){.auth{grid-template-columns:minmax(420px,1fr) minmax(0,1fr)}.auth-card-3{left:12%}}
@media(max-height:700px) and (min-width:901px){.auth-card-3{display:none}}
/* A phone or a narrow tablet: the photograph goes, the gradient stays as a slim header, and the form comes first. */
@media(max-width:900px){
  .auth{display:block}
  .auth-brand{display:none}
  .auth-main{min-height:100vh;min-height:100dvh;padding:0}
  .auth-head{padding:14px 20px;min-height:72px;background:linear-gradient(135deg,var(--auth-start) 0%,var(--auth-mid) 80%,var(--auth-end) 100%)}
  .auth-head .brand-plate{padding:6px 14px 6px 6px;background:#FFFFFF;border-radius:12px}
  .auth-panel{color:#FFFFFF;border-left-color:#FFFFFF59}
  .auth-body{max-width:480px;margin:0 auto;padding:32px 20px 28px}
  .auth-body h1{font-size:28px;line-height:34px}
  .auth-lead{margin-bottom:24px}
  .auth-foot{padding:0 20px 24px;max-width:480px;margin:auto auto 0;width:100%}
}
@media(prefers-reduced-motion:reduce){.auth-body,.auth-card{animation:none}.auth-submit[aria-busy=true]::before{animation:none;border-top-color:#FFFFFF66}.auth-control input{transition:none}}
