:root{--bg: #f4efe6;--bg-elevated: #fffdf8;--surface: #ffffff;--surface-muted: #ebe4d8;--ink: #1a241e;--ink-muted: #4d5c54;--ink-subtle: #6b7a72;--brand: #1a3d2f;--brand-hover: #143328;--brand-soft: #2a5543;--accent: #a6bf4b;--accent-soft: #dce8b0;--accent-ink: #2f3d12;--danger: #8f2f2f;--danger-soft: #f5e0e0;--warn: #8a5a12;--warn-soft: #f5ead6;--ok: #1f6b45;--ok-soft: #d9eee3;--info: #2a5478;--tile-0: #1a3d2f;--tile-1: #2f4f6b;--tile-2: #5c3d2e;--tile-3: #3d4a2a;--tile-4: #4a3558;--tile-5: #1f4f4a;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--shadow-sm: 0 1px 2px rgba(26, 36, 30, .06);--shadow-md: 0 6px 18px rgba(26, 36, 30, .08);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--nav-height: 4.25rem;--sidebar-width: 15rem;--touch: 44px;--focus: 0 0 0 3px var(--accent-soft), 0 0 0 5px var(--brand);--font-ui: "Avenir Next", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-wordmark: "Avenir Next Condensed", "Avenir Next", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--motion-fast: .12s;--motion-med: .2s;color-scheme:light}@media(prefers-reduced-motion:reduce){:root{--motion-fast: 0ms;--motion-med: 0ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*{box-sizing:border-box}html,body,#root{min-height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;color:var(--ink);font-family:var(--font-ui);background:var(--bg);line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--brand-soft)}button,.button,input,select,textarea,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:none;box-shadow:var(--focus)}.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}.wordmark{font-family:var(--font-wordmark);font-weight:700;letter-spacing:-.04em;color:var(--brand);margin:0}.wordmark--hero{font-size:clamp(2.25rem,8vw,3rem)}.wordmark--nav{font-size:1.35rem}.muted{color:var(--ink-muted);font-size:.95rem}.subtle{color:var(--ink-subtle);font-size:.85rem}.app-shell{min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr);background:var(--bg)}.app-shell--chrome-hidden{grid-template-columns:minmax(0,1fr)}.app-main{min-width:0;padding:var(--space-4);padding-bottom:calc(var(--nav-height) + var(--space-6) + 1.25rem + env(safe-area-inset-bottom,0px));padding-top:calc(var(--space-4) + env(safe-area-inset-top,0px));padding-left:calc(var(--space-4) + env(safe-area-inset-left,0px));padding-right:calc(var(--space-4) + env(safe-area-inset-right,0px))}.app-main--checkout{padding:0;max-width:none;width:100%}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.sync-chip{display:inline-flex;align-items:center;gap:.4rem;min-height:2rem;padding:.25rem .7rem;border-radius:var(--radius-sm);background:var(--surface);border:1px solid rgba(26,61,47,.1);box-shadow:var(--shadow-sm);color:var(--ink-muted);font-size:.8rem;font-weight:600}.sync-chip[data-tone=ok]{color:var(--ok);background:var(--ok-soft);border-color:transparent}.sync-chip[data-tone=pending]{color:var(--warn);background:var(--warn-soft);border-color:transparent}.sync-chip[data-tone=offline]{color:var(--ink-muted)}.sync-dot{width:.5rem;height:.5rem;border-radius:50%;background:currentColor;flex-shrink:0}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;justify-items:center;gap:0;min-height:var(--nav-height);padding:var(--space-1) var(--space-2) calc(var(--space-1) + env(safe-area-inset-bottom,0px));background:var(--bg-elevated);border-top:1px solid rgba(26,61,47,.1);box-shadow:0 -4px 16px #1a241e0d}.bottom-nav .nav-item{width:100%;max-width:6.5rem}.nav-item{display:grid;justify-items:center;align-content:center;gap:.2rem;min-height:var(--touch);padding:.4rem .35rem;border-radius:var(--radius-sm);color:var(--ink-muted);text-decoration:none;font-size:.7rem;font-weight:600;background:transparent;border:0;cursor:pointer}.nav-item[aria-current=page]{color:var(--brand);background:var(--accent-soft)}.nav-item[aria-current=page] svg{stroke-width:2.1}.nav-item--home svg{width:1.55rem;height:1.55rem}.nav-item svg{width:1.4rem;height:1.4rem}.sidebar{display:none}@media(min-width:900px){.app-shell:not(.app-shell--chrome-hidden){grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;gap:var(--space-4);padding:calc(var(--space-5) + env(safe-area-inset-top,0px)) var(--space-4) var(--space-5);border-right:1px solid rgba(26,61,47,.1);background:var(--bg-elevated);position:sticky;top:0;height:100dvh}.sidebar-nav{display:grid;gap:var(--space-1)}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch);padding:.6rem .85rem;border-radius:var(--radius-sm);color:var(--ink-muted);text-decoration:none;font-weight:600}.sidebar-link[aria-current=page]{color:var(--brand);background:var(--accent-soft)}.sidebar-add{min-height:var(--touch);border-radius:var(--radius-md);border:0;background:var(--brand);color:#f7faf7;font-weight:700;cursor:pointer;text-decoration:none;display:grid;place-items:center}.bottom-nav,.top-bar{display:none}.app-main{padding:var(--space-5) var(--space-6);padding-bottom:var(--space-6);max-width:1100px}.app-main--checkout{padding:0;max-width:none;width:100%}}.row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.stack{display:grid;gap:var(--space-3)}.panel{background:var(--surface);border:1px solid rgba(26,61,47,.08);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm)}button,.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:var(--radius-sm);min-height:var(--touch);padding:.65rem 1.1rem;background:var(--brand);color:#f7faf7;font:inherit;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;text-decoration:none}button:hover,.button:hover{background:var(--brand-hover)}button:disabled,.button:disabled{opacity:.55;cursor:not-allowed}button.secondary,.button.secondary{background:var(--surface);color:var(--brand);border:1px solid rgba(26,61,47,.22)}button.secondary:hover,.button.secondary:hover{background:var(--surface-muted)}button.ghost,.button.ghost{background:transparent;color:var(--brand);border:0}button.danger,.button.danger{background:var(--danger);color:#fff}button.icon-btn,a.icon-btn{width:var(--touch);min-width:var(--touch);padding:0;border-radius:var(--radius-sm);background:var(--surface);color:var(--brand);border:1px solid rgba(26,61,47,.15);display:inline-grid;place-items:center;text-decoration:none}input,select,textarea{width:100%;min-width:0;min-height:var(--touch);padding:.65rem .8rem;border-radius:var(--radius-sm);border:1px solid rgba(26,61,47,.22);background:var(--surface);color:var(--ink);font:inherit;font-size:max(16px,1rem)}textarea{min-height:6rem;resize:vertical}label{display:grid;gap:.35rem;font-size:.9rem;font-weight:600;color:var(--ink)}label .hint{font-weight:500;color:var(--ink-muted);font-size:.85rem}.checkbox-row{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch);font-weight:600}.checkbox-row input{width:1.25rem;height:1.25rem;min-height:0}.page-header{display:grid;gap:var(--space-2);margin-bottom:var(--space-4)}.page-header--with-action{grid-template-columns:1fr auto;align-items:start;gap:var(--space-3)}.page-header h1{margin:0;font-size:1.65rem;letter-spacing:-.02em}.page-header-add{display:none;align-items:center;gap:.35rem;min-height:var(--touch);padding:.45rem .9rem;border-radius:var(--radius-sm);background:var(--brand);color:#f7faf7;text-decoration:none;font-weight:700;font-size:.9rem}.page-header-add svg{width:1.1rem;height:1.1rem}@media(max-width:899px){.page-header-add{display:inline-flex}}.search-field{position:relative}.search-field svg{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);width:1.1rem;height:1.1rem;color:var(--ink-subtle);pointer-events:none}.search-field input{padding-left:2.4rem}.filter-row{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1);scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-chip{flex:0 0 auto;min-height:2.5rem;padding:.4rem .9rem;border-radius:var(--radius-sm);border:1px solid rgba(26,61,47,.16);background:var(--surface);color:var(--ink-muted);font:inherit;font-weight:650;font-size:.88rem;cursor:pointer}.filter-chip[aria-pressed=true]{background:var(--brand);color:#f7faf7;border-color:var(--brand)}.card-grid{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:900px){.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1200px){.card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.card-tile{display:grid;grid-template-rows:auto 1fr auto;gap:var(--space-2);aspect-ratio:1.586 / 1;padding:var(--space-3);border-radius:var(--radius-md);text-decoration:none;color:#f7faf7;box-shadow:var(--shadow-md);position:relative;overflow:hidden;transition:transform var(--motion-fast) ease;min-height:0}.card-tile:hover{transform:translateY(-1px)}.card-tile--has-logo{display:block;padding:0;box-shadow:var(--shadow-md),inset 0 0 0 1px #0f171214}.card-tile__face{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.card-tile__face img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;box-sizing:border-box;padding:2%;transform:scale(1.5)}.card-tile--has-logo .card-tile__meta{position:absolute;top:0;left:0;right:0;z-index:1;margin:0;padding:var(--space-2) var(--space-3);justify-content:flex-end;pointer-events:none}.card-tile__favourite{position:absolute;top:var(--space-2);right:var(--space-2);z-index:1;display:inline-flex;color:#111;filter:drop-shadow(0 0 2px rgba(255,255,255,.9))}.card-tile__brand{display:flex;justify-content:flex-start}.card-tile__mark{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:.45rem;font-size:.85rem;font-weight:800;letter-spacing:-.02em;color:#fff;background:#00000047}.card-tile__top{display:flex;justify-content:space-between;gap:var(--space-2);align-items:flex-start}.card-tile__name{margin:0;font-size:clamp(.85rem,2.8vw,1.05rem);font-weight:700;letter-spacing:-.02em;line-height:1.2;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-tile__meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto}.color-picker{display:flex;flex-wrap:wrap;gap:.5rem}.color-swatch{width:2.25rem;height:2.25rem;border-radius:999px;border:2px solid transparent;padding:0;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff40}.color-swatch[aria-checked=true]{border-color:var(--ink);box-shadow:var(--focus)}.button.danger-outline,button.danger-outline{background:transparent;color:var(--danger);border:1px solid var(--danger)}.button.danger-outline:hover,button.danger-outline:hover{background:var(--danger-soft)}.badge{display:inline-flex;align-items:center;gap:.3rem;min-height:1.6rem;padding:.15rem .55rem;border-radius:.45rem;font-size:.75rem;font-weight:700;background:#ffffff2e;color:inherit}.badge--on-light{background:var(--surface-muted);color:var(--ink)}.empty-state{display:grid;gap:var(--space-3);justify-items:start;padding:var(--space-5) var(--space-4);border-radius:var(--radius-md);background:var(--surface);border:1px dashed rgba(26,61,47,.22)}.empty-state h2{margin:0;font-size:1.2rem}.empty-state p{margin:0;color:var(--ink-muted);max-width:36ch}.barcode-stage{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);background:#fff;border-radius:var(--radius-md);border:1px solid rgba(26,61,47,.08);box-shadow:var(--shadow-sm)}a.barcode-stage--open{color:inherit;text-decoration:none;cursor:zoom-in;transition:box-shadow .12s ease,border-color .12s ease}a.barcode-stage--open:hover,a.barcode-stage--open:focus-visible{border-color:#1a3d2f38;box-shadow:var(--shadow-md);outline:none}.barcode-wrap{min-width:0;max-width:100%;display:grid;justify-items:center;gap:var(--space-2)}.barcode-wrap canvas{display:block;max-width:100%;width:auto;height:auto}.barcode-wrap[data-matrix=true] canvas{aspect-ratio:1;width:min(100%,18rem);height:auto;object-fit:contain}.barcode-value{font-family:var(--font-mono);margin:0;letter-spacing:.05em;font-size:1rem;color:var(--ink);overflow-wrap:anywhere;text-align:center}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.detail-header__title{display:flex;align-items:flex-start;gap:var(--space-3);min-width:min(100%,16rem);flex:1 1 14rem}.detail-header__text{min-width:0}.detail-header__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.detail-header h1{margin:0;font-size:1.55rem;letter-spacing:-.02em;overflow-wrap:anywhere}.menu{position:relative}.menu-panel{position:absolute;right:0;top:calc(100% + .35rem);z-index:20;min-width:12rem;padding:var(--space-2);background:var(--surface);border:1px solid rgba(26,61,47,.12);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:grid;gap:.15rem}.menu-panel button,.menu-panel a{justify-content:flex-start;background:transparent;color:var(--ink);border:0;border-radius:var(--radius-sm);min-height:var(--touch);font-weight:600;text-decoration:none}.menu-panel button:hover,.menu-panel a:hover{background:var(--surface-muted)}.menu-panel .danger-item{color:var(--danger)}.checkout-screen{min-height:100svh;width:100%;max-width:100%;box-sizing:border-box;background:#fff;display:grid;grid-template-rows:auto 1fr auto;padding:calc(var(--space-3) + env(safe-area-inset-top,0px)) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom,0px))}.checkout-screen__header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-2)}.checkout-screen .barcode-stage{border:0;box-shadow:none;align-self:center;justify-self:stretch;width:100%;max-width:min(40rem,100%);margin-inline:auto;padding:var(--space-6) var(--space-3);box-sizing:border-box}.checkout-screen .barcode-wrap{width:100%;display:grid;justify-items:center}.checkout-screen h1{margin:0;text-align:center;font-size:1.15rem;min-width:0;overflow-wrap:anywhere}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#121c1673;display:grid;align-items:end;padding:0}@media(min-width:900px){.overlay{align-items:center;justify-items:center;padding:var(--space-5)}}.sheet{width:min(520px,100%);background:var(--bg-elevated);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-md);display:grid;gap:var(--space-3);max-height:min(92dvh,900px);overflow:auto}@media(min-width:900px){.sheet{border-radius:var(--radius-lg);padding-bottom:var(--space-4)}}.sheet-handle{width:2.5rem;height:.3rem;border-radius:999px;background:#1a3d2f33;margin:0 auto var(--space-1)}@media(min-width:900px){.sheet-handle{display:none}}.choice-grid{display:grid;gap:var(--space-3)}.choice-card{display:grid;gap:var(--space-2);justify-items:start;text-align:left;min-height:5.5rem;padding:var(--space-4);border-radius:var(--radius-md);border:1px solid rgba(26,61,47,.14);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none}button.choice-card{width:100%;font-weight:inherit;align-items:start;justify-content:start}button.choice-card:hover{background:var(--accent-soft);color:var(--ink)}button.choice-card:disabled{opacity:.65}.choice-card:hover{border-color:var(--brand);background:var(--accent-soft)}.choice-card[aria-disabled=true]{opacity:.65;cursor:not-allowed}.choice-card[aria-disabled=true]:hover{border-color:#1a3d2f24;background:var(--surface)}.choice-card strong{font-size:1.05rem}.choice-card span{color:var(--ink-muted);font-size:.9rem}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:end center;padding:0;background:#0a120eb8}@media(min-width:900px){.scanner-overlay{place-items:center;padding:var(--space-5)}}.scanner-panel{width:100%;max-width:min(40rem,100%);box-sizing:border-box;background:var(--bg-elevated);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));display:grid;gap:var(--space-3)}.scanner-panel .stack>.secondary,.scanner-panel .stack>button{width:100%}@media(min-width:900px){.scanner-panel{border-radius:var(--radius-lg);padding-bottom:var(--space-4)}}.scanner-viewport{position:relative;overflow:hidden;border-radius:var(--radius-md);background:#0a120e;aspect-ratio:3 / 4;max-height:min(62vh,520px)}.scanner-viewport video{width:100%;height:100%;object-fit:cover;display:block}.scanner-frame{pointer-events:none;position:absolute;top:18%;right:12%;bottom:18%;left:12%;border:2px solid rgba(244,250,246,.92);border-radius:12px;box-shadow:0 0 0 999px #00000047;transition:opacity .16s ease,border-color .16s ease}.scanner-frame--dim{opacity:.35;border-color:#f4faf666}.scanner-viewport--locked video{filter:saturate(1.05) contrast(1.04)}.scanner-highlight{pointer-events:none;position:absolute;border:2.5px solid var(--accent);border-radius:10px;box-shadow:0 0 0 2px #1a3d2f8c,0 0 0 999px #00000038;background:#a6bf4b1f;animation:scanner-lock-in .42s cubic-bezier(.2,.8,.2,1) both}.scanner-highlight--frame{top:18%;right:12%;bottom:18%;left:12%}.scanner-status-ok{color:var(--ok);font-weight:600}@keyframes scanner-lock-in{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.scanner-highlight{animation:none}}.account-page{max-width:44rem;margin-inline:auto;overflow-wrap:anywhere}.account-page p{margin:0}.account-identity{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5)}.account-identity__name{font-size:1.2rem;font-weight:700}.account-section{margin-top:var(--space-5)}.account-section h2{margin:0 0 var(--space-2);padding-inline:var(--space-4);font-size:1rem}.account-group{padding:0}.account-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4)}.account-row+.account-row{border-top:1px solid var(--surface-muted)}.account-row>:first-child{flex:1 1 13rem;min-width:0}.account-row>button{margin-inline-start:auto}.account-sync-details{display:grid}.auth-screen{min-height:100svh;display:grid;place-items:center;padding:calc(var(--space-5) + env(safe-area-inset-top,0px)) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom,0px));background:var(--bg)}.auth-screen .panel{width:min(420px,100%);display:grid;gap:var(--space-3)}.avatar{border-radius:50%;object-fit:cover;flex-shrink:0;background:#1a3d2f14}.avatar--fallback{display:inline-flex;align-items:center;justify-content:center;font-weight:600;color:var(--text)}.person-row,.grant-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid rgba(26,61,47,.08)}.person-row:last-child,.grant-row:last-child{border-bottom:0}.callout{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--warn-soft);color:var(--warn);font-size:.92rem}.callout--info{background:var(--ok-soft);color:var(--ok)}.callout--danger{background:var(--danger-soft);color:var(--danger)}.conflict-compare{display:grid;gap:var(--space-3)}@media(min-width:700px){.conflict-compare{grid-template-columns:1fr 1fr}}.conflict-side{display:grid;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid rgba(26,61,47,.1)}.conflict-side h3{margin:0;font-size:.95rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em}.status-banner{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--warn-soft);margin-bottom:var(--space-3)}.dev-only{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px dashed rgba(26,61,47,.2)}.preview-barcode{margin-top:var(--space-2)}.pass-actions{display:grid;gap:var(--space-2);margin-top:var(--space-3)}.disclosure-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;text-align:left;background:transparent;color:inherit;border:0;padding:.75rem;min-height:56px}.disclosure-row.panel{background:var(--surface, #fff)}.disclosure-row .subtle{display:block;margin-top:.25rem;font-weight:400}.household-details{border-top:1px solid #dce3df;padding-top:1rem;margin-top:.5rem}.compact-status{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;font-size:.85rem}.card-filter-select{margin-left:auto}.card-filter-select select{min-height:44px;width:auto;max-width:100%}.choice-card--primary{border:2px solid currentColor}.sheet{max-height:90dvh;overflow-y:auto}.brand-logo{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:88px;height:52px;padding:6px 8px;border-radius:.5rem;background:#fff}.brand-logo img{display:block;width:100%;height:100%;object-fit:contain}.brand-preview{display:flex;align-items:center;gap:.75rem}.loading-indicator{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.loading-spinner{width:1em;height:1em;flex:0 0 auto;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:loading-spin .8s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}.operation-fields{border:0;margin:0;padding:0;min-width:0}.card-skeleton{min-height:140px;padding:1rem;border-radius:var(--radius-lg);background:var(--surface-muted, #e5e7e3);display:flex;flex-direction:column;justify-content:space-between;gap:1rem}.skeleton{display:block;background:#64736929;border-radius:.4rem;animation:skeleton-pulse 1.5s ease-in-out infinite alternate}.skeleton-logo{width:88px;height:52px}.skeleton-title{width:70%;height:16px}@keyframes skeleton-pulse{to{opacity:.4}}@media(prefers-reduced-motion:reduce){.loading-spinner,.skeleton{animation:none}}.marketing{min-height:100svh;background:radial-gradient(120% 80% at 100% 0%,rgba(166,191,75,.18),transparent 55%),radial-gradient(90% 60% at 0% 100%,rgba(26,61,47,.08),transparent 50%),var(--bg)}.marketing-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:calc(var(--space-3) + env(safe-area-inset-top,0px)) var(--space-4) var(--space-3);max-width:72rem;margin:0 auto}.marketing-nav__brand{text-decoration:none;color:var(--brand)}.marketing-nav__links{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end}.marketing-nav__links a:not(.button){color:var(--ink-muted);text-decoration:none;font-size:.95rem;min-height:var(--touch);display:inline-flex;align-items:center}.marketing-nav__links a:not(.button):hover{color:var(--brand)}.marketing-nav__login{text-decoration:none;padding:.55rem 1rem;font-size:.95rem}.landing{max-width:72rem;margin:0 auto;padding:0 var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom,0px))}.landing-hero{display:grid;gap:var(--space-5);min-height:calc(100svh - 5.5rem);align-items:center;padding:var(--space-5) 0 var(--space-6)}@media(min-width:900px){.landing-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--space-6)}}.landing-hero__brand{margin:0 0 var(--space-3);color:var(--brand)}.landing-hero__headline{margin:0;font-family:var(--font-wordmark);font-size:clamp(1.85rem,5vw,2.75rem);line-height:1.15;letter-spacing:-.02em;color:var(--ink);font-weight:700;max-width:18ch}.landing-hero__lede{margin:var(--space-4) 0 0;font-size:1.1rem;color:var(--ink-muted);max-width:36ch}.landing-hero__cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.landing-hero__cta .button,.landing-hero__cta .secondary,.landing-hero__cta a.button{min-height:var(--touch);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.25rem;transition:transform var(--motion-med) ease,box-shadow var(--motion-med) ease}.landing-hero__cta .button:hover,.landing-hero__cta a.button:hover{transform:translateY(-1px)}.landing-hero__visual{min-height:16rem;border-radius:var(--radius-lg);background:linear-gradient(160deg,var(--brand) 0%,var(--brand-soft) 48%,#0f2a20 100%);padding:var(--space-5);display:grid;place-items:center;overflow:hidden;position:relative;animation:landing-hero-in calc(var(--motion-med) * 4) ease both}.landing-mock{width:min(100%,22rem);display:grid;gap:var(--space-4);transform:translateY(0);animation:landing-mock-rise calc(var(--motion-med) * 5) ease both;animation-delay:80ms}.landing-mock__wallet{display:grid;gap:.65rem}.landing-mock__tile{border-radius:var(--radius-md);padding:1rem 1.1rem;color:#fff;font-weight:650;letter-spacing:.02em;box-shadow:var(--shadow-md)}.landing-mock__tile--0{background:var(--tile-0)}.landing-mock__tile--1{background:var(--tile-1);margin-left:.75rem}.landing-mock__tile--2{background:var(--tile-2);margin-left:1.5rem}.landing-mock__checkout{background:var(--bg-elevated);border-radius:var(--radius-md);padding:var(--space-4);display:grid;gap:var(--space-3);justify-items:center;box-shadow:var(--shadow-md)}.landing-mock__barcode{width:100%;height:3.25rem;border-radius:4px;background:repeating-linear-gradient(90deg,#1a241e 0 2px,transparent 2px 4px,#1a241e 4px 5px,transparent 5px 8px,#1a241e 8px 11px,transparent 11px 13px)}.landing-mock__checkout-label{font-size:.8rem;color:var(--ink-subtle);letter-spacing:.04em;text-transform:uppercase}.landing-section{padding:var(--space-6) 0;max-width:38rem;border-top:1px solid rgba(26,61,47,.1);animation:landing-section-in calc(var(--motion-med) * 4) ease both}.landing-section h2{margin:0 0 var(--space-3);font-family:var(--font-wordmark);font-size:clamp(1.35rem,3vw,1.75rem);color:var(--brand);letter-spacing:-.01em}.landing-section p{margin:0;color:var(--ink-muted);font-size:1.05rem}.landing-section p+p{margin-top:var(--space-3)}.landing-cta{margin-top:var(--space-5);padding:var(--space-6) var(--space-5);border-radius:var(--radius-lg);background:var(--brand);color:#f4efe6}.landing-cta h2{margin:0 0 var(--space-2);font-family:var(--font-wordmark);font-size:clamp(1.5rem,3vw,1.9rem)}.landing-cta p{margin:0;color:#f4efe6d9}.landing-cta .landing-hero__cta .secondary{background:transparent;border-color:#f4efe673;color:#f4efe6}.landing-cta .landing-hero__cta .button{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.landing-footer{display:flex;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-6) 0 var(--space-4);border-top:1px solid rgba(26,61,47,.1);margin-top:var(--space-6)}.landing-footer a{color:var(--ink-muted);text-decoration:none}.landing-footer a:hover{color:var(--brand)}.marketing-doc{max-width:40rem;margin:0 auto;padding:var(--space-5) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom,0px))}.marketing-doc h1{margin:0 0 var(--space-3);font-family:var(--font-wordmark);font-size:clamp(1.75rem,4vw,2.25rem);color:var(--brand);letter-spacing:-.02em}.marketing-doc__lede{margin:0 0 var(--space-5);font-size:1.1rem;color:var(--ink-muted)}.marketing-doc section{padding:var(--space-4) 0;border-top:1px solid rgba(26,61,47,.1)}.marketing-doc h2{margin:0 0 var(--space-2);font-size:1.15rem;color:var(--ink)}.marketing-doc p{margin:0;color:var(--ink-muted)}.marketing-doc p+p{margin-top:var(--space-3)}.marketing-doc__back{margin-top:var(--space-5)!important}.marketing-doc__cta{margin-top:var(--space-5)}@keyframes landing-hero-in{0%{opacity:0}to{opacity:1}}@keyframes landing-mock-rise{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes landing-section-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.landing-hero__visual,.landing-mock,.landing-section{animation:none}.landing-hero__cta .button:hover,.landing-hero__cta a.button:hover{transform:none}}
