/* shadcn/ui: tokens (light, dark, the Zinc and Stone base grays) and component shapes.
   Loaded after themes.css and app.css; every rule is scoped to [data-theme="shadcn"]. */

/* ── shadcn/ui: neutral grays, Geist, near-black primary ─────────────────────────
   Raw values are the published shadcn/ui defaults (OKLCH). The semantic mapping below reads them,
   so a base gray or the dark palette only swaps the raw --sh-* values. */
[data-theme="shadcn"] {
  --sh-background: oklch(1 0 0);
  --sh-foreground: oklch(0.145 0 0);
  --sh-card: oklch(1 0 0);
  --sh-popover: oklch(1 0 0);
  --sh-primary: oklch(0.205 0 0);
  --sh-primary-foreground: oklch(0.985 0 0);
  --sh-secondary: oklch(0.97 0 0);
  --sh-muted: oklch(0.97 0 0);
  --sh-muted-foreground: oklch(0.556 0 0);
  --sh-accent: oklch(0.97 0 0);
  --sh-destructive: oklch(0.577 0.245 27.325);
  --sh-border: oklch(0.922 0 0);
  --sh-input: oklch(0.922 0 0);
  --sh-ring: oklch(0.708 0 0);
  --sh-sidebar: oklch(0.985 0 0);
  --sh-strong: oklch(0.87 0 0);
  --sh-fg-2: oklch(0.269 0 0);

  --font: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --bg: var(--sh-background); --paper: var(--sh-background); --paper-2: var(--sh-sidebar);
  --card: var(--sh-card); --elevated: var(--sh-popover);
  --subtle: var(--sh-muted); --hover: var(--sh-accent); --active: var(--sh-accent);
  --fg: var(--sh-foreground); --fg-2: var(--sh-fg-2); --fg-3: var(--sh-muted-foreground); --fg-muted: var(--sh-muted-foreground);
  --border: var(--sh-border); --border-strong: var(--sh-strong); --input: var(--sh-input);

  --primary: var(--sh-primary); --primary-hover: color-mix(in oklab, var(--sh-primary) 90%, transparent);
  --primary-fg: var(--sh-primary-foreground);
  --primary-soft: var(--sh-secondary); --primary-soft-fg: var(--sh-foreground);
  --ring: var(--sh-ring); --ring-alpha: 50%;
  --focus-w: 3px; --focus-c: var(--ring-soft); --focus-o: 0px;

  --danger: var(--sh-destructive); --danger-solid: var(--sh-destructive);
  --danger-soft: color-mix(in oklab, var(--sh-destructive) 10%, transparent);
  --warn: oklch(0.555 0.163 48.998); --warn-soft: oklch(0.987 0.022 95.277);
  --ok: oklch(0.527 0.154 150.069); --ok-solid: oklch(0.627 0.194 149.214); --ok-soft: oklch(0.982 0.018 155.826);
  --snooze: var(--sh-foreground); --snooze-solid: oklch(0.585 0.233 277.117); --snooze-soft: var(--sh-secondary);
  --label: var(--sh-foreground); --label-soft: transparent; --label-border: var(--sh-border);
  --sample: oklch(0.555 0.163 48.998); --sample-soft: oklch(0.987 0.022 95.277);
  --unread: oklch(0.577 0.245 27.325); --unread-line: color-mix(in oklab, var(--sh-destructive) 35%, transparent);
  --draft: oklch(0.646 0.222 41.116);
  --note-bg: oklch(0.987 0.026 102.212); --note-border: oklch(0.945 0.129 101.54); --note-fg: oklch(0.476 0.114 61.907);
  --note-strong: oklch(0.554 0.135 66.442); --note-focus: oklch(0.795 0.184 86.047); --note-soft: oklch(0.993 0.013 106.423);
  --fail-bg: oklch(0.987 0.022 95.277); --fail-border: oklch(0.879 0.169 91.605);

  --bubble-in: var(--sh-muted); --bubble-in-fg: var(--sh-foreground);
  --bubble-out: var(--primary); --bubble-out-fg: var(--primary-fg);
  --bubble-other: var(--sh-background); --bubble-other-fg: var(--sh-foreground); --bubble-other-border: var(--sh-border);
  --bubble-fail: color-mix(in oklab, var(--sh-destructive) 7%, var(--sh-background)); --bubble-fail-border: color-mix(in oklab, var(--sh-destructive) 45%, transparent);
  --bubble-fail-fg: var(--sh-foreground);
  --file-bg: var(--sh-background); --file-border: var(--sh-border);
  --summary-bg: var(--sh-sidebar); --summary-border: var(--sh-border); --summary-fg: var(--sh-foreground);
  --sug-bg: var(--sh-background); --sug-border: var(--sh-border); --sug-hover: var(--sh-accent); --sug-fg: var(--sh-foreground);
  --info-soft: var(--sh-muted); --info-fg: var(--sh-foreground);
  --mark: oklch(0.945 0.129 101.54); --star: oklch(0.769 0.188 70.08);

  --toast-bg: var(--sh-popover); --toast-fg: var(--sh-foreground); --toast-border: var(--sh-border); --toast-action: var(--primary);
  --skel-a: var(--sh-accent); --skel-b: var(--sh-accent); --skel-anim: aa-pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
  --scrim: oklch(0 0 0 / 50%); --scroll-shadow: oklch(0 0 0 / 8%);
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
  --shadow-side: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);

  --btn-radius: var(--r-md); --field-radius: var(--r-md); --card-radius: var(--r-xl); --menu-radius: var(--r-md);
  --item-radius: var(--r-sm); --chip-radius: var(--r-md); --pill-radius: var(--r-md); --row-radius: var(--r-lg);
  --bubble-radius: var(--r-xl); --panel-radius: var(--r-xl);
  --weight-strong: 600; --weight-head: 600; --weight-active: 500; --tracking-head: -.015em;
  --side-bg: var(--sh-sidebar); --side-fg: var(--sh-foreground); --side-hover: var(--sh-accent); --side-hover-fg: var(--sh-foreground);
  --side-active-bg: var(--sh-accent); --side-active-fg: var(--sh-foreground); --side-muted: color-mix(in oklab, var(--sh-foreground) 70%, transparent);
  --side-border: var(--sh-border); --side-title: var(--sh-foreground); --side-sub-bg: transparent; --side-parent-fg: var(--sh-foreground);
  color-scheme: light;
}

