/* Platform skins.
   Canvas is React Native everywhere, so the same tree renders under three native
   skins: the BRAND (tokens, structure, semantics) is identical, and only shape,
   sizing, label type, fill/border treatment, and press feedback change per OS.
   Upstream those live in each component's `*.styles.ts` (webSkin / iosSkin /
   androidSkin). Here every skin value is a --p-* custom property, so the whole
   look switches from one attribute:

     <div data-platform="ios">…</div>     iOS 26 / HIG
     <div data-platform="android">…</div> Material 3
     (default / data-platform="web")      the established Canvas web look

   Values are lifted verbatim from the upstream skins. */
:root,[data-platform="web"]{
  /* Button — 6px radius, medium label, opacity press */
  --p-btn-radius:6px;--p-btn-pad-x:16px;--p-btn-pad-y:8px;--p-btn-gap:8px;
  --p-btn-font:14px;--p-btn-lh:20px;--p-btn-weight:500;--p-btn-tracking:0px;
  --p-btn-pad-x-sm:12px;--p-btn-pad-y-sm:6px;--p-btn-font-sm:12px;--p-btn-lh-sm:16px;
  --p-btn-pad-x-lg:24px;--p-btn-pad-y-lg:12px;--p-btn-font-lg:16px;--p-btn-lh-lg:24px;
  --p-btn-square:40px;--p-btn-square-sm:32px;--p-btn-square-lg:48px;
  --p-press:0.9 /* @kind other */;--p-disabled:0.5 /* @kind other */;
  /* Card — hairline + soft resting shadow, 24px inset */
  --p-card-radius:8px;--p-card-shadow:0px 1px 2px rgba(0,0,0,0.05);--p-card-shadow-raised:0px 4px 6px rgba(0,0,0,0.1);
  --p-card-pad:24px;--p-card-gap:16px;--p-card-pad-compact:16px;--p-card-gap-compact:12px;
  --p-card-pad-comfortable:32px;--p-card-gap-comfortable:24px;--p-card-border:var(--border) /* @kind other */;
  /* Field — full 1px border, 36px tall, background fill */
  --p-field-radius:6px;--p-field-height:36px;--p-field-height-sm:32px;--p-field-height-lg:40px;
  --p-field-fill:var(--background);--p-field-pad-x:16px;--p-field-font:14px;--p-field-lh:20px;
  --p-field-border-width:1px;--p-field-underline:0px;--p-field-radius-bottom:6px;
  /* Only M3 draws a darker active indicator; web/iOS keep the bottom edge the same hairline. */
  --p-field-underline-color:var(--input);
  --p-label-weight:500;--p-label-tracking:0px;
  /* Floating label (style/floating-label.tsx, shared by Input/Autocomplete/Select/Textarea):
     the label-above vs in-container-float switch. Web and iOS render the static label ABOVE
     the field, so the float layer is display:none and no top padding is reserved. The floated
     type (body-small 12/16, +0.4 tracking) is the kit's shared labelFloated value, identical
     across the four field families. --p-label-float-placeholder is the native placeholder's
     opacity while a resting in-container label owns the placeholder slot (1 = the label never
     rests in the container here, so the placeholder stays). */
  --p-label-above-display:block /* @kind other */;--p-label-float-display:none /* @kind other */;
  --p-label-float-reserve:0px;--p-label-float-font:12px;--p-label-float-lh:16px;--p-label-float-tracking:0.4px;
  --p-label-float-placeholder:1 /* @kind other */;
  /* Choice controls */
  --p-check-size:16px;--p-check-radius:3px;--p-check-border:1px;
  --p-switch-w:36px;--p-switch-h:20px;--p-switch-thumb-w:16px;--p-switch-thumb-h:16px;--p-switch-thumb-fill:var(--background);
  /* Switch off state (switch.styles.ts: the on-track is always the brand primary; off is the platform's resting anatomy) */
  --p-switch-off-track:var(--input);--p-switch-off-ring:none;--p-switch-thumb-inset:2px;
  --p-switch-thumb-off-w:16px;--p-switch-thumb-off-h:16px;--p-switch-thumb-off-fill:var(--background);--p-switch-thumb-off-x:2px;
  --p-switch-thumb-shadow:none;
  /* Pills and tiles */
  --p-badge-radius:6px;--p-badge-font:12px;--p-badge-weight:500;--p-badge-tracking:0px;
  --p-chip-radius:9999px;--p-chip-pad-x:8px;--p-chip-pad-y:1px;--p-chip-font:12px;--p-chip-gap:4px;
  /* Chip glyphs (chip.styles.ts: 12px web/iOS remove glyph; the M3 selected checkmark shows on Android only) */
  --p-chip-remove:12px;--p-chip-check-display:none /* @kind other */;--p-chip-check-size:18px;
  --p-avatar-square-radius:6px;
  /* Banners and overlays */
  --p-alert-radius:8px;--p-alert-tracking:0px;
  --p-overlay-radius:8px;--p-sheet-radius:12px;
  /* Popover (popover.styles.tsx webSkin: 8px card, full 1px border, lg shadow, no beak) */
  --p-popover-radius:8px;--p-popover-border:1px;--p-popover-shadow:0px 10px 15px rgba(0,0,0,0.1);--p-popover-beak-display:none /* @kind other */;
  /* Spinner (spinner.styles.tsx webSkin: the ActivityIndicator arc ring; iOS swaps in the spoke ring) */
  --p-spinner-arc-display:inline-block /* @kind other */;--p-spinner-spokes-display:none /* @kind other */;
  /* Tabs — underline rule, 2px brand indicator */
  --p-tab-track-bg:transparent;--p-tab-track-radius:0px;--p-tab-track-pad:0px;--p-tab-rule:1px;
  --p-tab-item-radius:0px;--p-tab-item-pad-x:16px;--p-tab-item-pad-y:10px;
  --p-tab-selected-bg:transparent;--p-tab-selected-shadow:none;
  --p-tab-indicator-h:2px;--p-tab-font:14px;--p-tab-lh:20px;
  --p-tab-label-selected:var(--foreground);
  /* Tabs pills + vertical (tabs.styles.ts webSkin: muted radius-8 track with a raised white thumb; accent-filled rail) */
  --p-tab-pill-track-radius:8px;--p-tab-pill-track-pad:4px;--p-tab-pill-gap:4px;
  --p-tab-pill-radius:6px;--p-tab-pill-pad-x:12px;--p-tab-pill-pad-y:6px;
  --p-tab-pill-selected-bg:var(--background);--p-tab-pill-selected-shadow:0px 1px 2px rgba(0,0,0,0.05);
  --p-tab-pill-label:var(--muted-foreground);--p-tab-pill-selected-weight:500;
  --p-tab-v-radius:6px;--p-tab-v-pad-x:12px;--p-tab-v-pad-y:8px;--p-tab-v-font:14px;--p-tab-v-lh:20px;
  --p-tab-v-weight:500;--p-tab-v-selected-weight:500;
  --p-tab-v-selected-fill:var(--accent);--p-tab-v-selected-label:var(--accent-foreground);--p-tab-v-label:var(--muted-foreground);
  /* Sidebar (sidebar.styles.ts webSkin) */
  --p-side-w:240px;--p-side-w-collapsed:56px;--p-side-fill:var(--background) /* @kind other */;
  --p-side-header-h:56px;--p-side-header-pad:14px;--p-side-body-pad:8px;--p-side-body-gap:16px;
  --p-side-row-radius:6px;--p-side-row-pad-x:12px;--p-side-row-pad-y:8px;--p-side-row-gap:12px;
  --p-side-label:14px;--p-side-label-lh:20px;--p-side-icon:16px;
  --p-side-title:12px;--p-side-title-lh:16px;--p-side-title-weight:500;--p-side-title-transform:uppercase /* @kind other */;--p-side-title-tracking:0.8px;
  /* Sidebar sections + collapse chrome (sidebar.styles.ts webSkin: group gap 4, 12/4 title inset,
     11px Radix right caret spinning 0 to 90deg, 4px active dot, 14px chevron-left toggle).
     One disclosure glyph (chevron-right) rotated per platform: web/iOS rest at 0deg (the right
     caret) opening to 90deg; Android rest at 90deg (the M3 expand_more, pointing down) opening
     to 270deg, the same 180deg spin. */
  --p-side-group-gap:4px;--p-side-title-pad-x:12px;--p-side-title-pad-y:4px;
  --p-side-sechdr-gap:4px;--p-side-sechdr-pad-y:6px;--p-side-chevron:11px;--p-side-dot:4px;
  --p-side-chevron-rest:0deg /* @kind other */;--p-side-chevron-open:90deg /* @kind other */;
  --p-side-toggle:14px;--p-side-toggle-pad:4px;--p-side-toggle-radius:6px;
  /* Navbar (navbars.styles.ts webSkin) */
  --p-nav-h:56px;--p-nav-pad-x:16px;--p-nav-fill:var(--background) /* @kind other */;--p-nav-rule:1px;
  --p-nav-brand:16px;--p-nav-brand-lh:24px;--p-nav-brand-weight:600;
  --p-nav-links-gap:4px;--p-nav-link-radius:6px;--p-nav-link-pad-x:12px;--p-nav-link-pad-y:6px;
  --p-nav-link-font:14px;--p-nav-link-lh:20px;
  /* Stats (stats.styles.ts webSkin) */
  --p-stat-radius:8px;--p-stat-pad:20px;--p-stat-shadow:0px 1px 2px rgba(0,0,0,0.05);--p-stat-gap:14px;
  --p-stat-label:14px;--p-stat-label-lh:20px;--p-stat-label-tracking:0px;
  --p-stat-value:24px;--p-stat-value-lh:32px;--p-stat-value-weight:600;--p-stat-value-tracking:-0.4px;
  --p-stat-delta-tracking:0px;
  /* DataTable (data-table.styles.ts webSkin) */
  --p-table-radius:8px;
  --p-table-head-font:12px;--p-table-head-lh:16px;--p-table-head-weight:500;--p-table-head-transform:uppercase /* @kind other */;--p-table-head-tracking:0.4px;--p-table-head-pad-y:8px;
  --p-table-cell-font:14px;--p-table-cell-lh:20px;--p-table-cell-tracking:0px;--p-table-cell-pad-x:16px;--p-table-cell-pad-y:12px;--p-table-cell-pad-y-compact:8px;
  --p-min-target:0px;
  /* Stats — flat inset surface, 18pt inset, SF tracking */
  --p-stat-radius:12px;--p-stat-pad:18px;--p-stat-shadow:none;--p-stat-gap:12px;
  --p-stat-label-tracking:-0.15px;--p-stat-value-lh:30px;--p-stat-value-tracking:-0.5px;
  /* Breadcrumb (breadcrumb.styles.ts webSkin: no tracking, font-medium current page) */
  --p-crumb-tracking:0px;--p-crumb-sep-tracking:0px;--p-crumb-current-weight:500;
  /* EmptyState — 12pt continuous card, SF tracking */
  --p-empty-radius:12px;--p-empty-title-tracking:-0.31px;--p-empty-desc-tracking:-0.15px;
  --p-min-target:44px;
  /* Sidebar row colors (sidebar.styles.ts webSkin: accent fill, muted label + glyph) */
  --p-side-active-fill:var(--accent);--p-side-active-label:var(--foreground);
  --p-side-label-color:var(--muted-foreground);--p-side-icon-color:var(--muted-foreground);--p-side-icon-active:currentColor;
  /* Navbar links (navbars.styles.ts webSkin: rounded-md tile, accent when active) */
  --p-nav-link-fill:transparent;--p-nav-link-label:var(--muted-foreground);
  --p-nav-link-active-fill:var(--accent);--p-nav-link-active-label:var(--foreground);
  /* ButtonGroup (button-group.styles.ts webSkin: joined segments, solid primary selection) */
  --p-seg-h-small:32px;--p-seg-h-default:36px;--p-seg-h-large:40px;
  --p-seg-pad-small:12px;--p-seg-pad-default:16px;--p-seg-pad-large:20px;
  --p-seg-font-small:12px;--p-seg-font-default:14px;--p-seg-font-large:14px;
  --p-seg-lh-small:16px;--p-seg-lh-default:20px;--p-seg-lh-large:20px;
  --p-seg-track-pad:0px;--p-seg-track-radius:0px;--p-seg-track-border:0px;--p-seg-track-fill:transparent /* @kind other */;
  --p-seg-border:1px;--p-seg-divider:1px /* @kind other */;--p-seg-overlap:-1px;--p-seg-radius:6px;--p-seg-inner-radius:0px;
  --p-seg-rest-fill:var(--background);--p-seg-selected-fill:var(--primary);--p-seg-selected-border:var(--primary);
  --p-seg-selected-label:var(--primary-foreground);--p-seg-selected-weight:500;--p-seg-selected-shadow:none;
  --p-seg-check-display:none /* @kind other */;
  /* Calendar (calendar.styles.ts webSkin) */
  --p-cal-radius:8px;--p-cal-cell-default:36px;--p-cal-cell-compact:32px;--p-cal-head-h:32px;
  --p-cal-label-default:14px;--p-cal-label-compact:12px;
  --p-cal-chevron:28px;--p-cal-chevron-radius:6px;--p-cal-chevron-font:14px;--p-cal-chevron-weight:400;--p-cal-chevron-color:var(--foreground);
  --p-cal-month-font:14px;--p-cal-month-lh:20px;--p-cal-month-weight:500;
  --p-cal-weekdays:"two" /* @kind other */;--p-cal-weekday-font:12px;--p-cal-weekday-weight:500;
  --p-cal-today-fill:color-mix(in oklab, var(--primary) 12%, transparent);--p-cal-today-ring:0px;--p-cal-day-weight:500;
  --p-cal-dot:4px;--p-cal-dot-bottom:4px;
  /* Collapsible (collapsible.styles.ts webSkin: the Radix caret, 0→90°) */
  --p-collapse-glyph:"chevron-right" /* @kind other */;--p-collapse-spin:90deg /* @kind other */;
  /* Progress (progress.styles.ts webSkin: shadcn h-2 track at primary/20) */
  --p-progress-h-small:6px;--p-progress-h-base:8px;--p-progress-h-large:12px;
  --p-progress-track:color-mix(in oklab, var(--primary) 20%, transparent);
  --p-progress-gap:0px;--p-progress-stop:0px;--p-progress-stop-opacity:0 /* @kind other */;
  /* Emblem (emblem.styles.ts webSkin: the Catalyst rounded square) */
  --p-emblem-box-small:32px;--p-emblem-box-default:40px;--p-emblem-box-large:48px;
  --p-emblem-icon-small:16px;--p-emblem-icon-default:20px;--p-emblem-icon-large:24px;
  --p-emblem-radius-small:6px;--p-emblem-radius-default:8px;--p-emblem-radius-large:10px;
  --p-emblem-monogram-weight:600;--p-emblem-monogram-tracking:0px;
  /* StackedList (stacked-lists.styles.ts webSkin) */
  --p-list-radius:8px;--p-list-border:1px;--p-list-shadow:0px 1px 2px rgba(0,0,0,0.05);
  --p-list-row-pad-x:20px;--p-list-row-pad-y:12px;--p-list-row-gap:12px;--p-list-row-min-h:0px;--p-list-divider-inset:0px;
  --p-list-name:14px;--p-list-name-lh:20px;--p-list-name-weight:500;--p-list-name-tracking:0px;
  --p-list-sub:12px;--p-list-sub-lh:16px;--p-list-sub-tracking:0px;
  --p-list-header-pad-x:20px;--p-list-header-title:14px;--p-list-header-title-lh:20px;--p-list-header-title-weight:600;--p-list-header-title-tracking:0px;
  /* Toast (toast.styles.ts webSkin: the sonner-style card) */
  --p-toast-radius:12px;--p-toast-fill:var(--popover);--p-toast-label:var(--popover-foreground);
  --p-toast-msg:14px;--p-toast-msg-lh:20px;--p-toast-msg-weight:500;--p-toast-msg-tracking:0px;
  --p-toast-desc:13px;--p-toast-desc-lh:18px;--p-toast-desc-color:var(--muted-foreground);--p-toast-desc-tracking:0px;
  --p-toast-gap:12px;--p-toast-pad-x:16px;
  --p-toast-glyph:flex;--p-toast-glyph-size:18px;
  /* EmptyState (empty-state.styles.ts webSkin) */
  --p-empty-pad-x:24px;--p-empty-pad-y:32px;
  --p-empty-title:16px;--p-empty-title-lh:24px;--p-empty-title-weight:600;
  /* Radio (radio.styles.ts webSkin) */
  --p-radio-ring-small:14px;--p-radio-ring-default:16px;--p-radio-ring-large:20px;
  --p-radio-dot-small:6px;--p-radio-dot-default:8px;--p-radio-dot-large:10px;--p-radio-border:2px;--p-radio-rest-border:var(--input);
  /* Textarea + field captions (textarea.styles.ts webSkin) */
  --p-textarea-fill:var(--background);--p-textarea-underline-rest:var(--input);--p-field-caption-tracking:0px;
  /* Form (form.styles.ts webSkin) */
  --p-form-stack:16px;--p-form-section-stack:12px;--p-form-actions-gap:8px;
  --p-form-title:14px;--p-form-title-lh:20px;--p-form-title-weight:600;--p-form-title-tracking:0px;
  --p-form-desc:12px;--p-form-desc-lh:16px;--p-form-desc-tracking:0px;
  /* Breadcrumb (breadcrumb.styles.ts webSkin) */
  /* TabBar (tab-bar.styles.ts webSkin: mirrors the iOS look) */
  --p-tabbar-rule:1px;--p-tabbar-pad-top:6px;--p-tabbar-h:52px;--p-tabbar-item-pad-y:6px;--p-tabbar-gap:3px;
  --p-tabbar-label:11px;--p-tabbar-label-lh:14px;--p-tabbar-label-tracking:-0.1px;
  --p-tabbar-pill-w:0px;--p-tabbar-pill-h:0px;--p-tabbar-pill-opacity:0 /* @kind other */;
  --p-tabbar-inset-x:0px;--p-tabbar-inset-b:0px;--p-tabbar-radius:0px;--p-tabbar-item-radius:0px;
  --p-tabbar-fill:var(--popover) /* @kind other */;--p-tabbar-pad-bottom:0px;
  /* Select (select.styles.ts webSkin) */
  --p-select-h:36px;--p-select-radius:6px;--p-select-radius-bottom:6px;--p-select-border:1px;--p-select-underline:0px;
  --p-select-border-color:var(--input);--p-select-underline-rest:var(--input);--p-select-fill:var(--background);--p-select-pad-x:12px;
  --p-select-font:14px;--p-select-lh:20px;--p-select-chevron:"▾" /* @kind other */;--p-select-chevron-color:var(--muted-foreground);--p-select-chevron-weight:400;
  --p-select-panel-max:240px;--p-select-panel-radius:6px;--p-select-panel-border:1px;--p-select-panel-pad-x:4px;--p-select-panel-pad-y:4px;
  --p-select-panel-shadow:0px 10px 15px rgba(0,0,0,0.1);
  --p-select-row-radius:2px;--p-select-row-pad-x:8px;--p-select-row-pad-y:6px;--p-select-row-gap:8px;--p-select-row-min-h:0px;
  --p-select-row-font:14px;--p-select-row-lh:20px;--p-select-row-selected-fill:var(--accent);
  --p-select-check-color:var(--popover-foreground);--p-select-check-weight:400;
  /* AvatarMenu identity pill (an addition, built on Avatar + Dropdown) */
  --p-idpill-h:32px;--p-idpill-gap:8px;--p-idpill-pad-start:4px;--p-idpill-pad-end:10px;
  --p-idpill-border:1px;--p-idpill-border-color:transparent;
  --p-idpill-fill:var(--secondary);--p-idpill-open-fill:color-mix(in oklab, var(--foreground) 6%, var(--secondary));
  --p-idpill-open-border-color:var(--input);
  --p-idpill-name:13px;--p-idpill-name-lh:16px;--p-idpill-name-weight:500;--p-idpill-tracking:0px;
  /* Autocomplete (autocomplete.styles.ts webSkin) */
  --p-ac-h:36px;--p-ac-radius:6px;--p-ac-radius-bottom:6px;--p-ac-border:1px;--p-ac-underline:0px;
  --p-ac-border-color:var(--input);--p-ac-underline-rest:var(--input);--p-ac-fill:var(--background);--p-ac-pad-x:12px;
  --p-ac-font:14px;--p-ac-lh:20px;--p-ac-chevron:var(--muted-foreground);
  --p-ac-menu-max:240px;--p-ac-menu-radius:6px;--p-ac-menu-border:1px;--p-ac-menu-pad-x:4px;--p-ac-menu-pad-y:4px;
  --p-ac-menu-shadow:0px 10px 15px rgba(0,0,0,0.1);
  --p-ac-row-radius:2px;--p-ac-row-pad-x:8px;--p-ac-row-pad-y:6px;--p-ac-row-gap:8px;--p-ac-row-min-h:0px;--p-ac-row-separator:0px;
  --p-ac-row-font:14px;--p-ac-row-lh:20px;--p-ac-row-selected:var(--accent);
  --p-ac-check-w:14px;--p-ac-check-color:var(--popover-foreground);
  /* Dropdown menu (dropdown.styles.ts webSkin) */
  --p-menu-radius:6px;--p-menu-border:1px;--p-menu-pad-x:4px;--p-menu-pad-y:4px;--p-menu-shadow:0px 10px 15px rgba(0,0,0,0.1);
  --p-menu-label-font:12px;--p-menu-label-lh:16px;--p-menu-label-weight:500;--p-menu-label-tracking:0px;--p-menu-label-pad-x:8px;--p-menu-label-pad-y:6px;
  --p-menu-sep-h:1px;--p-menu-sep-margin:4px;
  --p-menu-row-radius:2px;--p-menu-row-pad-x:8px;--p-menu-row-pad-y:6px;--p-menu-row-gap:8px;--p-menu-row-min-h:0px;
  --p-menu-row-font:14px;--p-menu-row-lh:20px;
  --p-menu-shortcut-font:12px;--p-menu-shortcut-lh:16px;--p-menu-shortcut-tracking:1.6px;
  /* Tooltip (tooltip.styles.ts webSkin) */
  --p-tip-radius:6px;--p-tip-shadow:0px 4px 6px rgba(0,0,0,0.1);--p-tip-weight:500;--p-tip-min-h:0px;
  /* Dialog (dialog.styles.ts webSkin) */
  --p-dialog-scrim:rgba(0,0,0,0.5);--p-dialog-radius:8px;--p-dialog-border:1px;--p-dialog-shadow:0px 20px 25px rgba(0,0,0,0.1);
  --p-dialog-title:16px;--p-dialog-title-lh:24px;--p-dialog-title-weight:600;
  --p-dialog-body:14px;--p-dialog-body-lh:20px;--p-dialog-body-gap:8px;--p-dialog-footer-gap:8px;--p-dialog-footer-top:24px;
  --p-alert-btn-flex:0 0 auto /* @kind other */;--p-alert-btn-min-h:0px;--p-alert-btn-pad:8px 16px;--p-alert-btn-radius:6px;
  --p-alert-btn-font:14px;--p-alert-btn-lh:20px;--p-alert-btn-weight:500;--p-alert-btn-tracking:0px;
  --p-alert-cancel-border:1px;--p-alert-cancel-fill:transparent;--p-alert-cancel-label:var(--foreground);
  --p-alert-confirm-fill:var(--primary);--p-alert-confirm-label:var(--primary-foreground);
  --p-alert-confirm-destructive-fill:var(--destructive);--p-alert-confirm-destructive-label:var(--destructive-foreground);
  /* AlertDialog (alert-dialog.styles.ts webSkin — its own skin) */
  --p-ad-scrim:rgba(0,0,0,0.5);--p-ad-radius:8px;--p-ad-border:1px;--p-ad-shadow:0px 20px 25px rgba(0,0,0,0.1);
  --p-ad-title:16px;--p-ad-title-lh:24px;--p-ad-title-weight:600;
  --p-ad-desc:14px;--p-ad-desc-lh:20px;--p-ad-desc-gap:8px;
  --p-ad-actions-justify:flex-end /* @kind other */;--p-ad-actions-gap:8px;
  --p-ad-btn-flex:0 0 auto /* @kind other */;--p-ad-btn-min-h:0px;--p-ad-btn-pad:8px 16px;--p-ad-btn-radius:6px;--p-ad-btn-font:14px;--p-ad-btn-lh:20px;
  --p-ad-cancel-border:1px;--p-ad-cancel-fill:transparent;--p-ad-cancel-label:var(--foreground);--p-ad-cancel-weight:500;
  --p-ad-confirm-fill:var(--primary);--p-ad-confirm-label:var(--primary-foreground);--p-ad-confirm-weight:500;
  --p-ad-confirm-destructive-fill:var(--destructive);--p-ad-confirm-destructive-label:var(--destructive-foreground);
  /* Drawer (drawer.styles.ts webSkin) */
  --p-drawer-scrim:rgba(0,0,0,0.5);--p-drawer-border:1px;--p-drawer-shadow:none;
  --p-drawer-side-radius:0px;--p-drawer-sheet-radius:16px;--p-drawer-sheet-max:none /* @kind other */;
  --p-drawer-handle-w:0px;--p-drawer-handle-h:0px;--p-drawer-handle-top:0px;
  /* ActionSheet (action-sheet.styles.ts webSkin — the iOS idiom on web too) */
  --p-sheet-scrim:rgba(0,0,0,0.4);--p-sheet-stack-pad:8px;--p-sheet-stack-gap:8px;
  --p-sheet-card-radius:14px;--p-sheet-card-radius-top:14px;--p-sheet-card-pad:0px;--p-sheet-shadow:0px 10px 15px rgba(0,0,0,0.1);
  --p-sheet-cancel-layout:separateCard /* @kind other */;--p-sheet-cancel-inset:0px;--p-sheet-cancel-radius:14px;--p-sheet-cancel-min-h:57px;--p-sheet-cancel-label:var(--primary);
  --p-sheet-handle-display:none /* @kind other */;
  --p-sheet-header-pad:14px 16px;--p-sheet-header-align:center /* @kind other */;--p-sheet-header-gap:2px;--p-sheet-title-align:center /* @kind other */;
  --p-sheet-title:13px;--p-sheet-title-lh:18px;--p-sheet-title-weight:600;--p-sheet-title-tracking:0px;--p-sheet-title-color:var(--muted-foreground);
  --p-sheet-msg:13px;--p-sheet-msg-lh:18px;--p-sheet-msg-tracking:0px;--p-sheet-msg-color:var(--muted-foreground);
  --p-sheet-divider-h:1px;--p-sheet-rows-gap:0px;
  --p-sheet-row-min-h:57px;--p-sheet-row-pad-x:16px;--p-sheet-row-radius:0px;--p-sheet-row-fill:transparent;
  --p-sheet-row-font:17px;--p-sheet-row-lh:22px;--p-sheet-row-weight:400;--p-sheet-row-tracking:0px;
  --p-sheet-row-label:var(--primary);--p-sheet-row-align:center /* @kind other */;--p-sheet-row-justify:center /* @kind other */;--p-sheet-row-text-align:center /* @kind other */;
  /* Command palette (command.styles.ts webSkin) */
  --p-cmd-radius:8px;--p-cmd-search-pad-x:12px;--p-cmd-search-pad-y:12px;--p-cmd-search-gap:8px;--p-cmd-search-min-h:0px;--p-cmd-glyph:16px;
  --p-cmd-row-pad-x:12px;--p-cmd-row-pad-y:8px;--p-cmd-row-min-h:0px;--p-cmd-row-font:14px;--p-cmd-row-lh:20px;--p-cmd-row-tracking:0px;
  /* Accordion (accordion.styles.ts webSkin — Radix/shadcn) */
  --p-acc-container-radius:0px;--p-acc-container-border:0px;--p-acc-container-fill:transparent;
  --p-acc-card-radius:8px;--p-acc-card-inset:20px;--p-acc-sep-inset:0px;
  --p-acc-header-pad-x:0px;--p-acc-header-pad-y:16px;--p-acc-header-gap:16px;
  --p-acc-title:14px;--p-acc-title-lh:20px;--p-acc-title-weight:500;--p-acc-title-tracking:0px;
  --p-acc-desc:12px;--p-acc-desc-lh:16px;--p-acc-desc-tracking:0px;
  --p-acc-chevron:16px;--p-acc-chevron-glyph:"chevron-down" /* @kind other */;--p-acc-chevron-spin:180deg /* @kind other */;
  --p-acc-content:14px;--p-acc-content-lh:22px;--p-acc-content-tracking:0px;--p-acc-content-pad-top:0px;--p-acc-content-pad-bottom:16px;
  /* Steps (steps.styles.ts webSkin; the progress layout's 6px muted track and 500-weight caption) */
  --p-steps-current-fill:transparent;--p-steps-connector-radius:0px;--p-steps-desc:12px;--p-steps-desc-lh:16px;
  --p-steps-track-h:6px;--p-steps-caption-weight:500;
  /* Pagination (pagination.styles.ts webSkin) */
  --p-page-h-small:32px;--p-page-h-default:36px;--p-page-h-large:40px;
  --p-page-pad-small:8px;--p-page-pad-default:10px;--p-page-pad-large:12px;
  --p-page-font-small:12px;--p-page-font-default:14px;--p-page-font-large:14px;
  --p-page-lh-small:16px;--p-page-lh-default:20px;--p-page-lh-large:20px;
  --p-page-radius:6px;--p-page-border:1px;--p-page-weight:500;--p-page-rest-fill:var(--background);
  --p-page-selected-fill:var(--primary);--p-page-selected-border:var(--primary);--p-page-selected-label:var(--primary-foreground);
  /* Slider (slider.styles.ts webSkin — shadcn-matched) */
  --p-slider-track-h-small:5px;--p-slider-track-h-base:6px;--p-slider-track-h-large:8px;
  --p-slider-track-radius:999px;--p-slider-inner-radius:999px;--p-slider-gap:0px;--p-slider-row-min-h:16px;
  --p-slider-thumb-w-small:14px;--p-slider-thumb-w-base:16px;--p-slider-thumb-w-large:20px;
  --p-slider-thumb-h-small:14px;--p-slider-thumb-h-base:16px;--p-slider-thumb-h-large:20px;
  --p-slider-thumb-radius:999px;--p-slider-thumb-fill:var(--background);
  --p-slider-thumb-border:1px;--p-slider-thumb-border-color:var(--primary);--p-slider-thumb-shadow:0px 1px 2px rgba(0,0,0,0.1);
  --p-slider-stop:0px;--p-slider-stop-opacity:0 /* @kind other */;
  /* Stepper (stepper.styles.ts webSkin) */
  --p-stepper-btn-h:36px;--p-stepper-btn-w-small:32px;--p-stepper-btn-w-base:36px;--p-stepper-btn-w-large:40px;
  --p-stepper-btn-radius:0px;--p-stepper-btn-border:0px;--p-stepper-glyph:var(--primary);--p-stepper-glyph-size:16px;
  --p-stepper-field-w-small:48px;--p-stepper-field-w-base:56px;--p-stepper-field-w-large:64px;
  --p-stepper-field-font:14px;--p-stepper-field-lh:20px;--p-stepper-field-justify:center /* @kind other */;--p-stepper-field-pad:4px;
  --p-stepper-field-left-display:none /* @kind other */;--p-stepper-field-inline-display:inline-flex /* @kind other */;
  --p-stepper-divider-display:inline-flex /* @kind other */;--p-stepper-divider-w:1px;--p-stepper-divider-inset:0px;--p-stepper-divider-color:var(--border);
  --p-stepper-group-radius:6px;--p-stepper-group-border:1px;--p-stepper-group-fill:var(--background);--p-stepper-group-gap:0px;--p-stepper-outer-gap:0px;
  /* InputOTP (input-otp.styles.ts webSkin — shadcn input-otp) */
  --p-otp-seam:0px;--p-otp-seam-active:0px;--p-otp-shared-edge:0 /* @kind other */;--p-otp-gap-small:0px;--p-otp-gap-base:0px;--p-otp-gap-large:0px;
  --p-otp-w-small:32px;--p-otp-w-base:36px;--p-otp-w-large:44px;
  --p-otp-h-small:32px;--p-otp-h-base:36px;--p-otp-h-large:44px;
  --p-otp-radius:6px;--p-otp-inner-radius:0px;--p-otp-fill:var(--background);
  --p-otp-rest-border:1px;--p-otp-active-border:1px;--p-otp-rest-border-color:var(--input);--p-otp-active-border-color:var(--ring);
  --p-otp-active-ring:0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent) /* @kind other */;
  --p-otp-digit-small:15px;--p-otp-digit-base:18px;--p-otp-digit-large:22px;--p-otp-digit-weight:500;--p-otp-digit-tracking:0px;
  --p-otp-caret:var(--foreground);--p-otp-caret-blink:none /* @kind other */;
  /* DescriptionList (description-lists.styles.ts webSkin) */
  --p-dl-radius:8px;--p-dl-shadow:0px 1px 2px rgba(0,0,0,0.05);--p-dl-pad:24px;--p-dl-row-gap:12px;
  --p-dl-row-align:baseline /* @kind other */;--p-dl-row-min-h:0px;--p-dl-divided-pad:12px;
  --p-dl-term-font:14px;--p-dl-term-lh:20px;--p-dl-term-weight:400;--p-dl-term-tracking:0px;--p-dl-term-color:var(--muted-foreground);
  --p-dl-value-font:14px;--p-dl-value-lh:20px;--p-dl-value-weight:500;--p-dl-value-tracking:0px;--p-dl-value-color:var(--foreground);
  --p-dl-stacked-tracking:0.4px;--p-dl-header-weight:600;--p-dl-header-tracking:0px;
  /* MediaObject (media-objects.styles.ts webSkin) */
  --p-media-gap:12px;--p-media-gap-compact:8px;--p-media-radius:8px;--p-media-border-color:var(--border) /* @kind other */;--p-media-shadow:none;
  --p-media-icon-radius:6px;--p-media-glyph-tracking:0px;
  --p-media-title-font:14px;--p-media-title-lh:20px;--p-media-title-weight:600;--p-media-title-tracking:0px;
  --p-media-desc-tracking:0px;--p-media-body-lh:28px;--p-media-body-tracking:0px;
  /* GridList (grid-lists.styles.ts webSkin) */
  --p-grid-gap:14px;--p-grid-gap-compact:8px;--p-grid-tile-pad:20px;--p-grid-tile-pad-compact:16px;
  --p-grid-gallery-radius:6px;--p-grid-gallery-title-tracking:0px;--p-grid-subtitle-tracking:0px;
  --p-grid-card-title-weight:600;--p-grid-card-title-tracking:0px;
  /* Feed (feeds.styles.ts webSkin) */
  --p-feed-radius:8px;--p-feed-pad:24px;--p-feed-pad-compact:20px;--p-feed-row-gap:24px;--p-feed-row-gap-compact:16px;
  --p-feed-avatar-pad-y:16px;--p-feed-avatar-pad-y-compact:12px;
  --p-feed-line-font:14px;--p-feed-line-lh:20px;--p-feed-actor-weight:500;--p-feed-actor-tracking:0px;--p-feed-action-tracking:0px;
  --p-feed-time-font:12px;--p-feed-time-tracking:0px;--p-feed-initials-weight:500;--p-feed-initials-tracking:0px;
  /* ActionPanel (action-panels.styles.ts webSkin) */
  --p-panel-title-weight:600;--p-panel-title-tracking:0px;--p-panel-desc-tracking:0px;
  --p-panel-inline-gap:24px;--p-panel-inline-align:flex-start /* @kind other */;
  /* Carousel (carousel.styles.ts webSkin — Embla/shadcn) */
  --p-carousel-slide-radius:8px;--p-carousel-arrows:1 /* @kind other */;--p-carousel-dots:1 /* @kind other */;
  --p-carousel-arrow-size:32px;--p-carousel-arrow-border:1px;--p-carousel-arrow-fill:var(--card);--p-carousel-arrow-shadow:0px 1px 2px rgba(0,0,0,0.05);
  --p-carousel-dot:8px;--p-carousel-dot-active-w:18px;--p-carousel-dot-gap:6px;--p-carousel-dot-alpha:40%;
  --p-carousel-text-font:16px;--p-carousel-text-lh:24px;--p-carousel-text-weight:500;--p-carousel-text-tracking:0px;
  /* Stats (stats.styles.ts webSkin) */
  /* DataTable (data-table.styles.ts webSkin) */

  /* Board (board.styles.ts webSkin) */
  --p-board-lane-gap:16px;--p-board-lane-gap-compact:12px;
  --p-board-col-radius:10px;--p-board-col-pad:12px;--p-board-col-pad-compact:8px;
  --p-board-col-gap:10px;--p-board-col-gap-compact:8px;
  --p-board-col-label-font:13px;--p-board-col-label-lh:18px;--p-board-col-label-weight:600;--p-board-col-label-tracking:0px;
  --p-board-cardlist-gap:8px;--p-board-cardlist-gap-compact:6px;--p-board-cardlist-min-h:48px;
  --p-board-card-radius:6px;
  --p-board-card-title-font:14px;--p-board-card-title-lh:20px;--p-board-card-title-weight:500;
  --p-board-card-desc-font:12px;--p-board-card-desc-lh:16px;

  /* DragHandle (drag-drop.styles.ts webSkin: compact 28px grip, 16px gripVertical glyph) */
  --p-drag-handle-size:28px;--p-drag-handle-radius:6px;--p-drag-handle-icon:16px;

  /* Swatch (swatch.styles.ts webSkin) */
  --p-swatch-box-small:40px;--p-swatch-box-default:56px;--p-swatch-box-large:72px;
  --p-swatch-radius-small:6px;--p-swatch-radius-default:8px;--p-swatch-radius-large:10px;
  --p-swatch-name-tracking:0px;--p-swatch-mono-tracking:0px;--p-swatch-value-weight:500;
}

