@snacky/ui 0.5.7 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -966,9 +966,8 @@
966
966
  .snacky-tab {
967
967
  background: none;
968
968
  border: none;
969
- border-bottom: 2px solid transparent;
970
- margin-bottom: -1px;
971
- padding: 0 0 var(--spacing-12) 0;
969
+ box-shadow: inset 0 -2px 0 0 transparent;
970
+ padding: 0 0 var(--gap-text-underline) 0;
972
971
  cursor: pointer;
973
972
  font-family: var(--font-body-regular-family);
974
973
  font-size: 14px;
@@ -982,7 +981,7 @@
982
981
  font-family: var(--font-body-semibold-family);
983
982
  font-weight: var(--font-body-semibold-weight);
984
983
  color: var(--text-on-action-tertiary);
985
- border-bottom-color: var(--color-primary-500);
984
+ box-shadow: inset 0 -2px 0 0 var(--color-primary-500);
986
985
  font-size: var(--font-body-semibold-size);
987
986
  line-height: var(--font-body-semibold-line-height);
988
987
  letter-spacing: var(--font-body-semibold-letter-spacing);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme/tokens.css","../src/theme/base.css","../src/components/Button/Button.css","../src/components/IconButton/IconButton.css","../src/components/IconButton/UploadButton.css","../src/components/Input/TextField.css","../src/components/Input/SearchField.css","../src/components/Input/OtpField.css","../src/components/Input/CopyField.css","../src/components/Input/ChatInput.css","../src/components/Input/AddressResult.css","../src/components/Chips/Chips.css","../src/components/RadioButton/RadioButton.css","../src/components/Checkbox/Checkbox.css","../src/components/Toggle/Toggle.css","../src/components/Navbar/Navbar.css","../src/components/Tab/Tab.css","../src/components/Header/Header.css","../src/components/Banner/Banner.css","../src/components/Badge/Badge.css","../src/components/Callout/Callout.css","../src/components/List/List.css","../src/components/Accordion/Accordion.css","../src/components/Modal/BottomSheet.css","../src/components/Section/Section.css","../src/components/Avatar/Avatar.css","../src/components/Illustration/Illustration.css","../src/components/ProductImage/ProductImage.css","../src/components/ProductCard/ProductCard.css"],"sourcesContent":["/* Generated from tokens.json by scripts/generate-react-tokens.js - do not hand-edit. */\n:root {\n --color-primary-50: #fef8eb;\n --color-primary-100: #fde9bf;\n --color-primary-200: #fcdea1;\n --color-primary-300: #facf76;\n --color-primary-400: #f9c55b;\n --color-primary-500: #f8b732;\n --color-primary-600: #e2a72e;\n --color-primary-700: #b08224;\n --color-primary-800: #88651c;\n --color-primary-900: #684d15;\n --color-neutral-0: #ffffff;\n --color-neutral-10: #fdfdfd;\n --color-neutral-20: #f7f7f7;\n --color-neutral-50: #f3f3f3;\n --color-neutral-100: #e0e0e0;\n --color-neutral-200: #cccccc;\n --color-neutral-400: #a3a3a3;\n --color-neutral-500: #7a7a7a;\n --color-neutral-600: #6a6a6a;\n --color-neutral-700: #525252;\n --color-neutral-800: #4b4b4b;\n --color-neutral-900: #434343;\n --color-neutral-950: #333333;\n --color-red-50: #fdeeee;\n --color-red-100: #f9cbcb;\n --color-red-200: #f6b2b2;\n --color-red-300: #f28e8e;\n --color-red-400: #ef7979;\n --color-red-500: #eb5757;\n --color-red-600: #d64f4f;\n --color-red-700: #a73e3e;\n --color-red-800: #813030;\n --color-red-900: #632525;\n --bg-app: #f7f7f7;\n --bg-surface: #ffffff;\n --bg-surface-primary: #f8b732;\n --bg-surface-accent: #eb5757;\n --bg-surface-variant: #f3f3f3;\n --bg-surface-field: #ffffff;\n --bg-surface-highlight: #fef8eb;\n --bg-action-primary: #f8b732;\n --bg-action-primary-hover: #e2a72e;\n --bg-action-primary-pressed: #b08224;\n --bg-action-secondary: #ffffff;\n --bg-action-secondary-hover: #f3f3f3;\n --bg-action-secondary-pressed: #e0e0e0;\n --bg-action-disabled: #cccccc;\n --bg-action-primary-danger: #eb5757;\n --bg-action-primary-danger-hovered: #d64f4f;\n --bg-action-primary-danger-pressed: #a73e3e;\n --bg-overlay-dim: rgba(51,51,51,0.8);\n --border-main: #cccccc;\n --border-highlight: #fcdea1;\n --border-input-default: #cccccc;\n --border-input-active: #f8b732;\n --border-input-error: #eb5757;\n --border-action-secondary: #cccccc;\n --border-action-secondary-pressed: #a3a3a3;\n --border-action-danger: #eb5757;\n --border-action-disabled: #cccccc;\n --text-primary: #333333;\n --text-secondary: #7a7a7a;\n --text-placeholder: #7a7a7a;\n --text-disabled: #a3a3a3;\n --text-link: #88651c;\n --text-error: #a73e3e;\n --text-inverse: #ffffff;\n --text-on-action-primary: #333333;\n --text-on-action-secondary: #333333;\n --text-on-action-tertiary: #b08224;\n --text-on-action-tertiary-hovered: #88651c;\n --text-on-action-tertiary-pressed: #684d15;\n --text-action-danger: #d64f4f;\n --text-action-danger-hovered: #a73e3e;\n --text-action-danger-pressed: #813030;\n --text-action-disabled: #a3a3a3;\n --icon-primary: #333333;\n --icon-secondary: #525252;\n --icon-brand: #f8b732;\n --icon-disabled: #a3a3a3;\n --icon-active: #eb5757;\n --icon-on-accent: #ffffff;\n --spacing-2: 2px;\n --spacing-4: 4px;\n --spacing-8: 8px;\n --spacing-12: 12px;\n --spacing-16: 16px;\n --spacing-24: 24px;\n --spacing-32: 32px;\n --gap-icon-label: 4px;\n --gap-cell: 4px;\n --gap-text-icon: 8px;\n --gap-text-underline: 16px;\n --gap-layout-section-list: 8px;\n --gap-layout-block: 16px;\n --gap-layout-stack: 24px;\n --gap-layout-page: 32px;\n --margin-screen: 16px;\n --radius-4: 4px;\n --radius-6: 6px;\n --radius-8: 8px;\n --radius-10: 10px;\n --radius-20: 20px;\n --radius-100: 100px;\n --radius-999: 999px;\n --radius-field: 4px;\n --radius-tag: 6px;\n --radius-bubble: 8px;\n --radius-card: 10px;\n --radius-sheet-top: 20px;\n --radius-full: 100px;\n --size-icon-sm: 16px;\n --size-icon-md: 20px;\n --size-icon-lg: 24px;\n --size-avatar-sm: 32px;\n --size-avatar-md: 56px;\n --size-avatar-lg: 72px;\n --shadow-md: 0 4px 8px rgba(0,0,0,0.08);\n --shadow-lg: 0 10px 30px rgba(0,0,0,0.1);\n --shadow-top: 0 -4px 10px rgba(0,0,0,0.08);\n --font-h1-bold-family: 'Poppins', sans-serif;\n --font-h1-bold-size: 32px;\n --font-h1-bold-weight: 700;\n --font-h1-bold-line-height: 36px;\n --font-h1-bold-letter-spacing: 0.01em;\n --font-h2-bold-family: 'Poppins', sans-serif;\n --font-h2-bold-size: 20px;\n --font-h2-bold-weight: 700;\n --font-h2-bold-line-height: 36px;\n --font-h2-bold-letter-spacing: 0.01em;\n --font-h3-bold-family: 'Poppins', sans-serif;\n --font-h3-bold-size: 16px;\n --font-h3-bold-weight: 700;\n --font-h3-bold-line-height: 36px;\n --font-h3-bold-letter-spacing: 0.01em;\n --font-h3-regular-family: 'Poppins', sans-serif;\n --font-h3-regular-size: 16px;\n --font-h3-regular-weight: 400;\n --font-h3-regular-line-height: 36px;\n --font-h3-regular-letter-spacing: normal;\n --font-body-semibold-family: 'Poppins', sans-serif;\n --font-body-semibold-size: 14px;\n --font-body-semibold-weight: 600;\n --font-body-semibold-line-height: 24px;\n --font-body-semibold-letter-spacing: normal;\n --font-body-regular-family: 'Poppins', sans-serif;\n --font-body-regular-size: 14px;\n --font-body-regular-weight: 400;\n --font-body-regular-line-height: 24px;\n --font-body-regular-letter-spacing: normal;\n --font-small-semibold-family: 'Poppins', sans-serif;\n --font-small-semibold-size: 12px;\n --font-small-semibold-weight: 600;\n --font-small-semibold-line-height: 24px;\n --font-small-semibold-letter-spacing: normal;\n --font-small-bold-family: 'Poppins', sans-serif;\n --font-small-bold-size: 12px;\n --font-small-bold-weight: 700;\n --font-small-bold-line-height: 24px;\n --font-small-bold-letter-spacing: 0.01em;\n --font-small-regular-family: 'Poppins', sans-serif;\n --font-small-regular-size: 12px;\n --font-small-regular-weight: 400;\n --font-small-regular-line-height: 24px;\n --font-small-regular-letter-spacing: normal;\n --font-caption-semibold-family: 'Poppins', sans-serif;\n --font-caption-semibold-size: 10px;\n --font-caption-semibold-weight: 600;\n --font-caption-semibold-line-height: 23px;\n --font-caption-semibold-letter-spacing: 0.01em;\n --font-caption-regular-family: 'Poppins', sans-serif;\n --font-caption-regular-size: 10px;\n --font-caption-regular-weight: 400;\n --font-caption-regular-line-height: 16px;\n --font-caption-regular-letter-spacing: 0.01em;\n}\n","/* Base rules every Snacky component depends on.\n *\n * The docs site (../../index.html) opens with a global\n * `*,*::before,*::after{box-sizing:border-box}` reset, so its Live Preview has\n * always rendered components at their spec sizes. The package ships no reset,\n * and only some of its own selectors set the property, so on a host page\n * without one every fixed-size component with padding came out oversized:\n * `.snacky-product-card--list` measured 168px instead of 152, and\n * `.snacky-iconbtn--primary` 48px instead of 32.\n *\n * Scoped to `snacky-*` rather than `*` so it never touches the host page's own\n * elements, or the content a caller passes into a component's slot.\n */\n[class^='snacky-'],\n[class*=' snacky-'],\n[class^='snacky-']::before,\n[class^='snacky-']::after,\n[class*=' snacky-']::before,\n[class*=' snacky-']::after {\n box-sizing: border-box;\n}\n",".snacky-btn {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* Figma gives every variant a fixed 48 (large) / 40 (small) height and draws\n Secondary's stroke INSIDE it. Without an explicit height the box grew from\n padding alone, so Secondary's 1px border pushed it to 50 while every other\n variant sat at 48. */\n height: 48px;\n padding: var(--spacing-12) var(--spacing-8);\n border-radius: var(--radius-field);\n border: none;\n font-family: var(--font-small-semibold-family);\n font-size: var(--font-small-semibold-size);\n font-weight: var(--font-small-semibold-weight);\n line-height: var(--font-small-semibold-line-height);\n cursor: pointer;\n white-space: nowrap;\n transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;\n letter-spacing: var(--font-small-semibold-letter-spacing);\n}\n\n.snacky-btn:disabled {\n cursor: not-allowed;\n}\n\n.snacky-btn--small {\n height: 40px;\n padding: var(--spacing-8) var(--spacing-8);\n}\n\n/* Primary */\n.snacky-btn--primary {\n background: var(--bg-action-primary);\n color: var(--text-on-action-primary);\n}\n.snacky-btn--primary:hover:not(:disabled) { background: var(--bg-action-primary-hover); }\n.snacky-btn--primary:active:not(:disabled) { background: var(--bg-action-primary-pressed); }\n.snacky-btn--primary:disabled { background: var(--bg-action-disabled); color: var(--text-action-disabled); }\n\n/* Primary + Danger */\n.snacky-btn--primary.snacky-btn--danger {\n background: var(--bg-action-primary-danger);\n color: var(--text-on-action-primary);\n}\n.snacky-btn--primary.snacky-btn--danger:hover:not(:disabled) { background: var(--bg-action-primary-danger-hovered); }\n.snacky-btn--primary.snacky-btn--danger:active:not(:disabled) { background: var(--bg-action-primary-danger-pressed); }\n/* Flagged asymmetry, confirmed against the site's own live implementation:\n Primary+Danger's disabled state carries a border that plain Primary's\n disabled state does not. */\n.snacky-btn--primary.snacky-btn--danger:disabled { background: var(--bg-action-disabled); color: var(--text-action-disabled); border: 1px solid var(--border-action-disabled); }\n\n/* Secondary */\n.snacky-btn--secondary {\n background: var(--bg-action-secondary);\n border: 1px solid var(--border-action-secondary);\n color: var(--text-on-action-primary);\n}\n.snacky-btn--secondary:hover:not(:disabled) { background: var(--bg-action-secondary-hover); }\n.snacky-btn--secondary:active:not(:disabled) { background: var(--bg-action-secondary-pressed); }\n.snacky-btn--secondary:disabled { color: var(--text-action-disabled); }\n\n/* Secondary + Danger */\n.snacky-btn--secondary.snacky-btn--danger {\n border-color: var(--border-action-danger);\n color: var(--text-action-danger);\n}\n.snacky-btn--secondary.snacky-btn--danger:hover:not(:disabled) { background: var(--bg-action-secondary-hover); }\n.snacky-btn--secondary.snacky-btn--danger:active:not(:disabled) { background: var(--bg-action-secondary-pressed); }\n.snacky-btn--secondary.snacky-btn--danger:disabled { border-color: var(--border-action-disabled); color: var(--text-action-disabled); }\n\n/* Tertiary - ghost, never a fill or border, including disabled */\n.snacky-btn--tertiary {\n background: transparent;\n color: var(--text-on-action-tertiary);\n}\n.snacky-btn--tertiary:hover:not(:disabled) { color: var(--text-on-action-tertiary-hovered); }\n.snacky-btn--tertiary:active:not(:disabled) { color: var(--text-on-action-tertiary-pressed); }\n.snacky-btn--tertiary:disabled { color: var(--text-action-disabled); }\n\n/* Tertiary + Danger */\n.snacky-btn--tertiary.snacky-btn--danger { color: var(--text-action-danger); }\n.snacky-btn--tertiary.snacky-btn--danger:hover:not(:disabled) { color: var(--text-action-danger-hovered); }\n.snacky-btn--tertiary.snacky-btn--danger:active:not(:disabled) { color: var(--text-action-danger-pressed); }\n.snacky-btn--tertiary.snacky-btn--danger:disabled { color: var(--text-action-disabled); }\n\n.snacky-btn__icon {\n position: absolute;\n left: var(--spacing-8);\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n}\n",".snacky-iconbtn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border: none;\n border-radius: var(--radius-full);\n cursor: pointer;\n transition: background-color 0.12s ease;\n}\n.snacky-iconbtn:disabled { cursor: not-allowed; }\n.snacky-iconbtn svg,\n.snacky-iconbtn img { width: 100%; height: 100%; }\n\n/* Primary - 32px default, 24px small */\n.snacky-iconbtn--primary {\n width: 32px;\n height: 32px;\n padding: var(--spacing-8);\n background: var(--bg-action-primary);\n}\n/* Figma binds every icon-button glyph to an icon/* variable, not a text/* one.\n Same #333333 either way, but the icon token is the one that is actually\n specced, so a future retint of icon/icon-primary reaches these. */\n.snacky-iconbtn--primary .snacky-iconbtn__icon { width: 16px; height: 16px; color: var(--icon-primary); }\n.snacky-iconbtn--primary:hover:not(:disabled) { background: var(--bg-action-primary-hover); }\n.snacky-iconbtn--primary:active:not(:disabled) { background: var(--bg-action-primary-pressed); }\n.snacky-iconbtn--primary:disabled { background: var(--bg-action-disabled); border: 1px solid var(--border-action-disabled); }\n.snacky-iconbtn--primary:disabled .snacky-iconbtn__icon { color: var(--icon-disabled); }\n\n.snacky-iconbtn--primary.snacky-iconbtn--small {\n width: 24px;\n height: 24px;\n padding: var(--spacing-4);\n}\n\n/* Secondary - 40px, elevated, can act as a toggle via `selected` */\n.snacky-iconbtn--secondary {\n width: 40px;\n height: 40px;\n padding: var(--spacing-8);\n background: var(--bg-action-secondary);\n box-shadow: var(--shadow-md);\n}\n/* icon-primary (#333333), NOT icon-secondary. Figma's secondary set binds\n default/hovered/pressed all to icon/icon-primary; icon-secondary (#525252)\n appears only on the tertiary variant's hover. */\n.snacky-iconbtn--secondary .snacky-iconbtn__icon { width: 20px; height: 20px; color: var(--icon-primary); }\n.snacky-iconbtn--secondary:hover:not(:disabled) { background: var(--bg-action-secondary-hover); }\n.snacky-iconbtn--secondary:active:not(:disabled) { background: var(--bg-action-secondary-pressed); }\n.snacky-iconbtn--secondary:disabled { background: var(--bg-action-disabled); box-shadow: none; }\n.snacky-iconbtn--secondary:disabled .snacky-iconbtn__icon { color: var(--icon-disabled); }\n.snacky-iconbtn--secondary.snacky-iconbtn--selected .snacky-iconbtn__icon { color: var(--icon-active); }\n\n/* Tertiary - 40px, no resting fill, only a transient state-layer overlay */\n.snacky-iconbtn--tertiary {\n width: 40px;\n height: 40px;\n padding: var(--spacing-8);\n background: transparent;\n}\n.snacky-iconbtn--tertiary .snacky-iconbtn__icon { width: 24px; height: 24px; color: var(--icon-primary); }\n.snacky-iconbtn--tertiary:hover:not(:disabled) { background: rgba(0, 0, 0, 0.08); }\n.snacky-iconbtn--tertiary:hover:not(:disabled) .snacky-iconbtn__icon { color: var(--icon-secondary); }\n.snacky-iconbtn--tertiary:active:not(:disabled) { background: rgba(0, 0, 0, 0.12); }\n.snacky-iconbtn--tertiary:disabled .snacky-iconbtn__icon { color: var(--icon-disabled); }\n",".snacky-upload {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 72px;\n height: 72px;\n padding: var(--spacing-24);\n border-radius: var(--radius-full);\n background: var(--bg-surface);\n border: 1px dashed var(--border-main);\n cursor: pointer;\n transition: background-color 0.12s ease;\n}\n.snacky-upload svg,\n.snacky-upload img { width: 100%; height: 100%; }\n.snacky-upload:hover { background: var(--bg-action-secondary-hover); }\n.snacky-upload:active { background: var(--bg-action-secondary-pressed); }\n",".snacky-field {\n display: flex;\n align-items: center;\n gap: var(--gap-text-icon);\n width: 100%;\n height: 48px;\n padding: var(--spacing-12) var(--spacing-8);\n background: var(--bg-surface-field);\n border: 1px solid var(--border-input-default);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n transition: border-color 0.12s ease;\n}\n\n.snacky-field:focus-within {\n border-color: var(--border-input-active);\n}\n\n.snacky-field--error {\n border-color: var(--border-input-error) !important;\n}\n\n.snacky-field--disabled {\n background: var(--bg-surface-variant);\n cursor: not-allowed;\n}\n\n.snacky-field__input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n color: var(--text-primary);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n\n.snacky-field__input::placeholder {\n color: var(--text-placeholder);\n}\n\n.snacky-field__input:disabled {\n cursor: not-allowed;\n color: var(--text-disabled);\n}\n\n.snacky-field__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n /* Figma binds the resting glyph to text/text-placeholder and the focused one\n to text/text-primary, not icon-secondary. */\n color: var(--text-placeholder);\n}\n.snacky-field:focus-within .snacky-field__icon { color: var(--text-primary); }\n\n.snacky-field__icon--button {\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n color: inherit;\n}\n\n.snacky-field-label {\n display: block;\n margin-bottom: var(--spacing-4);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n\n.snacky-field-error {\n display: block;\n margin-top: var(--spacing-4);\n font-family: var(--font-caption-regular-family);\n font-size: var(--font-caption-regular-size);\n color: var(--text-error);\n font-weight: var(--font-caption-regular-weight);\n line-height: var(--font-caption-regular-line-height);\n letter-spacing: var(--font-caption-regular-letter-spacing);\n}\n",".snacky-search {\n display: flex;\n align-items: center;\n gap: var(--spacing-12);\n /* Animates 260px -> 312px on focus, matching the site's own verified\n implementation - not a fluid 100% field. */\n width: 260px;\n height: 40px;\n padding: var(--spacing-8) var(--spacing-12);\n background: var(--bg-surface-variant);\n border: 1px solid transparent;\n border-radius: var(--radius-field);\n box-sizing: border-box;\n transition: border-color 0.12s ease, width 0.15s ease;\n}\n.snacky-search:focus-within {\n width: 312px;\n border-color: var(--border-input-active);\n}\n.snacky-search__input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-search__input::placeholder {\n color: var(--text-placeholder);\n}\n.snacky-search__icon {\n display: inline-flex;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--text-placeholder);\n}\n.snacky-search__clear {\n display: inline-flex;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n color: var(--text-placeholder);\n}\n",".snacky-otp {\n display: flex;\n gap: var(--spacing-4);\n}\n.snacky-otp__cell {\n width: 48px;\n height: 48px;\n padding: 0;\n box-sizing: border-box;\n text-align: center;\n border: 1px solid transparent;\n border-radius: var(--radius-field);\n background: var(--bg-surface-variant);\n font-family: var(--font-h3-bold-family);\n font-size: var(--font-h3-bold-size);\n font-weight: var(--font-h3-bold-weight);\n /* 46px, not the h3Bold token's 36px - specifically tuned to center a\n single digit in the 48px cell, per the site's own implementation. */\n line-height: 46px;\n letter-spacing: 0.16px;\n color: var(--text-primary);\n outline: none;\n transition: border-color 0.1s ease;\n}\n.snacky-otp__cell:focus {\n border-color: var(--border-input-active);\n}\n/* Figma defines no disabled OTP variant (only default/active/filled), so this\n is not a spec value: it reuses the disabled text colour TextField already\n uses, so the prop is at least visible. Without it a disabled field rendered\n identically to an enabled one and the prop looked broken. */\n.snacky-otp__cell:disabled {\n cursor: not-allowed;\n color: var(--text-disabled);\n}\n",".snacky-copy {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n /* Figma has two heights here: 64 by default, because the Copy action sits in\n its own 8px-padded 40px-tall frame, and 48 once copied, where the action\n collapses to plain text. The package was pinned at 48 for both. */\n height: 64px;\n padding: var(--spacing-12);\n background: var(--bg-surface-variant);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n}\n.snacky-copy__value {\n font-family: var(--font-body-semibold-family);\n font-size: var(--font-body-semibold-size);\n font-weight: var(--font-body-semibold-weight);\n color: var(--text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: var(--font-body-semibold-line-height);\n letter-spacing: var(--font-body-semibold-letter-spacing);\n}\n.snacky-copy__action {\n flex-shrink: 0;\n margin-left: var(--spacing-12);\n background: none;\n border: none;\n padding: var(--spacing-8);\n cursor: pointer;\n font-family: var(--font-small-bold-family);\n font-size: var(--font-small-bold-size);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-link);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-copy__action--copied {\n color: var(--text-secondary);\n /* the copied state is plain text, not a padded button */\n padding: 0;\n}\n.snacky-copy:has(.snacky-copy__action--copied) {\n height: 48px;\n}\n",".snacky-chatfield {\n display: flex;\n align-items: center;\n gap: var(--gap-text-icon);\n width: 100%;\n height: 72px;\n padding: var(--spacing-12);\n background: var(--bg-surface);\n border: 1px solid var(--border-input-default);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n transition: border-color 0.12s ease;\n}\n.snacky-chatfield:focus-within {\n border-color: var(--border-input-active);\n}\n.snacky-chatfield__input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-chatfield__input::placeholder {\n color: var(--text-placeholder);\n}\n.snacky-chatfield__send {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 48px;\n height: 48px;\n border: none;\n border-radius: var(--radius-full);\n /* Transparent with a muted icon when empty, not a grayed-out disabled\n circle - it only fills once there's something to send. */\n background: transparent;\n /* Figma binds the resting send glyph to text/text-placeholder (#7a7a7a). */\n color: var(--text-placeholder);\n cursor: default;\n transition: background-color 0.15s ease, color 0.15s ease;\n}\n.snacky-chatfield__send--active {\n background: var(--bg-action-primary);\n /* White on the accent circle. Figma binds this to background/surface/bg-surface,\n which is the same #ffffff but an odd name for an icon colour, so the\n equivalent icon token is used here. It is NOT the dark text-on-action-primary\n that a labelled button would use. */\n color: var(--icon-on-accent);\n cursor: pointer;\n}\n.snacky-chatfield__send--active:hover { background: var(--bg-action-primary-hover); }\n",".snacky-address-result {\n display: flex;\n align-items: flex-start;\n gap: var(--gap-text-icon);\n width: 100%;\n /* Figma's \"Address, Search (Selected)\" is 72: 12/12 padding around a 24 title\n and a 24 subtitle, with the stroke drawn INSIDE. A real border pushed it to\n 74, so the line is painted as an inset shadow instead - the same fix\n PointBalanceBanner needed. */\n height: 72px;\n padding: var(--spacing-12) var(--spacing-8);\n background: var(--bg-surface);\n box-shadow: inset 0 0 0 1px var(--border-input-default);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n cursor: pointer;\n text-align: left;\n}\n.snacky-address-result__icon {\n display: inline-flex;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n color: var(--text-placeholder);\n margin-top: 2px;\n}\n.snacky-address-result__title {\n margin: 0;\n font-family: var(--font-small-bold-family);\n font-size: var(--font-small-bold-size);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-primary);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-address-result__subtitle {\n margin: 0;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n",".snacky-chip {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-4);\n /* Figma gives both chip types a fixed 40 with the stroke inside. Without an\n explicit height the 1px border stacked on 8 + 24 + 8 and made it 42. */\n height: 40px;\n padding: var(--spacing-8);\n border-radius: var(--radius-full);\n background: var(--bg-surface);\n border: 1px solid var(--border-main);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n cursor: pointer;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-chip--selected {\n background: var(--bg-surface-highlight);\n border-color: var(--color-primary-500);\n}\n.snacky-chip__thumb {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n object-fit: contain;\n}\n",".snacky-radio-option {\n display: inline-flex;\n align-items: center;\n gap: var(--gap-icon-label);\n cursor: pointer;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-radio-option--disabled {\n cursor: not-allowed;\n}\n.snacky-radio {\n appearance: none;\n width: 24px;\n height: 24px;\n margin: 0;\n flex-shrink: 0;\n box-sizing: border-box;\n border-radius: 999px;\n border: 1px solid var(--border-main);\n background: transparent;\n cursor: pointer;\n position: relative;\n}\n.snacky-radio:checked {\n /* Figma binds both the ring and the dot to background/action/bg-action-primary\n (same #f8b732 as the primary-500 primitive this used before, but the real\n semantic token the file actually references). */\n border-color: var(--bg-action-primary);\n}\n.snacky-radio:checked::after {\n content: '';\n position: absolute;\n inset: 0;\n margin: auto;\n width: 12px;\n height: 12px;\n border-radius: 999px;\n background: var(--bg-action-primary);\n}\n.snacky-radio:disabled {\n cursor: not-allowed;\n border-color: var(--border-main);\n background: var(--bg-surface-variant);\n}\n/* Disabled suppresses the selected dot entirely, even if checked - matches\n the site's own verified implementation exactly. */\n.snacky-radio:disabled::after {\n display: none;\n}\n",".snacky-checkbox-option {\n display: inline-flex;\n align-items: center;\n gap: var(--gap-icon-label);\n cursor: pointer;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-checkbox {\n appearance: none;\n width: 24px;\n height: 24px;\n margin: 0;\n box-sizing: border-box;\n flex-shrink: 0;\n /* Off state is a white field surface with an outline - updated in Figma\n (node 444:11084) from an earlier solid neutral-500 fill to this outline\n style. Figma binds the stroke to border/border-main, not the\n border-input-default this used before (same #cccccc either way). */\n border: 1px solid var(--border-main);\n border-radius: var(--radius-field);\n cursor: pointer;\n position: relative;\n background: var(--bg-surface-field);\n}\n.snacky-checkbox:checked {\n background: var(--color-primary-500);\n border-color: var(--color-primary-500);\n}\n.snacky-checkbox:checked::after {\n content: '';\n position: absolute;\n inset: 3px;\n /* Confirmed against Figma: the checkmark is white (icon-on-accent), not\n text-primary - it reads as a white cutout in the compound icon path, not a\n dark mark layered on top. */\n background: var(--icon-on-accent);\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n",".snacky-toggle {\n position: relative;\n display: inline-block;\n width: 56px;\n height: 32px;\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n appearance: none;\n}\n.snacky-toggle:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.snacky-toggle__track {\n position: absolute;\n left: 0;\n top: 4px;\n width: 56px;\n height: 24px;\n border-radius: 12px;\n /* Bound to bg-action-disabled in Figma (same #cccccc as neutral-200, this\n just matches the actual token binding, confirmed via the file's variables). */\n background: var(--bg-action-disabled);\n transition: background-color 0.2s ease;\n}\n.snacky-toggle--on .snacky-toggle__track {\n /* \"Accent tint\" per Figma - a light wash, not the solid accent color. Figma's\n actual paint (#fffbe9) isn't bound to any variable and isn't quite\n bg-surface-highlight/primary-50 (#fef8eb) either, close enough (a few\n values out of 255 per channel) that this token is used rather than a new\n one-off raw color for an likely-untokenized value in Figma itself. */\n background: var(--bg-surface-highlight);\n}\n.snacky-toggle__thumb {\n position: absolute;\n top: 0;\n left: 0;\n width: 32px;\n height: 32px;\n border-radius: 999px;\n /* Confirmed against Figma (bound to the icon-disabled variable): #a3a3a3,\n not neutral-500 (#7a7a7a). */\n background: var(--icon-disabled);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n transition: left 0.2s ease, background-color 0.2s ease;\n}\n.snacky-toggle--on .snacky-toggle__thumb {\n left: 24px;\n background: var(--color-primary-500);\n}\n",".snacky-navbar {\n display: flex;\n width: 100%;\n background: var(--bg-surface);\n box-shadow: var(--shadow-top);\n}\n.snacky-navbar__item {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--gap-icon-label);\n padding: var(--spacing-12) 0;\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-secondary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-navbar__item--active {\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-primary);\n font-size: var(--font-small-bold-size);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-navbar__icon {\n display: inline-flex;\n width: 20px;\n height: 20px;\n /* Icon and label use different inactive colors in the site's own\n verified implementation - icon-secondary, not text-secondary. */\n color: var(--icon-secondary);\n}\n.snacky-navbar__item--active .snacky-navbar__icon {\n color: var(--color-primary-500);\n}\n",".snacky-tabrow {\n display: flex;\n gap: var(--spacing-24);\n border-bottom: 1px solid var(--border-main);\n}\n.snacky-tab {\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n margin-bottom: -1px;\n padding: 0 0 var(--spacing-12) 0;\n cursor: pointer;\n font-family: var(--font-body-regular-family);\n font-size: 14px;\n line-height: var(--font-body-regular-line-height);\n color: var(--text-primary);\n transition: color 0.15s ease;\n font-weight: var(--font-body-regular-weight);\n letter-spacing: var(--font-body-regular-letter-spacing);\n}\n.snacky-tab--active {\n font-family: var(--font-body-semibold-family);\n font-weight: var(--font-body-semibold-weight);\n /* Re-verified against Figma's actual bound variables (an earlier pass\n read this as the raw primary-700 primitive): the active label's text\n fill is bound to text/on-action/text-on-action-tertiary (#b08224,\n same value as primary-700, but the real semantic token, matching the\n Tertiary button's default label color). The underline's stroke is\n bound to border/input/border-input-active (#f8b732) - an input-focus\n token reused here, which reads as incidental Figma variable reuse\n rather than an intentional shared role, so this keeps the primitive\n --color-primary-500 instead of adopting a misleading token name. */\n color: var(--text-on-action-tertiary);\n border-bottom-color: var(--color-primary-500);\n font-size: var(--font-body-semibold-size);\n line-height: var(--font-body-semibold-line-height);\n letter-spacing: var(--font-body-semibold-letter-spacing);\n}\n",".snacky-header {\n display: flex;\n align-items: center;\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-16) var(--spacing-8);\n background: var(--bg-surface);\n}\n.snacky-header__icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n padding: 0;\n border: none;\n border-radius: var(--radius-full);\n background: transparent;\n color: var(--icon-primary);\n cursor: pointer;\n}\n.snacky-header__title-row {\n flex: 1;\n min-width: 0;\n display: flex;\n justify-content: center;\n}\n/* When a leading icon is present but there's no trailing action, the title\n row gets matching right padding so the text stays optically centered\n against the whole bar, not just the leftover space next to the icon. */\n.snacky-header__title-row--balance {\n padding-right: 40px;\n}\n.snacky-header__title {\n font-family: var(--font-h3-bold-family);\n font-weight: var(--font-h3-bold-weight);\n font-size: var(--font-h3-bold-size);\n line-height: var(--font-h3-bold-line-height);\n letter-spacing: var(--font-h3-bold-letter-spacing);\n color: var(--text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n",".snacky-banner-hero {\n display: block;\n width: 100%;\n /* Its two siblings below both pin an aspect-ratio; this one did not, so the\n artwork's own proportions decided the height and a 6.4:1 strip rendered the\n banner 49 tall instead of Figma's 312x128. */\n aspect-ratio: 312 / 128;\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-md);\n object-fit: cover;\n}\n.snacky-banner-square {\n display: block;\n width: 100%;\n aspect-ratio: 360 / 334;\n border-radius: var(--radius-bubble);\n object-fit: cover;\n}\n.snacky-banner-full {\n display: block;\n width: 100%;\n aspect-ratio: 360 / 176;\n object-fit: cover;\n}\n.snacky-banner-point-balance {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: var(--spacing-8) var(--spacing-16);\n /* 8px, per Figma's `Property 1=point-balance` frame. Primitive rather than a\n semantic gap token because none covers this: gap.text-icon is also 8px but\n is documented as a field row's text-to-icon gap, not the split between the\n banner's two halves. */\n gap: var(--spacing-8);\n background: var(--bg-surface-highlight);\n /* Figma draws this stroke INSIDE a 60-tall frame, where it overlaps the\n padding rather than adding to the box. A real border would push the banner\n to 62; an inset shadow paints the same 1px line without taking layout\n space. */\n box-shadow: inset 0 0 0 1px var(--color-primary-500);\n border-radius: var(--radius-card);\n box-sizing: border-box;\n}\n.snacky-banner-point-balance__item {\n display: flex;\n align-items: center;\n /* 12px, per Figma's \"Points and Balance Container\". This was gap.icon-label\n (4px), which is documented as a *vertical* navbar/menu icon-to-label gap,\n so it was wrong on both the axis and the value and left the icon jammed\n against the text. No semantic gap token is 12px, hence the primitive. */\n gap: var(--spacing-12);\n}\n.snacky-banner-point-balance__icon {\n /* Figma binds both icons to icon/icon-brand and draws them at 16x16. Without\n an explicit colour the icons render currentColor, which inherits the row's\n dark label colour instead of the accent. */\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n color: var(--icon-brand);\n}\n.snacky-banner-point-balance__label {\n margin: 0;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n /* Figma authors this label node at 20 tall even though its line-height reads\n 24, and 20 + the value's 24 is what makes the banner exactly 60. Deliberate\n override of the token's 24. */\n line-height: 20px;\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-banner-point-balance__value {\n margin: 0;\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-primary);\n font-size: var(--font-small-bold-size);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-banner-point-balance__divider {\n width: 1px;\n align-self: stretch;\n background: var(--color-primary-500);\n}\n\n.snacky-banner-alert {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 40px;\n padding: var(--spacing-8) var(--spacing-24);\n gap: var(--spacing-4);\n background: var(--bg-surface-accent);\n box-sizing: border-box;\n}\n.snacky-banner-alert__message {\n margin: 0;\n font-family: var(--font-body-regular-family);\n font-size: var(--font-body-regular-size);\n color: var(--text-inverse);\n font-weight: var(--font-body-regular-weight);\n line-height: var(--font-body-regular-line-height);\n letter-spacing: var(--font-body-regular-letter-spacing);\n}\n.snacky-banner-alert__countdown {\n margin: 0;\n font-family: var(--font-body-semibold-family);\n font-weight: var(--font-body-semibold-weight);\n color: var(--text-inverse);\n font-size: var(--font-body-semibold-size);\n line-height: var(--font-body-semibold-line-height);\n letter-spacing: var(--font-body-semibold-letter-spacing);\n}\n",".snacky-badge-wrap {\n position: relative;\n display: inline-flex;\n}\n.snacky-badge-notification {\n position: absolute;\n top: -8px;\n right: -10px;\n min-width: 20px;\n height: 19px;\n padding: var(--spacing-2) var(--spacing-4);\n border-radius: 999px;\n background: var(--bg-surface-accent);\n color: var(--text-inverse);\n font-family: var(--font-caption-semibold-family);\n font-size: var(--font-caption-semibold-size);\n font-weight: var(--font-caption-semibold-weight);\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n letter-spacing: var(--font-caption-semibold-letter-spacing);\n}\n.snacky-discount-tag {\n /* Figma: 24 tall. The 16px caption line box plus 2/4 padding only made 20. */\n height: 24px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-2) var(--spacing-4);\n border-radius: var(--radius-tag);\n background: var(--bg-surface-accent);\n color: var(--text-inverse);\n font-family: var(--font-caption-semibold-family);\n font-size: var(--font-caption-semibold-size);\n font-weight: var(--font-caption-semibold-weight);\n line-height: var(--font-caption-semibold-line-height);\n letter-spacing: var(--font-caption-semibold-letter-spacing);\n}\n.snacky-soldout-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-12) var(--spacing-8);\n border-radius: 999px;\n background: rgba(51, 51, 51, 0.8);\n color: var(--text-inverse);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-variant-badge {\n display: inline-flex;\n align-items: center;\n /* Figma: 32 tall with the stroke inside; the 1px border was stacking on top. */\n height: 32px;\n padding: var(--spacing-8);\n border-radius: var(--radius-field);\n background: var(--bg-surface-highlight);\n border: 1px solid var(--color-primary-500);\n color: var(--text-primary);\n font-family: var(--font-caption-regular-family);\n font-size: var(--font-caption-regular-size);\n font-weight: var(--font-caption-regular-weight);\n line-height: var(--font-caption-regular-line-height);\n letter-spacing: var(--font-caption-regular-letter-spacing);\n}\n",".snacky-callout {\n display: inline-flex;\n flex-direction: column;\n gap: var(--spacing-4);\n max-width: 200px;\n padding: var(--spacing-12) var(--spacing-8);\n border-radius: var(--radius-bubble);\n font-family: var(--font-body-regular-family);\n font-size: var(--font-body-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-body-regular-weight);\n line-height: var(--font-body-regular-line-height);\n letter-spacing: var(--font-body-regular-letter-spacing);\n}\n.snacky-callout--received {\n align-self: flex-start;\n background: var(--bg-surface);\n /* No box-shadow: confirmed against Figma (node 8690:7424), the Received\n bubble has an empty effects array, flat like Sent/Pending. */\n}\n.snacky-callout--sent,\n.snacky-callout--pending {\n align-self: flex-end;\n background: var(--color-primary-500);\n}\n.snacky-callout__message {\n margin: 0;\n width: 100%;\n}\n.snacky-callout__meta {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--spacing-4);\n width: 100%;\n font-family: var(--font-caption-regular-family);\n font-size: var(--font-caption-regular-size);\n color: var(--text-primary);\n text-align: right;\n font-weight: var(--font-caption-regular-weight);\n line-height: var(--font-caption-regular-line-height);\n letter-spacing: var(--font-caption-regular-letter-spacing);\n}\n.snacky-callout__meta-icon {\n width: 16px;\n height: 16px;\n display: inline-flex;\n}\n",".snacky-order-item {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n padding: var(--spacing-8) var(--spacing-12);\n background: var(--bg-surface);\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-md);\n box-sizing: border-box;\n text-align: left;\n}\n.snacky-order-item__top {\n display: flex;\n gap: var(--spacing-8);\n width: 100%;\n}\n.snacky-order-item__thumb-box {\n width: 56px;\n height: 56px;\n flex-shrink: 0;\n border-radius: var(--radius-field);\n /* No background: Figma's Image component set (usage=list) has no fill and no\n stroke on the 56x56 frame, it only holds the 48x48 photo. An earlier pass\n invented #f4f4f5 here, which is also 1-2 values off bg-surface-variant and\n contradicted ProductImage's own usage=\"list\", which correctly has none. */\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n}\n.snacky-order-item__thumb {\n width: 48px;\n height: 48px;\n object-fit: contain;\n}\n.snacky-order-item__info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n.snacky-order-item__status {\n font-family: var(--font-small-semibold-family);\n font-weight: var(--font-small-semibold-weight);\n font-size: var(--font-small-semibold-size);\n line-height: 24px;\n color: var(--text-primary);\n letter-spacing: var(--font-small-semibold-letter-spacing);\n}\n.snacky-order-item__status--cancelled {\n color: var(--text-error);\n}\n.snacky-order-item__name {\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-order-item__details {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n width: 100%;\n /* Figma's \"Details Container\" is padded 8/0. Without it every order variant\n came out exactly 16px short. */\n padding: var(--spacing-8) 0;\n}\n.snacky-order-item__count {\n flex: 1;\n min-width: 0;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-secondary);\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-order-item__total {\n flex: 1;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-primary);\n text-align: right;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-order-item__total b {\n font-weight: var(--font-small-bold-weight);\n letter-spacing: 0.12px;\n font-family: var(--font-small-bold-family);\n font-size: var(--font-small-bold-size);\n line-height: var(--font-small-bold-line-height);\n}\n.snacky-order-item__total--cod {\n flex: 0 1 auto;\n}\n.snacky-order-item__cod {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* Figma's \"COD Container\" is 24 tall with its stroke inside. Without an\n explicit height the 1px border stacked on the 24px line box and pushed the\n whole card to 122 instead of 120. */\n height: 24px;\n padding: 0 var(--spacing-8);\n border-radius: var(--radius-field);\n border: 1px solid var(--border-main);\n background: var(--bg-surface);\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n font-size: var(--font-small-bold-size);\n line-height: 24px;\n letter-spacing: 0.12px;\n color: var(--text-secondary);\n}\n.snacky-order-item__deadline {\n width: 100%;\n background: var(--bg-surface-highlight);\n text-align: center;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-order-item__action-row {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n\n.snacky-notif-item {\n display: flex;\n flex-direction: column;\n gap: 0;\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-8) var(--spacing-12);\n background: var(--bg-surface);\n border: 1px solid var(--border-main);\n border-radius: var(--radius-field);\n text-align: left;\n}\n.snacky-notif-item--unread {\n background: var(--bg-surface-highlight);\n}\n.snacky-notif-item__title {\n font-family: var(--font-small-semibold-family);\n font-weight: var(--font-small-semibold-weight);\n font-size: var(--font-small-semibold-size);\n line-height: 24px;\n color: var(--text-primary);\n letter-spacing: var(--font-small-semibold-letter-spacing);\n}\n.snacky-notif-item__message {\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n",".snacky-accordion {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n width: 100%;\n}\n.snacky-accordion__header {\n display: flex;\n align-items: center;\n gap: var(--gap-text-icon);\n width: 100%;\n padding: var(--spacing-12) var(--spacing-8);\n background: var(--bg-surface);\n border: none;\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-md);\n cursor: pointer;\n text-align: left;\n color: var(--text-primary);\n}\n.snacky-accordion__icon {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n}\n.snacky-accordion__title {\n flex: 1;\n font-family: var(--font-body-semibold-family);\n font-size: 14px;\n font-weight: var(--font-body-semibold-weight);\n line-height: var(--font-body-semibold-line-height);\n letter-spacing: var(--font-body-semibold-letter-spacing);\n}\n.snacky-accordion--icon .snacky-accordion__title {\n font-family: var(--font-small-semibold-family);\n font-size: var(--font-small-semibold-size);\n font-weight: var(--font-small-semibold-weight);\n line-height: var(--font-small-semibold-line-height);\n letter-spacing: var(--font-small-semibold-letter-spacing);\n}\n.snacky-accordion__chevron {\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n /* Confirmed against Figma: icon-secondary in both open and closed states,\n not inherited text-primary. */\n color: var(--icon-secondary);\n transition: transform 0.15s ease;\n}\n.snacky-accordion__chevron--open {\n transform: rotate(180deg);\n}\n/* Confirmed against Figma (node 8696:6572): the expanded panel is its own\n separate elevated card (own radius-field + shadow-md), not a padding-only\n section merged into the header's card, and there is no bordered variant\n at all - Figma never draws a border on either the icon or no-icon case. */\n.snacky-accordion__panel {\n padding: var(--spacing-12);\n background: var(--bg-surface);\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-md);\n /* Figma's \"Content Text\" is 14/24 (body-regular), not the 12px small-regular\n the header uses. At 12px the copy re-wrapped and the expanded card came out\n 292 tall instead of 340. */\n font-family: var(--font-body-regular-family);\n font-size: var(--font-body-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-body-regular-weight);\n line-height: var(--font-body-regular-line-height);\n letter-spacing: var(--font-body-regular-letter-spacing);\n}\n",".snacky-sheet-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg-overlay-dim);\n display: flex;\n align-items: flex-end;\n justify-content: center;\n z-index: 1000;\n}\n.snacky-sheet {\n width: 100%;\n max-width: 480px;\n max-height: 90vh;\n overflow-y: auto;\n background: var(--bg-surface);\n border-radius: var(--radius-sheet-top) var(--radius-sheet-top) 0 0;\n padding: var(--spacing-24);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--gap-layout-block);\n}\n.snacky-sheet__handle {\n width: 36px;\n height: 4px;\n border-radius: 999px;\n background: var(--color-neutral-200);\n margin: 0 auto var(--spacing-8);\n}\n",".snacky-section {\n width: 100%;\n padding: var(--spacing-16) var(--spacing-24);\n background: var(--bg-surface);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--gap-layout-block);\n}\n.snacky-section__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.snacky-section__title {\n margin: 0;\n font-family: var(--font-h3-bold-family);\n font-size: var(--font-h3-bold-size);\n font-weight: var(--font-h3-bold-weight);\n color: var(--text-primary);\n line-height: var(--font-h3-bold-line-height);\n letter-spacing: var(--font-h3-bold-letter-spacing);\n}\n.snacky-section__action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n padding: var(--spacing-4);\n border: none;\n border-radius: var(--radius-full);\n background: var(--bg-action-primary);\n /* Re-verified against Figma's actual bound variable on the chevron vector\n (not the icon instance's own unrelated white frame fill, which was\n mistakenly read as the icon color in an earlier pass): text/text-primary,\n #333333 - same rendered color as --text-on-action-primary, which is what\n this originally was, but --text-primary is the variable Figma actually\n binds here. */\n color: var(--text-primary);\n cursor: pointer;\n}\n.snacky-section__action:hover { background: var(--bg-action-primary-hover); }\n",".snacky-avatar {\n display: block;\n border-radius: 999px;\n object-fit: cover;\n flex-shrink: 0;\n}\n.snacky-avatar--sm { width: 32px; height: 32px; }\n.snacky-avatar--md { width: 56px; height: 56px; }\n.snacky-avatar--lg { width: 72px; height: 72px; }\n",".snacky-illustration {\n display: block;\n max-width: 100%;\n /* The per-variant canvas is the spec, so the artwork is fitted into it rather\n than allowed to set its own height. `height: auto` let the file's aspect win,\n and two of the shipped PNGs do not match their canvas\n (illus-discount-referral is 1076x892, i.e. 1.206, against a 268x200 / 1.340\n canvas), which rendered discountReferral 22px too tall. contain keeps the\n canvas exact without distorting the artwork. */\n object-fit: contain;\n}\n",".snacky-product-image-wrap {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n}\n.snacky-product-image {\n display: block;\n object-fit: contain;\n}\n/* These must match the `usage` prop values verbatim, since the class name is\n built as `--${usage}`. They read `--card`/`--details` before, so the\n product-card and product-details usages, the two most common ones, silently\n matched no rule at all and rendered unsized. */\n.snacky-product-image--product-card,\n.snacky-product-image--product-details {\n width: 100%;\n height: 100%;\n background: transparent;\n}\n.snacky-product-image-wrap--product-card { width: 128px; height: 128px; }\n.snacky-product-image-wrap--product-details { width: 200px; height: 200px; }\n\n.snacky-product-image-wrap--list {\n width: 56px;\n height: 56px;\n padding: var(--spacing-4);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n}\n.snacky-product-image-wrap--review {\n width: 48px;\n height: 48px;\n padding: var(--spacing-4);\n border: 1px solid var(--border-main);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n}\n.snacky-product-image-wrap--variant {\n width: 88px;\n height: 88px;\n padding: var(--spacing-4);\n border: 1px solid var(--border-main);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n}\n.snacky-product-image-wrap--accordion-modal { width: 24px; height: 24px; }\n\n.snacky-product-image-sold-overlay {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.46);\n border-radius: inherit;\n}\n.snacky-product-image-sold-label {\n padding: var(--spacing-12) 7px;\n border-radius: 999px;\n background: rgba(51, 51, 51, 0.8);\n color: var(--text-inverse);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n",".snacky-product-card {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-12);\n background: var(--bg-surface);\n text-align: left;\n border: none;\n cursor: pointer;\n font-family: inherit;\n}\n.snacky-product-card--list {\n width: 152px;\n /* 152px is a spec width, not a hint. This card's documented home is a\n horizontal carousel, where a flex parent would otherwise shrink it below\n spec rather than letting the row scroll. */\n flex-shrink: 0;\n padding: var(--spacing-12) var(--spacing-8);\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-lg);\n}\n/* Figma node \"Property 1=details\": the card itself has no padding and no gap.\n Its two child frames carry all of it. */\n.snacky-product-card--details {\n width: 100%;\n padding: 0;\n gap: 0;\n}\n/* \"Image\" frame - 12/8 padding around the 200px image, 224 tall. */\n.snacky-product-card__image-block {\n display: flex;\n justify-content: center;\n padding: var(--spacing-12) var(--spacing-8);\n}\n/* \"Product details container\" - 16/24 padding, 8px gap, 148 tall. */\n.snacky-product-card__details-body {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n padding: var(--spacing-16) var(--spacing-24);\n}\n.snacky-product-card__image-wrap {\n position: relative;\n}\n.snacky-product-card--list .snacky-product-card__image-wrap { width: 128px; height: 128px; }\n.snacky-product-card--details .snacky-product-card__image-wrap { width: 200px; height: 200px; margin: 0 auto; }\n.snacky-product-card__image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n.snacky-product-card__discount {\n position: absolute;\n top: 0;\n right: 0;\n}\n/* Sold Out is a centred scrim over the whole image, not a corner tag. It used\n to reuse __discount above, which pinned the pill to the top-right with no\n scrim at all. index.html's preview and ProductImage's\n .snacky-product-image-sold-overlay both centre it; this matches them. */\n.snacky-product-card__sold-overlay {\n position: absolute;\n inset: 0;\n margin: var(--spacing-12) var(--spacing-8);\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.46);\n}\n.snacky-product-card__name {\n margin: 0;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-product-card--details .snacky-product-card__name {\n font-size: 14px;\n}\n.snacky-product-card__price-row {\n display: flex;\n /* Figma's \"Price container\" is CENTER with a 5px gap, and 5 is not on the\n spacing scale, so this is a literal on purpose. Was baseline + 4px, which\n made the row 25px instead of the specced 24px. */\n align-items: center;\n gap: 5px;\n}\n.snacky-product-card--details .snacky-product-card__price-row {\n align-items: flex-start;\n gap: var(--spacing-8);\n}\n.snacky-product-card__price {\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-primary);\n font-size: var(--font-small-bold-size);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-product-card--details .snacky-product-card__price {\n /* Figma: 20px on a 36px line, which is what makes the price row 36 tall.\n Without the line-height it inherited small-bold's 24 and the row came out\n 27. */\n font-size: 20px;\n font-weight: 700;\n line-height: 36px;\n}\n.snacky-product-card__original-price {\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n font-size: 10px;\n color: var(--text-secondary);\n text-decoration: line-through;\n /* Figma authors this one at AUTO line height, not the token's 24px - it is\n the only text in the card that does, so it stays a literal. */\n line-height: normal;\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-product-card--details .snacky-product-card__original-price {\n font-size: 16px;\n font-weight: 700;\n line-height: 36px;\n}\n.snacky-product-card__footer-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-8);\n}\n.snacky-product-card__rating {\n display: inline-flex;\n align-items: center;\n gap: var(--gap-icon-label);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-secondary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-product-card__rating-icon {\n width: 16px;\n height: 16px;\n color: var(--icon-brand);\n}\n.snacky-product-card__actions {\n display: flex;\n gap: var(--gap-cell);\n}\n/* Details page's Favorite/Share/Chat icon buttons use a slightly softer\n shadow than the standard Secondary icon-button elevation. */\n.snacky-product-card__actions--details button {\n box-shadow: 0 4px 4px rgba(0, 0, 0, 0.08);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/theme/tokens.css","../src/theme/base.css","../src/components/Button/Button.css","../src/components/IconButton/IconButton.css","../src/components/IconButton/UploadButton.css","../src/components/Input/TextField.css","../src/components/Input/SearchField.css","../src/components/Input/OtpField.css","../src/components/Input/CopyField.css","../src/components/Input/ChatInput.css","../src/components/Input/AddressResult.css","../src/components/Chips/Chips.css","../src/components/RadioButton/RadioButton.css","../src/components/Checkbox/Checkbox.css","../src/components/Toggle/Toggle.css","../src/components/Navbar/Navbar.css","../src/components/Tab/Tab.css","../src/components/Header/Header.css","../src/components/Banner/Banner.css","../src/components/Badge/Badge.css","../src/components/Callout/Callout.css","../src/components/List/List.css","../src/components/Accordion/Accordion.css","../src/components/Modal/BottomSheet.css","../src/components/Section/Section.css","../src/components/Avatar/Avatar.css","../src/components/Illustration/Illustration.css","../src/components/ProductImage/ProductImage.css","../src/components/ProductCard/ProductCard.css"],"sourcesContent":["/* Generated from tokens.json by scripts/generate-react-tokens.js - do not hand-edit. */\n:root {\n --color-primary-50: #fef8eb;\n --color-primary-100: #fde9bf;\n --color-primary-200: #fcdea1;\n --color-primary-300: #facf76;\n --color-primary-400: #f9c55b;\n --color-primary-500: #f8b732;\n --color-primary-600: #e2a72e;\n --color-primary-700: #b08224;\n --color-primary-800: #88651c;\n --color-primary-900: #684d15;\n --color-neutral-0: #ffffff;\n --color-neutral-10: #fdfdfd;\n --color-neutral-20: #f7f7f7;\n --color-neutral-50: #f3f3f3;\n --color-neutral-100: #e0e0e0;\n --color-neutral-200: #cccccc;\n --color-neutral-400: #a3a3a3;\n --color-neutral-500: #7a7a7a;\n --color-neutral-600: #6a6a6a;\n --color-neutral-700: #525252;\n --color-neutral-800: #4b4b4b;\n --color-neutral-900: #434343;\n --color-neutral-950: #333333;\n --color-red-50: #fdeeee;\n --color-red-100: #f9cbcb;\n --color-red-200: #f6b2b2;\n --color-red-300: #f28e8e;\n --color-red-400: #ef7979;\n --color-red-500: #eb5757;\n --color-red-600: #d64f4f;\n --color-red-700: #a73e3e;\n --color-red-800: #813030;\n --color-red-900: #632525;\n --bg-app: #f7f7f7;\n --bg-surface: #ffffff;\n --bg-surface-primary: #f8b732;\n --bg-surface-accent: #eb5757;\n --bg-surface-variant: #f3f3f3;\n --bg-surface-field: #ffffff;\n --bg-surface-highlight: #fef8eb;\n --bg-action-primary: #f8b732;\n --bg-action-primary-hover: #e2a72e;\n --bg-action-primary-pressed: #b08224;\n --bg-action-secondary: #ffffff;\n --bg-action-secondary-hover: #f3f3f3;\n --bg-action-secondary-pressed: #e0e0e0;\n --bg-action-disabled: #cccccc;\n --bg-action-primary-danger: #eb5757;\n --bg-action-primary-danger-hovered: #d64f4f;\n --bg-action-primary-danger-pressed: #a73e3e;\n --bg-overlay-dim: rgba(51,51,51,0.8);\n --border-main: #cccccc;\n --border-highlight: #fcdea1;\n --border-input-default: #cccccc;\n --border-input-active: #f8b732;\n --border-input-error: #eb5757;\n --border-action-secondary: #cccccc;\n --border-action-secondary-pressed: #a3a3a3;\n --border-action-danger: #eb5757;\n --border-action-disabled: #cccccc;\n --text-primary: #333333;\n --text-secondary: #7a7a7a;\n --text-placeholder: #7a7a7a;\n --text-disabled: #a3a3a3;\n --text-link: #88651c;\n --text-error: #a73e3e;\n --text-inverse: #ffffff;\n --text-on-action-primary: #333333;\n --text-on-action-secondary: #333333;\n --text-on-action-tertiary: #b08224;\n --text-on-action-tertiary-hovered: #88651c;\n --text-on-action-tertiary-pressed: #684d15;\n --text-action-danger: #d64f4f;\n --text-action-danger-hovered: #a73e3e;\n --text-action-danger-pressed: #813030;\n --text-action-disabled: #a3a3a3;\n --icon-primary: #333333;\n --icon-secondary: #525252;\n --icon-brand: #f8b732;\n --icon-disabled: #a3a3a3;\n --icon-active: #eb5757;\n --icon-on-accent: #ffffff;\n --spacing-2: 2px;\n --spacing-4: 4px;\n --spacing-8: 8px;\n --spacing-12: 12px;\n --spacing-16: 16px;\n --spacing-24: 24px;\n --spacing-32: 32px;\n --gap-icon-label: 4px;\n --gap-cell: 4px;\n --gap-text-icon: 8px;\n --gap-text-underline: 16px;\n --gap-layout-section-list: 8px;\n --gap-layout-block: 16px;\n --gap-layout-stack: 24px;\n --gap-layout-page: 32px;\n --margin-screen: 16px;\n --radius-4: 4px;\n --radius-6: 6px;\n --radius-8: 8px;\n --radius-10: 10px;\n --radius-20: 20px;\n --radius-100: 100px;\n --radius-999: 999px;\n --radius-field: 4px;\n --radius-tag: 6px;\n --radius-bubble: 8px;\n --radius-card: 10px;\n --radius-sheet-top: 20px;\n --radius-full: 100px;\n --size-icon-sm: 16px;\n --size-icon-md: 20px;\n --size-icon-lg: 24px;\n --size-avatar-sm: 32px;\n --size-avatar-md: 56px;\n --size-avatar-lg: 72px;\n --shadow-md: 0 4px 8px rgba(0,0,0,0.08);\n --shadow-lg: 0 10px 30px rgba(0,0,0,0.1);\n --shadow-top: 0 -4px 10px rgba(0,0,0,0.08);\n --font-h1-bold-family: 'Poppins', sans-serif;\n --font-h1-bold-size: 32px;\n --font-h1-bold-weight: 700;\n --font-h1-bold-line-height: 36px;\n --font-h1-bold-letter-spacing: 0.01em;\n --font-h2-bold-family: 'Poppins', sans-serif;\n --font-h2-bold-size: 20px;\n --font-h2-bold-weight: 700;\n --font-h2-bold-line-height: 36px;\n --font-h2-bold-letter-spacing: 0.01em;\n --font-h3-bold-family: 'Poppins', sans-serif;\n --font-h3-bold-size: 16px;\n --font-h3-bold-weight: 700;\n --font-h3-bold-line-height: 36px;\n --font-h3-bold-letter-spacing: 0.01em;\n --font-h3-regular-family: 'Poppins', sans-serif;\n --font-h3-regular-size: 16px;\n --font-h3-regular-weight: 400;\n --font-h3-regular-line-height: 36px;\n --font-h3-regular-letter-spacing: normal;\n --font-body-semibold-family: 'Poppins', sans-serif;\n --font-body-semibold-size: 14px;\n --font-body-semibold-weight: 600;\n --font-body-semibold-line-height: 24px;\n --font-body-semibold-letter-spacing: normal;\n --font-body-regular-family: 'Poppins', sans-serif;\n --font-body-regular-size: 14px;\n --font-body-regular-weight: 400;\n --font-body-regular-line-height: 24px;\n --font-body-regular-letter-spacing: normal;\n --font-small-semibold-family: 'Poppins', sans-serif;\n --font-small-semibold-size: 12px;\n --font-small-semibold-weight: 600;\n --font-small-semibold-line-height: 24px;\n --font-small-semibold-letter-spacing: normal;\n --font-small-bold-family: 'Poppins', sans-serif;\n --font-small-bold-size: 12px;\n --font-small-bold-weight: 700;\n --font-small-bold-line-height: 24px;\n --font-small-bold-letter-spacing: 0.01em;\n --font-small-regular-family: 'Poppins', sans-serif;\n --font-small-regular-size: 12px;\n --font-small-regular-weight: 400;\n --font-small-regular-line-height: 24px;\n --font-small-regular-letter-spacing: normal;\n --font-caption-semibold-family: 'Poppins', sans-serif;\n --font-caption-semibold-size: 10px;\n --font-caption-semibold-weight: 600;\n --font-caption-semibold-line-height: 23px;\n --font-caption-semibold-letter-spacing: 0.01em;\n --font-caption-regular-family: 'Poppins', sans-serif;\n --font-caption-regular-size: 10px;\n --font-caption-regular-weight: 400;\n --font-caption-regular-line-height: 16px;\n --font-caption-regular-letter-spacing: 0.01em;\n}\n","/* Base rules every Snacky component depends on.\n *\n * The docs site (../../index.html) opens with a global\n * `*,*::before,*::after{box-sizing:border-box}` reset, so its Live Preview has\n * always rendered components at their spec sizes. The package ships no reset,\n * and only some of its own selectors set the property, so on a host page\n * without one every fixed-size component with padding came out oversized:\n * `.snacky-product-card--list` measured 168px instead of 152, and\n * `.snacky-iconbtn--primary` 48px instead of 32.\n *\n * Scoped to `snacky-*` rather than `*` so it never touches the host page's own\n * elements, or the content a caller passes into a component's slot.\n */\n[class^='snacky-'],\n[class*=' snacky-'],\n[class^='snacky-']::before,\n[class^='snacky-']::after,\n[class*=' snacky-']::before,\n[class*=' snacky-']::after {\n box-sizing: border-box;\n}\n",".snacky-btn {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* Figma gives every variant a fixed 48 (large) / 40 (small) height and draws\n Secondary's stroke INSIDE it. Without an explicit height the box grew from\n padding alone, so Secondary's 1px border pushed it to 50 while every other\n variant sat at 48. */\n height: 48px;\n padding: var(--spacing-12) var(--spacing-8);\n border-radius: var(--radius-field);\n border: none;\n font-family: var(--font-small-semibold-family);\n font-size: var(--font-small-semibold-size);\n font-weight: var(--font-small-semibold-weight);\n line-height: var(--font-small-semibold-line-height);\n cursor: pointer;\n white-space: nowrap;\n transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;\n letter-spacing: var(--font-small-semibold-letter-spacing);\n}\n\n.snacky-btn:disabled {\n cursor: not-allowed;\n}\n\n.snacky-btn--small {\n height: 40px;\n padding: var(--spacing-8) var(--spacing-8);\n}\n\n/* Primary */\n.snacky-btn--primary {\n background: var(--bg-action-primary);\n color: var(--text-on-action-primary);\n}\n.snacky-btn--primary:hover:not(:disabled) { background: var(--bg-action-primary-hover); }\n.snacky-btn--primary:active:not(:disabled) { background: var(--bg-action-primary-pressed); }\n.snacky-btn--primary:disabled { background: var(--bg-action-disabled); color: var(--text-action-disabled); }\n\n/* Primary + Danger */\n.snacky-btn--primary.snacky-btn--danger {\n background: var(--bg-action-primary-danger);\n color: var(--text-on-action-primary);\n}\n.snacky-btn--primary.snacky-btn--danger:hover:not(:disabled) { background: var(--bg-action-primary-danger-hovered); }\n.snacky-btn--primary.snacky-btn--danger:active:not(:disabled) { background: var(--bg-action-primary-danger-pressed); }\n/* Flagged asymmetry, confirmed against the site's own live implementation:\n Primary+Danger's disabled state carries a border that plain Primary's\n disabled state does not. */\n.snacky-btn--primary.snacky-btn--danger:disabled { background: var(--bg-action-disabled); color: var(--text-action-disabled); border: 1px solid var(--border-action-disabled); }\n\n/* Secondary */\n.snacky-btn--secondary {\n background: var(--bg-action-secondary);\n border: 1px solid var(--border-action-secondary);\n color: var(--text-on-action-primary);\n}\n.snacky-btn--secondary:hover:not(:disabled) { background: var(--bg-action-secondary-hover); }\n.snacky-btn--secondary:active:not(:disabled) { background: var(--bg-action-secondary-pressed); }\n.snacky-btn--secondary:disabled { color: var(--text-action-disabled); }\n\n/* Secondary + Danger */\n.snacky-btn--secondary.snacky-btn--danger {\n border-color: var(--border-action-danger);\n color: var(--text-action-danger);\n}\n.snacky-btn--secondary.snacky-btn--danger:hover:not(:disabled) { background: var(--bg-action-secondary-hover); }\n.snacky-btn--secondary.snacky-btn--danger:active:not(:disabled) { background: var(--bg-action-secondary-pressed); }\n.snacky-btn--secondary.snacky-btn--danger:disabled { border-color: var(--border-action-disabled); color: var(--text-action-disabled); }\n\n/* Tertiary - ghost, never a fill or border, including disabled */\n.snacky-btn--tertiary {\n background: transparent;\n color: var(--text-on-action-tertiary);\n}\n.snacky-btn--tertiary:hover:not(:disabled) { color: var(--text-on-action-tertiary-hovered); }\n.snacky-btn--tertiary:active:not(:disabled) { color: var(--text-on-action-tertiary-pressed); }\n.snacky-btn--tertiary:disabled { color: var(--text-action-disabled); }\n\n/* Tertiary + Danger */\n.snacky-btn--tertiary.snacky-btn--danger { color: var(--text-action-danger); }\n.snacky-btn--tertiary.snacky-btn--danger:hover:not(:disabled) { color: var(--text-action-danger-hovered); }\n.snacky-btn--tertiary.snacky-btn--danger:active:not(:disabled) { color: var(--text-action-danger-pressed); }\n.snacky-btn--tertiary.snacky-btn--danger:disabled { color: var(--text-action-disabled); }\n\n.snacky-btn__icon {\n position: absolute;\n left: var(--spacing-8);\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n}\n",".snacky-iconbtn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border: none;\n border-radius: var(--radius-full);\n cursor: pointer;\n transition: background-color 0.12s ease;\n}\n.snacky-iconbtn:disabled { cursor: not-allowed; }\n.snacky-iconbtn svg,\n.snacky-iconbtn img { width: 100%; height: 100%; }\n\n/* Primary - 32px default, 24px small */\n.snacky-iconbtn--primary {\n width: 32px;\n height: 32px;\n padding: var(--spacing-8);\n background: var(--bg-action-primary);\n}\n/* Figma binds every icon-button glyph to an icon/* variable, not a text/* one.\n Same #333333 either way, but the icon token is the one that is actually\n specced, so a future retint of icon/icon-primary reaches these. */\n.snacky-iconbtn--primary .snacky-iconbtn__icon { width: 16px; height: 16px; color: var(--icon-primary); }\n.snacky-iconbtn--primary:hover:not(:disabled) { background: var(--bg-action-primary-hover); }\n.snacky-iconbtn--primary:active:not(:disabled) { background: var(--bg-action-primary-pressed); }\n.snacky-iconbtn--primary:disabled { background: var(--bg-action-disabled); border: 1px solid var(--border-action-disabled); }\n.snacky-iconbtn--primary:disabled .snacky-iconbtn__icon { color: var(--icon-disabled); }\n\n.snacky-iconbtn--primary.snacky-iconbtn--small {\n width: 24px;\n height: 24px;\n padding: var(--spacing-4);\n}\n\n/* Secondary - 40px, elevated, can act as a toggle via `selected` */\n.snacky-iconbtn--secondary {\n width: 40px;\n height: 40px;\n padding: var(--spacing-8);\n background: var(--bg-action-secondary);\n box-shadow: var(--shadow-md);\n}\n/* icon-primary (#333333), NOT icon-secondary. Figma's secondary set binds\n default/hovered/pressed all to icon/icon-primary; icon-secondary (#525252)\n appears only on the tertiary variant's hover. */\n.snacky-iconbtn--secondary .snacky-iconbtn__icon { width: 20px; height: 20px; color: var(--icon-primary); }\n.snacky-iconbtn--secondary:hover:not(:disabled) { background: var(--bg-action-secondary-hover); }\n.snacky-iconbtn--secondary:active:not(:disabled) { background: var(--bg-action-secondary-pressed); }\n.snacky-iconbtn--secondary:disabled { background: var(--bg-action-disabled); box-shadow: none; }\n.snacky-iconbtn--secondary:disabled .snacky-iconbtn__icon { color: var(--icon-disabled); }\n.snacky-iconbtn--secondary.snacky-iconbtn--selected .snacky-iconbtn__icon { color: var(--icon-active); }\n\n/* Tertiary - 40px, no resting fill, only a transient state-layer overlay */\n.snacky-iconbtn--tertiary {\n width: 40px;\n height: 40px;\n padding: var(--spacing-8);\n background: transparent;\n}\n.snacky-iconbtn--tertiary .snacky-iconbtn__icon { width: 24px; height: 24px; color: var(--icon-primary); }\n.snacky-iconbtn--tertiary:hover:not(:disabled) { background: rgba(0, 0, 0, 0.08); }\n.snacky-iconbtn--tertiary:hover:not(:disabled) .snacky-iconbtn__icon { color: var(--icon-secondary); }\n.snacky-iconbtn--tertiary:active:not(:disabled) { background: rgba(0, 0, 0, 0.12); }\n.snacky-iconbtn--tertiary:disabled .snacky-iconbtn__icon { color: var(--icon-disabled); }\n",".snacky-upload {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 72px;\n height: 72px;\n padding: var(--spacing-24);\n border-radius: var(--radius-full);\n background: var(--bg-surface);\n border: 1px dashed var(--border-main);\n cursor: pointer;\n transition: background-color 0.12s ease;\n}\n.snacky-upload svg,\n.snacky-upload img { width: 100%; height: 100%; }\n.snacky-upload:hover { background: var(--bg-action-secondary-hover); }\n.snacky-upload:active { background: var(--bg-action-secondary-pressed); }\n",".snacky-field {\n display: flex;\n align-items: center;\n gap: var(--gap-text-icon);\n width: 100%;\n height: 48px;\n padding: var(--spacing-12) var(--spacing-8);\n background: var(--bg-surface-field);\n border: 1px solid var(--border-input-default);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n transition: border-color 0.12s ease;\n}\n\n.snacky-field:focus-within {\n border-color: var(--border-input-active);\n}\n\n.snacky-field--error {\n border-color: var(--border-input-error) !important;\n}\n\n.snacky-field--disabled {\n background: var(--bg-surface-variant);\n cursor: not-allowed;\n}\n\n.snacky-field__input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n color: var(--text-primary);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n\n.snacky-field__input::placeholder {\n color: var(--text-placeholder);\n}\n\n.snacky-field__input:disabled {\n cursor: not-allowed;\n color: var(--text-disabled);\n}\n\n.snacky-field__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n /* Figma binds the resting glyph to text/text-placeholder and the focused one\n to text/text-primary, not icon-secondary. */\n color: var(--text-placeholder);\n}\n.snacky-field:focus-within .snacky-field__icon { color: var(--text-primary); }\n\n.snacky-field__icon--button {\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n color: inherit;\n}\n\n.snacky-field-label {\n display: block;\n margin-bottom: var(--spacing-4);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n\n.snacky-field-error {\n display: block;\n margin-top: var(--spacing-4);\n font-family: var(--font-caption-regular-family);\n font-size: var(--font-caption-regular-size);\n color: var(--text-error);\n font-weight: var(--font-caption-regular-weight);\n line-height: var(--font-caption-regular-line-height);\n letter-spacing: var(--font-caption-regular-letter-spacing);\n}\n",".snacky-search {\n display: flex;\n align-items: center;\n gap: var(--spacing-12);\n /* Animates 260px -> 312px on focus, matching the site's own verified\n implementation - not a fluid 100% field. */\n width: 260px;\n height: 40px;\n padding: var(--spacing-8) var(--spacing-12);\n background: var(--bg-surface-variant);\n border: 1px solid transparent;\n border-radius: var(--radius-field);\n box-sizing: border-box;\n transition: border-color 0.12s ease, width 0.15s ease;\n}\n.snacky-search:focus-within {\n width: 312px;\n border-color: var(--border-input-active);\n}\n.snacky-search__input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-search__input::placeholder {\n color: var(--text-placeholder);\n}\n.snacky-search__icon {\n display: inline-flex;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--text-placeholder);\n}\n.snacky-search__clear {\n display: inline-flex;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n color: var(--text-placeholder);\n}\n",".snacky-otp {\n display: flex;\n gap: var(--spacing-4);\n}\n.snacky-otp__cell {\n width: 48px;\n height: 48px;\n padding: 0;\n box-sizing: border-box;\n text-align: center;\n border: 1px solid transparent;\n border-radius: var(--radius-field);\n background: var(--bg-surface-variant);\n font-family: var(--font-h3-bold-family);\n font-size: var(--font-h3-bold-size);\n font-weight: var(--font-h3-bold-weight);\n /* 46px, not the h3Bold token's 36px - specifically tuned to center a\n single digit in the 48px cell, per the site's own implementation. */\n line-height: 46px;\n letter-spacing: 0.16px;\n color: var(--text-primary);\n outline: none;\n transition: border-color 0.1s ease;\n}\n.snacky-otp__cell:focus {\n border-color: var(--border-input-active);\n}\n/* Figma defines no disabled OTP variant (only default/active/filled), so this\n is not a spec value: it reuses the disabled text colour TextField already\n uses, so the prop is at least visible. Without it a disabled field rendered\n identically to an enabled one and the prop looked broken. */\n.snacky-otp__cell:disabled {\n cursor: not-allowed;\n color: var(--text-disabled);\n}\n",".snacky-copy {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n /* Figma has two heights here: 64 by default, because the Copy action sits in\n its own 8px-padded 40px-tall frame, and 48 once copied, where the action\n collapses to plain text. The package was pinned at 48 for both. */\n height: 64px;\n padding: var(--spacing-12);\n background: var(--bg-surface-variant);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n}\n.snacky-copy__value {\n font-family: var(--font-body-semibold-family);\n font-size: var(--font-body-semibold-size);\n font-weight: var(--font-body-semibold-weight);\n color: var(--text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: var(--font-body-semibold-line-height);\n letter-spacing: var(--font-body-semibold-letter-spacing);\n}\n.snacky-copy__action {\n flex-shrink: 0;\n margin-left: var(--spacing-12);\n background: none;\n border: none;\n padding: var(--spacing-8);\n cursor: pointer;\n font-family: var(--font-small-bold-family);\n font-size: var(--font-small-bold-size);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-link);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-copy__action--copied {\n color: var(--text-secondary);\n /* the copied state is plain text, not a padded button */\n padding: 0;\n}\n.snacky-copy:has(.snacky-copy__action--copied) {\n height: 48px;\n}\n",".snacky-chatfield {\n display: flex;\n align-items: center;\n gap: var(--gap-text-icon);\n width: 100%;\n height: 72px;\n padding: var(--spacing-12);\n background: var(--bg-surface);\n border: 1px solid var(--border-input-default);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n transition: border-color 0.12s ease;\n}\n.snacky-chatfield:focus-within {\n border-color: var(--border-input-active);\n}\n.snacky-chatfield__input {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-chatfield__input::placeholder {\n color: var(--text-placeholder);\n}\n.snacky-chatfield__send {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 48px;\n height: 48px;\n border: none;\n border-radius: var(--radius-full);\n /* Transparent with a muted icon when empty, not a grayed-out disabled\n circle - it only fills once there's something to send. */\n background: transparent;\n /* Figma binds the resting send glyph to text/text-placeholder (#7a7a7a). */\n color: var(--text-placeholder);\n cursor: default;\n transition: background-color 0.15s ease, color 0.15s ease;\n}\n.snacky-chatfield__send--active {\n background: var(--bg-action-primary);\n /* White on the accent circle. Figma binds this to background/surface/bg-surface,\n which is the same #ffffff but an odd name for an icon colour, so the\n equivalent icon token is used here. It is NOT the dark text-on-action-primary\n that a labelled button would use. */\n color: var(--icon-on-accent);\n cursor: pointer;\n}\n.snacky-chatfield__send--active:hover { background: var(--bg-action-primary-hover); }\n",".snacky-address-result {\n display: flex;\n align-items: flex-start;\n gap: var(--gap-text-icon);\n width: 100%;\n /* Figma's \"Address, Search (Selected)\" is 72: 12/12 padding around a 24 title\n and a 24 subtitle, with the stroke drawn INSIDE. A real border pushed it to\n 74, so the line is painted as an inset shadow instead - the same fix\n PointBalanceBanner needed. */\n height: 72px;\n padding: var(--spacing-12) var(--spacing-8);\n background: var(--bg-surface);\n box-shadow: inset 0 0 0 1px var(--border-input-default);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n cursor: pointer;\n text-align: left;\n}\n.snacky-address-result__icon {\n display: inline-flex;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n color: var(--text-placeholder);\n margin-top: 2px;\n}\n.snacky-address-result__title {\n margin: 0;\n font-family: var(--font-small-bold-family);\n font-size: var(--font-small-bold-size);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-primary);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-address-result__subtitle {\n margin: 0;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n",".snacky-chip {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-4);\n /* Figma gives both chip types a fixed 40 with the stroke inside. Without an\n explicit height the 1px border stacked on 8 + 24 + 8 and made it 42. */\n height: 40px;\n padding: var(--spacing-8);\n border-radius: var(--radius-full);\n background: var(--bg-surface);\n border: 1px solid var(--border-main);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n cursor: pointer;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-chip--selected {\n background: var(--bg-surface-highlight);\n border-color: var(--color-primary-500);\n}\n.snacky-chip__thumb {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n object-fit: contain;\n}\n",".snacky-radio-option {\n display: inline-flex;\n align-items: center;\n gap: var(--gap-icon-label);\n cursor: pointer;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-radio-option--disabled {\n cursor: not-allowed;\n}\n.snacky-radio {\n appearance: none;\n width: 24px;\n height: 24px;\n margin: 0;\n flex-shrink: 0;\n box-sizing: border-box;\n border-radius: 999px;\n border: 1px solid var(--border-main);\n background: transparent;\n cursor: pointer;\n position: relative;\n}\n.snacky-radio:checked {\n /* Figma binds both the ring and the dot to background/action/bg-action-primary\n (same #f8b732 as the primary-500 primitive this used before, but the real\n semantic token the file actually references). */\n border-color: var(--bg-action-primary);\n}\n.snacky-radio:checked::after {\n content: '';\n position: absolute;\n inset: 0;\n margin: auto;\n width: 12px;\n height: 12px;\n border-radius: 999px;\n background: var(--bg-action-primary);\n}\n.snacky-radio:disabled {\n cursor: not-allowed;\n border-color: var(--border-main);\n background: var(--bg-surface-variant);\n}\n/* Disabled suppresses the selected dot entirely, even if checked - matches\n the site's own verified implementation exactly. */\n.snacky-radio:disabled::after {\n display: none;\n}\n",".snacky-checkbox-option {\n display: inline-flex;\n align-items: center;\n gap: var(--gap-icon-label);\n cursor: pointer;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-checkbox {\n appearance: none;\n width: 24px;\n height: 24px;\n margin: 0;\n box-sizing: border-box;\n flex-shrink: 0;\n /* Off state is a white field surface with an outline - updated in Figma\n (node 444:11084) from an earlier solid neutral-500 fill to this outline\n style. Figma binds the stroke to border/border-main, not the\n border-input-default this used before (same #cccccc either way). */\n border: 1px solid var(--border-main);\n border-radius: var(--radius-field);\n cursor: pointer;\n position: relative;\n background: var(--bg-surface-field);\n}\n.snacky-checkbox:checked {\n background: var(--color-primary-500);\n border-color: var(--color-primary-500);\n}\n.snacky-checkbox:checked::after {\n content: '';\n position: absolute;\n inset: 3px;\n /* Confirmed against Figma: the checkmark is white (icon-on-accent), not\n text-primary - it reads as a white cutout in the compound icon path, not a\n dark mark layered on top. */\n background: var(--icon-on-accent);\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n",".snacky-toggle {\n position: relative;\n display: inline-block;\n width: 56px;\n height: 32px;\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n appearance: none;\n}\n.snacky-toggle:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.snacky-toggle__track {\n position: absolute;\n left: 0;\n top: 4px;\n width: 56px;\n height: 24px;\n border-radius: 12px;\n /* Bound to bg-action-disabled in Figma (same #cccccc as neutral-200, this\n just matches the actual token binding, confirmed via the file's variables). */\n background: var(--bg-action-disabled);\n transition: background-color 0.2s ease;\n}\n.snacky-toggle--on .snacky-toggle__track {\n /* \"Accent tint\" per Figma - a light wash, not the solid accent color. Figma's\n actual paint (#fffbe9) isn't bound to any variable and isn't quite\n bg-surface-highlight/primary-50 (#fef8eb) either, close enough (a few\n values out of 255 per channel) that this token is used rather than a new\n one-off raw color for an likely-untokenized value in Figma itself. */\n background: var(--bg-surface-highlight);\n}\n.snacky-toggle__thumb {\n position: absolute;\n top: 0;\n left: 0;\n width: 32px;\n height: 32px;\n border-radius: 999px;\n /* Confirmed against Figma (bound to the icon-disabled variable): #a3a3a3,\n not neutral-500 (#7a7a7a). */\n background: var(--icon-disabled);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n transition: left 0.2s ease, background-color 0.2s ease;\n}\n.snacky-toggle--on .snacky-toggle__thumb {\n left: 24px;\n background: var(--color-primary-500);\n}\n",".snacky-navbar {\n display: flex;\n width: 100%;\n background: var(--bg-surface);\n box-shadow: var(--shadow-top);\n}\n.snacky-navbar__item {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--gap-icon-label);\n padding: var(--spacing-12) 0;\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-secondary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-navbar__item--active {\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-primary);\n font-size: var(--font-small-bold-size);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-navbar__icon {\n display: inline-flex;\n width: 20px;\n height: 20px;\n /* Icon and label use different inactive colors in the site's own\n verified implementation - icon-secondary, not text-secondary. */\n color: var(--icon-secondary);\n}\n.snacky-navbar__item--active .snacky-navbar__icon {\n color: var(--color-primary-500);\n}\n",".snacky-tabrow {\n display: flex;\n gap: var(--spacing-24);\n border-bottom: 1px solid var(--border-main);\n}\n.snacky-tab {\n background: none;\n border: none;\n /* Figma's own token for this exact gap is gap.text-underline (16px,\n documented as \"Text → underline indicator gap (Tab)\"), not spacing-12.\n The accent line is painted as an inset box-shadow rather than a real\n border so it doesn't add its own 2px on top - a real border pushed the\n tab to 38 against Figma's declared 40 (24 text + 16 gap, no extra). The\n transparent/coloured swap below still reserves the same space either\n way, so switching tabs causes no layout shift. */\n box-shadow: inset 0 -2px 0 0 transparent;\n padding: 0 0 var(--gap-text-underline) 0;\n cursor: pointer;\n font-family: var(--font-body-regular-family);\n font-size: 14px;\n line-height: var(--font-body-regular-line-height);\n color: var(--text-primary);\n transition: color 0.15s ease;\n font-weight: var(--font-body-regular-weight);\n letter-spacing: var(--font-body-regular-letter-spacing);\n}\n.snacky-tab--active {\n font-family: var(--font-body-semibold-family);\n font-weight: var(--font-body-semibold-weight);\n /* Re-verified against Figma's actual bound variables (an earlier pass\n read this as the raw primary-700 primitive): the active label's text\n fill is bound to text/on-action/text-on-action-tertiary (#b08224,\n same value as primary-700, but the real semantic token, matching the\n Tertiary button's default label color). The underline's stroke is\n bound to border/input/border-input-active (#f8b732) - an input-focus\n token reused here, which reads as incidental Figma variable reuse\n rather than an intentional shared role, so this keeps the primitive\n --color-primary-500 instead of adopting a misleading token name. */\n color: var(--text-on-action-tertiary);\n box-shadow: inset 0 -2px 0 0 var(--color-primary-500);\n font-size: var(--font-body-semibold-size);\n line-height: var(--font-body-semibold-line-height);\n letter-spacing: var(--font-body-semibold-letter-spacing);\n}\n",".snacky-header {\n display: flex;\n align-items: center;\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-16) var(--spacing-8);\n background: var(--bg-surface);\n}\n.snacky-header__icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n padding: 0;\n border: none;\n border-radius: var(--radius-full);\n background: transparent;\n color: var(--icon-primary);\n cursor: pointer;\n}\n.snacky-header__title-row {\n flex: 1;\n min-width: 0;\n display: flex;\n justify-content: center;\n}\n/* When a leading icon is present but there's no trailing action, the title\n row gets matching right padding so the text stays optically centered\n against the whole bar, not just the leftover space next to the icon. */\n.snacky-header__title-row--balance {\n padding-right: 40px;\n}\n.snacky-header__title {\n font-family: var(--font-h3-bold-family);\n font-weight: var(--font-h3-bold-weight);\n font-size: var(--font-h3-bold-size);\n line-height: var(--font-h3-bold-line-height);\n letter-spacing: var(--font-h3-bold-letter-spacing);\n color: var(--text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n",".snacky-banner-hero {\n display: block;\n width: 100%;\n /* Its two siblings below both pin an aspect-ratio; this one did not, so the\n artwork's own proportions decided the height and a 6.4:1 strip rendered the\n banner 49 tall instead of Figma's 312x128. */\n aspect-ratio: 312 / 128;\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-md);\n object-fit: cover;\n}\n.snacky-banner-square {\n display: block;\n width: 100%;\n aspect-ratio: 360 / 334;\n border-radius: var(--radius-bubble);\n object-fit: cover;\n}\n.snacky-banner-full {\n display: block;\n width: 100%;\n aspect-ratio: 360 / 176;\n object-fit: cover;\n}\n.snacky-banner-point-balance {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: var(--spacing-8) var(--spacing-16);\n /* 8px, per Figma's `Property 1=point-balance` frame. Primitive rather than a\n semantic gap token because none covers this: gap.text-icon is also 8px but\n is documented as a field row's text-to-icon gap, not the split between the\n banner's two halves. */\n gap: var(--spacing-8);\n background: var(--bg-surface-highlight);\n /* Figma draws this stroke INSIDE a 60-tall frame, where it overlaps the\n padding rather than adding to the box. A real border would push the banner\n to 62; an inset shadow paints the same 1px line without taking layout\n space. */\n box-shadow: inset 0 0 0 1px var(--color-primary-500);\n border-radius: var(--radius-card);\n box-sizing: border-box;\n}\n.snacky-banner-point-balance__item {\n display: flex;\n align-items: center;\n /* 12px, per Figma's \"Points and Balance Container\". This was gap.icon-label\n (4px), which is documented as a *vertical* navbar/menu icon-to-label gap,\n so it was wrong on both the axis and the value and left the icon jammed\n against the text. No semantic gap token is 12px, hence the primitive. */\n gap: var(--spacing-12);\n}\n.snacky-banner-point-balance__icon {\n /* Figma binds both icons to icon/icon-brand and draws them at 16x16. Without\n an explicit colour the icons render currentColor, which inherits the row's\n dark label colour instead of the accent. */\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n color: var(--icon-brand);\n}\n.snacky-banner-point-balance__label {\n margin: 0;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n /* Figma authors this label node at 20 tall even though its line-height reads\n 24, and 20 + the value's 24 is what makes the banner exactly 60. Deliberate\n override of the token's 24. */\n line-height: 20px;\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-banner-point-balance__value {\n margin: 0;\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-primary);\n font-size: var(--font-small-bold-size);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-banner-point-balance__divider {\n width: 1px;\n align-self: stretch;\n background: var(--color-primary-500);\n}\n\n.snacky-banner-alert {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 40px;\n padding: var(--spacing-8) var(--spacing-24);\n gap: var(--spacing-4);\n background: var(--bg-surface-accent);\n box-sizing: border-box;\n}\n.snacky-banner-alert__message {\n margin: 0;\n font-family: var(--font-body-regular-family);\n font-size: var(--font-body-regular-size);\n color: var(--text-inverse);\n font-weight: var(--font-body-regular-weight);\n line-height: var(--font-body-regular-line-height);\n letter-spacing: var(--font-body-regular-letter-spacing);\n}\n.snacky-banner-alert__countdown {\n margin: 0;\n font-family: var(--font-body-semibold-family);\n font-weight: var(--font-body-semibold-weight);\n color: var(--text-inverse);\n font-size: var(--font-body-semibold-size);\n line-height: var(--font-body-semibold-line-height);\n letter-spacing: var(--font-body-semibold-letter-spacing);\n}\n",".snacky-badge-wrap {\n position: relative;\n display: inline-flex;\n}\n.snacky-badge-notification {\n position: absolute;\n top: -8px;\n right: -10px;\n min-width: 20px;\n height: 19px;\n padding: var(--spacing-2) var(--spacing-4);\n border-radius: 999px;\n background: var(--bg-surface-accent);\n color: var(--text-inverse);\n font-family: var(--font-caption-semibold-family);\n font-size: var(--font-caption-semibold-size);\n font-weight: var(--font-caption-semibold-weight);\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n letter-spacing: var(--font-caption-semibold-letter-spacing);\n}\n.snacky-discount-tag {\n /* Figma: 24 tall. The 16px caption line box plus 2/4 padding only made 20. */\n height: 24px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-2) var(--spacing-4);\n border-radius: var(--radius-tag);\n background: var(--bg-surface-accent);\n color: var(--text-inverse);\n font-family: var(--font-caption-semibold-family);\n font-size: var(--font-caption-semibold-size);\n font-weight: var(--font-caption-semibold-weight);\n line-height: var(--font-caption-semibold-line-height);\n letter-spacing: var(--font-caption-semibold-letter-spacing);\n}\n.snacky-soldout-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-12) var(--spacing-8);\n border-radius: 999px;\n background: rgba(51, 51, 51, 0.8);\n color: var(--text-inverse);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-variant-badge {\n display: inline-flex;\n align-items: center;\n /* Figma: 32 tall with the stroke inside; the 1px border was stacking on top. */\n height: 32px;\n padding: var(--spacing-8);\n border-radius: var(--radius-field);\n background: var(--bg-surface-highlight);\n border: 1px solid var(--color-primary-500);\n color: var(--text-primary);\n font-family: var(--font-caption-regular-family);\n font-size: var(--font-caption-regular-size);\n font-weight: var(--font-caption-regular-weight);\n line-height: var(--font-caption-regular-line-height);\n letter-spacing: var(--font-caption-regular-letter-spacing);\n}\n",".snacky-callout {\n display: inline-flex;\n flex-direction: column;\n gap: var(--spacing-4);\n max-width: 200px;\n padding: var(--spacing-12) var(--spacing-8);\n border-radius: var(--radius-bubble);\n font-family: var(--font-body-regular-family);\n font-size: var(--font-body-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-body-regular-weight);\n line-height: var(--font-body-regular-line-height);\n letter-spacing: var(--font-body-regular-letter-spacing);\n}\n.snacky-callout--received {\n align-self: flex-start;\n background: var(--bg-surface);\n /* No box-shadow: confirmed against Figma (node 8690:7424), the Received\n bubble has an empty effects array, flat like Sent/Pending. */\n}\n.snacky-callout--sent,\n.snacky-callout--pending {\n align-self: flex-end;\n background: var(--color-primary-500);\n}\n.snacky-callout__message {\n margin: 0;\n width: 100%;\n}\n.snacky-callout__meta {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--spacing-4);\n width: 100%;\n font-family: var(--font-caption-regular-family);\n font-size: var(--font-caption-regular-size);\n color: var(--text-primary);\n text-align: right;\n font-weight: var(--font-caption-regular-weight);\n line-height: var(--font-caption-regular-line-height);\n letter-spacing: var(--font-caption-regular-letter-spacing);\n}\n.snacky-callout__meta-icon {\n width: 16px;\n height: 16px;\n display: inline-flex;\n}\n",".snacky-order-item {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n padding: var(--spacing-8) var(--spacing-12);\n background: var(--bg-surface);\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-md);\n box-sizing: border-box;\n text-align: left;\n}\n.snacky-order-item__top {\n display: flex;\n gap: var(--spacing-8);\n width: 100%;\n}\n.snacky-order-item__thumb-box {\n width: 56px;\n height: 56px;\n flex-shrink: 0;\n border-radius: var(--radius-field);\n /* No background: Figma's Image component set (usage=list) has no fill and no\n stroke on the 56x56 frame, it only holds the 48x48 photo. An earlier pass\n invented #f4f4f5 here, which is also 1-2 values off bg-surface-variant and\n contradicted ProductImage's own usage=\"list\", which correctly has none. */\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n}\n.snacky-order-item__thumb {\n width: 48px;\n height: 48px;\n object-fit: contain;\n}\n.snacky-order-item__info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n.snacky-order-item__status {\n font-family: var(--font-small-semibold-family);\n font-weight: var(--font-small-semibold-weight);\n font-size: var(--font-small-semibold-size);\n line-height: 24px;\n color: var(--text-primary);\n letter-spacing: var(--font-small-semibold-letter-spacing);\n}\n.snacky-order-item__status--cancelled {\n color: var(--text-error);\n}\n.snacky-order-item__name {\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-order-item__details {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n width: 100%;\n /* Figma's \"Details Container\" is padded 8/0. Without it every order variant\n came out exactly 16px short. */\n padding: var(--spacing-8) 0;\n}\n.snacky-order-item__count {\n flex: 1;\n min-width: 0;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-secondary);\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-order-item__total {\n flex: 1;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-primary);\n text-align: right;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-order-item__total b {\n font-weight: var(--font-small-bold-weight);\n letter-spacing: 0.12px;\n font-family: var(--font-small-bold-family);\n font-size: var(--font-small-bold-size);\n line-height: var(--font-small-bold-line-height);\n}\n.snacky-order-item__total--cod {\n flex: 0 1 auto;\n}\n.snacky-order-item__cod {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* Figma's \"COD Container\" is 24 tall with its stroke inside. Without an\n explicit height the 1px border stacked on the 24px line box and pushed the\n whole card to 122 instead of 120. */\n height: 24px;\n padding: 0 var(--spacing-8);\n border-radius: var(--radius-field);\n border: 1px solid var(--border-main);\n background: var(--bg-surface);\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n font-size: var(--font-small-bold-size);\n line-height: 24px;\n letter-spacing: 0.12px;\n color: var(--text-secondary);\n}\n.snacky-order-item__deadline {\n width: 100%;\n background: var(--bg-surface-highlight);\n text-align: center;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-order-item__action-row {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n\n.snacky-notif-item {\n display: flex;\n flex-direction: column;\n gap: 0;\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-8) var(--spacing-12);\n background: var(--bg-surface);\n border: 1px solid var(--border-main);\n border-radius: var(--radius-field);\n text-align: left;\n}\n.snacky-notif-item--unread {\n background: var(--bg-surface-highlight);\n}\n.snacky-notif-item__title {\n font-family: var(--font-small-semibold-family);\n font-weight: var(--font-small-semibold-weight);\n font-size: var(--font-small-semibold-size);\n line-height: 24px;\n color: var(--text-primary);\n letter-spacing: var(--font-small-semibold-letter-spacing);\n}\n.snacky-notif-item__message {\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n line-height: 24px;\n color: var(--text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: var(--font-small-regular-weight);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n",".snacky-accordion {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n width: 100%;\n}\n.snacky-accordion__header {\n display: flex;\n align-items: center;\n gap: var(--gap-text-icon);\n width: 100%;\n padding: var(--spacing-12) var(--spacing-8);\n background: var(--bg-surface);\n border: none;\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-md);\n cursor: pointer;\n text-align: left;\n color: var(--text-primary);\n}\n.snacky-accordion__icon {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n}\n.snacky-accordion__title {\n flex: 1;\n font-family: var(--font-body-semibold-family);\n font-size: 14px;\n font-weight: var(--font-body-semibold-weight);\n line-height: var(--font-body-semibold-line-height);\n letter-spacing: var(--font-body-semibold-letter-spacing);\n}\n.snacky-accordion--icon .snacky-accordion__title {\n font-family: var(--font-small-semibold-family);\n font-size: var(--font-small-semibold-size);\n font-weight: var(--font-small-semibold-weight);\n line-height: var(--font-small-semibold-line-height);\n letter-spacing: var(--font-small-semibold-letter-spacing);\n}\n.snacky-accordion__chevron {\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n /* Confirmed against Figma: icon-secondary in both open and closed states,\n not inherited text-primary. */\n color: var(--icon-secondary);\n transition: transform 0.15s ease;\n}\n.snacky-accordion__chevron--open {\n transform: rotate(180deg);\n}\n/* Confirmed against Figma (node 8696:6572): the expanded panel is its own\n separate elevated card (own radius-field + shadow-md), not a padding-only\n section merged into the header's card, and there is no bordered variant\n at all - Figma never draws a border on either the icon or no-icon case. */\n.snacky-accordion__panel {\n padding: var(--spacing-12);\n background: var(--bg-surface);\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-md);\n /* Figma's \"Content Text\" is 14/24 (body-regular), not the 12px small-regular\n the header uses. At 12px the copy re-wrapped and the expanded card came out\n 292 tall instead of 340. */\n font-family: var(--font-body-regular-family);\n font-size: var(--font-body-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-body-regular-weight);\n line-height: var(--font-body-regular-line-height);\n letter-spacing: var(--font-body-regular-letter-spacing);\n}\n",".snacky-sheet-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg-overlay-dim);\n display: flex;\n align-items: flex-end;\n justify-content: center;\n z-index: 1000;\n}\n.snacky-sheet {\n width: 100%;\n max-width: 480px;\n max-height: 90vh;\n overflow-y: auto;\n background: var(--bg-surface);\n border-radius: var(--radius-sheet-top) var(--radius-sheet-top) 0 0;\n padding: var(--spacing-24);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--gap-layout-block);\n}\n.snacky-sheet__handle {\n width: 36px;\n height: 4px;\n border-radius: 999px;\n background: var(--color-neutral-200);\n margin: 0 auto var(--spacing-8);\n}\n",".snacky-section {\n width: 100%;\n padding: var(--spacing-16) var(--spacing-24);\n background: var(--bg-surface);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--gap-layout-block);\n}\n.snacky-section__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.snacky-section__title {\n margin: 0;\n font-family: var(--font-h3-bold-family);\n font-size: var(--font-h3-bold-size);\n font-weight: var(--font-h3-bold-weight);\n color: var(--text-primary);\n line-height: var(--font-h3-bold-line-height);\n letter-spacing: var(--font-h3-bold-letter-spacing);\n}\n.snacky-section__action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n padding: var(--spacing-4);\n border: none;\n border-radius: var(--radius-full);\n background: var(--bg-action-primary);\n /* Re-verified against Figma's actual bound variable on the chevron vector\n (not the icon instance's own unrelated white frame fill, which was\n mistakenly read as the icon color in an earlier pass): text/text-primary,\n #333333 - same rendered color as --text-on-action-primary, which is what\n this originally was, but --text-primary is the variable Figma actually\n binds here. */\n color: var(--text-primary);\n cursor: pointer;\n}\n.snacky-section__action:hover { background: var(--bg-action-primary-hover); }\n",".snacky-avatar {\n display: block;\n border-radius: 999px;\n object-fit: cover;\n flex-shrink: 0;\n}\n.snacky-avatar--sm { width: 32px; height: 32px; }\n.snacky-avatar--md { width: 56px; height: 56px; }\n.snacky-avatar--lg { width: 72px; height: 72px; }\n",".snacky-illustration {\n display: block;\n max-width: 100%;\n /* The per-variant canvas is the spec, so the artwork is fitted into it rather\n than allowed to set its own height. `height: auto` let the file's aspect win,\n and two of the shipped PNGs do not match their canvas\n (illus-discount-referral is 1076x892, i.e. 1.206, against a 268x200 / 1.340\n canvas), which rendered discountReferral 22px too tall. contain keeps the\n canvas exact without distorting the artwork. */\n object-fit: contain;\n}\n",".snacky-product-image-wrap {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n}\n.snacky-product-image {\n display: block;\n object-fit: contain;\n}\n/* These must match the `usage` prop values verbatim, since the class name is\n built as `--${usage}`. They read `--card`/`--details` before, so the\n product-card and product-details usages, the two most common ones, silently\n matched no rule at all and rendered unsized. */\n.snacky-product-image--product-card,\n.snacky-product-image--product-details {\n width: 100%;\n height: 100%;\n background: transparent;\n}\n.snacky-product-image-wrap--product-card { width: 128px; height: 128px; }\n.snacky-product-image-wrap--product-details { width: 200px; height: 200px; }\n\n.snacky-product-image-wrap--list {\n width: 56px;\n height: 56px;\n padding: var(--spacing-4);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n}\n.snacky-product-image-wrap--review {\n width: 48px;\n height: 48px;\n padding: var(--spacing-4);\n border: 1px solid var(--border-main);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n}\n.snacky-product-image-wrap--variant {\n width: 88px;\n height: 88px;\n padding: var(--spacing-4);\n border: 1px solid var(--border-main);\n border-radius: var(--radius-field);\n box-sizing: border-box;\n}\n.snacky-product-image-wrap--accordion-modal { width: 24px; height: 24px; }\n\n.snacky-product-image-sold-overlay {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.46);\n border-radius: inherit;\n}\n.snacky-product-image-sold-label {\n padding: var(--spacing-12) 7px;\n border-radius: 999px;\n background: rgba(51, 51, 51, 0.8);\n color: var(--text-inverse);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n",".snacky-product-card {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-12);\n background: var(--bg-surface);\n text-align: left;\n border: none;\n cursor: pointer;\n font-family: inherit;\n}\n.snacky-product-card--list {\n width: 152px;\n /* 152px is a spec width, not a hint. This card's documented home is a\n horizontal carousel, where a flex parent would otherwise shrink it below\n spec rather than letting the row scroll. */\n flex-shrink: 0;\n padding: var(--spacing-12) var(--spacing-8);\n border-radius: var(--radius-field);\n box-shadow: var(--shadow-lg);\n}\n/* Figma node \"Property 1=details\": the card itself has no padding and no gap.\n Its two child frames carry all of it. */\n.snacky-product-card--details {\n width: 100%;\n padding: 0;\n gap: 0;\n}\n/* \"Image\" frame - 12/8 padding around the 200px image, 224 tall. */\n.snacky-product-card__image-block {\n display: flex;\n justify-content: center;\n padding: var(--spacing-12) var(--spacing-8);\n}\n/* \"Product details container\" - 16/24 padding, 8px gap, 148 tall. */\n.snacky-product-card__details-body {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n padding: var(--spacing-16) var(--spacing-24);\n}\n.snacky-product-card__image-wrap {\n position: relative;\n}\n.snacky-product-card--list .snacky-product-card__image-wrap { width: 128px; height: 128px; }\n.snacky-product-card--details .snacky-product-card__image-wrap { width: 200px; height: 200px; margin: 0 auto; }\n.snacky-product-card__image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n.snacky-product-card__discount {\n position: absolute;\n top: 0;\n right: 0;\n}\n/* Sold Out is a centred scrim over the whole image, not a corner tag. It used\n to reuse __discount above, which pinned the pill to the top-right with no\n scrim at all. index.html's preview and ProductImage's\n .snacky-product-image-sold-overlay both centre it; this matches them. */\n.snacky-product-card__sold-overlay {\n position: absolute;\n inset: 0;\n margin: var(--spacing-12) var(--spacing-8);\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.46);\n}\n.snacky-product-card__name {\n margin: 0;\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-primary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-product-card--details .snacky-product-card__name {\n font-size: 14px;\n}\n.snacky-product-card__price-row {\n display: flex;\n /* Figma's \"Price container\" is CENTER with a 5px gap, and 5 is not on the\n spacing scale, so this is a literal on purpose. Was baseline + 4px, which\n made the row 25px instead of the specced 24px. */\n align-items: center;\n gap: 5px;\n}\n.snacky-product-card--details .snacky-product-card__price-row {\n align-items: flex-start;\n gap: var(--spacing-8);\n}\n.snacky-product-card__price {\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n color: var(--text-primary);\n font-size: var(--font-small-bold-size);\n line-height: var(--font-small-bold-line-height);\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-product-card--details .snacky-product-card__price {\n /* Figma: 20px on a 36px line, which is what makes the price row 36 tall.\n Without the line-height it inherited small-bold's 24 and the row came out\n 27. */\n font-size: 20px;\n font-weight: 700;\n line-height: 36px;\n}\n.snacky-product-card__original-price {\n font-family: var(--font-small-bold-family);\n font-weight: var(--font-small-bold-weight);\n font-size: 10px;\n color: var(--text-secondary);\n text-decoration: line-through;\n /* Figma authors this one at AUTO line height, not the token's 24px - it is\n the only text in the card that does, so it stays a literal. */\n line-height: normal;\n letter-spacing: var(--font-small-bold-letter-spacing);\n}\n.snacky-product-card--details .snacky-product-card__original-price {\n font-size: 16px;\n font-weight: 700;\n line-height: 36px;\n}\n.snacky-product-card__footer-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-8);\n}\n.snacky-product-card__rating {\n display: inline-flex;\n align-items: center;\n gap: var(--gap-icon-label);\n font-family: var(--font-small-regular-family);\n font-size: var(--font-small-regular-size);\n color: var(--text-secondary);\n font-weight: var(--font-small-regular-weight);\n line-height: var(--font-small-regular-line-height);\n letter-spacing: var(--font-small-regular-letter-spacing);\n}\n.snacky-product-card__rating-icon {\n width: 16px;\n height: 16px;\n color: var(--icon-brand);\n}\n.snacky-product-card__actions {\n display: flex;\n gap: var(--gap-cell);\n}\n/* Details page's Favorite/Share/Chat icon buttons use a slightly softer\n shadow than the standard Secondary icon-button elevation. */\n.snacky-product-card__actions--details button {\n box-shadow: 0 4px 4px rgba(0, 0, 0, 0.08);\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snacky/ui",
3
- "version": "0.5.7",
3
+ "version": "0.5.8",
4
4
  "description": "Snacky App design system - React component library. Generated from the source-of-truth design system at ../../index.html (tokens.json / components.json), pixel-accurate to Figma.",
5
5
  "license": "MIT",
6
6
  "author": "rezatresnas",