/* base grays offered by the shadcn/ui theme page (Tailwind v4 zinc and stone) */
[data-theme="shadcn"][data-base="zinc"] {
  --sh-foreground: oklch(0.141 0.005 285.823); --sh-primary: oklch(0.21 0.006 285.885);
  --sh-secondary: oklch(0.967 0.001 286.375); --sh-muted: oklch(0.967 0.001 286.375); --sh-accent: oklch(0.967 0.001 286.375);
  --sh-muted-foreground: oklch(0.552 0.016 285.938); --sh-border: oklch(0.92 0.004 286.32); --sh-input: oklch(0.92 0.004 286.32);
  --sh-ring: oklch(0.705 0.015 286.067); --sh-strong: oklch(0.871 0.006 286.286); --sh-fg-2: oklch(0.274 0.006 286.033);
}
[data-theme="shadcn"][data-base="stone"] {
  --sh-foreground: oklch(0.147 0.004 49.25); --sh-primary: oklch(0.216 0.006 56.043); --sh-primary-foreground: oklch(0.985 0.001 106.423);
  --sh-secondary: oklch(0.97 0.001 106.424); --sh-muted: oklch(0.97 0.001 106.424); --sh-accent: oklch(0.97 0.001 106.424);
  --sh-muted-foreground: oklch(0.553 0.013 58.071); --sh-border: oklch(0.923 0.003 48.717); --sh-input: oklch(0.923 0.003 48.717);
  --sh-ring: oklch(0.709 0.01 56.259); --sh-sidebar: oklch(0.985 0.001 106.423); --sh-strong: oklch(0.869 0.005 56.366);
  --sh-fg-2: oklch(0.268 0.007 34.298);
}

