/* ─────────────────────────────────────────────────────────────────────────────
   app-missing-utilities.css  —  INTERIM SUPPLEMENT (loaded after app.css)

   public/tailwind.min.css is a purged/JIT snapshot frozen at an earlier build,
   so utilities introduced in newer code are absent and render nothing. This file
   hand-fills ONLY the genuinely-missing, NON-fragile utilities (verified absent),
   covering: spacing/sizing, simple borders, native file-input button styling,
   and a few simple variant utilities.

   Deliberately NOT included here (left to a proper Tailwind rebuild for accuracy):
   palette colors (text-/bg-/border-*-NNN), gradients (from-/to-/bg-gradient-*),
   and ring-* (these need exact RGBs / Tailwind's --tw-* variable machinery).

   Once tailwind.min.css is rebuilt with full coverage, this whole file can be
   deleted and its <link> removed from includes/head.php.
   See /home/coachnexa/output/tailwind-rebuild/ for the rebuild kit.
   ───────────────────────────────────────────────────────────────────────────── */

/* ── Spacing ───────────────────────────────────────────────────────────────── */
.p-0   { padding: 0; }
.p-1   { padding: 0.25rem; }
.pb-1  { padding-bottom: 0.25rem; }
.pb-4  { padding-bottom: 1rem; }
.pb-8  { padding-bottom: 2rem; }
.pl-3  { padding-left: 0.75rem; }
.pl-4  { padding-left: 1rem; }
.pl-5  { padding-left: 1.25rem; }
.pr-2  { padding-right: 0.5rem; }
.pr-3  { padding-right: 0.75rem; }
.pr-4  { padding-right: 1rem; }
.pr-12 { padding-right: 3rem; }
.ml-6  { margin-left: 1.5rem; }
.gap-0 { gap: 0; }

/* ── Sizing ────────────────────────────────────────────────────────────────── */
.w-3        { width: 0.75rem; }
.w-28       { width: 7rem; }
.w-36       { width: 9rem; }
.w-fit      { width: fit-content; }
.h-28       { height: 7rem; }
.min-h-0    { min-height: 0px; }
.max-w-full { max-width: 100%; }
.top-1      { top: 0.25rem; }
.bottom-1   { bottom: 0.25rem; }

/* ── Borders & misc structural ───────────────────────────────────────────────── */
.border-t-2        { border-top-width: 2px; }
.border-b-2        { border-bottom-width: 2px; }
.border-b-0        { border-bottom-width: 0px; }
.border-none       { border-style: none; }
.border-transparent{ border-color: transparent; }
.bg-transparent    { background-color: transparent; }
.font-extrabold    { font-weight: 800; }

/* ── Simple state variants ───────────────────────────────────────────────────── */
.last\:border-0:last-child            { border-width: 0px; }
.last\:mb-0:last-child                { margin-bottom: 0px; }
.disabled\:cursor-not-allowed:disabled{ cursor: not-allowed; }
.disabled\:opacity-40:disabled        { opacity: 0.4; }
.disabled\:opacity-70:disabled        { opacity: 0.7; }

/* ── Native file-input button (Tailwind's file: variant) ──────────────────────
   Styles the ::file-selector-button of <input type="file">. Used by the
   signature + UPI-QR upload fields, which were otherwise unstyled.            */
