/* WaDesk shared styles — used across every page.
   Tailwind theme tokens are configured in app.js (window.tailwind.config). */

/* fonts moved to app.css to satisfy CSS @import ordering rules */

/* hairline border helper used in older markup */
.hairline    { box-shadow: inset 0 0 0 1px #E5DFD0; }
.hairline-b  { box-shadow: inset 0 -1px 0 #E5DFD0; }

/* shared toggle switch — used across admin settings, devices, etc. */
.toggle { position:relative; display:inline-block; width:36px; height:20px; flex:none; }
.toggle input { opacity:0; width:0; height:0; }
.toggle .track { position:absolute; inset:0; background:#E5DFD0; border-radius:999px; transition:.18s; cursor:pointer; }
.toggle .thumb { position:absolute; top:2px; left:2px; width:16px; height:16px; background:#FBFAF6; border-radius:50%; transition:.18s; box-shadow: 0 1px 3px rgba(11,31,28,.2); pointer-events:none; }
.toggle input:checked ~ .track { background:#075E54; }
.toggle input:checked ~ .thumb { left:18px; }

/* shared scrollbar */
::-webkit-scrollbar { width:8px; height:8px; }
::-webkit-scrollbar-thumb { background: rgba(11,31,28,0.18); border-radius:999px; }
::-webkit-scrollbar-thumb:hover { background: rgba(11,31,28,0.32); }

/* In-app paywall bottom sheet — slide up from the bottom edge.
   Used by resources/views/components/plan-paywall.blade.php. */
@keyframes plan-paywall-rise { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes plan-paywall-fade { from { opacity: 0; } to { opacity: 1; } }
.plan-paywall-overlay { animation: plan-paywall-fade .2s ease-out both; }
.plan-paywall-sheet   { animation: plan-paywall-rise .28s cubic-bezier(.22,1,.36,1) both; }

/* ─────────────────────────────────────────────────────────────
   intl-tel-input — paper palette overrides. Library ships with
   its own CSS that styles a drop-shadow box; we tighten the
   borders and colours so the picker fits inside our rounded-xl
   inputs without looking like a foreign component.
   ───────────────────────────────────────────────────────────── */
.wa-iti-wrap .iti { width: 100%; }
/* Generous left-pad so the dial-code badge and the number have
   real breathing room — default 88px leaves them touching. */
.wa-iti-wrap .iti__tel-input,
.wa-iti-wrap input[type="tel"] {
  padding-left: 108px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}
.wa-iti-wrap .iti--separate-dial-code .iti__selected-flag {
  background-color: #F5F3EC;
  border-right: 1px solid #E5DFD0;
  border-radius: 12px 0 0 12px;
  padding: 0 10px 0 12px;
  gap: 6px;
}
.wa-iti-wrap .iti--separate-dial-code .iti__selected-dial-code {
  margin-left: 4px;
  font-weight: 600;
  letter-spacing: 0.01em;
}
/* When dropdownContainer:document.body portals the country list
   out of the modal, it's positioned absolutely against <body> so
   the parent .wa-iti-wrap selector no longer matches. Style by
   the iti--container class the package adds to the portaled
   element instead, and force a z-index above the modal (z-50). */
.iti--container,
.wa-iti-wrap .iti__country-list,
.iti__country-list {
  background: #FBFAF6;
  border: 1px solid #E5DFD0;
  border-radius: 12px;
  box-shadow: 0 8px 24px -12px rgba(7, 94, 84, 0.18);
  font-size: 12.5px;
  z-index: 80;
}
.iti__country.iti__highlight,
.iti__country:hover { background: #DCF8C6; }
.wa-iti-wrap .iti__divider { border-bottom: 1px dashed #E5DFD0; }
.wa-iti-wrap .iti__search-input {
  border: 1px solid #E5DFD0; border-radius: 999px; padding: 6px 12px;
  font-size: 12.5px; outline: none;
}
.wa-iti-wrap .iti__search-input:focus { border-color: #075E54; box-shadow: 0 0 0 4px rgba(7,94,84,0.1); }

html[data-theme="dark"] .wa-iti-wrap .iti--separate-dial-code .iti__selected-flag {
  background-color: #173631;
  border-right-color: #2D5A53;
}
html[data-theme="dark"] .iti--container,
html[data-theme="dark"] .wa-iti-wrap .iti__country-list,
html[data-theme="dark"] .iti__country-list {
  background: #13312D;
  border-color: #2D5A53;
  color: #F0EBE0;
  box-shadow: 0 8px 24px -12px rgba(0,0,0,0.55);
}
html[data-theme="dark"] .iti__country.iti__highlight,
html[data-theme="dark"] .iti__country:hover { background: #1F4540; }
html[data-theme="dark"] .wa-iti-wrap .iti__divider { border-bottom-color: #2D5A53; }
html[data-theme="dark"] .wa-iti-wrap .iti__search-input {
  background: #1F4540;
  border-color: #2D5A53;
  color: #F0EBE0;
}

/* Tom Select searchable selects, used by timezone fields. */
html .ts-wrapper { width: 100%; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; }
html .ts-control,
html .ts-wrapper.single .ts-control {
  min-height: 42px !important;
  padding: 8px 10px !important;
  border: 1px solid #E5DFD0 !important;
  border-radius: 8px !important;
  background: #FBFAF6 !important;
  color: #0B1F1C !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  box-shadow: none !important;
}
html .ts-control input,
html .ts-dropdown input {
  color: #0B1F1C !important;
  font-size: 13px !important;
}
html .ts-control input::placeholder,
html .ts-dropdown input::placeholder { color: #6B807C !important; opacity: 1; }
html .ts-wrapper.focus .ts-control {
  border-color: #075E54 !important;
  box-shadow: 0 0 0 4px rgba(7, 94, 84, 0.10) !important;
}
html .ts-wrapper.single .ts-control:after { border-color: #6B807C transparent transparent transparent; }
html .ts-wrapper.single.dropdown-active .ts-control:after { border-color: transparent transparent #6B807C transparent; }
html .ts-dropdown {
  z-index: 80 !important;
  margin-top: 6px !important;
  overflow: hidden !important;
  border: 1px solid #E5DFD0 !important;
  border-radius: 10px !important;
  background: #FBFAF6 !important;
  color: #0B1F1C !important;
  font-size: 12.5px !important;
  box-shadow: 0 8px 24px -12px rgba(7, 94, 84, 0.18) !important;
}
html .ts-dropdown .option,
html .ts-dropdown .create,
html .ts-dropdown .no-results {
  padding: 7px 10px !important;
  color: #1F4540 !important;
}
html .ts-dropdown .active,
html .ts-dropdown .option:hover {
  background: #DCF8C6 !important;
  color: #075E54 !important;
}
html .ts-dropdown .selected { font-weight: 600; }

html[data-theme="bright"] .ts-control,
html[data-theme="bright"] .ts-wrapper.single .ts-control,
html[data-theme="bright"] .ts-dropdown {
  background: #FFFFFF !important;
  border-color: #E6E6E6 !important;
}
html[data-theme="dark"] .ts-control,
html[data-theme="dark"] .ts-wrapper.single .ts-control {
  background: #1F4540 !important;
  border-color: #2D5A53 !important;
  color: #F0EBE0 !important;
}
html[data-theme="dark"] .ts-control input,
html[data-theme="dark"] .ts-dropdown input { color: #F0EBE0 !important; }
html[data-theme="dark"] .ts-control input::placeholder,
html[data-theme="dark"] .ts-dropdown input::placeholder { color: #92A29E !important; }
html[data-theme="dark"] .ts-wrapper.focus .ts-control {
  border-color: #25D366 !important;
  box-shadow: 0 0 0 4px rgba(37, 211, 102, 0.12) !important;
}
html[data-theme="dark"] .ts-wrapper.single .ts-control:after { border-color: #A8B7B2 transparent transparent transparent; }
html[data-theme="dark"] .ts-wrapper.single.dropdown-active .ts-control:after { border-color: transparent transparent #A8B7B2 transparent; }
html[data-theme="dark"] .ts-dropdown {
  background: #13312D !important;
  border-color: #2D5A53 !important;
  color: #F0EBE0 !important;
  box-shadow: 0 8px 24px -12px rgba(0,0,0,0.55) !important;
}
html[data-theme="dark"] .ts-dropdown .option,
html[data-theme="dark"] .ts-dropdown .create,
html[data-theme="dark"] .ts-dropdown .no-results { color: #E5DFD0 !important; }
html[data-theme="dark"] .ts-dropdown .active,
html[data-theme="dark"] .ts-dropdown .option:hover {
  background: #1F4540 !important;
  color: #7BFFB1 !important;
}

/* ─────────────────────────────────────────────────────────────
   emoji-picker-element web component — force light theme and
   restyle to match the WaDesk paper palette. The package auto-
   switches based on prefers-color-scheme by default; we always
   want the WA-paper look.
   ───────────────────────────────────────────────────────────── */
.chat-emoji-picker {
  --background:                  #FBFAF6;
  --border-color:                #E5DFD0;
  --border-size:                 1px;
  --indicator-color:             #075E54;
  --button-active-background:    #DCF8C6;
  --button-hover-background:     #DCF8C6;
  --input-border-color:          #E5DFD0;
  --input-font-color:             #0B1F1C;
  --input-placeholder-color:     #6B807C;
  --input-padding:               .35rem .6rem;
  --category-emoji-padding:      .25rem;
  --emoji-padding:               .35rem;
  --num-columns:                 8;
  --outline-color:               #075E54;
  --outline-size:                2px;
  width: 320px;
  height: 380px;
  border: 0;
}
.chat-emoji-picker::part(picker) { background: #FBFAF6; }

/* ─────────────────────────────────────────────────────────────
   Shimmer skeletons (queue list + thread loading state)
   ───────────────────────────────────────────────────────────── */
@keyframes wa-shimmer {
  0%   { background-position: -240px 0; }
  100% { background-position:  240px 0; }
}
.skeleton {
  background-color: #EFEBE0;
  background-image: linear-gradient(90deg,
    rgba(255,255,255,0)  0%,
    rgba(251,250,246,.85) 50%,
    rgba(255,255,255,0)  100%);
  background-size: 240px 100%;
  background-repeat: no-repeat;
  animation: wa-shimmer 1.4s ease-in-out infinite;
  border-radius: 6px;
}
html[data-theme="dark"] .skeleton {
  background-color: #1F4540;
  background-image: linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.10) 50%,
    rgba(255,255,255,0) 100%);
}
html[data-theme="doodle"] .skeleton {
  background-color: #D7E7D6;
  background-image: linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,253,245,0.85) 50%,
    rgba(255,255,255,0) 100%);
}

/* avoid layout shift while header injects */
[data-site-header] { min-height: 64px; background: #FBFAF6; border-bottom: 1px solid #E5DFD0; }
[data-site-header]:not(:empty) { min-height: 0; border-bottom: 0; background: transparent; }

/* ─────────────────────────────────────────────────────────────
   THEMES — apply data-theme on <html>
   default = paper (warm cream).  bright = clean white.  dark = forest.
   ───────────────────────────────────────────────────────────── */

html { transition: background-color .25s ease, color .25s ease; }

/* ════════════════════════════════════════════════════════════
   BRIGHT
   ════════════════════════════════════════════════════════════ */
html[data-theme="bright"] body                       { background-color: #FFFFFF !important; }
html[data-theme="bright"] .bg-paper-50,
html[data-theme="bright"] .bg-paper-50\/40,
html[data-theme="bright"] .bg-paper-50\/60           { background-color: #F8F8F8 !important; }
html[data-theme="bright"] .bg-paper-0,
html[data-theme="bright"] .bg-paper-0\/95,
html[data-theme="bright"] .bg-paper-0\/40,
html[data-theme="bright"] .bg-white                  { background-color: #FFFFFF !important; }
html[data-theme="bright"] .bg-paper-100              { background-color: #F0F0F0 !important; }
html[data-theme="bright"] .bg-paper-200              { background-color: #E6E6E6 !important; }
html[data-theme="bright"] .border-paper-200,
html[data-theme="bright"] .border-paper-100          { border-color: #E6E6E6 !important; }
html[data-theme="bright"] .divide-paper-200 > * + *  { border-color: #E6E6E6 !important; }
html[data-theme="bright"] [data-site-header],
html[data-theme="bright"] header                     { background:#FFFFFF !important; border-color:#E6E6E6 !important; }
html[data-theme="bright"] .hairline-b                { box-shadow: inset 0 -1px 0 #E6E6E6; }
html[data-theme="bright"] .hairline                  { box-shadow: inset 0 0 0 1px #E6E6E6; }

/* ════════════════════════════════════════════════════════════
   DARK
   palette:
     #0B1F1C  page bg          #13312D  card bg
     #1F4540  tint / hover     #2D5A53  border / divider
     #FBFAF6  primary text     #D6CDB6  secondary
     #92A29E  muted text       #6B807C  faintest
   ════════════════════════════════════════════════════════════ */

/* ── BODY + DEFAULT TEXT ─────────────────────────────────── */
html[data-theme="dark"]                               { color-scheme: dark; }
html[data-theme="dark"] body                          { background-color:#0B1F1C !important; color:#F0EBE0 !important; }

/* ── BACKGROUNDS ─────────────────────────────────────────── */
html[data-theme="dark"] .bg-paper-50,
html[data-theme="dark"] .bg-paper-50\/40,
html[data-theme="dark"] .bg-paper-50\/50,
html[data-theme="dark"] .bg-paper-50\/60              { background-color:#0F2723 !important; }
/* Pagination/table-footer strip — lift it one shade brighter so the
 * "Showing 0 most recent · Prev / Next" row reads against the canvas.
 * Without this it sits at near-canvas contrast and the disabled buttons
 * (opacity-50 on muted text) are functionally invisible. */
html[data-theme="dark"] .border-t.bg-paper-50\/40,
html[data-theme="dark"] .border-t.bg-paper-50\/50,
html[data-theme="dark"] .border-t.bg-paper-50\/60     { background-color:#15302C !important; }
/* Pagination's disabled "Prev / Next" buttons use opacity-50 on top of
 * already-muted ink + faint border. Halve the opacity drop in dark so
 * the buttons remain readable as "this is here but disabled". */
html[data-theme="dark"] .opacity-50                   { opacity: 0.75; }
html[data-theme="dark"] .bg-paper-0,
html[data-theme="dark"] .bg-paper-0\/95,
html[data-theme="dark"] .bg-paper-0\/40,
html[data-theme="dark"] .bg-paper-0\/15,
html[data-theme="dark"] .bg-white                     { background-color:#13312D !important; }
html[data-theme="dark"] .bg-paper-100                 { background-color:#1F4540 !important; }
html[data-theme="dark"] .bg-paper-200,
html[data-theme="dark"] .bg-paper-300                 { background-color:#2D5A53 !important; }

/* hover bg-paper-50 / 100 over rows */
html[data-theme="dark"] .hover\:bg-paper-50:hover           { background-color:#1F4540 !important; }
html[data-theme="dark"] .hover\:bg-paper-100:hover          { background-color:#2D5A53 !important; }
/* Partial-alpha variants (paper-50/40 etc) — without these overrides
 * Tailwind keeps the light-mode value and the hovered surface lifts to
 * a near-white tone in dark mode, destroying contrast for the text
 * sitting on it (e.g. /admin/payment-gateways gateway-card head). */
html[data-theme="dark"] .hover\:bg-paper-50\/40:hover,
html[data-theme="dark"] .hover\:bg-paper-50\/50:hover,
html[data-theme="dark"] .hover\:bg-paper-50\/60:hover       { background-color:#1A3A35 !important; }

/* ── BORDERS / DIVIDERS ─────────────────────────────────── */
html[data-theme="dark"] .border-paper-100,
html[data-theme="dark"] .border-paper-200,
html[data-theme="dark"] .border-paper-300,
html[data-theme="dark"] .divide-paper-200 > * + *,
html[data-theme="dark"] .divide-paper-100 > * + *     { border-color:#2D5A53 !important; }

/* keep the green accent borders visible */
html[data-theme="dark"] .border-wa-deep               { border-color:#25D366 !important; }

/* ── TEXT ───────────────────────────────────────────────── */
html[data-theme="dark"] .text-ink-900                 { color:#FBFAF6 !important; }
html[data-theme="dark"] .text-ink-800                 { color:#F0EBE0 !important; }
html[data-theme="dark"] .text-ink-700                 { color:#E5DFD0 !important; }
html[data-theme="dark"] .text-ink-600                 { color:#C9D2CE !important; }
html[data-theme="dark"] .text-ink-500                 { color:#A8B7B2 !important; }
html[data-theme="dark"] .text-ink-400                 { color:#92A29E !important; }
html[data-theme="dark"] .text-wa-deep                 { color:#34D87A !important; }
html[data-theme="dark"] .text-wa-teal                 { color:#3BD4C7 !important; }

/* placeholders */
html[data-theme="dark"] ::placeholder                 { color:#92A29E !important; opacity:1; }

/* ── HEADER ─────────────────────────────────────────────── */
html[data-theme="dark"] header,
html[data-theme="dark"] [data-site-header]            { background:#13312D !important; border-color:#2D5A53 !important; }
html[data-theme="dark"] .hairline-b                   { box-shadow: inset 0 -1px 0 #2D5A53; }
html[data-theme="dark"] .hairline                     { box-shadow: inset 0 0 0 1px #2D5A53; }

/* ── INPUTS / SELECTS / TEXTAREAS ───────────────────────── */
html[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
html[data-theme="dark"] textarea,
html[data-theme="dark"] select                        { background-color:#1F4540 !important; color:#F0EBE0 !important; border-color:#2D5A53 !important; }
html[data-theme="dark"] input:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] select:focus                  { border-color:#25D366 !important; }

/* ── BUTTONS ────────────────────────────────────────────── */
html[data-theme="dark"] button.bg-paper-0,
html[data-theme="dark"] a.bg-paper-0                  { background-color:#1F4540 !important; color:#F0EBE0 !important; }

/* keep brand-deep buttons visually consistent */
html[data-theme="dark"] .bg-wa-deep                   { background-color:#0F8556 !important; }
html[data-theme="dark"] .hover\:bg-wa-teal:hover      { background-color:#15A074 !important; }
html[data-theme="dark"] .hover\:bg-wa-deep:hover      { background-color:#0F8556 !important; }

/* ── ACCENT SURFACES ────────────────────────────────────── */
/* Selected/active button surfaces.
 *
 * Previously these set color:#34D87A on a 0.18-alpha green bg — light green
 * text on light green became completely unreadable (the "Female", "Existing
 * user", "No plan / Free" pills in dark mode all disappeared on click).
 *
 * Fix: keep the green bg as the selected affordance, but force readable
 * paper-tone text inside. The .text-wa-deep override below ensures any
 * nested text-wa-deep also flips to the readable tone instead of staying
 * light green.
 */
html[data-theme="dark"] .bg-wa-mint                   { background-color: rgba(37,211,102,0.28) !important; color:#FBFAF6 !important; }
html[data-theme="dark"] .bg-wa-bubble,
html[data-theme="dark"] .bg-wa-bubble\/40,
html[data-theme="dark"] .bg-wa-bubble\/50,
html[data-theme="dark"] .bg-wa-bubble\/60             { background-color: rgba(37,211,102,0.18) !important; color:#FBFAF6 !important; }
html[data-theme="dark"] .bg-wa-mint\/30,
html[data-theme="dark"] .bg-wa-mint\/40               { background-color: rgba(37,211,102,0.20) !important; color:#FBFAF6 !important; }

/* Inside a selected pill / card, ANY text node should flip to readable
 * paper tone — without this, child .text-wa-deep / .text-ink-* shows
 * the original light-green / muted color and stays invisible on the
 * selected bg. */
html[data-theme="dark"] .bg-wa-mint .text-wa-deep,
html[data-theme="dark"] .bg-wa-bubble .text-wa-deep,
html[data-theme="dark"] .bg-wa-mint\/30 .text-wa-deep,
html[data-theme="dark"] .bg-wa-mint\/40 .text-wa-deep { color:#FBFAF6 !important; }

/* Tailwind's `has-[:checked]:bg-wa-bubble` variant — used on the
 * "Existing user" / "No plan / Free" radio cards on /admin/workspaces/create
 * and many other admin pages — compiles to a DIFFERENT CSS class than
 * plain .bg-wa-bubble, so the override above doesn't match. Mirror
 * the same readable-text rule onto the variant selector. */
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-bubble:has(:checked),
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-mint:has(:checked) {
    background-color: rgba(37,211,102,0.28) !important;
    color:#FBFAF6 !important;
}
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-bubble:has(:checked) *,
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-mint:has(:checked) *,
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-bubble:has(:checked) .text-wa-deep,
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-mint:has(:checked) .text-wa-deep,
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-bubble:has(:checked) .text-ink-500,
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-bubble:has(:checked) .text-ink-700,
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-mint:has(:checked) .text-ink-500,
html[data-theme="dark"] .has-\[\:checked\]\:bg-wa-mint:has(:checked) .text-ink-700 {
    color:#FBFAF6 !important;
}
/* Same fix for any peer-checked variant (radios that toggle a sibling) */
html[data-theme="dark"] .peer-checked\:bg-wa-bubble,
html[data-theme="dark"] .peer-checked\:bg-wa-mint {
    background-color: rgba(37,211,102,0.28) !important;
    color:#FBFAF6 !important;
}
html[data-theme="dark"] .border-wa-green\/30,
html[data-theme="dark"] .border-wa-green\/40          { border-color: rgba(37,211,102,0.40) !important; }
html[data-theme="dark"] .text-wa-deep.font-semibold,
html[data-theme="dark"] .text-wa-deep.font-bold       { color:#34D87A !important; }

/* tinted brand surfaces (blue / amber / coral / purple) */
html[data-theme="dark"] .bg-\[\#D9E5F2\]              { background-color: rgba(91,160,242,0.15) !important; }
html[data-theme="dark"] .bg-\[\#E0EBF7\]              { background-color: rgba(91,160,242,0.18) !important; }
html[data-theme="dark"] .bg-\[\#FFF4E0\]              { background-color: rgba(229,160,78,0.18) !important; }
html[data-theme="dark"] .bg-\[\#FFF6E0\]              { background-color: rgba(229,160,78,0.18) !important; }
html[data-theme="dark"] .bg-\[\#F3E9FF\]              { background-color: rgba(123,87,199,0.20) !important; }
html[data-theme="dark"] .bg-\[\#FBE9E7\]              { background-color: rgba(232,122,93,0.20) !important; }
html[data-theme="dark"] .bg-\[\#E8F5E9\]              { background-color: rgba(37,211,102,0.18) !important; }
html[data-theme="dark"] .bg-\[\#F1F9EC\]              { background-color: rgba(37,211,102,0.15) !important; }
html[data-theme="dark"] .bg-\[\#F3ECFA\]              { background-color: rgba(127,84,179,0.22) !important; }
html[data-theme="dark"] .bg-\[\#E0F4F1\]              { background-color: rgba(46,201,192,0.18) !important; }
html[data-theme="dark"] .bg-\[\#F0F8F6\]              { background-color: rgba(37,211,102,0.10) !important; }
html[data-theme="dark"] .bg-\[\#E7FFDB\]              { background-color: rgba(37,211,102,0.18) !important; }
html[data-theme="dark"] .bg-\[\#DFF1ED\]              { background-color: rgba(7,94,84,0.30) !important; }
html[data-theme="dark"] .bg-\[\#F0EBFB\]              { background-color: rgba(123,87,199,0.20) !important; }

/* coral / amber accents stay legible */
html[data-theme="dark"] .text-accent-coral            { color:#FF8E70 !important; }
html[data-theme="dark"] .text-accent-amber            { color:#FFC07A !important; }
html[data-theme="dark"] .text-\[\#7B5A14\],
html[data-theme="dark"] .text-\[\#8B5A14\],
html[data-theme="dark"] .text-\[\#8B5A1F\]            { color:#FFC07A !important; }
html[data-theme="dark"] .text-\[\#A1431F\],
html[data-theme="dark"] .text-\[\#A1731F\]            { color:#FF8E70 !important; }
html[data-theme="dark"] .text-\[\#13478A\]            { color:#7BB8FF !important; }
html[data-theme="dark"] .text-\[\#5B3D8A\]            { color:#B49AED !important; }
html[data-theme="dark"] .text-\[\#5E8E3E\]            { color:#7BD66F !important; }

/* ── KBD / CODE / MISC ──────────────────────────────────── */
html[data-theme="dark"] kbd                           { background:#1F4540 !important; color:#D6CDB6 !important; border-color:#2D5A53 !important; }
html[data-theme="dark"] code                          { background:#1F4540 !important; color:#F0EBE0 !important; }

/* shadows pop more on dark */
html[data-theme="dark"] .shadow-card                  { box-shadow: 0 1px 0 rgba(0,0,0,0.20), 0 1px 2px rgba(0,0,0,0.18) !important; }
html[data-theme="dark"] .shadow-soft                  { box-shadow: 0 12px 28px -10px rgba(0,0,0,0.50) !important; }

/* scrollbar */
html[data-theme="dark"] ::-webkit-scrollbar-thumb     { background: rgba(255,255,255,0.20) !important; }
html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{ background: rgba(255,255,255,0.32) !important; }

/* selected row / row hover for tables */
html[data-theme="dark"] tr.hover\:bg-paper-50\/60:hover,
html[data-theme="dark"] tr:hover                      { background-color:#173631 !important; }

/* avatar gradients keep their punch — no override needed */

/* search modal blurred backdrop */
html[data-theme="dark"] #wa-search-modal              { background: rgba(0,0,0,0.55) !important; }

/* card-style strong borders for danger */
html[data-theme="dark"] .border-accent-coral\/40,
html[data-theme="dark"] .border-accent-coral\/30      { border-color: rgba(232,122,93,0.55) !important; }

/* ─────────────────────────────────────────────────────────
   THEME PICKER POPOVER
   ───────────────────────────────────────────────────────── */
.theme-menu        { position:absolute; top:calc(100% + 6px); right:0; min-width:200px; background:#FBFAF6; border:1px solid #E5DFD0; border-radius:10px; box-shadow:0 8px 24px -10px rgba(11,31,28,0.18); padding:4px; z-index:60; }
.theme-menu button { width:100%; text-align:left; padding:7px 10px; border-radius:8px; font-size:12px; display:flex; align-items:center; gap:8px; color:#3A5A55; }
.theme-menu button:hover  { background:#F5F3EC; }
.theme-menu button.active { background:#075E54; color:#FBFAF6; }
.theme-menu .swatch { width:14px; height:14px; border-radius:4px; border:1px solid #E5DFD0; flex-shrink:0; }

html[data-theme="dark"] .theme-menu        { background:#13312D !important; border-color:#2D5A53 !important; }
html[data-theme="dark"] .theme-menu button { color:#E5DFD0 !important; }
html[data-theme="dark"] .theme-menu button:hover { background:#1F4540 !important; }
html[data-theme="dark"] .theme-menu button.active { background:#0F8556 !important; }
html[data-theme="dark"] .theme-menu .swatch { border-color:#2D5A53 !important; }
html[data-theme="bright"] .theme-menu      { background:#FFFFFF !important; border-color:#E6E6E6 !important; }

/* ─────────────────────────────────────────────────────────
   PROFILE DROPDOWN + SEARCH MODAL THEME-AWARE
   ───────────────────────────────────────────────────────── */
html[data-theme="dark"] #wa-profile-menu              { background:#13312D !important; border-color:#2D5A53 !important; }
html[data-theme="dark"] #wa-profile-menu a:hover      { background:#1F4540 !important; }

/* universal smooth transitions */
body, header,
[class*="bg-paper"], [class*="bg-white"], [class*="text-ink"],
[class*="border-paper"], input, textarea, select        { transition: background-color .18s ease, color .18s ease, border-color .18s ease; }

/* ─────────────────────────────────────────────────────────
   PER-PAGE CUSTOM CLASSES — dark overrides
   These classes are defined in individual page <style> blocks
   and hard-code light-theme colors. We override them here so
   the dark switcher actually changes everything.
   ───────────────────────────────────────────────────────── */

/* tab classes used by account / settings / team-inbox / shopify-dashboard / woocommerce-dashboard */
html[data-theme="dark"] .acc-tab,
html[data-theme="dark"] .set-tab,
html[data-theme="dark"] .ti-tab,
html[data-theme="dark"] .ig-tab,
html[data-theme="dark"] .side-tab,
html[data-theme="dark"] .filter-pill,
html[data-theme="dark"] .cat-tab,
html[data-theme="dark"] .tab-line,
html[data-theme="dark"] .pal-card,
html[data-theme="dark"] .team-nav-btn,
html[data-theme="dark"] .op-item .op-label                { color:#E5DFD0 !important; }
html[data-theme="dark"] .acc-tab:hover,
html[data-theme="dark"] .set-tab:hover,
html[data-theme="dark"] .ti-tab:hover,
html[data-theme="dark"] .ig-tab:hover,
html[data-theme="dark"] .side-tab:hover,
html[data-theme="dark"] .pal-card:hover,
html[data-theme="dark"] .team-nav-btn:hover,
html[data-theme="dark"] .op-item:hover                    { background:#1F4540 !important; }
html[data-theme="dark"] .acc-tab.active,
html[data-theme="dark"] .set-tab.active,
html[data-theme="dark"] .ti-tab.active,
html[data-theme="dark"] .ig-tab.active,
html[data-theme="dark"] .side-tab.active,
html[data-theme="dark"] .filter-pill.active,
html[data-theme="dark"] .team-nav-btn.active,
html[data-theme="dark"] .tab-line.active                  { background:#0F8556 !important; color:#FBFAF6 !important; }

/* danger states (Delete account etc.) */
html[data-theme="dark"] .acc-tab.danger                   { color:#FF8E70 !important; }
html[data-theme="dark"] .acc-tab.danger:hover             { background: rgba(232,122,93,0.18) !important; }
html[data-theme="dark"] .acc-tab.danger.active            { background:#C56B4F !important; color:#FBFAF6 !important; }

/* badges inside tabs */
html[data-theme="dark"] .ti-tab .badge,
html[data-theme="dark"] .team-nav-btn .ct                 { background:#2D5A53 !important; color:#E5DFD0 !important; }
html[data-theme="dark"] .ti-tab.active .badge,
html[data-theme="dark"] .team-nav-btn.active .ct          { background:rgba(255,255,255,0.18) !important; color:#fff !important; }

/* WhatsApp-style chat bubbles (chat.html, team-inbox.html, flow-builder.html) */
html[data-theme="dark"] .bubble,
html[data-theme="dark"] .bubble-in                        { background:#1F4540 !important; border-color:#2D5A53 !important; color:#F0EBE0 !important; }
html[data-theme="dark"] .bubble.wa,
html[data-theme="dark"] .bubble-out                       { background: rgba(37,211,102,0.20) !important; border-color: rgba(37,211,102,0.45) !important; color:#F0EBE0 !important; }
html[data-theme="dark"] .bubble-note                      { background: rgba(229,160,78,0.20) !important; border-color: rgba(229,160,78,0.45) !important; color:#FFE4B5 !important; }
html[data-theme="dark"] .bubble-note .text-\[\#7B5A14\]   { color:#FFD89B !important; }

/* chat-paper background (the dotted WhatsApp surface) — dim it for dark mode */
html[data-theme="dark"] .chat-paper                       { background-color:#0F2723 !important; background-image: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px), radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px) !important; }

/* dashboard live-inbox surface (uses bg-wa-chat utility instead of .chat-paper) */
html[data-theme="dark"] .bg-wa-chat                       { background-color:#0F2723 !important; }
html[data-theme="dark"] .chat-grid                        { color:#F0EBE0 !important; }
/* explicit text color inside bubbles so it can't fall back to body  */
html[data-theme="dark"] .chat-grid .bg-paper-0,
html[data-theme="dark"] .chat-grid .bg-wa-bubble          { color:#F0EBE0 !important; }
html[data-theme="dark"] .chat-grid .bg-wa-bubble          { background-color: rgba(37,211,102,0.20) !important; border:1px solid rgba(37,211,102,0.40); }
html[data-theme="dark"] .chat-grid .bg-paper-0            { background-color:#1F4540 !important; border:1px solid #2D5A53; }

/* generic dropdown menus (.menu used by team-inbox Assign / theme picker / search) */
html[data-theme="dark"] .menu                             { background:#13312D !important; border-color:#2D5A53 !important; box-shadow: 0 8px 24px -10px rgba(0,0,0,0.55) !important; }
html[data-theme="dark"] .menu button                      { color:#E5DFD0 !important; }
html[data-theme="dark"] .menu button:hover                { background:#1F4540 !important; }
html[data-theme="dark"] .menu .text-ink-500               { color:#A8B7B2 !important; }
html[data-theme="dark"] .menu .border-paper-200           { border-color:#2D5A53 !important; }

/* search results modal entries */
html[data-theme="dark"] #wa-search-modal > div            { background:#13312D !important; border-color:#2D5A53 !important; }
html[data-theme="dark"] #wa-search-modal a               { color:#E5DFD0 !important; }
html[data-theme="dark"] #wa-search-modal a:hover,
html[data-theme="dark"] #wa-search-modal a.bg-paper-50   { background:#1F4540 !important; }
html[data-theme="dark"] #wa-search-input                  { color:#F0EBE0 !important; }

/* edge popup (canvas delete / etc.) */
html[data-theme="dark"] .edge-popup                       { background:#13312D !important; border-color:#2D5A53 !important; color:#E5DFD0 !important; }
html[data-theme="dark"] .edge-popup::after                { background:#13312D !important; border-color:#2D5A53 !important; }

/* edge-popup arrow tail */
html[data-theme="dark"] .menu::after                      { background:#13312D !important; border-color:#2D5A53 !important; }

/* canvas-dots (flow-builder canvas) */
html[data-theme="dark"] .canvas-dots                      { background-color:#0F2723 !important; background-image: radial-gradient(circle, rgba(255,255,255,0.08) 1px, transparent 1px) !important; }

/* node cards in flow-builder */
html[data-theme="dark"] .node-card                        { background:#13312D !important; border-color:#2D5A53 !important; color:#F0EBE0 !important; }
html[data-theme="dark"] .node-card .border-paper-100,
html[data-theme="dark"] .node-card .border-paper-200      { border-color:#2D5A53 !important; }
html[data-theme="dark"] .node-row:hover                   { background:#1F4540 !important; }
html[data-theme="dark"] .port                             { background:#1F4540 !important; }

/* edge stroke / preview */
html[data-theme="dark"] .edge-path                        { stroke:#6B807C !important; }
html[data-theme="dark"] .edge-path.hover,
html[data-theme="dark"] .edge-path:hover                  { stroke:#34D87A !important; }

/* GREEN-ON-GREEN fix:
   when text-wa-deep sits inside a green-tinted surface, swap to a
   brighter mint so it stays high contrast. */
html[data-theme="dark"] .bg-wa-mint .text-wa-deep,
html[data-theme="dark"] .bg-wa-mint\/30 .text-wa-deep,
html[data-theme="dark"] .bg-wa-mint\/40 .text-wa-deep,
html[data-theme="dark"] .bg-wa-bubble .text-wa-deep,
html[data-theme="dark"] .bg-wa-bubble\/40 .text-wa-deep,
html[data-theme="dark"] .bg-wa-bubble\/50 .text-wa-deep,
html[data-theme="dark"] .bg-\[\#E8F5E9\] .text-wa-deep,
html[data-theme="dark"] .bg-\[\#F1F9EC\] .text-wa-deep,
html[data-theme="dark"] .bg-\[\#E7FFDB\] .text-wa-deep,
html[data-theme="dark"] .bg-\[\#DFF1ED\] .text-wa-deep    { color:#7BFFB1 !important; }

/* Active campaign-type / option card titles — anything wrapped by a wa-deep border */
html[data-theme="dark"] .border-wa-deep .text-wa-deep,
html[data-theme="dark"] .border-2.border-wa-deep .text-wa-deep   { color:#7BFFB1 !important; }
html[data-theme="dark"] .border-wa-deep                         { border-color:#34D87A !important; }

/* Italic accent typography (e.g. "filters", "bulk send", "campaigns") used as section labels */
html[data-theme="dark"] .font-serif.italic.text-wa-deep,
html[data-theme="dark"] em.text-wa-deep,
html[data-theme="dark"] span.italic.text-wa-deep                { color:#5BFFA8 !important; }

/* Keep avatars on dark theme — gradient backgrounds remain */
/* (no override needed, but ensure ring-2 ring-paper-0 reads as dark border) */
html[data-theme="dark"] .ring-paper-0                            { --tw-ring-color: #13312D !important; }

/* Status pills (.pill-open, .pill-pending, etc. used in team-inbox) */
html[data-theme="dark"] .pill                                    { font-weight: 600; }
html[data-theme="dark"] .pill-open                               { background: rgba(37,211,102,0.20) !important; color:#7BFFB1 !important; border-color: rgba(37,211,102,0.45) !important; }
html[data-theme="dark"] .pill-pending                            { background: rgba(229,160,78,0.20) !important; color:#FFD89B !important; border-color: rgba(229,160,78,0.45) !important; }
html[data-theme="dark"] .pill-resolved                           { background: rgba(91,160,242,0.20) !important; color:#9FCBFF !important; border-color: rgba(91,160,242,0.45) !important; }
html[data-theme="dark"] .pill-snoozed                            { background: rgba(123,87,199,0.20) !important; color:#C4AEFF !important; border-color: rgba(123,87,199,0.45) !important; }
html[data-theme="dark"] .pill-urgent                             { background: rgba(232,122,93,0.20) !important; color:#FFB39C !important; border-color: rgba(232,122,93,0.45) !important; }

/* Sidebar item dots in chat.html / contacts.html */
html[data-theme="dark"] .group-dot,
html[data-theme="dark"] .filter-pill .group-dot                  { box-shadow: 0 0 0 1.5px #13312D; }

/* outline buttons and pills — paper-0 with paper-200 border become dark-on-dark */
html[data-theme="dark"] button.bg-paper-0.border-paper-200,
html[data-theme="dark"] a.bg-paper-0.border-paper-200,
html[data-theme="dark"] .bg-paper-0.border-paper-200             { background:#1F4540 !important; border-color:#2D5A53 !important; color:#E5DFD0 !important; }

/* Inputs with bg-white explicit */
html[data-theme="dark"] input.bg-white,
html[data-theme="dark"] textarea.bg-white,
html[data-theme="dark"] select.bg-white                          { background-color:#1F4540 !important; }

/* metric / stat card hover */
html[data-theme="dark"] .hover\:border-wa-deep:hover             { border-color:#25D366 !important; }
html[data-theme="dark"] .hover\:shadow-soft:hover                { box-shadow: 0 12px 28px -10px rgba(0,0,0,0.55) !important; }

/* Templates / pricing accents */
html[data-theme="dark"] .text-wa-deep.font-medium                { color:#34D87A !important; }
html[data-theme="dark"] a.text-wa-deep,
html[data-theme="dark"] a.text-wa-deep:hover                     { color:#5BFFA8 !important; }

/* Auto-reply / pricing card — bg-wa-mint with check icons inside */
html[data-theme="dark"] .text-wa-green                           { color:#5BFFA8 !important; }

/* Code block snippets in connect.html and webhook pages */
html[data-theme="dark"] code,
html[data-theme="dark"] pre                                      { background:#1F4540 !important; color:#F0EBE0 !important; border-color:#2D5A53 !important; }

/* Settings appearance preview cards (bright/dark/paper miniatures) */
html[data-theme="dark"] .peer:checked + div                      { border-color:#34D87A !important; background: rgba(37,211,102,0.10) !important; }

/* Modal overlays */
html[data-theme="dark"] .fixed[style*="rgba(11,31,28"],
html[data-theme="dark"] .fixed[style*="rgba(0,0,0"]              { background: rgba(0,0,0,0.65) !important; }

/* Toggle states — make the ON state visibly lit. Default WA green
 * (#0F8556) on a dark canvas reads as "off-ish dark teal"; bump to a
 * brighter green AND add a small inner glow so it's obviously "on". */
html[data-theme="dark"] .toggle .track                           { background:#2D5A53 !important; }
html[data-theme="dark"] .toggle .thumb                           { background:#F0EBE0 !important; }
html[data-theme="dark"] .toggle input:checked ~ .track           {
    background:#25D366 !important;
    box-shadow: 0 0 0 1px rgba(37,211,102,0.4), 0 0 8px rgba(37,211,102,0.45);
}
html[data-theme="dark"] .toggle input:checked ~ .thumb           {
    background:#FFFFFF !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.4);
}
/* Light themes: bump the on-state too so paper/bright also "shine" */
.toggle input:checked ~ .track {
    box-shadow: 0 0 0 1px rgba(7,94,84,0.25), 0 0 6px rgba(7,94,84,0.18);
}

/* Heatmap (ApexCharts) cells under dark mode — override the baked-in light fills via SVG attribute selector */
html[data-theme="dark"] #chart-heatmap rect[fill="#F5F3EC"]      { fill:#13312D !important; }
html[data-theme="dark"] #chart-heatmap rect[fill="#CFE3DA"]      { fill:#1F4540 !important; }
html[data-theme="dark"] #chart-heatmap rect[fill="#9DC9B6"]      { fill:#0F8556 !important; }
html[data-theme="dark"] #chart-heatmap rect[fill="#3FA37A"]      { fill:#15A074 !important; }
html[data-theme="dark"] #chart-heatmap rect[fill="#075E54"]      { fill:#25D366 !important; }
html[data-theme="dark"] .apexcharts-canvas text                  { fill:#C9D2CE !important; }
html[data-theme="dark"] .apexcharts-canvas .apexcharts-gridline  { stroke:#2D5A53 !important; }
html[data-theme="dark"] .apexcharts-canvas .apexcharts-xaxis line,
html[data-theme="dark"] .apexcharts-canvas .apexcharts-yaxis line { stroke:#2D5A53 !important; }
html[data-theme="dark"] .apexcharts-tooltip                      { background:#13312D !important; border-color:#2D5A53 !important; color:#F0EBE0 !important; }
html[data-theme="dark"] .apexcharts-tooltip-title                { background:#1F4540 !important; border-color:#2D5A53 !important; }
html[data-theme="dark"] .apexcharts-legend-text                  { color:#C9D2CE !important; }

/* Italic accent label fix — now also covers when the order is text-wa-deep before italic */
html[data-theme="dark"] [class*="italic"][class*="text-wa-deep"] { color:#5BFFA8 !important; }

/* Global active-tab rounding — pages other than templates / flow use various ad-hoc tab classes
   that render as "long square" actives. Force a consistent rounded look. The .tab-line class
   used by templates and flow stays as underline; everything else picks up the rounded pill. */
.cat-tab.active,
.filter-pill.active,
.acc-tab.active,
.set-tab.active,
.ti-tab.active,
.ig-tab.active,
.side-tab.active,
.team-nav-btn.active,
.pill-tab.active,
.seg-tab.active,
.queue-tab.active,
.fp-tab.active                                                   { border-radius: 999px !important; }

/* Sidebar filter buttons that go full-pill when pressed (chat.html / contacts.html / scheduled.html etc.) */
.filter-btn[aria-pressed="true"],
.filter-btn.active,
.chat-filter[aria-pressed="true"],
.queue-filter[aria-pressed="true"]                               { border-radius: 999px !important; }

/* Also normalize the inactive shape so the click feels consistent */
.filter-btn,
.chat-filter,
.queue-filter                                                    { border-radius: 999px !important; }

/* When count badges sit inside an active tab, keep them perfectly round too */
.cat-tab .count,
.filter-pill .count,
.tab-line .count,
.ti-tab .badge,
.team-nav-btn .ct                                                { border-radius: 999px !important; }

/* ════════════════════════════════════════════════════════════
   DOODLE — hand-drawn fancy theme
   Strict color palette from src/site.css:
     --ink: #15281F  (only one ink, used for ALL borders + body text)
     --mint: #E8F5E9 / --mint-deep: #C8E8CB
     --cream: #FFF6E0
     --paper: #FFFDF5
     --wa: #25D366 / --wa-deep: #128C4B
     --sun: #FFC94A / --coral: #FF7A6B / --lav: #C9B8FF / --lav-deep: #7B61FF
   Contrast principle (from React code):
     • body text: solid var(--ink), no opacity dilution
     • muted text: rgba(21,40,31, 0.7) for secondary, 0.55 for tertiary
     • cards: white/paper bg + 2px solid ink + 4–6px hard ink offset shadow
     • primary CTA (pill-dark): ink BG + WHITE text + ink border + soft offset
     • outline button (pill-light): white BG + ink TEXT + ink border
     • inactive pill-tab: transparent + ink/0.7 text + ink/0.25 border
     • active pill-tab: mint BG + ink TEXT + ink border + 2px offset shadow
   ════════════════════════════════════════════════════════════ */

/* doodle font import moved to app.css */

html[data-theme="doodle"]{
  --d-ink:       #15281F;
  --d-ink-72:    rgba(21,40,31,0.72);
  --d-ink-55:    rgba(21,40,31,0.55);
  --d-ink-25:    rgba(21,40,31,0.25);
  --d-ink-15:    rgba(21,40,31,0.15);
  --d-ink-10:    rgba(21,40,31,0.10);
  --d-mint:      #E8F5E9;
  --d-mint-deep: #C8E8CB;
  --d-cream:     #FFF6E0;
  --d-paper:     #FFFDF5;
  --d-wa:        #25D366;
  --d-wa-deep:   #128C4B;
  --d-sun:       #FFC94A;
  --d-coral:     #FF7A6B;
  --d-lav:       #C9B8FF;
  --d-lav-deep:  #7B61FF;
  color-scheme: light;
}

html[data-theme="doodle"] body{
  background:
    radial-gradient(1200px 700px at 90% -10%, #FFF6E0 0%, transparent 55%),
    radial-gradient(900px 600px at -10% 30%, #D9F1DB 0%, transparent 60%),
    linear-gradient(180deg, #E8F5E9 0%, #F3F8E8 40%, #FFF6E0 100%) !important;
  background-attachment: fixed;
  color: var(--d-ink) !important;
}

/* ── BACKGROUNDS ─────────────────────────────────────────── */
html[data-theme="doodle"] .bg-paper-50,
html[data-theme="doodle"] .bg-paper-50\/40,
html[data-theme="doodle"] .bg-paper-50\/60                       { background-color: #F2F8EC !important; }
html[data-theme="doodle"] .bg-paper-0,
html[data-theme="doodle"] .bg-paper-0\/95,
html[data-theme="doodle"] .bg-paper-0\/40,
html[data-theme="doodle"] .bg-paper-0\/15,
html[data-theme="doodle"] .bg-white                              { background-color: var(--d-paper) !important; }
html[data-theme="doodle"] .bg-paper-100                          { background-color: var(--d-mint) !important; }
html[data-theme="doodle"] .bg-paper-200                          { background-color: var(--d-mint-deep) !important; }

/* ── BORDERS — light ink at 0.18 opacity (matches React) ── */
html[data-theme="doodle"] .border-paper-100,
html[data-theme="doodle"] .border-paper-200,
html[data-theme="doodle"] .border-paper-300,
html[data-theme="doodle"] .divide-paper-200 > * + *,
html[data-theme="doodle"] .divide-paper-100 > * + *              { border-color: var(--d-ink-25) !important; }
html[data-theme="doodle"] .border-wa-deep                        { border-color: var(--d-ink) !important; }

/* ── HEADER ─────────────────────────────────────────────── */
html[data-theme="doodle"] header,
html[data-theme="doodle"] [data-site-header]{
  background: rgba(255,253,245,0.92) !important;
  backdrop-filter: blur(10px);
  border-bottom: 2px solid var(--d-ink-10) !important;
}

/* ── TYPOGRAPHY ─────────────────────────────────────────── */
html[data-theme="doodle"] body,
html[data-theme="doodle"] .font-sans                             { font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important; }
html[data-theme="doodle"] .font-serif,
html[data-theme="doodle"] .serif,
html[data-theme="doodle"] h1, html[data-theme="doodle"] h2, html[data-theme="doodle"] h3{
  font-family: 'Bricolage Grotesque', system-ui, sans-serif !important;
  letter-spacing: -0.025em !important;
  font-style: normal !important;
}
/* italic accents → Caveat hand-drawn cursive (only when class explicitly says italic) */
html[data-theme="doodle"] em,
html[data-theme="doodle"] .italic{
  font-family: 'Caveat', cursive !important;
  font-style: normal !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

/* ── TEXT COLORS — solid ink for primary, opacity for muted */
html[data-theme="doodle"] .text-ink-900,
html[data-theme="doodle"] .text-ink-800,
html[data-theme="doodle"] .text-ink-700                          { color: var(--d-ink) !important; }
html[data-theme="doodle"] .text-ink-600                          { color: var(--d-ink-72) !important; }
html[data-theme="doodle"] .text-ink-500                          { color: var(--d-ink-55) !important; }
html[data-theme="doodle"] .text-ink-400                          { color: rgba(21,40,31,0.40) !important; }
html[data-theme="doodle"] .text-wa-deep                          { color: var(--d-wa-deep) !important; }
html[data-theme="doodle"] .text-wa-teal                          { color: #128C7E !important; }
html[data-theme="doodle"] .text-paper-0                          { color: #FFFDF5 !important; }

/* ── PRIMARY CTA (.bg-wa-deep) — pill-dark style ──────────
   ink BG, white text, thick ink border, hard offset shadow. */
html[data-theme="doodle"] button.bg-wa-deep,
html[data-theme="doodle"] a.bg-wa-deep,
html[data-theme="doodle"] .bg-wa-deep{
  background: var(--d-ink) !important;
  color: #FFFFFF !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 3px 3px 0 0 var(--d-ink-15) !important;
}
html[data-theme="doodle"] button.bg-wa-deep:hover,
html[data-theme="doodle"] a.bg-wa-deep:hover,
html[data-theme="doodle"] .bg-wa-deep:hover{
  background: var(--d-ink) !important;
  color: #FFFFFF !important;
  transform: translate(-1px,-1px);
  box-shadow: 5px 5px 0 0 var(--d-ink-25) !important;
}
/* primary CTA inner SVG / icon stays white */
html[data-theme="doodle"] .bg-wa-deep svg                        { color: #FFFFFF !important; stroke: #FFFFFF !important; }
/* ensure secondary text classes inside primary CTA flip too */
html[data-theme="doodle"] .bg-wa-deep .text-paper-0,
html[data-theme="doodle"] .bg-wa-deep span,
html[data-theme="doodle"] .bg-wa-deep .text-ink-900,
html[data-theme="doodle"] .bg-wa-deep .text-ink-700              { color: #FFFFFF !important; }

/* hover-bg-wa-teal on a wa-deep button — keep dark style on hover */
html[data-theme="doodle"] .hover\:bg-wa-teal:hover               { background: var(--d-ink) !important; }

/* ── SECONDARY CTA (.bg-paper-0 + border-paper-200 pills) ─
   white BG, ink text, ink border, soft offset shadow. */
html[data-theme="doodle"] button.bg-paper-0,
html[data-theme="doodle"] a.bg-paper-0,
html[data-theme="doodle"] button.bg-paper-0.border-paper-200,
html[data-theme="doodle"] a.bg-paper-0.border-paper-200,
html[data-theme="doodle"] .bg-paper-0.border-paper-200{
  background: #FFFFFF !important;
  color: var(--d-ink) !important;
  border: 2px solid var(--d-ink-25) !important;
  font-weight: 600 !important;
}
html[data-theme="doodle"] button.bg-paper-0:hover,
html[data-theme="doodle"] a.bg-paper-0:hover,
html[data-theme="doodle"] .bg-paper-0:hover                      { border-color: var(--d-ink) !important; background: #FFFFFF !important; }

/* ── ACCENT SURFACES ────────────────────────────────────── */
html[data-theme="doodle"] .bg-wa-mint,
html[data-theme="doodle"] .bg-wa-mint\/30,
html[data-theme="doodle"] .bg-wa-mint\/40                        { background-color: var(--d-mint) !important; color: var(--d-ink) !important; }
html[data-theme="doodle"] .bg-wa-bubble,
html[data-theme="doodle"] .bg-wa-bubble\/40,
html[data-theme="doodle"] .bg-wa-bubble\/50,
html[data-theme="doodle"] .bg-wa-bubble\/60                      { background-color: #DCFCE7 !important; color: var(--d-ink) !important; }
html[data-theme="doodle"] .bg-wa-chat                            { background-color: #F2F8EC !important; }
html[data-theme="doodle"] .text-wa-green                         { color: var(--d-wa-deep) !important; }

/* tinted brand surfaces in light doodle palette */
html[data-theme="doodle"] .bg-\[\#FFF4E0\],
html[data-theme="doodle"] .bg-\[\#FFF6E0\]                       { background-color: var(--d-cream) !important; }
html[data-theme="doodle"] .bg-\[\#F3E9FF\],
html[data-theme="doodle"] .bg-\[\#F3ECFA\],
html[data-theme="doodle"] .bg-\[\#F0EBFB\]                       { background-color: #F3E9FF !important; }
html[data-theme="doodle"] .bg-\[\#FBE9E7\]                       { background-color: #FFE3DE !important; }
html[data-theme="doodle"] .bg-\[\#D9E5F2\],
html[data-theme="doodle"] .bg-\[\#E0EBF7\]                       { background-color: #DEEAFA !important; }
html[data-theme="doodle"] .bg-\[\#E8F5E9\],
html[data-theme="doodle"] .bg-\[\#F1F9EC\],
html[data-theme="doodle"] .bg-\[\#E7FFDB\]                       { background-color: var(--d-mint) !important; }

/* ── INPUTS ─────────────────────────────────────────────── */
html[data-theme="doodle"] input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
html[data-theme="doodle"] textarea,
html[data-theme="doodle"] select{
  background: #FFFFFF !important;
  color: var(--d-ink) !important;
  border: 2px solid var(--d-ink-25) !important;
}
html[data-theme="doodle"] input:focus,
html[data-theme="doodle"] textarea:focus,
html[data-theme="doodle"] select:focus                           { border-color: var(--d-ink) !important; outline: none; }
html[data-theme="doodle"] ::placeholder                          { color: var(--d-ink-55) !important; opacity: 1; }

/* ── ACTIVE TAB / NAV ITEMS — mint pill + ink border ────── */
html[data-theme="doodle"] .acc-tab.active,
html[data-theme="doodle"] .set-tab.active,
html[data-theme="doodle"] .ti-tab.active,
html[data-theme="doodle"] .ig-tab.active,
html[data-theme="doodle"] .side-tab.active,
html[data-theme="doodle"] .filter-pill.active,
html[data-theme="doodle"] .team-nav-btn.active,
html[data-theme="doodle"] .cat-tab.active,
html[data-theme="doodle"] .pill-tab.active,
html[data-theme="doodle"] .filter-btn[aria-pressed="true"]{
  background: var(--d-mint) !important;
  color: var(--d-ink) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 2px 2px 0 0 var(--d-ink) !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
}
html[data-theme="doodle"] .tab-line.active{
  color: var(--d-ink) !important;
  border-bottom-color: var(--d-ink) !important;
  border-bottom-width: 3px !important;
  font-weight: 700 !important;
}
/* nav-pill (top header nav) — keep ink BG + white text on active */
html[data-theme="doodle"] .nav-pill.active,
html[data-theme="doodle"] a.nav-pill.active{
  background: var(--d-ink) !important;
  color: #FFFFFF !important;
  border-radius: 999px !important;
}

/* ── BUBBLES / CHAT ─────────────────────────────────────── */
html[data-theme="doodle"] .bubble,
html[data-theme="doodle"] .bubble-in{
  background: #FFFFFF !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 3px 3px 0 0 var(--d-ink-15) !important;
  color: var(--d-ink) !important;
  border-radius: 18px !important;
}
html[data-theme="doodle"] .bubble.wa,
html[data-theme="doodle"] .bubble-out{
  background: var(--d-mint) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 3px 3px 0 0 var(--d-ink-15) !important;
  color: var(--d-ink) !important;
  border-radius: 18px !important;
}
html[data-theme="doodle"] .bubble-note{
  background: var(--d-cream) !important;
  border: 2px solid var(--d-ink) !important;
  color: var(--d-ink) !important;
}
html[data-theme="doodle"] .chat-paper                            { background-color: #F2F8EC !important; }
html[data-theme="doodle"] .chat-grid .bg-paper-0                 { background-color: #FFFFFF !important; border: 2px solid var(--d-ink) !important; color: var(--d-ink) !important; }
html[data-theme="doodle"] .chat-grid .bg-wa-bubble               { background-color: var(--d-mint) !important; border: 2px solid var(--d-ink) !important; color: var(--d-ink) !important; }

/* ── STATUS PILLS ───────────────────────────────────────── */
html[data-theme="doodle"] .pill                                  { border: 1.5px solid var(--d-ink) !important; color: var(--d-ink) !important; }
html[data-theme="doodle"] .pill-open                             { background: var(--d-mint) !important; color: var(--d-ink) !important; border: 1.5px solid var(--d-ink) !important; }
html[data-theme="doodle"] .pill-pending                          { background: var(--d-cream) !important; color: var(--d-ink) !important; border: 1.5px solid var(--d-ink) !important; }
html[data-theme="doodle"] .pill-resolved                         { background: #DEEAFA !important; color: var(--d-ink) !important; border: 1.5px solid var(--d-ink) !important; }
html[data-theme="doodle"] .pill-snoozed                          { background: #F3E9FF !important; color: var(--d-ink) !important; border: 1.5px solid var(--d-ink) !important; }
html[data-theme="doodle"] .pill-urgent                           { background: #FFE3DE !important; color: var(--d-ink) !important; border: 1.5px solid var(--d-ink) !important; }

/* ── CARDS — hard offset ink shadow + thick border ──────── */
html[data-theme="doodle"] .shadow-card{
  box-shadow: 4px 4px 0 0 var(--d-ink) !important;
  border: 2px solid var(--d-ink) !important;
}
html[data-theme="doodle"] .shadow-soft{
  box-shadow: 6px 6px 0 0 var(--d-ink) !important;
  border: 2px solid var(--d-ink) !important;
}

/* ── ROUNDED CORNERS — softer, hand-drawn ──────────────── */
html[data-theme="doodle"] .rounded-2xl                           { border-radius: 22px !important; }
html[data-theme="doodle"] .rounded-xl                            { border-radius: 18px !important; }
html[data-theme="doodle"] .rounded-lg                            { border-radius: 14px !important; }
html[data-theme="doodle"] .rounded-md                            { border-radius: 10px !important; }

/* ── NODES (flow builder) ──────────────────────────────── */
html[data-theme="doodle"] .node-card{
  background: var(--d-paper) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 6px 6px 0 0 var(--d-ink-15) !important;
  color: var(--d-ink) !important;
  border-radius: 22px !important;
}
html[data-theme="doodle"] .canvas-dots{
  background-color: #F2F8EC !important;
  background-image: radial-gradient(rgba(21,40,31,0.16) 1.4px, transparent 1.5px) !important;
  background-size: 20px 20px !important;
}
html[data-theme="doodle"] .edge-path                             { stroke: var(--d-ink) !important; stroke-width: 2.4px !important; }

/* ── DROPDOWN MENUS / MODALS ────────────────────────────── */
html[data-theme="doodle"] .menu,
html[data-theme="doodle"] #wa-profile-menu,
html[data-theme="doodle"] #wa-search-modal > div,
html[data-theme="doodle"] .theme-menu{
  background: var(--d-paper) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 4px 4px 0 0 var(--d-ink) !important;
  border-radius: 14px !important;
}
html[data-theme="doodle"] .menu button                           { color: var(--d-ink) !important; }
html[data-theme="doodle"] .menu button:hover,
html[data-theme="doodle"] #wa-profile-menu a:hover               { background: var(--d-mint) !important; color: var(--d-ink) !important; }
html[data-theme="doodle"] .theme-menu button.active              { background: var(--d-mint) !important; color: var(--d-ink) !important; box-shadow: 2px 2px 0 0 var(--d-ink); }

/* ── KBD / CODE ─────────────────────────────────────────── */
html[data-theme="doodle"] kbd                                    { background: var(--d-paper) !important; color: var(--d-ink) !important; border: 1.5px solid var(--d-ink) !important; }
html[data-theme="doodle"] code,
html[data-theme="doodle"] pre                                    { background: var(--d-mint) !important; color: var(--d-ink) !important; border: 1.5px solid var(--d-ink-25) !important; }

/* ── STATUS DOT ─────────────────────────────────────────── */
html[data-theme="doodle"] .bg-wa-green                           { background-color: var(--d-wa) !important; }

/* ── HAIRLINES — match the doodle ink/0.18 line ────────── */
html[data-theme="doodle"] .hairline-b                            { box-shadow: inset 0 -1px 0 var(--d-ink-10); }
html[data-theme="doodle"] .hairline                              { box-shadow: inset 0 0 0 1px var(--d-ink-15); }

/* ── AVATAR rings stay light in doodle ──────────────────── */
html[data-theme="doodle"] .ring-paper-0                          { --tw-ring-color: var(--d-paper) !important; }

/* ── KPI trend pills, badges ────────────────────────────── */
html[data-theme="doodle"] .kpi-trend-up                          { background: var(--d-mint) !important; color: var(--d-wa-deep) !important; border: 1.5px solid rgba(18,140,75,0.35); }
html[data-theme="doodle"] .kpi-trend-down                        { background: #FFEEF0 !important; color: #B83B2C !important; border: 1.5px solid rgba(184,59,44,0.35); }

/* ── GRADIENT AVATAR PILLS — convert to flat ink-bordered  */
html[data-theme="doodle"] .from-wa-teal,
html[data-theme="doodle"] .to-wa-deep                            { /* gradients still apply — leave as-is so avatars keep punch */ }

/* ════════════════════════════════════════════════════════════
   DOODLE — FORM PRIMITIVES
   Match React's canonical waInput/cxInput/tpxInput style:
     "w-full px-4 py-2.5 rounded-xl border-2 border-[var(--ink)]/20
      bg-white focus:outline-none focus:border-[var(--ink)] text-sm"
   ════════════════════════════════════════════════════════════ */

/* All inputs / selects / textareas — promote to 2px ink-tinted border on rounded-xl shape.
   Override existing thinner borders + tan paper-200 borders set on the element itself. */
html[data-theme="doodle"] form input[type="text"],
html[data-theme="doodle"] form input[type="email"],
html[data-theme="doodle"] form input[type="number"],
html[data-theme="doodle"] form input[type="tel"],
html[data-theme="doodle"] form input[type="url"],
html[data-theme="doodle"] form input[type="search"],
html[data-theme="doodle"] form input[type="password"],
html[data-theme="doodle"] form input:not([type]),
html[data-theme="doodle"] form select,
html[data-theme="doodle"] form textarea,
html[data-theme="doodle"] input.bg-white,
html[data-theme="doodle"] select.bg-white,
html[data-theme="doodle"] textarea.bg-white{
  background: #FFFFFF !important;
  color: var(--d-ink) !important;
  border: 2px solid var(--d-ink-25) !important;
  border-radius: 14px !important;
  font-weight: 500 !important;
  box-shadow: none !important;
}
html[data-theme="doodle"] form textarea                          { border-radius: 18px !important; }
html[data-theme="doodle"] form input:focus,
html[data-theme="doodle"] form select:focus,
html[data-theme="doodle"] form textarea:focus{
  border-color: var(--d-ink) !important;
  outline: none !important;
  box-shadow: none !important;
  --tw-ring-color: transparent !important;
  --tw-ring-shadow: 0 0 0 0 transparent !important;
}
html[data-theme="doodle"] .ts-control,
html[data-theme="doodle"] .ts-wrapper.single .ts-control{
  background: #FFFFFF !important;
  color: var(--d-ink) !important;
  border: 2px solid var(--d-ink-25) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  font-weight: 500 !important;
}
html[data-theme="doodle"] .ts-control input,
html[data-theme="doodle"] .ts-dropdown input { color: var(--d-ink) !important; }
html[data-theme="doodle"] .ts-wrapper.focus .ts-control {
  border-color: var(--d-ink) !important;
  box-shadow: none !important;
}
html[data-theme="doodle"] .ts-wrapper.single .ts-control:after { border-color: var(--d-ink) transparent transparent transparent; }
html[data-theme="doodle"] .ts-wrapper.single.dropdown-active .ts-control:after { border-color: transparent transparent var(--d-ink) transparent; }
html[data-theme="doodle"] .ts-dropdown {
  background: var(--d-paper) !important;
  border: 2px solid var(--d-ink) !important;
  border-radius: 14px !important;
  box-shadow: 4px 4px 0 0 var(--d-ink) !important;
}
html[data-theme="doodle"] .ts-dropdown .option,
html[data-theme="doodle"] .ts-dropdown .create,
html[data-theme="doodle"] .ts-dropdown .no-results { color: var(--d-ink) !important; }
html[data-theme="doodle"] .ts-dropdown .active,
html[data-theme="doodle"] .ts-dropdown .option:hover {
  background: var(--d-mint) !important;
  color: var(--d-ink) !important;
}

/* Form labels keep ink at 100% so they always read */
html[data-theme="doodle"] form label,
html[data-theme="doodle"] label.text-ink-700,
html[data-theme="doodle"] label .text-ink-700                    { color: var(--d-ink) !important; font-weight: 600 !important; }

/* "required *" asterisks stay coral so they pop */
html[data-theme="doodle"] .text-accent-coral                     { color: var(--d-coral) !important; }

/* ── STEPPER (autoreply, broadcast, scheduled, wa-campaign) ─ */
html[data-theme="doodle"] .step-node .dot{
  width: 30px !important;
  height: 30px !important;
  border-width: 2px !important;
  border-color: var(--d-ink-25) !important;
  background: #FFFFFF !important;
  color: var(--d-ink-72) !important;
  font-weight: 800 !important;
  box-shadow: none !important;
  --tw-ring-shadow: 0 0 0 0 transparent !important;
}
html[data-theme="doodle"] .step-node.active .dot,
html[data-theme="doodle"] .step-node .dot.border-wa-deep{
  background: var(--d-ink) !important;
  color: var(--d-cream) !important;
  border-color: var(--d-ink) !important;
  --tw-ring-shadow: 0 0 0 4px rgba(21,40,31,0.10) !important;
  box-shadow: 0 0 0 4px rgba(21,40,31,0.10) !important;
}
html[data-theme="doodle"] .step-node.done .dot{
  background: var(--d-wa-deep) !important;
  border-color: var(--d-wa-deep) !important;
  color: #FFFFFF !important;
}
html[data-theme="doodle"] .step-node .lab                        { color: var(--d-ink-55) !important; font-weight: 600 !important; }
html[data-theme="doodle"] .step-node.active .lab,
html[data-theme="doodle"] .step-node .lab.text-wa-deep           { color: var(--d-ink) !important; font-weight: 700 !important; }
html[data-theme="doodle"] .step-node.done .lab                   { color: var(--d-wa-deep) !important; }
html[data-theme="doodle"] .step-node .bar{
  height: 2px !important;
  background: repeating-linear-gradient(90deg, var(--d-ink-25) 0 6px, transparent 6px 12px) !important;
}
html[data-theme="doodle"] .step-node.done .bar                   { background: var(--d-wa-deep) !important; }

/* Step heading numeric badge ("01", "02") used inside step-pane */
html[data-theme="doodle"] .step-pane .bg-paper-50.text-wa-deep,
html[data-theme="doodle"] .step-pane .text-wa-deep.font-mono{
  background: var(--d-mint) !important;
  color: var(--d-wa-deep) !important;
  border: 1.5px solid var(--d-ink-25) !important;
  border-radius: 8px !important;
}

/* ── KEYWORD / TAG CHIPS ─────────────────────────────────── */
html[data-theme="doodle"] .kw-chip,
html[data-theme="doodle"] .tag-chip,
html[data-theme="doodle"] .chip{
  background: #FFFFFF !important;
  border: 1.5px solid var(--d-ink-25) !important;
  color: var(--d-ink) !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
}
html[data-theme="doodle"] .kw-chip button,
html[data-theme="doodle"] .tag-chip button,
html[data-theme="doodle"] .chip button{
  background: var(--d-mint) !important;
  color: var(--d-ink) !important;
  border: 1px solid var(--d-ink-25) !important;
}
html[data-theme="doodle"] .kw-chip button:hover,
html[data-theme="doodle"] .tag-chip button:hover{
  background: var(--d-coral) !important;
  color: #FFFFFF !important;
  border-color: var(--d-coral) !important;
}

/* Chip container (the gray tray around chips + input) */
html[data-theme="doodle"] #kw-list,
html[data-theme="doodle"] .chip-tray{
  background: #FFFFFF !important;
  border: 2px solid var(--d-ink-25) !important;
  border-radius: 14px !important;
}
html[data-theme="doodle"] #kw-list:focus-within,
html[data-theme="doodle"] .chip-tray:focus-within                { border-color: var(--d-ink) !important; }

/* ── SEGMENTED BUTTONS (.seg-btn / Fuzzy / Exact / Contains) ─ */
html[data-theme="doodle"] [id^="seg-"],
html[data-theme="doodle"] .seg-group{
  background: var(--d-mint) !important;
  border: 2px solid var(--d-ink-25) !important;
  padding: 3px !important;
  border-radius: 999px !important;
}
html[data-theme="doodle"] .seg-btn{
  color: var(--d-ink-72) !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
  background: transparent !important;
}
html[data-theme="doodle"] .seg-btn.bg-wa-deep,
html[data-theme="doodle"] .seg-btn.active{
  background: var(--d-ink) !important;
  color: #FFFFFF !important;
  box-shadow: 2px 2px 0 0 rgba(21,40,31,0.18) !important;
}
html[data-theme="doodle"] .seg-btn:hover                         { color: var(--d-ink) !important; }

/* ── RANGE SLIDER ────────────────────────────────────────── */
html[data-theme="doodle"] input[type="range"]{
  -webkit-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  height: 22px !important;
  border: none !important;
  border-radius: 0 !important;
}
html[data-theme="doodle"] input[type="range"]::-webkit-slider-runnable-track{
  background: var(--d-ink-15) !important;
  height: 6px !important;
  border-radius: 999px !important;
  border: 1.5px solid var(--d-ink-25);
}
html[data-theme="doodle"] input[type="range"]::-moz-range-track{
  background: var(--d-ink-15) !important;
  height: 6px !important;
  border-radius: 999px !important;
  border: 1.5px solid var(--d-ink-25);
}
html[data-theme="doodle"] input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  background: var(--d-ink) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 2px 2px 0 0 rgba(21,40,31,0.18) !important;
  margin-top: -8px !important;
  cursor: pointer;
}
html[data-theme="doodle"] input[type="range"]::-moz-range-thumb{
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  background: var(--d-ink) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 2px 2px 0 0 rgba(21,40,31,0.18) !important;
  cursor: pointer;
}
html[data-theme="doodle"] input[type="range"].accent-wa-deep{ accent-color: var(--d-ink) !important; }

/* ── CHECKBOXES / RADIOS (accent color) ─────────────────── */
html[data-theme="doodle"] input[type="checkbox"],
html[data-theme="doodle"] input[type="radio"]{
  accent-color: var(--d-ink) !important;
}

/* ── CARDS — promote any standard "bg-paper-0 border border-paper-200 rounded-2xl" to admin-card style */
html[data-theme="doodle"] .bg-paper-0.border.border-paper-200,
html[data-theme="doodle"] .bg-paper-0.shadow-card,
html[data-theme="doodle"] .bg-white.shadow-card{
  background: #FFFFFF !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 4px 4px 0 0 var(--d-ink) !important;
}

/* Any element with .shadow-card alone (not button) gets the doodle hard offset */
html[data-theme="doodle"] div.shadow-card,
html[data-theme="doodle"] section.shadow-card,
html[data-theme="doodle"] article.shadow-card{
  border: 2px solid var(--d-ink) !important;
  box-shadow: 4px 4px 0 0 var(--d-ink) !important;
}

/* Templates page grid card hover — give it lift like React .lift */
html[data-theme="doodle"] .group.shadow-card:hover,
html[data-theme="doodle"] a.shadow-card:hover                    { transform: translate(-2px,-2px); box-shadow: 6px 6px 0 0 var(--d-ink) !important; transition: transform .15s ease, box-shadow .15s ease; }

/* ── DARK-HERO CARDS (bg-wa-deep / bg-ink-900 with light children)
   When wa-deep BG is repurposed as ink in doodle, the inner paper/15 children
   were turned into solid paper. Restore them to translucent white so they
   read as subtle layers ON the dark card. */
html[data-theme="doodle"] .bg-wa-deep .bg-paper-0\/15,
html[data-theme="doodle"] .bg-wa-deep .bg-paper-0\/40,
html[data-theme="doodle"] .bg-wa-deep .bg-paper-0\/95            { background-color: rgba(255,255,255,0.14) !important; }
html[data-theme="doodle"] .bg-wa-deep .border-paper-0\/15        { border-color: rgba(255,255,255,0.18) !important; }
html[data-theme="doodle"] .bg-wa-deep .text-paper-0,
html[data-theme="doodle"] .bg-wa-deep h1, html[data-theme="doodle"] .bg-wa-deep h2,
html[data-theme="doodle"] .bg-wa-deep h3, html[data-theme="doodle"] .bg-wa-deep h4,
html[data-theme="doodle"] .bg-wa-deep p,
html[data-theme="doodle"] .bg-wa-deep span                       { color: #FFFFFF !important; }
html[data-theme="doodle"] .bg-wa-deep .text-paper-0\/85,
html[data-theme="doodle"] .bg-wa-deep .text-paper-0\/80,
html[data-theme="doodle"] .bg-wa-deep .text-paper-0\/60          { color: rgba(255,255,255,0.78) !important; }
/* and the mock SVG overlay rects inside those cards — keep them light */
html[data-theme="doodle"] .bg-wa-deep svg rect[fill="#FBFAF6"]   { fill: rgba(255,255,255,0.30) !important; }

/* "What's new" mini card (more.html) — uses bg-ink-900 */
html[data-theme="doodle"] .bg-ink-900,
html[data-theme="doodle"] .bg-ink-800{
  background: var(--d-ink) !important;
  border: 2px solid var(--d-ink) !important;
}
html[data-theme="doodle"] .bg-ink-900 *,
html[data-theme="doodle"] .bg-ink-800 *                          { color: #FFFFFF !important; }
html[data-theme="doodle"] .bg-ink-900 .text-paper-0\/70,
html[data-theme="doodle"] .bg-ink-900 .text-paper-0\/60,
html[data-theme="doodle"] .bg-ink-900 .text-paper-0\/50          { color: rgba(255,255,255,0.70) !important; }

/* ── FOOTER OF FORM CARD (Previous / Next / progress bar) ── */
html[data-theme="doodle"] .step-pane .border-t,
html[data-theme="doodle"] .form-footer                           { border-color: var(--d-ink-15) !important; }

/* "Step 1 of 5" centered helper */
html[data-theme="doodle"] .font-mono.text-ink-500                { color: var(--d-ink-55) !important; }

/* Card eyebrows like "WHATSAPP CAMPAIGNS / NEW" */
html[data-theme="doodle"] .uppercase.tracking-\[0\.18em\],
html[data-theme="doodle"] [class*="tracking-[0.1"]                { color: var(--d-ink-55) !important; font-weight: 700 !important; }

/* ── DISABLED ───────────────────────────────────────────── */
html[data-theme="doodle"] button:disabled,
html[data-theme="doodle"] [disabled]                             { opacity: 0.45 !important; cursor: not-allowed !important; }

/* ── RING / FOCUS RINGS reduced to ink ──────────────────── */
html[data-theme="doodle"] .focus\:ring-wa-deep\/10:focus,
html[data-theme="doodle"] .focus\:ring-wa-deep\/20:focus,
html[data-theme="doodle"] .focus\:ring-4:focus                   { --tw-ring-color: var(--d-ink-15) !important; }

/* ── POPOVER / TOOLTIP arrows ───────────────────────────── */
html[data-theme="doodle"] .edge-popup{
  background: var(--d-paper) !important;
  border: 2px solid var(--d-ink) !important;
  color: var(--d-ink) !important;
  box-shadow: 4px 4px 0 0 var(--d-ink) !important;
}

/* ════════════════════════════════════════════════════════════
   DOODLE — CANONICAL SITE.CSS CLASSES
   These mirror src/site.css exactly so any HTML page that
   uses the React class names (.pill-tab, .pill-dark, .admin-card,
   .nav-item, .search-input, .f-display, .f-script, .lift, etc.)
   renders identically to the React reference.
   ════════════════════════════════════════════════════════════ */

html[data-theme="doodle"] .ink                                   { color: var(--d-ink) !important; }
html[data-theme="doodle"] .bg-ink                                { background: var(--d-ink) !important; }
html[data-theme="doodle"] .bg-mint                               { background: var(--d-mint) !important; }
html[data-theme="doodle"] .bg-cream                              { background: var(--d-cream) !important; }
html[data-theme="doodle"] .bg-paper                              { background: var(--d-paper) !important; }
html[data-theme="doodle"] .bg-wa                                 { background: var(--d-wa) !important; }
html[data-theme="doodle"] .bg-sun                                { background: var(--d-sun) !important; }
html[data-theme="doodle"] .bg-coral                              { background: var(--d-coral) !important; }
html[data-theme="doodle"] .bg-lav                                { background: var(--d-lav) !important; }
html[data-theme="doodle"] .border-ink                            { border-color: var(--d-ink) !important; }

/* Display + script fonts (the doodle signature) */
html[data-theme="doodle"] .f-display{
  font-family: 'Bricolage Grotesque', system-ui, sans-serif !important;
  letter-spacing: -0.025em !important;
}
html[data-theme="doodle"] .f-script{
  font-family: 'Caveat', cursive !important;
  font-weight: 700 !important;
  font-style: normal !important;
  letter-spacing: 0 !important;
}
/* In doodle, .font-serif (used widely in HTML pages) renders Bricolage */
html[data-theme="doodle"] .font-serif{
  font-family: 'Bricolage Grotesque', system-ui, sans-serif !important;
  letter-spacing: -0.025em !important;
  font-weight: 800 !important;
  font-style: normal !important;
}
/* And .italic (Tailwind utility) renders as Caveat — only when explicitly italic */
html[data-theme="doodle"] .italic,
html[data-theme="doodle"] em{
  font-family: 'Caveat', cursive !important;
  font-style: normal !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

/* Sketch cards (hand-drawn outline + offset shadow) */
html[data-theme="doodle"] .sketch{
  border: 2.5px solid var(--d-ink) !important;
  box-shadow: 6px 6px 0 0 var(--d-ink) !important;
  border-radius: 28px !important;
  background: #FFFFFF !important;
}
html[data-theme="doodle"] .sketch-soft{
  border: 2px solid var(--d-ink) !important;
  border-radius: 28px !important;
  background: #FFFFFF !important;
}
html[data-theme="doodle"] .sketch-sm{
  border: 2px solid var(--d-ink) !important;
  box-shadow: 4px 4px 0 0 var(--d-ink) !important;
  border-radius: 999px !important;
}

/* Pill-dark — primary CTA (used by "Add contact", "Save", "Next", etc.) */
html[data-theme="doodle"] .pill-dark{
  background: var(--d-ink) !important;
  color: #FFFFFF !important;
  border: 2px solid var(--d-ink) !important;
  border-radius: 999px !important;
  padding: 10px 18px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-weight: 600 !important;
  box-shadow: 4px 4px 0 0 rgba(21,40,31,0.15) !important;
  transition: transform .15s ease, box-shadow .15s ease;
  text-decoration: none;
}
html[data-theme="doodle"] .pill-dark:hover{
  transform: translate(-1px,-1px);
  box-shadow: 6px 6px 0 0 rgba(21,40,31,0.20) !important;
}
html[data-theme="doodle"] .pill-light{
  background: #FFFFFF !important;
  color: var(--d-ink) !important;
  border: 2px solid var(--d-ink) !important;
  border-radius: 999px !important;
  padding: 9px 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-weight: 600 !important;
}

/* Pill-tab — inactive tab style */
html[data-theme="doodle"] .pill-tab{
  border: 2px solid var(--d-ink-25) !important;
  border-radius: 999px !important;
  padding: 7px 14px !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  color: var(--d-ink-72) !important;
  background: transparent !important;
  transition: all .15s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
html[data-theme="doodle"] .pill-tab:hover{
  color: var(--d-ink) !important;
  border-color: var(--d-ink) !important;
}
html[data-theme="doodle"] .pill-tab.active{
  background: var(--d-mint) !important;
  border-color: var(--d-ink) !important;
  color: var(--d-ink) !important;
  box-shadow: 2px 2px 0 0 var(--d-ink) !important;
}

/* Admin card (the workhorse container) */
html[data-theme="doodle"] .admin-card{
  border: 2px solid var(--d-ink) !important;
  box-shadow: 4px 4px 0 0 var(--d-ink) !important;
  border-radius: 22px !important;
  background: #FFFFFF !important;
}
html[data-theme="doodle"] .admin-card-soft{
  border: 2px solid var(--d-ink-25) !important;
  border-radius: 22px !important;
  background: #FFFFFF !important;
}

/* Sidebar nav-item */
html[data-theme="doodle"] .nav-item{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px !important;
  border-radius: 14px !important;
  color: var(--d-ink-72) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  border: 2px solid transparent !important;
  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
html[data-theme="doodle"] .nav-item:hover{
  background: rgba(21,40,31,0.05) !important;
  color: var(--d-ink) !important;
}
html[data-theme="doodle"] .nav-item.active{
  background: var(--d-mint) !important;
  border-color: var(--d-ink) !important;
  color: var(--d-ink) !important;
  box-shadow: 2px 2px 0 0 var(--d-ink) !important;
}

/* KPI trend chips */
html[data-theme="doodle"] .kpi-trend-up{
  display: inline-flex; align-items: center; gap: 4px;
  background: var(--d-mint) !important;
  color: var(--d-wa-deep) !important;
  border: 1.5px solid rgba(18,140,75,0.35) !important;
  padding: 2px 8px !important; border-radius: 999px !important;
  font-size: 12px !important; font-weight: 700 !important;
}
html[data-theme="doodle"] .kpi-trend-down{
  display: inline-flex; align-items: center; gap: 4px;
  background: #FFEEF0 !important;
  color: #E54B3C !important;
  border: 1.5px solid rgba(229,75,60,0.35) !important;
  padding: 2px 8px !important; border-radius: 999px !important;
  font-size: 12px !important; font-weight: 700 !important;
}

/* Status pill */
html[data-theme="doodle"] .status-pill{
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 10px !important; border-radius: 999px !important;
  border: 1.5px solid var(--d-ink) !important;
  font-weight: 600 !important; font-size: 12px !important;
}

/* Bar rows used in dashboard "top countries" etc. */
html[data-theme="doodle"] .bar-row .bar-fill{
  height: 10px; border-radius: 999px;
  border: 1.5px solid var(--d-ink) !important;
}
html[data-theme="doodle"] .bar-row .bar-track{
  height: 10px; border-radius: 999px;
  border: 1.5px solid var(--d-ink-25) !important;
  background: #FFFFFF !important;
}

/* Search input (used in topbars) */
html[data-theme="doodle"] .search-input{
  width: 100%;
  background: #FFFFFF !important;
  border: 2px solid var(--d-ink-25) !important;
  border-radius: 999px !important;
  padding: 9px 14px 9px 38px !important;
  font-size: 14px !important;
  color: var(--d-ink) !important;
  transition: border-color .15s ease;
}
html[data-theme="doodle"] .search-input:focus{
  outline: none !important;
  border-color: var(--d-ink) !important;
}

/* Lift / lift-tilt hover effects */
html[data-theme="doodle"] .lift{
  transition: transform .2s ease, box-shadow .2s ease;
}
html[data-theme="doodle"] .lift:hover{
  transform: translate(-2px,-4px);
  box-shadow: 10px 12px 0 0 var(--d-ink) !important;
}
html[data-theme="doodle"] .lift-tilt{
  transition: transform .25s ease, box-shadow .25s ease;
}
html[data-theme="doodle"] .lift-tilt:hover{
  transform: translate(-2px,-4px) rotate(-1deg);
  box-shadow: 10px 12px 0 0 var(--d-ink) !important;
}

/* Tilt utilities */
html[data-theme="doodle"] .tilt-l                                { transform: rotate(-2deg); }
html[data-theme="doodle"] .tilt-r                                { transform: rotate(2deg); }
html[data-theme="doodle"] .tilt-lg                               { transform: rotate(-3deg); }
html[data-theme="doodle"] .tilt-rg                               { transform: rotate(3deg); }

/* Card hover — slight lift + tilt */
html[data-theme="doodle"] .card-hover{ transition: transform .2s ease; }
html[data-theme="doodle"] .card-hover:hover{ transform: translateY(-4px) rotate(-0.8deg); }

/* Pulsing dot animation (live indicators) */
@keyframes doodle-pulsedot { 0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.6)} 70%{box-shadow:0 0 0 10px rgba(37,211,102,0)} }
html[data-theme="doodle"] .pulsedot                              { animation: doodle-pulsedot 2.2s ease-out infinite; }

/* Float / bob / wobble idle animations */
@keyframes doodle-floaty { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
html[data-theme="doodle"] .floaty                                { animation: doodle-floaty 6s ease-in-out infinite; }
@keyframes doodle-bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
html[data-theme="doodle"] .bob                                   { animation: doodle-bob 4.5s ease-in-out infinite; }
@keyframes doodle-wobble { 0%,100%{transform:rotate(-3deg)} 50%{transform:rotate(3deg)} }
html[data-theme="doodle"] .wobble                                { animation: doodle-wobble 7s ease-in-out infinite; transform-origin: center; }

/* ════════════════════════════════════════════════════════════
   DOODLE — TAILWIND-UTILITY ACTIVE-TAB PATTERNS
   Pages widely use arbitrary variants like:
     [&.active]:bg-wa-deep [&.active]:text-paper-0
     [&.active]:bg-ink-900 [&.active]:text-paper-0
     [&[aria-pressed=true]]:bg-wa-deep
   These compile to escaped class names. Force them to render as
   the canonical doodle "active pill-tab" (mint + ink + offset).
   ════════════════════════════════════════════════════════════ */

html[data-theme="doodle"] .filter-pill.active,
html[data-theme="doodle"] .filter-tab.active,
html[data-theme="doodle"] .top-tab.active,
html[data-theme="doodle"] .side-tab.active,
html[data-theme="doodle"] .nav-pill.active,
html[data-theme="doodle"] .acc-tab.active,
html[data-theme="doodle"] .set-tab.active,
html[data-theme="doodle"] .ti-tab.active,
html[data-theme="doodle"] .ig-tab.active,
html[data-theme="doodle"] .cat-tab.active,
html[data-theme="doodle"] .seg-tab.active,
html[data-theme="doodle"] .queue-tab.active,
html[data-theme="doodle"] .fp-tab.active,
html[data-theme="doodle"] .team-nav-btn.active,
html[data-theme="doodle"] [aria-pressed="true"].filter-btn,
html[data-theme="doodle"] [data-state="active"]{
  background: var(--d-mint) !important;
  background-color: var(--d-mint) !important;
  color: var(--d-ink) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 2px 2px 0 0 var(--d-ink) !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
}

/* Tailwind arbitrary-variant active classes — escape selectors */
html[data-theme="doodle"] .\[\&\.active\]\:bg-wa-deep.active,
html[data-theme="doodle"] .\[\&\.active\]\:bg-ink-900.active,
html[data-theme="doodle"] .\[\&\.active\]\:bg-ink-800.active{
  background-color: var(--d-mint) !important;
  background: var(--d-mint) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 2px 2px 0 0 var(--d-ink) !important;
  border-radius: 999px !important;
}
/* Active text-paper-0 utility — flip to ink so the label is legible on mint */
html[data-theme="doodle"] .\[\&\.active\]\:text-paper-0.active,
html[data-theme="doodle"] .\[\&\.active\]\:text-paper-0\/70.active,
html[data-theme="doodle"] .\[\&\.active\]\:text-paper-0\/80.active{
  color: var(--d-ink) !important;
}
/* Active children that used opacity (eg the count "8" with opacity-80) flip too */
html[data-theme="doodle"] .filter-tab.active .opacity-80,
html[data-theme="doodle"] .top-tab.active .opacity-80,
html[data-theme="doodle"] .filter-pill.active .opacity-80,
html[data-theme="doodle"] .side-tab.active .opacity-80,
html[data-theme="doodle"] .nav-pill.active .opacity-80           { color: var(--d-ink) !important; opacity: 1 !important; }

/* Same for [&[aria-pressed=true]] arbitrary variants on the chat filter buttons */
html[data-theme="doodle"] .\[\&\[aria-pressed\=true\]\]\:bg-wa-deep[aria-pressed="true"]{
  background-color: var(--d-mint) !important;
  background: var(--d-mint) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 2px 2px 0 0 var(--d-ink) !important;
  border-radius: 999px !important;
}
html[data-theme="doodle"] .\[\&\[aria-pressed\=true\]\]\:text-paper-0[aria-pressed="true"]{
  color: var(--d-ink) !important;
}

/* Count badges inside active pills (the small "8", "5", "(4)" markers) */
html[data-theme="doodle"] .filter-tab.active .font-mono,
html[data-theme="doodle"] .top-tab.active .font-mono,
html[data-theme="doodle"] .filter-pill.active .font-mono,
html[data-theme="doodle"] .side-tab.active .font-mono,
html[data-theme="doodle"] .nav-pill.active .font-mono,
html[data-theme="doodle"] .filter-tab.active .count,
html[data-theme="doodle"] .top-tab.active .count,
html[data-theme="doodle"] .pill-tab.active .count,
html[data-theme="doodle"] .tab-line.active .count{
  background: rgba(21,40,31,0.10) !important;
  color: var(--d-ink) !important;
  border-radius: 999px !important;
  padding: 1px 8px !important;
  font-weight: 700 !important;
  border: 1px solid var(--d-ink-25);
}

/* Inactive count chips — sit in white with ink-tint border */
html[data-theme="doodle"] .filter-tab .font-mono,
html[data-theme="doodle"] .top-tab .font-mono,
html[data-theme="doodle"] .filter-pill .font-mono,
html[data-theme="doodle"] .pill-tab .count,
html[data-theme="doodle"] .tab-line .count{
  background: rgba(21,40,31,0.06) !important;
  color: var(--d-ink-72) !important;
  border-radius: 999px !important;
  padding: 1px 8px !important;
}

/* ════════════════════════════════════════════════════════════
   DOODLE — SIDEBAR side-tab (contacts.html, chat.html sidebars)
   When element has both .side-tab and .bg-wa-deep, give it the
   admin-style nav-item active look.
   ════════════════════════════════════════════════════════════ */
html[data-theme="doodle"] .side-tab.bg-wa-deep,
html[data-theme="doodle"] .side-tab[class*="bg-wa-deep"]{
  background: var(--d-mint) !important;
  color: var(--d-ink) !important;
  border: 2px solid var(--d-ink) !important;
  box-shadow: 2px 2px 0 0 var(--d-ink) !important;
  border-radius: 14px !important;
}
html[data-theme="doodle"] .side-tab.bg-wa-deep .text-paper-0,
html[data-theme="doodle"] .side-tab[class*="bg-wa-deep"] .text-paper-0,
html[data-theme="doodle"] .side-tab.bg-wa-deep span,
html[data-theme="doodle"] .side-tab.bg-wa-deep .font-mono{
  color: var(--d-ink) !important;
}

/* ════════════════════════════════════════════════════════════
   DOODLE — TAB-LINE (templates / flows underline tabs)
   Make underline thicker + ink color when active.
   ════════════════════════════════════════════════════════════ */
html[data-theme="doodle"] .tab-line                              { color: var(--d-ink-72) !important; font-weight: 600 !important; }
html[data-theme="doodle"] .tab-line:hover                        { color: var(--d-ink) !important; }
html[data-theme="doodle"] .tab-line.active{
  color: var(--d-ink) !important;
  font-weight: 800 !important;
  border-bottom-color: var(--d-ink) !important;
  border-bottom-width: 3px !important;
}
/* count chip inside templates "All 71" tab-line */
html[data-theme="doodle"] .tab-line .count{
  background: var(--d-mint) !important;
  border: 1.5px solid var(--d-ink-25) !important;
  color: var(--d-ink) !important;
  font-weight: 700 !important;
}
html[data-theme="doodle"] .tab-line.active .count{
  background: var(--d-ink) !important;
  color: #FFFFFF !important;
  border-color: var(--d-ink) !important;
}

/* ════════════════════════════════════════════════════════════
   DOODLE — H1/H2 etc. inherit Bricolage even when rendered as
   serif via Tailwind. f-script fonts get attached to anything
   with .italic or <em> already (via the .italic rule above).
   ════════════════════════════════════════════════════════════ */
html[data-theme="doodle"] h1,
html[data-theme="doodle"] h2,
html[data-theme="doodle"] h3,
html[data-theme="doodle"] h4,
html[data-theme="doodle"] h5{
  font-family: 'Bricolage Grotesque', system-ui, sans-serif !important;
  letter-spacing: -0.025em !important;
  font-weight: 800 !important;
}

/* ════════════════════════════════════════════════════════════
   DOODLE — UTILITY OVERRIDES that frequently show in HTML pages
   ════════════════════════════════════════════════════════════ */

/* tracking utility used as eyebrows */
html[data-theme="doodle"] .tracking-\[0\.18em\],
html[data-theme="doodle"] .tracking-\[0\.16em\],
html[data-theme="doodle"] .tracking-\[0\.2em\]                   { color: var(--d-ink-55) !important; font-weight: 700 !important; }

/* font-mono (eyebrow / kbd hints) keep readable */
html[data-theme="doodle"] .font-mono                             { color: inherit; }

/* Hover utility that flips to wa-deep BG — keep as ink hover */
html[data-theme="doodle"] .hover\:bg-wa-deep:hover               { background: var(--d-ink) !important; color: #FFFFFF !important; }
html[data-theme="doodle"] .hover\:text-paper-0:hover             { color: #FFFFFF !important; }

/* Common dark-pill hover preview pattern (e.g. "Last 30d" pill that turns dark on hover) */
html[data-theme="doodle"] .group:hover .group-hover\:bg-wa-deep,
html[data-theme="doodle"] .group:hover .group-hover\:text-paper-0{ background: var(--d-mint) !important; color: var(--d-ink) !important; }

/* Stat / kpi big number — use Bricolage */
html[data-theme="doodle"] .text-\[34px\],
html[data-theme="doodle"] .text-\[40px\],
html[data-theme="doodle"] .text-\[44px\],
html[data-theme="doodle"] .text-\[48px\],
html[data-theme="doodle"] .text-\[52px\]{
  font-family: 'Bricolage Grotesque', system-ui, sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
}

/* ─── Per-page styles, merged for Vite bundling ─── */

/* === auth-login === */
/* showcase backdrop */
  .auth-art {
    background:
      radial-gradient(80% 60% at 30% 20%, rgba(37,211,102,0.18) 0, transparent 50%),
      radial-gradient(60% 50% at 80% 80%, rgba(7,94,84,0.30) 0, transparent 60%),
      linear-gradient(135deg, #075E54 0%, #13312D 100%);
  }
  .blob { position:absolute; border-radius:50%; filter: blur(60px); opacity:0.45; }
  .quote { background: rgba(11,31,28,0.32); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.10); }
/* === auth-register === */
.auth-art {
    background:
      radial-gradient(75% 60% at 30% 70%, rgba(229,160,78,0.18) 0, transparent 55%),
      radial-gradient(60% 50% at 80% 20%, rgba(37,211,102,0.18) 0, transparent 55%),
      linear-gradient(135deg, #075E54 0%, #13312D 100%);
  }
  .blob { position:absolute; border-radius:50%; filter: blur(60px); opacity:0.45; }
  .stat-pill { background: rgba(11,31,28,0.32); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.10); }
/* === checkout-failed === */
@keyframes shake-in {
    0%   { transform: scale(0.6) translateX(0); opacity: 0; }
    50%  { opacity: 1; }
    60%  { transform: scale(1) translateX(-6px); }
    72%  { transform: scale(1) translateX(6px); }
    84%  { transform: scale(1) translateX(-3px); }
    100% { transform: scale(1) translateX(0); }
  }
  .x-icon { animation: shake-in .55s ease-out; }
/* === checkout-success === */
@keyframes ringIn  { from { transform: scale(0.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
  @keyframes drawTick { from { stroke-dashoffset: 30; } to { stroke-dashoffset: 0; } }
  .tick-ring { animation: ringIn .35s ease-out; }
  .tick-path { stroke-dasharray: 30; animation: drawTick .55s .15s ease-out forwards; }

  @keyframes confetti-fall {
    0%   { transform: translateY(-20vh) rotate(0deg);   opacity: 0; }
    10%  { opacity: 1; }
    100% { transform: translateY(110vh) rotate(720deg); opacity: 0; }
  }
  .confetti { position: fixed; top:0; width:8px; height:14px; border-radius:2px; pointer-events:none; animation: confetti-fall 4s linear infinite; }
/* === user-account-index === */
.acc-tab { display:flex; align-items:center; gap:9px; padding:9px 11px; border-radius:10px; font-size:12.5px; color:#3A5A55; cursor:pointer; transition: background .12s; }
  .acc-tab:hover { background:#F5F3EC; }
  .acc-tab.active { background:#075E54; color:#FBFAF6; font-weight:600; }
  .acc-tab.danger { color:#A1431F; }
  .acc-tab.danger:hover { background:#FBE9E7; }
  .acc-tab.danger.active { background:#E87A5D; color:#FBFAF6; }
/* === user-flows-builder === */
body[data-page="user-flows-builder"], body[data-page="user-flows-builder"] #root { height:100%; overflow:hidden; }
  body[data-page="user-flows-builder"] { margin:0; }

  .canvas-dots {
    background-color: #F5F3EC;
    background-image: radial-gradient(circle, rgba(11,31,28,0.10) 1px, transparent 1px);
    background-size: 22px 22px;
  }
  .canvas-dots.dragging { cursor: grabbing; }

  .node-card {
    background:#FBFAF6;
    border:1px solid #E5DFD0;
    border-radius:16px;
    box-shadow: 0 1px 0 rgba(11,31,28,0.04), 0 6px 16px -10px rgba(11,31,28,0.18);
    transition: box-shadow .14s ease, border-color .14s ease;
  }
  .node-card.selected { border-color:#075E54; box-shadow: 0 0 0 2px rgba(7,94,84,0.28), 0 14px 30px -14px rgba(7,94,84,0.36); }
  .node-card.dragging { box-shadow: 0 0 0 2px rgba(7,94,84,0.34), 0 18px 30px -14px rgba(7,94,84,0.42); }
  .node-row { transition: background .14s ease; border-radius:10px; }
  .node-row:hover { background:#F5F3EC; }

  .port {
    width:14px; height:14px; border-radius:50%;
    background:#FBFAF6; border:2px solid #6B807C;
    transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease;
  }
  .port.is-yes { background:#DCF8C6; border-color:#075E54; }
  .port.is-no  { background:#FBE9E7; border-color:#E87A5D; }
  .port.out { cursor:crosshair; right:-7px; top:50%; transform: translateY(-50%); position:absolute; }
  .port.in  { cursor:cell;     left:-7px;  top:50%; transform: translateY(-50%); position:absolute; }
  .port:hover, .port.active { background:#DCF8C6; border-color:#075E54; box-shadow:0 0 0 4px rgba(7,94,84,0.14); }
  .port.out:hover, .port.out.active, .port.in:hover, .port.in.active { transform: translateY(-50%) scale(1.18); }

  .edge-path { fill:none; stroke:#B5BAB6; stroke-width:1.6; stroke-dasharray:6 6; transition: stroke .14s, stroke-width .14s; }
  .edge-path:hover, .edge-path.hover { stroke:#6B807C; stroke-width:2; cursor:pointer; }
  .edge-path.no { stroke:#E0A39A; }
  .edge-path.no:hover, .edge-path.no.hover { stroke:#C56B4F; }
  .edge-path.preview { stroke:#075E54; stroke-dasharray:5 4; stroke-width:2; pointer-events:none; }
  /* invisible wider hit-target overlay for easier clicking */
  .edge-hit { fill:none; stroke:transparent; stroke-width:14; cursor:pointer; pointer-events:stroke; }

  /* node action bar (pencil + delete) shown when a node is selected */
  .node-actions {
    position:absolute; transform: translateX(-50%);
    background:#fff; border:1px solid #E5DFD0; border-radius:10px;
    box-shadow: 0 6px 16px -6px rgba(11,31,28,0.18), 0 1px 2px rgba(11,31,28,0.06);
    padding:4px; display:flex; gap:2px;
    animation: popIn .12s ease;
    z-index:25;
  }
  .node-actions button { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; color:#3A5A55; background:transparent; border:0; cursor:pointer; transition: background .12s, color .12s; }
  .node-actions button:hover { background:#F5F3EC; color:#075E54; }
  .node-actions button.danger:hover { background:#FBE9E7; color:#C56B4F; }

  /* minimap */
  .minimap { position:absolute; right:16px; bottom:64px; width:170px; height:110px; background:#0E2A26; border:1px solid #1F3F3A; border-radius:8px; box-shadow: 0 4px 14px rgba(0,0,0,0.35); overflow:hidden; z-index:20; }
  .minimap svg { width:100%; height:100%; display:block; }
  .minimap .mm-node { fill:#25D366; stroke:#075E54; stroke-width:1; opacity:0.85; }
  .minimap .mm-view { fill:rgba(37,211,102,0.18); stroke:#25D366; stroke-width:1; stroke-dasharray:3 3; cursor:move; }

  /* edge delete popup */
  .edge-popup {
    position:absolute; transform: translate(-50%, -100%);
    background:#fff; border:1px solid #E5DFD0; border-radius:10px;
    box-shadow: 0 6px 16px -6px rgba(11,31,28,0.18), 0 1px 2px rgba(11,31,28,0.06);
    padding:6px 12px; display:flex; align-items:center; gap:6px;
    font-size:13px; color:#3A5A55; cursor:pointer;
    animation: popIn .12s ease;
  }
  .edge-popup:hover { color:#C56B4F; }
  .edge-popup::after {
    content:''; position:absolute; left:50%; bottom:-6px; transform: translateX(-50%) rotate(45deg);
    width:10px; height:10px; background:#fff; border-right:1px solid #E5DFD0; border-bottom:1px solid #E5DFD0;
  }
  @keyframes popIn { from { opacity:0; transform: translate(-50%, calc(-100% + 6px)); } to { opacity:1; transform: translate(-50%, -100%); } }

  .pal-card { transition: background .14s, border-color .14s; }
  .pal-card:hover { background:#F5F3EC; border-color:#075E54; }

  .ins-panel { animation: slideIn .22s ease; }
  @keyframes slideIn { from { transform: translateX(20px); opacity:0; } to { transform: translateX(0); opacity:1; } }

  .bubble { background:#FBFAF6; border:1px solid #E5DFD0; border-radius:10px 10px 10px 3px; padding:7px 9px; font-size:11.5px; line-height:1.45; color:#0B1F1C; }
  .bubble.wa { background:#E7FFDB; border-color:#C6E8B5; border-radius:10px 10px 3px 10px; }

  kbd { font-family:'JetBrains Mono', monospace; font-size:9.5px; padding:1px 5px; border:1px solid #E5DFD0; border-radius:4px; background:#FBFAF6; color:#1F4540; }

  ::-webkit-scrollbar { width:6px; height:6px; }
  ::-webkit-scrollbar-thumb { background: rgba(11,31,28,0.18); border-radius:999px; }
  ::-webkit-scrollbar-thumb:hover { background: rgba(11,31,28,0.32); }

  .chip-icon { width:30px; height:30px; border-radius:9px; display:grid; place-items:center; flex-shrink:0; }
  .chip-icon-sm { width:22px; height:22px; border-radius:6px; display:grid; place-items:center; flex-shrink:0; }
/* === user-settings-index === */
.set-tab { display:flex; align-items:center; gap:9px; padding:9px 11px; border-radius:10px; font-size:12.5px; color:#3A5A55; cursor:pointer; transition: background .12s; }
  .set-tab:hover { background:#F5F3EC; }
  .set-tab.active { background:#075E54; color:#FBFAF6; font-weight:600; }
  .toggle { position:relative; display:inline-block; width:36px; height:20px; }
  .toggle input { opacity:0; width:0; height:0; }
  .toggle .track { position:absolute; inset:0; background:#E5DFD0; border-radius:999px; transition:.18s; }
  .toggle .thumb { position:absolute; top:2px; left:2px; width:16px; height:16px; background:#FBFAF6; border-radius:50%; transition:.18s; box-shadow: 0 1px 3px rgba(11,31,28,.2); }
  .toggle input:checked ~ .track { background:#075E54; }
  .toggle input:checked ~ .thumb { left:18px; }
/* === user-shopify-dashboard === */
/* shop hero search backdrop (subtle grid) */
  .shop-hero {
    background:
      linear-gradient(0deg, rgba(255,255,255,0.6), rgba(255,255,255,0.6)),
      repeating-linear-gradient(0deg,  rgba(11,31,28,0.05) 0 1px, transparent 1px 22px),
      repeating-linear-gradient(90deg, rgba(11,31,28,0.05) 0 1px, transparent 1px 22px);
  }
  /* product card image area */
  .prod-img { background: linear-gradient(135deg, #F5F3EC 0%, #EFEBE0 100%); }
  /* sales-trend cell tints */
  .delta-up   { color:#0E8A3E; }
  .delta-down { color:#C56B4F; }
  /* tabs */
  .ig-tab { color:#3A5A55; padding:10px 14px; border-radius:10px; font-size:13px; display:flex; align-items:center; gap:10px; transition: background .12s; }
  .ig-tab:hover { background:#F5F3EC; }
  .ig-tab.active { background:#075E54; color:#FBFAF6; font-weight:600; }
  .ig-tab.active .count { background: rgba(255,255,255,0.18); color:#fff; }
  .count { background:#F5F3EC; color:#3A5A55; padding:1px 7px; border-radius:999px; font-size:10px; font-family: 'JetBrains Mono', monospace; margin-left:auto; }
/* === user-team-inbox-index === */
.ti-frame { height: calc(100vh - 64px); display:grid; grid-template-columns: 200px 290px 1fr 320px; }
  .ti-frame.no-contact { grid-template-columns: 200px 290px 1fr 0; }
  .ti-frame.no-contact .ti-contact { display:none; }
  .ti-col   { height: 100%; min-height: 0; display: flex; flex-direction: column; }

  /* ── Mobile / tablet stacking ────────────────────────────────────
     The 4-column desktop layout doesn't fit below ~1024px. Strategy:
     - tablet (768–1023px): collapse to 2 columns — drop the team-nav
       sidebar (column 1), keep queue + thread, contact panel becomes
       an overlay drawer.
     - phone (<768px): one column at a time. Queue is the default view;
       opening a conversation slides the thread on top via the
       `mobile-thread-open` class on #ti-frame; closing it returns to
       the queue. The contact panel is always an overlay.
     The JS toggles `mobile-thread-open` when the user picks a
     conversation, and back off when they tap the back chevron. */
  @media (max-width: 1023.98px) {
    .ti-frame { grid-template-columns: 280px 1fr; }
    .ti-frame.no-contact { grid-template-columns: 280px 1fr; }
    .ti-frame > aside:first-child { display: none; }              /* hide team-nav sidebar */
    .ti-contact { position: fixed; right: 0; top: 0; bottom: 0; width: min(360px, 92vw); z-index: 40; box-shadow: -8px 0 24px rgba(0,0,0,0.08); }
    .ti-frame:not(.no-contact) .ti-contact { display: flex !important; }
    .ti-frame.no-contact .ti-contact { display: none !important; }
  }
  @media (max-width: 767.98px) {
    .ti-frame { grid-template-columns: 1fr; height: calc(100vh - 56px); }
    .ti-frame > aside:first-child { display: none; }
    .ti-frame > aside.ti-col:nth-child(2) { display: flex; }       /* queue */
    .ti-frame > main.ti-col              { display: none; }        /* thread hidden by default */
    .ti-frame.mobile-thread-open > aside.ti-col:nth-child(2) { display: none; }
    .ti-frame.mobile-thread-open > main.ti-col              { display: flex; }
    .ti-contact { width: 100vw; }
  }
  .mobile-back { display: none; }
  @media (max-width: 767.98px) {
    .mobile-back { display: inline-flex; }
  }

  /* team nav (column 1) */
  .team-nav-btn { display:flex; align-items:center; gap:9px; padding:9px 11px; border-radius:10px; font-size:12.5px; color:#3A5A55; cursor:pointer; transition: background .12s; }
  .team-nav-btn:hover  { background:#F5F3EC; }
  .team-nav-btn.active { background:#075E54; color:#FBFAF6; font-weight:600; }
  .team-nav-btn .dot   { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
  .team-nav-btn .ct    { margin-left:auto; font-size:10.5px; font-family:'JetBrains Mono', monospace; padding:1px 6px; border-radius:999px; background:#F5F3EC; color:#3A5A55; }
  .team-nav-btn.active .ct { background:rgba(255,255,255,0.18); color:#fff; }

  .ti-conv:hover  { background:#F5F3EC; }
  .ti-conv.active { background:#FBFAF6; box-shadow: inset 3px 0 0 #075E54; }

  .chat-paper {
    background-color: #ECE5DD;
    background-image:
      radial-gradient(rgba(11,31,28,0.04) 1px, transparent 1px),
      radial-gradient(rgba(11,31,28,0.03) 1px, transparent 1px);
    background-size: 18px 18px, 26px 26px;
    background-position: 0 0, 9px 13px;
  }
  .bubble-in   { background:#FBFAF6; border:1px solid #E5DFD0; border-radius: 14px 14px 14px 4px; }
  .bubble-out  { background:#E7FFDB; border:1px solid #C6E8B5; border-radius: 14px 14px 4px 14px; }
  .bubble-note { background:#FFF8DB; border:1px solid #F2E2A8; border-radius: 12px; }

  .ti-tab { padding: 6px 11px; border-radius: 999px; font-size: 11.5px; font-weight: 600; color:#3A5A55; white-space: nowrap; }
  .ti-tab:hover { background:#F5F3EC; }
  .ti-tab.active { background:#075E54; color:#FBFAF6; }
  .ti-tab .badge { background:#F5F3EC; color:#3A5A55; padding:1px 5px; border-radius:999px; font-size:9.5px; font-family:'JetBrains Mono', monospace; margin-left:3px; }
  .ti-tab.active .badge { background:rgba(255,255,255,0.18); color:#fff; }

  .pill          { display:inline-flex; align-items:center; gap:4px; padding:1px 7px; border-radius:999px; font-size:9.5px; font-family:'JetBrains Mono', monospace; text-transform:uppercase; letter-spacing:0.04em; border:1px solid; font-weight:600; }
  .pill-open     { background:#DCF8C6; color:#075E54; border-color:rgba(7,94,84,0.25); }
  .pill-pending  { background:#FFF4E0; color:#7B5A14; border-color:rgba(228,165,71,0.35); }
  .pill-resolved { background:#E0EBF7; color:#13478A; border-color:rgba(19,71,138,0.25); }
  .pill-snoozed  { background:#F3E9FF; color:#5B3D8A; border-color:rgba(91,61,138,0.25); }
  .pill-urgent   { background:#FBE9E7; color:#A1431F; border-color:rgba(232,122,93,0.4); }

  .tag { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:999px; font-size:10.5px; font-family:'JetBrains Mono', monospace; border:1px solid; }

  .av-1 { background: linear-gradient(135deg, #128C7E, #075E54); }
  .av-2 { background: linear-gradient(135deg, #E5A04E, #E87A5D); }
  .av-3 { background: linear-gradient(135deg, #5B3D8A, #13478A); }
  .av-4 { background: linear-gradient(135deg, #25D366, #128C7E); }
  .av-5 { background: linear-gradient(135deg, #6B807C, #1F4540); }
  .av-6 { background: linear-gradient(135deg, #E87A5D, #A1431F); }

  ::-webkit-scrollbar { width: 6px; height: 6px; }
  ::-webkit-scrollbar-thumb { background: rgba(11,31,28,0.18); border-radius: 999px; }

  /* dropdown */
  .menu { position:absolute; top:calc(100% + 6px); right:0; min-width:200px; background:#FBFAF6; border:1px solid #E5DFD0; border-radius:10px; box-shadow: 0 8px 24px -10px rgba(11,31,28,0.18); padding:4px; z-index:50; }
  .menu button { width:100%; text-align:left; padding:7px 10px; border-radius:8px; font-size:12px; display:flex; align-items:center; gap:8px; }
  .menu button:hover { background:#F5F3EC; }

  /* small toast */
  #toast { position:fixed; left:50%; bottom:24px; transform:translateX(-50%); background:#0B1F1C; color:#FBFAF6; padding:8px 14px; border-radius:999px; font-size:12px; font-weight:500; box-shadow: 0 12px 28px -10px rgba(0,0,0,0.4); opacity:0; pointer-events:none; transition: opacity .18s, transform .18s; z-index:60; }
  #toast.show { opacity:1; transform: translate(-50%, -4px); }
/* === user-woocommerce-dashboard === */
/* shop hero search backdrop (subtle grid) */
  .shop-hero {
    background:
      linear-gradient(0deg, rgba(255,255,255,0.6), rgba(255,255,255,0.6)),
      repeating-linear-gradient(0deg,  rgba(11,31,28,0.05) 0 1px, transparent 1px 22px),
      repeating-linear-gradient(90deg, rgba(11,31,28,0.05) 0 1px, transparent 1px 22px);
  }
  /* product card image area */
  .prod-img { background: linear-gradient(135deg, #F5F3EC 0%, #EFEBE0 100%); }
  /* sales-trend cell tints */
  .delta-up   { color:#0E8A3E; }
  .delta-down { color:#C56B4F; }
  /* tabs — WooCommerce purple */
  .ig-tab { color:#3A5A55; padding:10px 14px; border-radius:10px; font-size:13px; display:flex; align-items:center; gap:10px; transition: background .12s; }
  .ig-tab:hover { background:#F3ECFA; }
  .ig-tab.active { background:#7F54B3; color:#FBFAF6; font-weight:600; }
  .ig-tab.active .count { background: rgba(255,255,255,0.18); color:#fff; }
  .count { background:#F3ECFA; color:#5B3D8A; padding:1px 7px; border-radius:999px; font-size:10px; font-family: 'JetBrains Mono', monospace; margin-left:auto; }
  /* WooCommerce purple accents */
  .woo-accent { color:#7F54B3; }
  .woo-bg     { background:#7F54B3; }
  .woo-bg:hover { background:#6E47A0; }
  .woo-tint   { background:#F3ECFA; color:#5B3D8A; border-color:rgba(127,84,179,0.3); }

/* Final third-party form resets. Keep Tom Select's internal search input
   from inheriting global input borders/backgrounds in themed forms. */
html .ts-control > input,
html .ts-control > input[type="text"],
html .ts-control > input:not([type]) {
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
}
html[data-theme="dark"] .ts-control > input,
html[data-theme="dark"] .ts-control > input[type="text"],
html[data-theme="dark"] .ts-control > input:not([type]) {
  background: transparent !important;
  color: #F0EBE0 !important;
  border: 0 !important;
}
html[data-theme="doodle"] .ts-control > input,
html[data-theme="doodle"] .ts-control > input[type="text"],
html[data-theme="doodle"] .ts-control > input:not([type]) {
  background: transparent !important;
  color: var(--d-ink) !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* ──────────────────────────────────────────────────────────────────
 * Build-with-AI button — shiny light-green pill with a slice of
 * emerald that runs around the border like a train. Used on the
 * /templates/create header (and reusable anywhere else the same
 * "AI shortcut" treatment fits).
 *
 * Layering trick:
 *   ::before — 200% wide/tall conic gradient that rotates; only a
 *              ~120° arc is colored so it reads as a moving comet.
 *   ::after  — inset 2px with the actual fill; sits above ::before
 *              and masks all but the 2px gap around the edge.
 *   content  — default z-index, sits above both.
 * The button must be `position: relative; isolate; overflow-hidden`
 * (already on the markup) for the stacking context to behave.
 * ─────────────────────────────────────────────────────────────── */
.btn-ai-shine {
  color: #075E54;
  background: transparent;
  box-shadow: 0 1px 2px rgba(11,31,28,0.10), 0 0 0 1px rgba(11,31,28,0.04);
}
.btn-ai-shine::before {
  content: "";
  position: absolute;
  left: -50%;
  top: -50%;
  width: 200%;
  height: 200%;
  z-index: -2;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    transparent 240deg,
    #16A34A 300deg,
    #4ADE80 330deg,
    #BBF7D0 345deg,
    transparent 360deg
  );
  animation: btn-ai-spin 2.4s linear infinite;
}
.btn-ai-shine::after {
  content: "";
  position: absolute;
  inset: 2px;
  z-index: -1;
  border-radius: 9999px;
  background: linear-gradient(135deg, #ECFDF5 0%, #D1FAE5 45%, #BBF7D0 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
}
.btn-ai-shine:hover::after {
  background: linear-gradient(135deg, #D1FAE5 0%, #BBF7D0 45%, #86EFAC 100%);
}
@keyframes btn-ai-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .btn-ai-shine::before { animation: none; }
}

/* ── ADMIN SIDEBAR COLLAPSE ─────────────────────────────────────────
   Toggle button is #admin-sidebar-toggle; state is persisted in the
   `wa_admin_sidebar` cookie and rendered onto <html> server-side
   (see components/layouts/admin.blade.php) so the rail never flashes
   open on navigation. JS lives in resources/js/admin-sidebar.js. */
.admin-shell { transition: grid-template-columns .18s ease; }

/* The collapse rail is a DESKTOP-only affordance: it relies on the shell
   being a CSS grid (md:grid) to narrow to 76px. Below md the sidebar is an
   off-canvas drawer (flex), so applying the collapsed class there would hide
   the labels WITHOUT narrowing the width → a broken full-width icon-only
   drawer. Gate the whole collapse behind md (768px). */
@media (min-width: 768px) {
  /* Define the shell columns explicitly rather than relying on the Tailwind
     arbitrary utility `md:grid-cols-[260px_minmax(0,1fr)]`, which the JIT
     scanner doesn't always emit (commas/parens in the arbitrary value) —
     when it's missing the grid has no template and the sidebar layout breaks.
     Expanded = 260px rail; the collapsed override below narrows it to 76px. */
  .admin-shell { grid-template-columns: 260px minmax(0, 1fr); }
  html.admin-sidebar-collapsed .admin-shell { grid-template-columns: 76px minmax(0, 1fr) !important; }
  /* The <aside> carries a fixed w-[260px] for the mobile drawer; on desktop it
     must FILL its grid column instead, otherwise it stays 260px wide and the
     collapse (which only narrows the grid track to 76px) does nothing visually.
     width:auto + the grid's default stretch makes the rail follow the column. */
  #admin-sidebar { width: auto !important; }

  /* Collapsed = icons only: drop every textual element */
  html.admin-sidebar-collapsed #admin-sidebar-root .js-sb-collapse-hide,
  html.admin-sidebar-collapsed #admin-sidebar-root nav span,
  html.admin-sidebar-collapsed #admin-sidebar-root [data-admin-chevron],
  html.admin-sidebar-collapsed #admin-sidebar-root .admin-nav-children { display: none !important; }

  /* Centre the icons once their labels are gone */
  html.admin-sidebar-collapsed #admin-sidebar-root nav a,
  html.admin-sidebar-collapsed #admin-sidebar-root nav button[data-admin-toggle],
  html.admin-sidebar-collapsed #admin-sidebar-root .admin-footer-link,
  html.admin-sidebar-collapsed #admin-sidebar-root .admin-brand-header {
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
    gap: 0;
  }

  /* Flip the collapse glyph to point "open" when collapsed */
  html.admin-sidebar-collapsed #admin-sidebar-toggle svg { transform: rotate(180deg); }

  /* Collapsed rail: the 14px nav glyphs look lost in a 76px column —
     bump icons up so the rail reads as a proper icon nav. */
  html.admin-sidebar-collapsed #admin-sidebar-root nav a svg,
  html.admin-sidebar-collapsed #admin-sidebar-root nav button[data-admin-toggle] svg {
    width: 20px !important;
    height: 20px !important;
  }
  html.admin-sidebar-collapsed #admin-sidebar-root nav a,
  html.admin-sidebar-collapsed #admin-sidebar-root nav button[data-admin-toggle] {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  html.admin-sidebar-collapsed #admin-sidebar-root .admin-footer-link svg { width: 18px !important; height: 18px !important; }
  html.admin-sidebar-collapsed #admin-sidebar-toggle svg { width: 18px !important; height: 18px !important; }
}

/* Sticky save bar for long admin forms — keeps the primary action
   reachable without scrolling back to the top action row. Visual
   styling uses existing utility classes on the element itself; only
   the sticky positioning lives here. */
.admin-save-bar { position: sticky; bottom: 16px; z-index: 20; }