[data-theme="shadcn"][data-mode="dark"] {
  --sh-background: oklch(0.145 0 0);
  --sh-foreground: oklch(0.985 0 0);
  --sh-card: oklch(0.205 0 0);
  --sh-popover: oklch(0.205 0 0);
  --sh-primary: oklch(0.922 0 0);
  --sh-primary-foreground: oklch(0.205 0 0);
  --sh-secondary: oklch(0.269 0 0);
  --sh-muted: oklch(0.269 0 0);
  --sh-muted-foreground: oklch(0.708 0 0);
  --sh-accent: oklch(0.269 0 0);
  --sh-destructive: oklch(0.704 0.191 22.216);
  --sh-border: oklch(1 0 0 / 10%);
  --sh-input: oklch(1 0 0 / 15%);
  --sh-ring: oklch(0.556 0 0);
  --sh-sidebar: oklch(0.205 0 0);
  --sh-strong: oklch(1 0 0 / 18%);
  --sh-fg-2: oklch(0.922 0 0);

  --warn: oklch(0.828 0.189 84.429); --warn-soft: oklch(0.769 0.188 70.08 / 14%);
  --ok: oklch(0.792 0.209 151.711); --ok-solid: oklch(0.723 0.219 149.579); --ok-soft: oklch(0.723 0.219 149.579 / 14%);
  --snooze-solid: oklch(0.673 0.182 276.935);
  --sample: oklch(0.828 0.189 84.429); --sample-soft: oklch(0.769 0.188 70.08 / 14%);
  --unread: oklch(0.704 0.191 22.216); --draft: oklch(0.837 0.128 66.29);
  --note-bg: oklch(0.795 0.184 86.047 / 10%); --note-border: oklch(0.795 0.184 86.047 / 32%); --note-fg: oklch(0.905 0.182 98.111);
  --note-strong: oklch(0.681 0.162 75.834); --note-focus: oklch(0.795 0.184 86.047); --note-soft: oklch(0.795 0.184 86.047 / 6%);
  --fail-bg: oklch(0.795 0.184 86.047 / 8%); --fail-border: oklch(0.795 0.184 86.047 / 45%);
  --bubble-fail: color-mix(in oklab, var(--sh-destructive) 14%, var(--sh-background));
  --mark: oklch(0.795 0.184 86.047 / 32%); --star: oklch(0.828 0.189 84.429);
  --scrim: oklch(0 0 0 / 60%); --scroll-shadow: oklch(0 0 0 / 50%);
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .3);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .4), 0 1px 2px -1px rgb(0 0 0 / .4);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / .45), 0 2px 4px -2px rgb(0 0 0 / .45), 0 0 0 1px oklch(1 0 0 / 8%);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5), 0 4px 6px -4px rgb(0 0 0 / .5), 0 0 0 1px oklch(1 0 0 / 8%);
  --shadow-side: 0 10px 15px -3px rgb(0 0 0 / .5), 0 0 0 1px oklch(1 0 0 / 8%);
  color-scheme: dark;
}
[data-theme="shadcn"][data-base="zinc"][data-mode="dark"] {
  --sh-background: oklch(0.141 0.005 285.823); --sh-card: oklch(0.21 0.006 285.885); --sh-popover: oklch(0.21 0.006 285.885);
  --sh-primary: oklch(0.92 0.004 286.32); --sh-primary-foreground: oklch(0.21 0.006 285.885);
  --sh-secondary: oklch(0.274 0.006 286.033); --sh-muted: oklch(0.274 0.006 286.033); --sh-accent: oklch(0.274 0.006 286.033);
  --sh-muted-foreground: oklch(0.705 0.015 286.067); --sh-ring: oklch(0.552 0.016 285.938); --sh-sidebar: oklch(0.21 0.006 285.885);
  --sh-fg-2: oklch(0.92 0.004 286.32); --sh-foreground: oklch(0.985 0 0);
}
[data-theme="shadcn"][data-base="stone"][data-mode="dark"] {
  --sh-background: oklch(0.147 0.004 49.25); --sh-card: oklch(0.216 0.006 56.043); --sh-popover: oklch(0.216 0.006 56.043);
  --sh-primary: oklch(0.923 0.003 48.717); --sh-primary-foreground: oklch(0.216 0.006 56.043);
  --sh-secondary: oklch(0.268 0.007 34.298); --sh-muted: oklch(0.268 0.007 34.298); --sh-accent: oklch(0.268 0.007 34.298);
  --sh-muted-foreground: oklch(0.709 0.01 56.259); --sh-ring: oklch(0.553 0.013 58.071); --sh-sidebar: oklch(0.216 0.006 56.043);
  --sh-fg-2: oklch(0.923 0.003 48.717); --sh-foreground: oklch(0.985 0.001 106.423);
}