.file\:rounded-lg::file-selector-button   { border-radius: 0.5rem; }
.file\:border-0::file-selector-button     { border-width: 0px; }
.file\:text-xs::file-selector-button      { font-size: 0.75rem; line-height: 1rem; }
.file\:font-bold::file-selector-button    { font-weight: 700; }
.file\:mr-2::file-selector-button         { margin-right: 0.5rem; }
.file\:mr-3::file-selector-button         { margin-right: 0.75rem; }
.file\:py-1::file-selector-button         { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.file\:py-1\.5::file-selector-button      { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.file\:py-2::file-selector-button         { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.file\:px-2\.5::file-selector-button      { padding-left: 0.625rem; padding-right: 0.625rem; }
.file\:px-3::file-selector-button         { padding-left: 0.75rem; padding-right: 0.75rem; }
.file\:px-4::file-selector-button         { padding-left: 1rem; padding-right: 1rem; }
.file\:bg-brand-50::file-selector-button  { background-color: var(--b-f6fbfb); }
.file\:text-brand-700::file-selector-button { color: var(--c-0b5f5a); }
.file\:bg-slate-100::file-selector-button { background-color: var(--b-f1f5f9); }
.file\:text-slate-600::file-selector-button { color: var(--c-475569); }
.hover\:file\:bg-brand-100:hover::file-selector-button  { background-color: var(--b-d9eeec); }
.hover\:file\:bg-slate-200:hover::file-selector-button  { background-color: var(--c-e2e8f0); }

/* ── Colored palette + gradient utilities (auto-filled; absent from purged tailwind.min.css).
   Palette validated 100%% vs the site's own compiled values. Paired dark overrides in theme.css. ── */
.bg-amber-200{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity,1))}
.bg-amber-300{--tw-bg-opacity:1;background-color:rgb(252 211 77/var(--tw-bg-opacity,1))}
.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}
.bg-amber-700{--tw-bg-opacity:1;background-color:rgb(180 83 9/var(--tw-bg-opacity,1))}
.bg-amber-800{--tw-bg-opacity:1;background-color:rgb(146 64 14/var(--tw-bg-opacity,1))}
.bg-blue-200{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}
.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}
.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}
.bg-brand-700{--tw-bg-opacity:1;background-color:rgb(11 95 90/var(--tw-bg-opacity,1))}
.bg-emerald-200{--tw-bg-opacity:1;background-color:rgb(167 243 208/var(--tw-bg-opacity,1))}
.bg-emerald-700{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity,1))}
.bg-emerald-800{--tw-bg-opacity:1;background-color:rgb(6 95 70/var(--tw-bg-opacity,1))}
.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}
.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}
.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}
.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}
.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}
.bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}
.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}
.bg-indigo-50{--tw-bg-opacity:1;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}
.bg-indigo-500{--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}
.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}
.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}
.bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}
.bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}
.bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}
.bg-pink-50{--tw-bg-opacity:1;background-color:rgb(253 242 248/var(--tw-bg-opacity,1))}
.bg-pink-500{--tw-bg-opacity:1;background-color:rgb(236 72 153/var(--tw-bg-opacity,1))}
.bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}
.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}
.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}
.bg-red-200{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}
.bg-red-300{--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity,1))}
.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}
.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}
.bg-rose-100{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity,1))}
.bg-rose-50{--tw-bg-opacity:1;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}
.bg-rose-500{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}
.bg-rose-600{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity,1))}
.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}
.bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}
.bg-teal-50{--tw-bg-opacity:1;background-color:rgb(240 253 250/var(--tw-bg-opacity,1))}
.bg-teal-500{--tw-bg-opacity:1;background-color:rgb(20 184 166/var(--tw-bg-opacity,1))}
.bg-teal-700{--tw-bg-opacity:1;background-color:rgb(15 118 110/var(--tw-bg-opacity,1))}
.bg-violet-200{--tw-bg-opacity:1;background-color:rgb(221 214 254/var(--tw-bg-opacity,1))}
.bg-violet-700{--tw-bg-opacity:1;background-color:rgb(109 40 217/var(--tw-bg-opacity,1))}
.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity,1))}
.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}
.border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}
.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}
.border-blue-100{--tw-border-opacity:1;border-color:rgb(219 234 254/var(--tw-border-opacity,1))}
.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}
.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}
.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}
.border-brand-300{--tw-border-opacity:1;border-color:rgb(124 185 180/var(--tw-border-opacity,1))}
.border-brand-400{--tw-border-opacity:1;border-color:rgb(69 152 145/var(--tw-border-opacity,1))}
.border-brand-600{--tw-border-opacity:1;border-color:rgb(11 95 90/var(--tw-border-opacity,1))}
.border-brand-700{--tw-border-opacity:1;border-color:rgb(11 95 90/var(--tw-border-opacity,1))}
.border-emerald-100{--tw-border-opacity:1;border-color:rgb(209 250 229/var(--tw-border-opacity,1))}
.border-emerald-500{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}
.border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}
.border-indigo-100{--tw-border-opacity:1;border-color:rgb(224 231 255/var(--tw-border-opacity,1))}
.border-indigo-200{--tw-border-opacity:1;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}
.border-indigo-300{--tw-border-opacity:1;border-color:rgb(165 180 252/var(--tw-border-opacity,1))}
.border-indigo-500{--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}
.border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}
.border-orange-300{--tw-border-opacity:1;border-color:rgb(253 186 116/var(--tw-border-opacity,1))}
.border-pink-200{--tw-border-opacity:1;border-color:rgb(251 207 232/var(--tw-border-opacity,1))}
.border-pink-300{--tw-border-opacity:1;border-color:rgb(249 168 212/var(--tw-border-opacity,1))}
.border-pink-400{--tw-border-opacity:1;border-color:rgb(244 114 182/var(--tw-border-opacity,1))}
.border-pink-500{--tw-border-opacity:1;border-color:rgb(236 72 153/var(--tw-border-opacity,1))}
.border-purple-100{--tw-border-opacity:1;border-color:rgb(243 232 255/var(--tw-border-opacity,1))}
.border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}
.border-purple-300{--tw-border-opacity:1;border-color:rgb(216 180 254/var(--tw-border-opacity,1))}
.border-purple-400{--tw-border-opacity:1;border-color:rgb(192 132 252/var(--tw-border-opacity,1))}
.border-purple-500{--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}
.border-rose-200{--tw-border-opacity:1;border-color:rgb(254 205 211/var(--tw-border-opacity,1))}
.border-rose-300{--tw-border-opacity:1;border-color:rgb(253 164 175/var(--tw-border-opacity,1))}
.border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}
.border-teal-100{--tw-border-opacity:1;border-color:rgb(204 251 241/var(--tw-border-opacity,1))}
.border-violet-300{--tw-border-opacity:1;border-color:rgb(196 181 253/var(--tw-border-opacity,1))}
.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}
.from-amber-50{--tw-gradient-from:#fffbeb var(--tw-gradient-from-position);--tw-gradient-to:rgb(255 251 235/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.from-brand-50{--tw-gradient-from:#f6fbfb var(--tw-gradient-from-position);--tw-gradient-to:rgb(246 251 251/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.from-brand-900{--tw-gradient-from:#071b2d var(--tw-gradient-from-position);--tw-gradient-to:rgb(7 27 45/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.from-emerald-50{--tw-gradient-from:#ecfdf5 var(--tw-gradient-from-position);--tw-gradient-to:rgb(236 253 245/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}
.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}
.text-blue-100{--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}
.text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}
.text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}
.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}
.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}
.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}
.text-brand-300{--tw-text-opacity:1;color:rgb(124 185 180/var(--tw-text-opacity,1))}
.text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}
.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}
.text-emerald-900{--tw-text-opacity:1;color:rgb(6 78 59/var(--tw-text-opacity,1))}
.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}
.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}
.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}
.text-indigo-300{--tw-text-opacity:1;color:rgb(165 180 252/var(--tw-text-opacity,1))}
.text-indigo-500{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity,1))}
.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}
.text-indigo-700{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity,1))}
.text-indigo-800{--tw-text-opacity:1;color:rgb(55 48 163/var(--tw-text-opacity,1))}
.text-indigo-900{--tw-text-opacity:1;color:rgb(49 46 129/var(--tw-text-opacity,1))}
.text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}
.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}
.text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}
.text-orange-900{--tw-text-opacity:1;color:rgb(124 45 18/var(--tw-text-opacity,1))}
.text-pink-800{--tw-text-opacity:1;color:rgb(157 23 77/var(--tw-text-opacity,1))}
.text-pink-900{--tw-text-opacity:1;color:rgb(131 24 67/var(--tw-text-opacity,1))}
.text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}
.text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}
.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}
.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}
.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168/var(--tw-text-opacity,1))}
.text-purple-900{--tw-text-opacity:1;color:rgb(88 28 135/var(--tw-text-opacity,1))}
.text-rose-300{--tw-text-opacity:1;color:rgb(253 164 175/var(--tw-text-opacity,1))}
.text-rose-400{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity,1))}
.text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity,1))}
.text-rose-700{--tw-text-opacity:1;color:rgb(190 18 60/var(--tw-text-opacity,1))}
.text-rose-800{--tw-text-opacity:1;color:rgb(159 18 57/var(--tw-text-opacity,1))}
.text-rose-900{--tw-text-opacity:1;color:rgb(136 19 55/var(--tw-text-opacity,1))}
.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}
.text-sky-700{--tw-text-opacity:1;color:rgb(3 105 161/var(--tw-text-opacity,1))}
.text-sky-800{--tw-text-opacity:1;color:rgb(7 89 133/var(--tw-text-opacity,1))}
.text-sky-900{--tw-text-opacity:1;color:rgb(12 74 110/var(--tw-text-opacity,1))}
.text-teal-700{--tw-text-opacity:1;color:rgb(15 118 110/var(--tw-text-opacity,1))}
.text-teal-800{--tw-text-opacity:1;color:rgb(17 94 89/var(--tw-text-opacity,1))}
.text-teal-900{--tw-text-opacity:1;color:rgb(19 78 74/var(--tw-text-opacity,1))}
.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}
.to-brand-800{--tw-gradient-to:#123f4a var(--tw-gradient-to-position)}
.to-emerald-100{--tw-gradient-to:#d1fae5 var(--tw-gradient-to-position)}
.to-emerald-50{--tw-gradient-to:#ecfdf5 var(--tw-gradient-to-position)}
.to-violet-50{--tw-gradient-to:#f5f3ff var(--tw-gradient-to-position)}
.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}

/* ── Neutral grays + ring colors (auto-filled remainder; ring widths .ring/.ring-2 are compiled). ── */
.bg-amber-50\/50{background-color:rgb(255 251 235/0.5)}
.bg-slate-300{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}
.bg-slate-400{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity,1))}
.bg-slate-50\/50{background-color:rgb(248 250 252/0.5)}
.bg-slate-50\/60{background-color:rgb(248 250 252/0.6)}
.bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}
.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}
.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}
.border-slate-400{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity,1))}
.divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(241 245 249/var(--tw-divide-opacity,1))}
.divide-slate-50>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(248 250 252/var(--tw-divide-opacity,1))}
.placeholder-slate-400::-moz-placeholder{color:rgb(148 163 184)}
.placeholder-slate-400::placeholder{color:rgb(148 163 184)}
.ring-amber-100{--tw-ring-opacity:1;--tw-ring-color:rgb(254 243 199/var(--tw-ring-opacity,1))}
.ring-amber-200{--tw-ring-opacity:1;--tw-ring-color:rgb(253 230 138/var(--tw-ring-opacity,1))}
.ring-amber-400{--tw-ring-opacity:1;--tw-ring-color:rgb(251 191 36/var(--tw-ring-opacity,1))}
.ring-blue-400{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}
.ring-brand-300{--tw-ring-opacity:1;--tw-ring-color:rgb(124 185 180/var(--tw-ring-opacity,1))}
.ring-brand-400{--tw-ring-opacity:1;--tw-ring-color:rgb(69 152 145/var(--tw-ring-opacity,1))}
.ring-emerald-400{--tw-ring-opacity:1;--tw-ring-color:rgb(52 211 153/var(--tw-ring-opacity,1))}
.ring-indigo-400{--tw-ring-opacity:1;--tw-ring-color:rgb(129 140 248/var(--tw-ring-opacity,1))}
.ring-pink-400{--tw-ring-opacity:1;--tw-ring-color:rgb(244 114 182/var(--tw-ring-opacity,1))}
.ring-purple-400{--tw-ring-opacity:1;--tw-ring-color:rgb(192 132 252/var(--tw-ring-opacity,1))}
.ring-red-200{--tw-ring-opacity:1;--tw-ring-color:rgb(254 202 202/var(--tw-ring-opacity,1))}
.ring-red-400{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}