/* iOS 26 / HIG: capsules, semibold SF-scale labels, flat grouped surfaces,
   continuous corner curve, 0.8 press dim, 44pt targets. Only the values that
   DIFFER from the web defaults above appear here. */
[data-platform="ios"]{
  --p-btn-radius:9999px;--p-btn-pad-x:20px;--p-btn-pad-y:14px;--p-btn-gap:6px;
  --p-btn-font:17px;--p-btn-lh:22px;--p-btn-weight:600;
  --p-btn-pad-x-sm:14px;--p-btn-pad-y-sm:8px;--p-btn-font-sm:15px;--p-btn-lh-sm:20px;
  --p-btn-pad-x-lg:26px;--p-btn-pad-y-lg:18px;--p-btn-font-lg:17px;--p-btn-lh-lg:22px;
  --p-btn-square:44px;--p-btn-square-sm:36px;--p-btn-square-lg:52px;
  --p-press:0.8 /* @kind other */;--p-disabled:0.4 /* @kind other */;
  --p-card-radius:12px;--p-card-shadow:none;--p-card-shadow-raised:0px 1px 2px rgba(0,0,0,0.05);
  --p-field-radius:10px;--p-field-height:44px;--p-field-height-sm:36px;--p-field-height-lg:50px;
  --p-field-fill:var(--secondary);--p-field-radius-bottom:10px;--p-field-pad-x:16px;
  --p-label-weight:600;--p-label-tracking:-0.15px;
  --p-check-size:20px;--p-check-radius:5px;--p-check-border:1px;
  --p-switch-w:46px;--p-switch-h:28px;--p-switch-thumb-w:28px;--p-switch-thumb-h:24px;--p-switch-thumb-fill:#ffffff;
  /* Switch (switch.styles.ts IOS_OFF_TRACK): systemGray3 off track, never the washed-out input token; the white capsule knob keeps its soft shadow in both states */
  --p-switch-off-track:#c7c7cc;--p-switch-thumb-off-w:28px;--p-switch-thumb-off-h:24px;--p-switch-thumb-off-fill:#ffffff;
  --p-switch-thumb-shadow:0px 1px 2px rgba(0,0,0,0.2);
  --p-badge-weight:600;
  --p-avatar-square-radius:10px;
  --p-alert-radius:10px;--p-alert-tracking:-0.15px;
  /* Breadcrumb (breadcrumb.styles.ts iosSkin: SF tracking at 14pt, semibold current page) */
  --p-crumb-tracking:-0.15px;--p-crumb-sep-tracking:-0.15px;--p-crumb-current-weight:600;
  --p-overlay-radius:12px;--p-sheet-radius:12px;
  /* Popover (iOS 27, Liquid Glass): a largely rounded ~26pt borderless card with the anchor beak */
  --p-popover-radius:26px;--p-popover-border:0px;--p-popover-beak-display:block /* @kind other */;
  /* Spinner (iOS): the UIActivityIndicatorView ring of fading spokes */
  --p-spinner-arc-display:none /* @kind other */;--p-spinner-spokes-display:inline-block /* @kind other */;
  --p-tab-track-bg:var(--muted);--p-tab-track-radius:9999px;--p-tab-track-pad:3px;--p-tab-rule:0px;
  --p-tab-item-radius:9999px;--p-tab-item-pad-x:14px;--p-tab-item-pad-y:7px;
  --p-tab-selected-bg:var(--background);--p-tab-selected-shadow:0px 1px 2px rgba(0,0,0,0.18);
  --p-tab-indicator-h:0px;--p-tab-font:13px;--p-tab-lh:18px;
  /* Tabs pills + vertical (iOS 27): capsule segmented track with the raised thumb; 8pt 15pt rail */
  --p-tab-pill-track-radius:9999px;--p-tab-pill-track-pad:3px;--p-tab-pill-gap:0px;
  --p-tab-pill-radius:9999px;--p-tab-pill-pad-x:14px;--p-tab-pill-pad-y:7px;
  --p-tab-pill-selected-shadow:0px 1px 2px rgba(0,0,0,0.18);--p-tab-pill-label:var(--foreground);--p-tab-pill-selected-weight:600;
  --p-tab-v-radius:8px;--p-tab-v-pad-y:9px;--p-tab-v-font:15px;--p-tab-v-weight:400;--p-tab-v-selected-weight:600;--p-tab-v-label:var(--foreground);
  /* Sidebar — iOS 27: capsule rows, primary-tinted icons, sentence-case headers */
  --p-side-row-radius:9999px;--p-side-row-gap:10px;--p-side-label:15px;--p-side-label-lh:20px;--p-side-icon:17px;
  --p-side-title:13px;--p-side-title-lh:18px;--p-side-title-weight:600;--p-side-title-transform:none /* @kind other */;--p-side-title-tracking:0px;
  --p-side-active-label:var(--accent-foreground);--p-side-label-color:var(--foreground);--p-side-icon-color:var(--primary);--p-side-icon-active:var(--primary);
  /* Sidebar sections + collapse chrome (iOS): tight 2pt groups, capsule header at 12/4, 13pt HIG caret, 6pt dot */
  --p-side-group-gap:2px;--p-side-sechdr-gap:6px;--p-side-sechdr-pad-y:4px;
  --p-side-chevron:13px;--p-side-dot:6px;--p-side-toggle:15px;
  --p-nav-link-fill:color-mix(in oklab, var(--secondary) 90%, transparent);--p-nav-link-label:var(--primary);
  --p-nav-link-active-fill:var(--primary);--p-nav-link-active-label:var(--primary-foreground);
  /* Navbar — iOS 26: slim 44pt bar, 17pt SF title, circular tinted bar buttons */
  --p-nav-h:44px;--p-nav-brand:17px;--p-nav-brand-lh:22px;--p-nav-brand-weight:600;
  --p-nav-links-gap:8px;--p-nav-link-radius:9999px;--p-nav-link-pad-x:12px;--p-nav-link-pad-y:6px;
  --p-nav-link-font:15px;--p-nav-link-lh:20px;
  /* DataTable — SwiftUI Table: title-case 13pt headings, 52pt rows, 17pt body */
  --p-table-radius:10px;
  --p-table-head-font:13px;--p-table-head-lh:18px;--p-table-head-weight:400;--p-table-head-transform:none /* @kind other */;--p-table-head-tracking:-0.08px;
  --p-table-cell-font:17px;--p-table-cell-lh:22px;--p-table-cell-tracking:-0.43px;--p-table-cell-pad-y:15px;--p-table-cell-pad-y-compact:8px;
  /* ButtonGroup — UISegmentedControl (iOS 26): a muted capsule track, raised selected pill */
  --p-seg-track-pad:3px;--p-seg-track-radius:9999px;--p-seg-track-fill:var(--muted);
  --p-seg-border:0px;--p-seg-divider:0px;--p-seg-overlap:0px;--p-seg-radius:9999px;--p-seg-inner-radius:9999px;
  --p-seg-rest-fill:transparent;--p-seg-selected-fill:var(--background);--p-seg-selected-border:transparent;
  --p-seg-selected-label:var(--foreground);--p-seg-selected-weight:600;--p-seg-selected-shadow:0px 1px 2px rgba(0,0,0,0.18);
  /* Calendar — HIG date picker: airier cells, UPPERCASE symbols, today as TEXT */
  --p-cal-radius:12px;--p-cal-cell-default:38px;--p-cal-cell-compact:34px;--p-cal-head-h:30px;
  --p-cal-label-default:17px;--p-cal-label-compact:15px;
  --p-cal-chevron:30px;--p-cal-chevron-radius:9999px;--p-cal-chevron-font:22px;--p-cal-chevron-weight:500;--p-cal-chevron-color:var(--primary);
  --p-cal-month-font:17px;--p-cal-month-lh:22px;--p-cal-month-weight:600;
  --p-cal-weekdays:"upper" /* @kind other */;--p-cal-weekday-font:13px;--p-cal-weekday-weight:600;
  --p-cal-today-fill:transparent;--p-cal-day-weight:600;--p-cal-dot:5px;--p-cal-dot-bottom:3px;
  /* Feed — iOS: 12pt continuous card, roomier rows, SF-tracked 15/20 copy */
  --p-feed-radius:12px;--p-feed-pad:26px;--p-feed-pad-compact:22px;--p-feed-row-gap:26px;--p-feed-row-gap-compact:18px;
  --p-feed-avatar-pad-y:17px;--p-feed-avatar-pad-y-compact:13px;
  --p-feed-line-font:15px;--p-feed-actor-weight:600;--p-feed-actor-tracking:-0.24px;--p-feed-action-tracking:-0.24px;
  --p-feed-time-font:13px;--p-feed-time-tracking:-0.08px;--p-feed-initials-weight:600;
  /* ActionPanel — iOS Settings rows: SF tracking, roomier gap, centre-aligned action */
  --p-panel-title-tracking:-0.15px;--p-panel-desc-tracking:-0.16px;--p-panel-inline-gap:28px;--p-panel-inline-align:center /* @kind other */;
  /* Carousel — iOS App Store paged cards: no arrows, UIPageControl dots */
  --p-carousel-slide-radius:12px;--p-carousel-arrows:0 /* @kind other */;--p-carousel-dots:1 /* @kind other */;
  --p-carousel-arrow-size:30px;--p-carousel-arrow-border:0px;--p-carousel-arrow-fill:color-mix(in oklab, var(--card) 70%, transparent);--p-carousel-arrow-shadow:none;
  --p-carousel-dot:7px;--p-carousel-dot-active-w:7px;--p-carousel-dot-gap:9px;--p-carousel-dot-alpha:35%;
  --p-carousel-text-font:17px;--p-carousel-text-lh:22px;--p-carousel-text-weight:600;--p-carousel-text-tracking:-0.43px;
  /* DescriptionList — iOS 27 Lists value rows: flat 26pt card, INVERTED emphasis */
  --p-dl-radius:26px;--p-dl-shadow:none;--p-dl-pad:16px;--p-dl-row-align:center /* @kind other */;--p-dl-row-min-h:52px;--p-dl-divided-pad:0px;
  --p-dl-term-font:17px;--p-dl-term-lh:22px;--p-dl-term-tracking:-0.43px;--p-dl-term-color:var(--foreground);
  --p-dl-value-font:17px;--p-dl-value-lh:22px;--p-dl-value-weight:400;--p-dl-value-tracking:-0.43px;--p-dl-value-color:var(--muted-foreground);
  --p-dl-stacked-tracking:0.06px;--p-dl-header-tracking:-0.2px;
  /* MediaObject — iOS: 10pt continuous surface, 8pt icon tile, SF tracking */
  --p-media-radius:10px;--p-media-icon-radius:8px;--p-media-glyph-tracking:-0.31px;--p-media-title-tracking:-0.15px;--p-media-body-tracking:-0.15px;
  /* GridList — HIG Collections: 10pt continuous thumbnail, SF-tracked card title */
  --p-grid-gallery-radius:10px;--p-grid-card-title-tracking:-0.15px;
  /* Slider — iOS 27: 6pt rail (3pt radius) + a 37x24pt white capsule knob */
  --p-slider-track-h-small:5px;--p-slider-track-h-base:6px;--p-slider-track-h-large:7px;
  --p-slider-row-min-h:44px;
  --p-slider-thumb-w-small:32px;--p-slider-thumb-w-base:37px;--p-slider-thumb-w-large:42px;
  --p-slider-thumb-h-small:21px;--p-slider-thumb-h-base:24px;--p-slider-thumb-h-large:27px;
  --p-slider-thumb-fill:#ffffff;--p-slider-thumb-border:0.5px;--p-slider-thumb-border-color:rgba(0,0,0,0.04);
  --p-slider-thumb-shadow:0px 1px 3px rgba(0,0,0,0.18);
  /* Stepper — iOS 27: a secondary full-capsule [ − | + ], value in a field to its LEFT */
  --p-stepper-btn-h:32px;--p-stepper-btn-w-small:42px;--p-stepper-btn-w-base:48px;--p-stepper-btn-w-large:54px;
  --p-stepper-glyph:var(--foreground);--p-stepper-glyph-size:18px;
  --p-stepper-field-w-small:44px;--p-stepper-field-w-base:52px;--p-stepper-field-w-large:60px;
  --p-stepper-field-font:17px;--p-stepper-field-lh:22px;--p-stepper-field-justify:flex-end /* @kind other */;--p-stepper-field-pad:10px;
  --p-stepper-field-left-display:inline-flex /* @kind other */;--p-stepper-field-inline-display:none /* @kind other */;
  --p-stepper-divider-inset:4px;--p-stepper-divider-color:color-mix(in oklab, var(--foreground) 30%, transparent);
  --p-stepper-group-radius:9999px;--p-stepper-group-border:0px;--p-stepper-group-fill:var(--secondary);
  /* InputOTP — iOS: separated 44x52pt filled cells, 2pt primary ring when active */
  --p-otp-seam:1px;--p-otp-seam-active:2px;--p-otp-shared-edge:1 /* @kind other */;--p-otp-gap-small:6px;--p-otp-gap-base:8px;--p-otp-gap-large:10px;
  --p-otp-w-small:38px;--p-otp-w-base:44px;--p-otp-w-large:52px;
  --p-otp-h-small:44px;--p-otp-h-base:52px;--p-otp-h-large:60px;
  --p-otp-radius:12px;--p-otp-inner-radius:12px;--p-otp-fill:var(--secondary);
  --p-otp-rest-border:0px;--p-otp-active-border:2px;--p-otp-rest-border-color:transparent;--p-otp-active-border-color:var(--primary);
  --p-otp-active-ring:none /* @kind other */;--p-otp-digit-weight:600;
  --p-otp-caret:var(--primary);--p-otp-caret-blink:canvas-caret 1s steps(2,start) infinite /* @kind other */;
  /* Accordion — iOS: the default IS a 12pt continuous inset-grouped card */
  --p-acc-container-radius:12px;--p-acc-container-border:1px;--p-acc-container-fill:var(--card);
  --p-acc-card-radius:12px;--p-acc-card-inset:16px;--p-acc-sep-inset:16px;
  --p-acc-header-pad-x:16px;--p-acc-header-pad-y:11px;--p-acc-header-gap:12px;
  --p-acc-title:17px;--p-acc-title-lh:22px;--p-acc-title-weight:400;--p-acc-title-tracking:-0.43px;
  --p-acc-desc:13px;--p-acc-desc-lh:18px;--p-acc-desc-tracking:-0.08px;
  --p-acc-chevron:15px;--p-acc-chevron-glyph:"chevron-right" /* @kind other */;--p-acc-chevron-spin:90deg /* @kind other */;
  --p-acc-content:15px;--p-acc-content-lh:21px;--p-acc-content-tracking:-0.24px;--p-acc-content-pad-top:2px;--p-acc-content-pad-bottom:14px;
  /* Steps — iOS: rounded connector caps, larger progress caption */
  --p-steps-connector-radius:9999px;--p-steps-desc:13px;--p-steps-desc-lh:18px;--p-steps-caption-weight:600;
  /* Pagination — HIG page controls: 8pt pills, hollow rest, filled current */
  --p-page-radius:8px;--p-page-border:0px;--p-page-weight:600;--p-page-rest-fill:transparent;
  /* ActionSheet — iOS 27: one 34pt continuous container of detached capsules */
  --p-sheet-card-radius:34px;--p-sheet-card-pad:14px;
  --p-sheet-cancel-inset:14px;--p-sheet-cancel-radius:9999px;--p-sheet-cancel-min-h:56px;--p-sheet-cancel-label:var(--foreground);
  --p-sheet-header-pad:8px 8px 24px;--p-sheet-header-align:flex-start /* @kind other */;--p-sheet-header-gap:10px;--p-sheet-title-align:left /* @kind other */;
  --p-sheet-title:17px;--p-sheet-title-lh:22px;--p-sheet-title-tracking:-0.43px;--p-sheet-title-color:var(--foreground);
  --p-sheet-msg:15px;--p-sheet-msg-lh:18px;--p-sheet-msg-tracking:-0.24px;--p-sheet-msg-color:color-mix(in oklab, var(--foreground) 68%, transparent);
  --p-sheet-divider-h:0px;--p-sheet-rows-gap:10px;
  --p-sheet-row-min-h:48px;--p-sheet-row-radius:9999px;--p-sheet-row-fill:color-mix(in oklab, var(--foreground) 10%, transparent);
  --p-sheet-row-weight:500;--p-sheet-row-tracking:-0.43px;--p-sheet-row-label:var(--foreground);
  /* Command — iOS: 16pt continuous card, 44pt rows at 17/22 */
  --p-cmd-radius:16px;--p-cmd-search-pad-x:16px;--p-cmd-search-pad-y:14px;--p-cmd-search-gap:10px;--p-cmd-search-min-h:44px;--p-cmd-glyph:20px;
  --p-cmd-row-pad-x:16px;--p-cmd-row-pad-y:11px;--p-cmd-row-min-h:44px;--p-cmd-row-font:17px;--p-cmd-row-lh:22px;--p-cmd-row-tracking:-0.4px;
  /* Dialog — iOS 27 alert: borderless 28pt card, 30% scrim, capsule actions */
  --p-dialog-scrim:rgba(0,0,0,0.3);--p-dialog-radius:28px;--p-dialog-border:0px;--p-dialog-shadow:0px 10px 15px rgba(0,0,0,0.1);
  --p-dialog-title:20px;--p-dialog-title-lh:25px;--p-dialog-title-weight:700;
  --p-dialog-body:15px;--p-dialog-body-lh:20px;
  --p-dialog-footer-gap:12px;--p-dialog-footer-top:20px;
  --p-alert-btn-flex:1 1 0 /* @kind other */;--p-alert-btn-min-h:50px;--p-alert-btn-pad:14px 16px;--p-alert-btn-radius:22px;
  --p-alert-btn-font:17px;--p-alert-btn-lh:22px;--p-alert-btn-weight:600;
  --p-alert-cancel-border:0px;--p-alert-cancel-fill:var(--secondary);--p-alert-cancel-label:var(--secondary-foreground);
  --p-alert-confirm-destructive-fill:var(--secondary);--p-alert-confirm-destructive-label:var(--destructive);
  /* AlertDialog — iOS 27: borderless 28pt card, two equal capsules; a destructive confirm keeps the GRAY fill and reds only its label */
  --p-ad-scrim:rgba(0,0,0,0.4);--p-ad-radius:28px;--p-ad-border:0px;--p-ad-shadow:0px 10px 15px rgba(0,0,0,0.1);
  --p-ad-title:20px;--p-ad-title-lh:25px;--p-ad-title-weight:700;
  --p-ad-desc:16px;--p-ad-desc-lh:21px;
  --p-ad-actions-justify:stretch /* @kind other */;--p-ad-actions-gap:12px;
  --p-ad-btn-flex:1 1 0 /* @kind other */;--p-ad-btn-min-h:50px;--p-ad-btn-pad:14px 16px;--p-ad-btn-radius:999px;--p-ad-btn-font:17px;--p-ad-btn-lh:22px;
  --p-ad-cancel-border:0px;--p-ad-cancel-fill:var(--secondary);--p-ad-cancel-label:var(--secondary-foreground);--p-ad-cancel-weight:400;
  --p-ad-confirm-weight:600;--p-ad-confirm-destructive-fill:var(--secondary);--p-ad-confirm-destructive-label:var(--destructive);
  /* Drawer — iOS 27 sheets: lineless, 38pt continuous, soft 0/15/50 elevation, grabber */
  --p-drawer-scrim:rgba(0,0,0,0.2);--p-drawer-border:0px;--p-drawer-shadow:0px 15px 50px rgba(0,0,0,0.18);
  --p-drawer-side-radius:38px;--p-drawer-sheet-radius:38px;
  --p-drawer-handle-w:60px;--p-drawer-handle-h:4px;--p-drawer-handle-top:5px;
  /* AvatarMenu — iOS: a hairline-outlined 36pt capsule on the plain background, SF tracking */
  --p-idpill-h:36px;--p-idpill-pad-start:5px;--p-idpill-pad-end:12px;
  --p-idpill-border:1px;--p-idpill-border-color:var(--border);
  --p-idpill-fill:transparent;--p-idpill-open-fill:var(--secondary);--p-idpill-open-border-color:var(--border);
  --p-idpill-name:15px;--p-idpill-name-lh:20px;--p-idpill-name-weight:600;--p-idpill-tracking:-0.15px;
  /* Autocomplete — iOS 27: a filled 10pt continuous field, 26pt menu, check-only selection */
  --p-ac-h:44px;--p-ac-radius:10px;--p-ac-radius-bottom:10px;--p-ac-fill:var(--secondary);
  --p-ac-font:15px;--p-ac-lh:20px;--p-ac-chevron:var(--primary);
  --p-ac-menu-max:260px;--p-ac-menu-radius:26px;--p-ac-menu-border:0px;--p-ac-menu-pad-x:0px;--p-ac-menu-pad-y:6px;
  --p-ac-row-radius:0px;--p-ac-row-pad-x:16px;--p-ac-row-pad-y:11px;--p-ac-row-gap:10px;--p-ac-row-min-h:42px;--p-ac-row-separator:1px;
  --p-ac-row-font:17px;--p-ac-row-lh:22px;--p-ac-row-selected:transparent;
  --p-ac-check-w:18px;--p-ac-check-color:var(--primary);
  /* Select — iOS 26 pop-up button + Liquid Glass menu */
  --p-select-h:44px;--p-select-radius:12px;--p-select-radius-bottom:12px;--p-select-border-color:var(--border);--p-select-pad-x:14px;
  --p-select-font:15px;--p-select-lh:20px;--p-select-chevron:"⇅" /* @kind other */;--p-select-chevron-color:var(--primary);--p-select-chevron-weight:600;
  --p-select-panel-max:320px;--p-select-panel-radius:26px;--p-select-panel-border:0px;--p-select-panel-pad-x:0px;--p-select-panel-pad-y:4px;
  --p-select-row-radius:0px;--p-select-row-pad-x:16px;--p-select-row-pad-y:11px;--p-select-row-gap:10px;--p-select-row-min-h:42px;
  --p-select-row-font:17px;--p-select-row-lh:22px;--p-select-row-selected-fill:transparent;
  --p-select-check-color:var(--primary);--p-select-check-weight:600;
  /* Dropdown — iOS 26 pull-down menu: 26pt borderless panel, 44pt rows */
  --p-menu-radius:26px;--p-menu-border:0px;--p-menu-pad-x:0px;--p-menu-pad-y:6px;
  --p-menu-label-font:13px;--p-menu-label-lh:18px;--p-menu-label-weight:600;--p-menu-label-pad-x:16px;
  --p-menu-sep-margin:6px;
  --p-menu-row-radius:0px;--p-menu-row-pad-x:16px;--p-menu-row-pad-y:11px;--p-menu-row-gap:12px;--p-menu-row-min-h:44px;
  --p-menu-row-font:17px;--p-menu-row-lh:22px;--p-menu-destructive:var(--destructive);
  --p-menu-shortcut-font:15px;--p-menu-shortcut-lh:20px;--p-menu-shortcut-tracking:0.5px;
  /* Radio — iOS: a 22pt ring with a 1.5px border and a 10pt dot */
  --p-radio-ring-small:20px;--p-radio-ring-default:22px;--p-radio-ring-large:24px;
  --p-radio-dot-small:8px;--p-radio-dot-default:10px;--p-radio-dot-large:10px;--p-radio-border:1.5px;
  /* Textarea — iOS: filled 10pt continuous rounded rect on secondary */
  --p-textarea-fill:var(--secondary);--p-field-caption-tracking:-0.08px;
  /* Form — SwiftUI Form / HIG "Entering data": footnote-emphasized headings, roomier stack */
  --p-form-stack:20px;--p-form-actions-gap:12px;
  --p-form-title:13px;--p-form-title-lh:18px;--p-form-title-tracking:-0.08px;
  --p-form-desc:13px;--p-form-desc-lh:18px;--p-form-desc-tracking:-0.08px;
  /* TabBar — iOS 26 FLOATS the tab bar in the Liquid Glass layer: a capsule inset from the
     display edges, no hairline, content passing beneath it. Not an edge-to-edge bar. */
  --p-tabbar-h:56px;--p-tabbar-item-pad-y:6px;--p-tabbar-label:10px;--p-tabbar-label-lh:13px;--p-tabbar-label-tracking:-0.2px;
  --p-tabbar-rule:0px;--p-tabbar-inset-x:12px;--p-tabbar-inset-b:20px;--p-tabbar-radius:9999px;--p-tabbar-item-radius:9999px;
  --p-tabbar-pill-w:0px;--p-tabbar-pill-h:0px;--p-tabbar-pill-opacity:0 /* @kind other */;
  /* Progress — iOS: a thin capsule on a neutral system fill (never a tint of the accent) */
  --p-progress-h-small:3px;--p-progress-h-base:4px;--p-progress-h-large:6px;
  --p-progress-track:color-mix(in oklab, var(--muted-foreground) 25%, transparent);
  /* StackedList — iOS 27 inset-grouped list: 26pt continuous, borderless, 68pt rows, separators inset past the avatar */
  --p-list-radius:26px;--p-list-border:0px;--p-list-shadow:none;
  --p-list-row-pad-x:16px;--p-list-row-pad-y:0px;--p-list-row-gap:16px;--p-list-row-min-h:68px;--p-list-divider-inset:72px;
  --p-list-name:17px;--p-list-name-lh:22px;--p-list-name-weight:400;--p-list-name-tracking:-0.43px;
  --p-list-sub:15px;--p-list-sub-lh:18px;--p-list-sub-tracking:-0.24px;
  --p-list-header-pad-x:16px;--p-list-header-title:15px;--p-list-header-title-lh:20px;--p-list-header-title-tracking:-0.24px;
  /* Toast — HIG floating banner: 16pt continuous capsule, 15pt semibold message */
  --p-toast-radius:16px;--p-toast-msg:15px;--p-toast-msg-lh:20px;--p-toast-msg-weight:600;--p-toast-msg-tracking:-0.24px;--p-toast-desc-tracking:-0.08px;
  --p-toast-glyph-size:19px;

  /* Board (board.styles.ts iosSkin: 26pt continuous muted wells, SF type) */
  --p-board-lane-gap:16px;--p-board-lane-gap-compact:12px;
  --p-board-col-radius:26px;--p-board-col-pad:14px;--p-board-col-pad-compact:10px;
  --p-board-col-gap:12px;--p-board-col-gap-compact:8px;
  --p-board-col-label-font:15px;--p-board-col-label-lh:20px;--p-board-col-label-weight:600;--p-board-col-label-tracking:-0.24px;
  --p-board-cardlist-gap:10px;--p-board-cardlist-gap-compact:8px;--p-board-cardlist-min-h:52px;
  --p-board-card-radius:8px;
  --p-board-card-title-font:15px;--p-board-card-title-lh:20px;--p-board-card-title-weight:600;
  --p-board-card-desc-font:13px;--p-board-card-desc-lh:18px;

  /* DragHandle (drag-drop.styles.ts iosSkin: 32pt grip, visually compact inside the 44pt row target; 18px glyph) */
  --p-drag-handle-size:32px;--p-drag-handle-radius:8px;--p-drag-handle-icon:18px;

  /* Swatch (swatch.styles.ts iosSkin: continuous-curve noted, not faked; HIG name tracking) */
  --p-swatch-box-small:40px;--p-swatch-box-default:56px;--p-swatch-box-large:72px;
  --p-swatch-radius-small:6px;--p-swatch-radius-default:8px;--p-swatch-radius-large:10px;
  --p-swatch-name-tracking:-0.08px;--p-swatch-mono-tracking:0px;--p-swatch-value-weight:500;
}