/* ── shadcn/ui component shapes (colours already come from tokens) ── */
[data-theme="shadcn"]{--sec-transform:none;--sec-size:12px;--sec-weight:500;--sec-spacing:0}
[data-theme="shadcn"] .gsearch{background:color-mix(in oklab,var(--subtle) 50%,transparent);border:1px solid var(--border);box-shadow:var(--shadow-xs)}
[data-theme="shadcn"] .gsearch:hover{background:var(--hover)}
[data-theme="shadcn"] kbd{border:0;background:var(--subtle);color:var(--fg-muted);font-weight:500;border-radius:var(--r-sm);padding:0 4px;height:20px;display:inline-flex;align-items:center}
[data-theme="shadcn"] .chip{border-style:dashed;font-weight:500;color:var(--fg)}
[data-theme="shadcn"] .chip.on{border-style:solid;background:var(--subtle);border-color:var(--border);color:var(--fg)}
[data-theme="shadcn"] .pill{height:22px;padding:0 8px;font-size:12px;font-weight:500}
[data-theme="shadcn"] .pill.grey,[data-theme="shadcn"] .pill.inbox{background:transparent;border-color:var(--border);color:var(--fg)}
[data-theme="shadcn"] .pill.snoozed{background:var(--subtle);color:var(--fg)}
[data-theme="shadcn"] .btn{font-weight:500;padding:0 12px}
[data-theme="shadcn"] .tool,[data-theme="shadcn"] .linkbtn,[data-theme="shadcn"] .sendgrp button,[data-theme="shadcn"] .demo-btn,[data-theme="shadcn"] .chip,[data-theme="shadcn"] .ghost{font-weight:500}
[data-theme="shadcn"] .demo-btn{border-radius:var(--btn-radius);background:var(--paper);box-shadow:var(--shadow-xs)}
[data-theme="shadcn"] .conn{border-radius:var(--btn-radius)}
[data-theme="shadcn"] .linkbtn{color:var(--fg);text-decoration:underline;text-underline-offset:4px;text-decoration-color:color-mix(in oklab,var(--fg) 30%,transparent)}
[data-theme="shadcn"] .linkbtn:hover{background:transparent;text-decoration-color:currentColor}
[data-theme="shadcn"] .linkbtn.red{color:var(--danger)}
[data-theme="shadcn"] .nav-row.on{color:var(--fg)}
[data-theme="shadcn"] .conv.unread .conv-time{color:var(--fg)}
[data-theme="shadcn"] .summary .ic{color:var(--fg-muted)}
[data-theme="shadcn"] .sugs .lead{color:var(--fg-muted)}
/* segmented tabs, as shadcn Tabs: a muted track with the active trigger raised on the background colour */
[data-theme="shadcn"] .tabs{padding:8px 8px 0}
[data-theme="shadcn"] .tablist{display:inline-flex;align-items:center;gap:0;padding:3px;border-radius:var(--r-lg);background:var(--subtle)}
[data-theme="shadcn"] .tab{height:28px;padding:0 10px;border:0;border-radius:var(--r-md);font-weight:500;color:var(--fg-muted)}
[data-theme="shadcn"] .tab.on{background:var(--paper);color:var(--fg);box-shadow:var(--shadow-sm)}
[data-theme="shadcn"] .composer.note .tab.on{color:var(--note-fg)}
[data-theme="shadcn"] .ctx-tabs{padding:8px;border-bottom:1px solid var(--border)}
[data-theme="shadcn"] .ctx-tab{height:28px;padding:0 10px;border:0;border-radius:var(--r-md);font-weight:500}
[data-theme="shadcn"] .ctx-tab.on{background:var(--paper);color:var(--fg);box-shadow:var(--shadow-sm)}
[data-theme="shadcn"] .ctx-tabs .tablist{flex:0 1 auto}
/* menus and toasts as shadcn DropdownMenu and Sonner */
[data-theme="shadcn"] .pop{padding:4px}
[data-theme="shadcn"] .pop button{height:32px;padding:0 8px}
[data-theme="shadcn"] .pop .sep{margin:4px -4px}
[data-theme="shadcn"] .toast{left:auto;right:24px;translate:none;min-width:320px;max-width:min(420px,calc(100vw - 32px));padding:14px 16px;justify-content:space-between}
[data-theme="shadcn"] .toast button{height:24px;padding:0 8px;border-radius:var(--r-sm);background:var(--primary);color:var(--primary-fg);font-size:12px;font-weight:500}
[data-theme="shadcn"] .palette .it.on{background:var(--hover)}
[data-theme="shadcn"] .state .ico{border:1px solid var(--border);background:var(--paper);box-shadow:var(--shadow-xs)}
/* AvatarFallback is muted grey in shadcn; the channel badge keeps the colour cue */
[data-theme="shadcn"] .avatar{background:var(--subtle);color:var(--fg-2)}

@media (max-width:767px){
  [data-theme="shadcn"] .toast{right:auto;left:50%;translate:-50% 0;min-width:0}
}