/* Palette utilities used by pages that load only this file and Tailwind. */
.text-rose-600{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity,1))}
.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}
.bg-violet-400{--tw-bg-opacity:1;background-color:rgb(167 139 250/var(--tw-bg-opacity,1))}
.bg-purple-400{--tw-bg-opacity:1;background-color:rgb(192 132 252/var(--tw-bg-opacity,1))}

/* Long links: wrap on a phone so press-and-hold can select them, stay on one line from sm up. */
.break-all{word-break:break-all}
.select-all{-webkit-user-select:all;user-select:all}
@media (min-width:640px){.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Popup height cap used by ~20 pages but missing from the compiled Tailwind: without it a long
   popup form grew past the screen with nothing to scroll. dvh follows the phone's visible area.
   Scoped to popups so in-page cards that happen to carry the class keep their current size. */
.fixed.inset-0 > .max-h-\[92vh\]{max-height:92vh;max-height:92dvh}

/* On a phone a popup is a full-screen sheet rather than a floating card: the whole form
   scrolls inside it, and the page behind does not scroll along. */
@media (max-width:639px){
  .fixed.inset-0:has(> :is(.max-h-\[92vh\],.max-h-\[90vh\],.max-h-\[85vh\])){padding:0!important;align-items:stretch!important}
  .fixed.inset-0 > :is(.max-h-\[92vh\],.max-h-\[90vh\],.max-h-\[85vh\]){
    width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:0;overscroll-behavior:contain
  }
}

/* Quill's toolbar and editor are two boxes; round them as one field. */
.ql-toolbar.ql-snow{border-radius:.5rem .5rem 0 0}
.ql-toolbar.ql-snow + .ql-container.ql-snow{border-radius:0 0 .5rem .5rem}