/* Material 3: stadium buttons, elevated cards with no visible outline, filled
   fields with a bottom active indicator, ripple instead of a dim, 48dp targets.
   Only the values that DIFFER from the web defaults appear here. */
[data-platform="android"]{
  --p-btn-radius:9999px;--p-btn-pad-x:24px;--p-btn-pad-y:10px;--p-btn-gap:8px;
  --p-btn-font:14px;--p-btn-lh:20px;--p-btn-weight:500;
  --p-btn-pad-x-sm:16px;--p-btn-pad-y-sm:6px;--p-btn-font-sm:13px;--p-btn-lh-sm:18px;
  --p-btn-pad-x-lg:24px;--p-btn-pad-y-lg:13px;--p-btn-font-lg:14px;--p-btn-lh-lg:20px;
  --p-btn-square:40px;--p-btn-square-sm:32px;--p-btn-square-lg:48px;
  --p-press:1 /* @kind other */;--p-disabled:0.38 /* @kind other */;
  --p-card-radius:12px;--p-card-shadow:0px 1px 2px rgba(0,0,0,0.05);--p-card-shadow-raised:0px 4px 6px rgba(0,0,0,0.1);
  --p-card-pad:16px;--p-card-gap:12px;--p-card-pad-compact:12px;--p-card-gap-compact:8px;
  --p-card-pad-comfortable:24px;--p-card-gap-comfortable:20px;--p-card-border:transparent /* @kind other */;
  --p-field-radius:4px;--p-field-radius-bottom:0px;--p-field-height:56px;--p-field-height-sm:48px;--p-field-height-lg:60px;
  --p-field-fill:var(--muted);--p-field-pad-x:16px;--p-field-font:16px;--p-field-lh:24px;
  --p-field-border-width:0px;--p-field-underline:1px;--p-field-underline-color:var(--muted-foreground);
  --p-label-weight:500;--p-label-tracking:0.25px;
  /* Floating label (input/select/autocomplete/textarea androidSkin: floatingLabel true,
     labelReserve paddingTop 24): Android floats the M3 in-container label. It rests inside
     the filled box where the placeholder sits (the native placeholder yields, opacity 0)
     and floats up to body-small above the value once the field is open, focused, or
     filled; the field reserves 24px of top padding so the value clears the floated label. */
  --p-label-above-display:none /* @kind other */;--p-label-float-display:block /* @kind other */;
  --p-label-float-reserve:24px;--p-label-float-placeholder:0 /* @kind other */;
  --p-check-size:18px;--p-check-radius:2px;--p-check-border:2px;
  --p-switch-w:52px;--p-switch-h:32px;--p-switch-thumb-w:24px;--p-switch-thumb-h:24px;--p-switch-thumb-fill:#ffffff;
  /* Switch (switch.styles.ts androidSkin, M3 unselected anatomy): a 2dp outlined muted track with a small centered 16dp muted-foreground dot handle, no fill */
  --p-switch-off-track:var(--muted);--p-switch-off-ring:inset 0 0 0 2px var(--border);--p-switch-thumb-inset:4px;
  --p-switch-thumb-off-fill:var(--muted-foreground);--p-switch-thumb-off-x:6px;
  --p-badge-radius:8px;--p-badge-font:11px;--p-badge-tracking:0.5px;
  --p-chip-radius:8px;--p-chip-pad-x:16px;--p-chip-pad-y:6px;--p-chip-font:14px;--p-chip-gap:8px;
  /* Chip (M3): 18dp remove glyph; the selected filter chip leads with an 18dp check and drops its
     outline (the border-color token resolves only here; web/iOS fall back to the tone border). */
  --p-chip-remove:18px;--p-chip-check-display:inline-flex /* @kind other */;--p-chip-selected-border-color:transparent;
  --p-avatar-square-radius:12px;
  --p-alert-radius:12px;--p-alert-tracking:0.25px;
  --p-overlay-radius:12px;--p-sheet-radius:12px;
  /* Popover (M3, no native popover): a 12dp borderless card on md elevation, no beak */
  --p-popover-radius:12px;--p-popover-border:0px;--p-popover-shadow:0px 4px 6px rgba(0,0,0,0.1);
  --p-tab-item-pad-y:12px;--p-tab-indicator-h:3px;--p-tab-label-selected:var(--primary);
  /* Tabs pills + vertical (M3): capsule tonal primary-12% fills with brand labels, flat (no thumb shadow) */
  --p-tab-pill-track-radius:9999px;--p-tab-pill-radius:9999px;--p-tab-pill-pad-x:14px;--p-tab-pill-pad-y:7px;
  --p-tab-pill-selected-bg:color-mix(in oklab, var(--primary) 12%, transparent);--p-tab-pill-selected-shadow:none;
  --p-tab-v-radius:9999px;--p-tab-v-pad-x:14px;--p-tab-v-pad-y:9px;
  --p-tab-v-selected-fill:color-mix(in oklab, var(--primary) 12%, transparent);--p-tab-v-selected-label:var(--primary);
  /* Sidebar — M3 navigation drawer: tonal pills, 72dp rail */
  --p-side-w-collapsed:72px;
  --p-side-row-radius:9999px;--p-side-row-pad-x:16px;--p-side-row-pad-y:16px;--p-side-row-gap:12px;
  --p-side-label:14px;--p-side-label-lh:20px;--p-side-icon:18px;--p-side-body-pad:12px;
  --p-side-title:14px;--p-side-title-lh:20px;--p-side-title-weight:500;--p-side-title-transform:none /* @kind other */;--p-side-title-tracking:0px;
  --p-side-active-fill:color-mix(in oklab, var(--primary) 12%, transparent);--p-side-active-label:var(--primary);--p-side-label-color:var(--foreground);--p-side-icon-active:var(--primary);
  /* Sidebar (M3): inactive glyphs keep the default foreground tint (androidSkin.iconTint), the M3
     drawer 16/6 section-title inset, 2dp groups, 18dp expand_more (rest 90deg, open 270deg), 6dp dot */
  --p-side-icon-color:var(--foreground);--p-side-group-gap:2px;
  --p-side-title-pad-x:16px;--p-side-title-pad-y:6px;--p-side-sechdr-gap:6px;
  --p-side-chevron:18px;--p-side-dot:6px;
  --p-side-chevron-rest:90deg /* @kind other */;--p-side-chevron-open:270deg /* @kind other */;
  --p-side-toggle:18px;--p-side-toggle-pad:8px;--p-side-toggle-radius:9999px;
  --p-nav-link-active-fill:color-mix(in oklab, var(--primary) 12%, transparent);--p-nav-link-active-label:var(--primary);
  /* Navbar — M3 small top app bar: 64dp, 22sp leading title, no hairline */
  --p-nav-h:64px;--p-nav-rule:0px;--p-nav-brand:22px;--p-nav-brand-lh:28px;--p-nav-brand-weight:500;
  --p-nav-link-radius:9999px;--p-nav-link-pad-x:16px;--p-nav-link-pad-y:6px;
  /* Stats — M3 outlined card, flat, headline-small value */
  --p-stat-radius:12px;--p-stat-pad:16px;--p-stat-shadow:none;--p-stat-gap:12px;
  --p-stat-label-tracking:0.25px;--p-stat-value-weight:400;--p-stat-value-tracking:0px;--p-stat-delta-tracking:0.5px;
  /* DataTable — M3 list rhythm: normal-case label-medium header, 16sp body */
  --p-table-head-transform:none /* @kind other */;--p-table-head-tracking:0.5px;--p-table-head-pad-y:10px;
  --p-table-cell-font:16px;--p-table-cell-lh:24px;--p-table-cell-tracking:0.5px;--p-table-cell-pad-y:14px;--p-table-cell-pad-y-compact:10px;
  /* ButtonGroup — M3 SegmentedButton: an outlined stadium group, tonal selected fill + check */
  --p-seg-track-radius:9999px;--p-seg-track-border:1px;--p-seg-track-fill:transparent;
  --p-seg-border:0px;--p-seg-divider:1px;--p-seg-overlap:0px;--p-seg-radius:0px;--p-seg-inner-radius:0px;
  --p-seg-rest-fill:transparent;--p-seg-selected-fill:color-mix(in oklab, var(--primary) 12%, transparent);
  --p-seg-selected-border:var(--border);--p-seg-selected-label:var(--primary);
  --p-seg-check-display:inline /* @kind other */;
  /* Calendar — M3 date picker: 40dp cells, single-letter labels, today as a RING */
  --p-cal-radius:12px;--p-cal-cell-default:40px;--p-cal-cell-compact:36px;
  --p-cal-chevron:40px;--p-cal-chevron-radius:9999px;--p-cal-chevron-font:22px;--p-cal-chevron-color:var(--muted-foreground);
  --p-cal-weekdays:"one" /* @kind other */;--p-cal-today-fill:transparent;--p-cal-today-ring:1px;
  /* Collapsible — M3 expand_more, 0→180° */
  --p-collapse-glyph:"chevron-down" /* @kind other */;--p-collapse-spin:180deg /* @kind other */;
  /* Feed — M3: 12dp flat card, title-small actor over body-medium action */
  --p-feed-radius:12px;--p-feed-actor-tracking:0.1px;--p-feed-action-tracking:0.25px;--p-feed-time-tracking:0.4px;--p-feed-initials-tracking:0.1px;
  /* ActionPanel — M3 list/card: title-small over body-medium, centre-aligned action */
  --p-panel-title-weight:500;--p-panel-title-tracking:0.1px;--p-panel-desc-tracking:0.25px;--p-panel-inline-align:center /* @kind other */;
  /* Carousel — M3 anatomy is container + items ONLY: no arrows, no position indicator */
  --p-carousel-slide-radius:28px;--p-carousel-arrows:0 /* @kind other */;--p-carousel-dots:0 /* @kind other */;
  --p-carousel-arrow-fill:var(--card);--p-carousel-arrow-shadow:none;
  --p-carousel-dot-active-w:20px;
  --p-carousel-text-tracking:0.15px;
  /* DescriptionList — M3: flat 12dp outlined card, 14px row gap, M3 tracking */
  --p-dl-radius:12px;--p-dl-shadow:none;--p-dl-pad:16px;--p-dl-row-gap:14px;
  --p-dl-term-tracking:0.1px;--p-dl-value-tracking:0.1px;--p-dl-stacked-tracking:0.5px;
  --p-dl-header-weight:500;--p-dl-header-tracking:0.15px;
  /* MediaObject — M3: 16dp gap, ELEVATED 12dp card (transparent outline), M3 roles */
  --p-media-gap:16px;--p-media-gap-compact:12px;--p-media-radius:12px;--p-media-border-color:transparent /* @kind other */;--p-media-shadow:0px 1px 2px rgba(0,0,0,0.05);
  --p-media-icon-radius:12px;--p-media-title-weight:500;--p-media-title-tracking:0.1px;
  --p-media-desc-tracking:0.4px;--p-media-body-lh:20px;--p-media-body-tracking:0.25px;
  /* GridList — M3: 12dp thumbnail, roomier gap, M3 type roles */
  --p-grid-gap:16px;--p-grid-gallery-radius:12px;--p-grid-gallery-title-tracking:0.5px;--p-grid-subtitle-tracking:0.4px;
  --p-grid-card-title-weight:500;--p-grid-card-title-tracking:0.1px;
  /* Slider — M3 Expressive: a 16dp split track, a 4x44dp bar handle, a 6dp gap, a stop dot */
  --p-slider-track-h-small:16px;--p-slider-track-h-base:16px;--p-slider-track-h-large:24px;
  --p-slider-track-radius:8px;--p-slider-inner-radius:2px;--p-slider-gap:6px;--p-slider-row-min-h:48px;
  --p-slider-thumb-w-small:4px;--p-slider-thumb-w-base:4px;--p-slider-thumb-w-large:4px;
  --p-slider-thumb-h-small:44px;--p-slider-thumb-h-base:44px;--p-slider-thumb-h-large:44px;
  --p-slider-thumb-radius:2px;--p-slider-thumb-fill:var(--primary);--p-slider-thumb-border:0px;--p-slider-thumb-shadow:none;
  --p-slider-stop:4px;--p-slider-stop-opacity:1 /* @kind other */;
  /* Stepper — M3: two outlined 40dp circles flanking the value */
  --p-stepper-btn-h:40px;--p-stepper-btn-w-small:32px;--p-stepper-btn-w-base:40px;--p-stepper-btn-w-large:48px;
  --p-stepper-btn-radius:9999px;--p-stepper-btn-border:1px;--p-stepper-glyph-size:20px;
  --p-stepper-field-font:16px;--p-stepper-field-lh:24px;
  --p-stepper-divider-display:none /* @kind other */;
  --p-stepper-group-radius:0px;--p-stepper-group-border:0px;--p-stepper-group-fill:transparent;--p-stepper-group-gap:8px;
  /* InputOTP — M3: separated 52x56dp outlined cells, 2dp primary outline when active */
  --p-otp-seam:1px;--p-otp-seam-active:2px;--p-otp-shared-edge:1 /* @kind other */;--p-otp-gap-small:6px;--p-otp-gap-base:8px;--p-otp-gap-large:12px;
  --p-otp-w-small:44px;--p-otp-w-base:52px;--p-otp-w-large:60px;
  --p-otp-h-small:48px;--p-otp-h-base:56px;--p-otp-h-large:64px;
  --p-otp-radius:12px;--p-otp-inner-radius:12px;--p-otp-fill:transparent;
  --p-otp-rest-border:1px;--p-otp-active-border:2px;--p-otp-rest-border-color:var(--border);--p-otp-active-border-color:var(--primary);
  --p-otp-active-ring:none /* @kind other */;--p-otp-digit-base:16px;--p-otp-digit-weight:500;--p-otp-digit-tracking:0.15px;
  --p-otp-caret:var(--primary);--p-otp-caret-blink:canvas-caret 1s steps(2,start) infinite /* @kind other */;
  /* Accordion — M3 expandable list rows: flush 56dp rows, full-bleed dividers */
  --p-acc-header-pad-x:16px;--p-acc-header-pad-y:16px;
  --p-acc-title:16px;--p-acc-title-lh:24px;--p-acc-title-weight:500;--p-acc-title-tracking:0.15px;
  --p-acc-desc:14px;--p-acc-desc-lh:20px;--p-acc-desc-tracking:0.25px;
  --p-acc-chevron:24px;
  --p-acc-content:14px;--p-acc-content-lh:20px;--p-acc-content-tracking:0.25px;--p-acc-content-pad-bottom:16px;
  /* Steps — M3: flat connector caps, a 12% tonal backing on the current step */
  --p-steps-current-fill:color-mix(in oklab, var(--primary) 12%, transparent);--p-steps-connector-radius:0px;--p-steps-track-h:4px;
  /* Pagination — M3: flat cells, a 12% tonal active fill with a brand label */
  --p-page-radius:8px;--p-page-border:0px;--p-page-rest-fill:transparent;
  --p-page-selected-fill:color-mix(in oklab, var(--primary) 12%, transparent);--p-page-selected-label:var(--primary);
  /* ActionSheet — M3 modal bottom sheet: one 28dp sheet, drag handle, Cancel as the last row */
  --p-sheet-scrim:rgba(0,0,0,0.32);--p-sheet-stack-pad:0px;--p-sheet-stack-gap:0px;
  --p-sheet-card-radius:0px;--p-sheet-card-radius-top:28px;--p-sheet-card-pad:0px 0px 8px;--p-sheet-shadow:none;
  --p-sheet-cancel-layout:lastRow /* @kind other */;
  --p-sheet-handle-display:block /* @kind other */;
  --p-sheet-header-pad:8px 24px 12px;--p-sheet-header-align:flex-start /* @kind other */;--p-sheet-header-gap:4px;--p-sheet-title-align:left /* @kind other */;
  --p-sheet-title:16px;--p-sheet-title-lh:24px;--p-sheet-title-weight:500;--p-sheet-title-tracking:0.15px;--p-sheet-title-color:var(--popover-foreground);
  --p-sheet-msg:14px;--p-sheet-msg-lh:20px;--p-sheet-msg-tracking:0px;
  --p-sheet-divider-h:0px;
  --p-sheet-row-min-h:56px;--p-sheet-row-pad-x:24px;
  --p-sheet-row-font:16px;--p-sheet-row-lh:24px;--p-sheet-row-tracking:0.5px;--p-sheet-row-label:var(--popover-foreground);
  --p-sheet-row-justify:flex-start /* @kind other */;--p-sheet-row-text-align:left /* @kind other */;
  /* Command — M3: 48dp rows at 16/24 +0.5 */
  --p-cmd-search-pad-x:16px;--p-cmd-search-pad-y:14px;--p-cmd-search-gap:12px;--p-cmd-search-min-h:48px;--p-cmd-glyph:20px;
  --p-cmd-row-pad-x:16px;--p-cmd-row-pad-y:12px;--p-cmd-row-min-h:48px;--p-cmd-row-font:16px;--p-cmd-row-lh:24px;--p-cmd-row-tracking:0.5px;
  /* Dialog — M3 basic dialog: 28dp elevated card, 32% scrim, flat text-button actions */
  --p-dialog-scrim:rgba(0,0,0,0.32);--p-dialog-radius:28px;--p-dialog-border:0px;--p-dialog-shadow:0px 10px 15px rgba(0,0,0,0.1);
  --p-dialog-title:22px;--p-dialog-title-lh:28px;--p-dialog-title-weight:500;
  --p-dialog-body-gap:12px;--p-dialog-footer-top:24px;
  --p-alert-btn-min-h:40px;--p-alert-btn-pad:10px 12px;--p-alert-btn-radius:20px;--p-alert-btn-tracking:0.1px;
  --p-alert-cancel-border:0px;--p-alert-cancel-fill:transparent;--p-alert-cancel-label:var(--primary);
  --p-alert-confirm-fill:transparent;--p-alert-confirm-label:var(--primary);
  --p-alert-confirm-destructive-fill:transparent;--p-alert-confirm-destructive-label:var(--destructive);
  /* AlertDialog — M3: 28dp elevated card, headline-small title, flat TEXT actions */
  --p-ad-scrim:rgba(0,0,0,0.32);--p-ad-radius:28px;--p-ad-border:0px;--p-ad-shadow:0px 4px 6px rgba(0,0,0,0.1);
  --p-ad-title:24px;--p-ad-title-lh:32px;--p-ad-title-weight:400;--p-ad-desc-gap:16px;
  --p-ad-btn-min-h:40px;--p-ad-btn-pad:10px 12px;--p-ad-btn-radius:20px;
  --p-ad-cancel-border:0px;--p-ad-cancel-fill:transparent;--p-ad-cancel-label:var(--primary);
  --p-ad-confirm-fill:transparent;--p-ad-confirm-label:var(--primary);
  --p-ad-confirm-destructive-fill:transparent;--p-ad-confirm-destructive-label:var(--destructive);
  /* Drawer — M3 sheets: lineless, side 16dp / bottom 28dp, level-1 elevation, 32x4 handle */
  --p-drawer-scrim:rgba(0,0,0,0.32);--p-drawer-border:0px;--p-drawer-shadow:0px 1px 2px rgba(0,0,0,0.05);
  --p-drawer-side-radius:16px;--p-drawer-sheet-radius:28px;--p-drawer-sheet-max:640px /* @kind other */;
  --p-drawer-handle-w:32px;--p-drawer-handle-h:4px;--p-drawer-handle-top:16px;
  /* AvatarMenu — M3: a 40dp tonal pill (12% primary), M3 label tracking */
  --p-idpill-h:40px;--p-idpill-pad-start:6px;--p-idpill-pad-end:14px;
  --p-idpill-fill:color-mix(in oklab, var(--primary) 12%, transparent);
  --p-idpill-open-fill:color-mix(in oklab, var(--primary) 20%, transparent);--p-idpill-open-border-color:transparent;
  --p-idpill-name:14px;--p-idpill-name-lh:20px;--p-idpill-tracking:0.1px;
  /* Autocomplete — M3 exposed dropdown: filled 56dp field, 4dp elevated menu, 48dp rows */
  --p-ac-h:56px;--p-ac-radius:4px;--p-ac-radius-bottom:0px;--p-ac-border:0px;--p-ac-underline:1px;
  --p-ac-border-color:transparent;--p-ac-underline-rest:var(--muted-foreground);
  --p-ac-fill:var(--muted);--p-ac-pad-x:16px;--p-ac-font:16px;--p-ac-lh:24px;
  --p-ac-menu-max:280px;--p-ac-menu-radius:4px;--p-ac-menu-border:0px;--p-ac-menu-pad-x:0px;--p-ac-menu-pad-y:8px;
  --p-ac-menu-shadow:0px 4px 6px rgba(0,0,0,0.1);
  --p-ac-row-radius:0px;--p-ac-row-pad-x:16px;--p-ac-row-pad-y:12px;--p-ac-row-gap:12px;--p-ac-row-min-h:48px;
  --p-ac-check-w:16px;--p-ac-check-color:var(--primary);
  /* Select — M3 exposed dropdown: filled 56dp trigger, 4dp elevated menu */
  --p-select-h:56px;--p-select-radius:4px;--p-select-radius-bottom:0px;--p-select-border:0px;--p-select-underline:1px;
  --p-select-border-color:transparent;--p-select-underline-rest:var(--muted-foreground);
  --p-select-fill:var(--muted);--p-select-pad-x:16px;--p-select-font:16px;--p-select-lh:24px;
  --p-select-chevron:"⌄" /* @kind other */;--p-select-panel-max:280px;--p-select-panel-radius:4px;--p-select-panel-border:0px;--p-select-panel-pad-y:8px;--p-select-panel-pad-x:0px;
  --p-select-panel-shadow:0px 4px 6px rgba(0,0,0,0.1);
  --p-select-row-radius:0px;--p-select-row-pad-x:16px;--p-select-row-pad-y:12px;--p-select-row-gap:12px;--p-select-row-min-h:48px;
  --p-select-row-font:14px;--p-select-row-lh:20px;
  --p-select-row-selected-fill:color-mix(in oklab, var(--primary) 12%, transparent);
  --p-select-check-color:var(--primary);--p-select-check-weight:700;
  /* Dropdown — M3 menu: 4dp elevated surface, 48dp rows, no dividers */
  --p-menu-radius:4px;--p-menu-border:0px;--p-menu-pad-x:0px;--p-menu-pad-y:8px;--p-menu-shadow:0px 4px 6px rgba(0,0,0,0.1);
  --p-menu-label-tracking:0.5px;--p-menu-label-pad-x:16px;--p-menu-label-pad-y:8px;
  --p-menu-sep-h:0px;--p-menu-sep-margin:0px;
  --p-menu-row-radius:0px;--p-menu-row-pad-x:16px;--p-menu-row-pad-y:0px;--p-menu-row-gap:12px;--p-menu-row-min-h:48px;
  --p-menu-destructive:var(--destructive);--p-menu-shortcut-tracking:0.5px;
  /* Tooltip — M3 plain tooltip: 4dp, flat, 400 label, 24dp min height */
  --p-tip-radius:4px;--p-tip-shadow:none;--p-tip-weight:400;--p-tip-min-h:24px;
  /* Radio — M3: a 20dp ring with a 2dp muted outline and a 10dp dot */
  --p-radio-ring-small:18px;--p-radio-ring-default:20px;--p-radio-ring-large:22px;
  --p-radio-dot-small:10px;--p-radio-dot-default:10px;--p-radio-dot-large:12px;
  --p-radio-rest-border:var(--muted-foreground);
  /* Textarea — M3 filled: an 8% muted wash with a visible resting indicator */
  --p-textarea-fill:color-mix(in oklab, var(--muted-foreground) 8%, transparent);
  --p-textarea-underline-rest:var(--muted-foreground);--p-field-caption-tracking:0.4px;
  /* Form — M3: prominent 700 title weight, body-small description */
  --p-form-title-weight:700;--p-form-desc-tracking:0.4px;
  /* Breadcrumb — M3 body/label tracking */
  --p-crumb-tracking:0.1px;--p-crumb-sep-tracking:0.5px;
  /* TabBar — M3 navigation bar: 80dp edge-to-edge, no hairline, 56x32dp active-indicator pill.
     The 80dp already INCLUDES the gesture inset, so the bar reaches the display edge and the
     gesture pill is drawn on top of it — never a separate band beneath it. */
  --p-tabbar-rule:0px;--p-tabbar-pad-top:8px;--p-tabbar-h:80px;--p-tabbar-item-pad-y:8px;--p-tabbar-gap:4px;
  --p-tabbar-label:12px;--p-tabbar-label-lh:16px;--p-tabbar-label-tracking:0.5px;
  --p-tabbar-pill-w:56px;--p-tabbar-pill-h:32px;--p-tabbar-pill-opacity:1 /* @kind other */;
  --p-tabbar-inset-b:0px;--p-tabbar-pad-bottom:12px;
  /* No divider, so the separation comes from the surface-container tint instead. */
  --p-tabbar-fill:var(--muted) /* @kind other */;
  /* M3 top app bar does the same: tinted surface, no hairline. */
  --p-nav-fill:var(--muted) /* @kind other */;--p-nav-rule:0px;
  /* Progress — M3 linear indicator: 4dp track on secondary, 4dp gap, stop-indicator dot */
  --p-progress-h-small:3px;--p-progress-h-base:4px;--p-progress-h-large:8px;
  --p-progress-track:var(--secondary);--p-progress-gap:4px;--p-progress-stop:4px;--p-progress-stop-opacity:1 /* @kind other */;
  /* Emblem — M3 rounds icon containers more; monogram is an M3 label */
  --p-emblem-radius-small:8px;--p-emblem-radius-default:12px;--p-emblem-radius-large:16px;
  --p-emblem-monogram-weight:500;--p-emblem-monogram-tracking:0.1px;
  /* StackedList — M3 outlined card, 72dp two-line rows, body-large name */
  --p-list-radius:12px;--p-list-shadow:none;
  --p-list-row-pad-x:16px;--p-list-row-pad-y:12px;--p-list-row-gap:16px;--p-list-row-min-h:72px;
  --p-list-name:16px;--p-list-name-lh:24px;--p-list-name-weight:400;--p-list-name-tracking:0.5px;
  --p-list-sub:14px;--p-list-sub-lh:20px;--p-list-sub-tracking:0.25px;
  --p-list-header-pad-x:16px;--p-list-header-title:16px;--p-list-header-title-lh:24px;--p-list-header-title-weight:500;--p-list-header-title-tracking:0.15px;
  /* Toast — M3 snackbar: 4dp bar on the INVERSE surface, 14sp regular body; the M3
     snackbar anatomy has no leading icon slot, so the auto intent glyph hides */
  --p-toast-radius:4px;--p-toast-fill:var(--foreground);--p-toast-label:var(--background);
  --p-toast-msg:14px;--p-toast-msg-lh:20px;--p-toast-msg-weight:400;--p-toast-msg-tracking:0px;
  --p-toast-desc-color:color-mix(in oklab, var(--background) 70%, transparent);--p-toast-gap:8px;
  --p-toast-glyph:none;
  /* EmptyState — M3 medium shape, title-medium */
  --p-empty-radius:12px;--p-empty-title-weight:500;--p-empty-title-tracking:0.15px;--p-empty-desc-tracking:0.25px;
  --p-min-target:48px;

  /* Board (board.styles.ts androidSkin: 16dp surface-container wells, M3 type) */
  --p-board-lane-gap:16px;--p-board-lane-gap-compact:12px;
  --p-board-col-radius:16px;--p-board-col-pad:12px;--p-board-col-pad-compact:8px;
  --p-board-col-gap:12px;--p-board-col-gap-compact:8px;
  --p-board-col-label-font:14px;--p-board-col-label-lh:20px;--p-board-col-label-weight:500;--p-board-col-label-tracking:0.1px;
  --p-board-cardlist-gap:8px;--p-board-cardlist-gap-compact:6px;--p-board-cardlist-min-h:52px;
  --p-board-card-radius:8px;
  --p-board-card-title-font:14px;--p-board-card-title-lh:20px;--p-board-card-title-weight:500;
  --p-board-card-desc-font:12px;--p-board-card-desc-lh:16px;

  /* DragHandle (drag-drop.styles.ts androidSkin: 40dp circular grip, the M3 min touch target; 20px glyph) */
  --p-drag-handle-size:40px;--p-drag-handle-radius:20px;--p-drag-handle-icon:20px;

  /* Swatch (swatch.styles.ts androidSkin: M3 container ladder + label tracking) */
  --p-swatch-box-small:40px;--p-swatch-box-default:56px;--p-swatch-box-large:72px;
  --p-swatch-radius-small:8px;--p-swatch-radius-default:12px;--p-swatch-radius-large:16px;
  --p-swatch-name-tracking:0.1px;--p-swatch-mono-tracking:0.1px;--p-swatch-value-weight:500;
}

/* iOS skin values that resolve PER SCHEME upstream: the drawer scrim
   (scrimOpacity(scheme): 0.2 light, 0.48 dark) and the switch off-track
   (switch.styles.ts IOS_OFF_TRACK, systemGray3: #c7c7cc light, #48484a dark). */
.dark [data-platform="ios"],[data-platform="ios"].dark{--p-drawer-scrim:rgba(0,0,0,0.48);--p-switch-off-track:#48484a}
