  /* Tailwind v3 JIT arbitrary values */
  .tw-max-w-1400 { max-width: 1400px; }
  .tw-max-w-260 { max-width: 260px; }
  .tw-max-h-540 { max-height: 540px; }
  .tw-max-h-640 { max-height: 640px; }
  .tw-w-115 { width: 115px; }
  .tw-text-10 { font-size: 10px; }
  .tw-text-11 { font-size: 11px; }
  .tw-leading-105 { line-height: 1.05; }
  .tw-tracking-008 { letter-spacing: 0.08em; }
  .tw-tracking-014 { letter-spacing: 0.14em; }
  .tw-shadow-subtle { box-shadow: 0 1px 0 rgba(0,0,0,0.02); }

  /* v3-only utilities */
  .shrink-0 { flex-shrink: 0; }
  .outline-none { outline: 2px solid transparent; outline-offset: 2px; }
  .bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
  .accent-stone-900 { accent-color: #1c1917; }

  /* v3 stone color palette (v2 uses warmGray/trueGray instead) */
  .bg-stone-50 { background-color: #fafaf9; }
  .bg-stone-100 { background-color: #f5f5f4; }
  .bg-stone-200 { background-color: #e7e5e4; }
  .bg-stone-900 { background-color: #1c1917; }
  .text-stone-300 { color: #d6d3d1; }
  .text-stone-400 { color: #a8a29e; }
  .text-stone-500 { color: #78716c; }
  .text-stone-600 { color: #57534e; }
  .text-stone-700 { color: #44403c; }
  .text-stone-800 { color: #292524; }
  .text-stone-900 { color: #1c1917; }
  .border-stone-100 { border-color: #f5f5f4; }
  .border-stone-200 { border-color: #e7e5e4; }
  .border-stone-300 { border-color: #d6d3d1; }
  .border-stone-400 { border-color: #a8a29e; }
  .hover\:border-stone-400:hover { border-color: #a8a29e; }
  .hover\:bg-stone-100:hover { background-color: #f5f5f4; }
  .hover\:bg-stone-50:hover { background-color: #fafaf9; }
  .hover\:text-stone-900:hover { color: #1c1917; }
  .focus\:border-stone-400:focus { border-color: #a8a29e; }

  /* v3 color aliases missing in v2 */
  .bg-emerald-50 { background-color: #ecfdf5; }
  .bg-emerald-100 { background-color: #d1fae5; }
  .bg-emerald-500 { background-color: #10b981; }
  .bg-emerald-600 { background-color: #059669; }
  .text-emerald-700 { color: #047857; }
  .text-emerald-800 { color: #065f46; }
  .text-emerald-900 { color: #064e3b; }
  .border-emerald-200 { border-color: #a7f3d0; }
  .bg-amber-50 { background-color: #fffbeb; }
  .bg-amber-100 { background-color: #fef3c7; }
  .bg-amber-600 { background-color: #d97706; }
  .text-amber-800 { color: #92400e; }
  .text-amber-900 { color: #78350f; }
  .border-amber-200 { border-color: #fde68a; }
  .bg-rose-50 { background-color: #fff1f2; }
  .bg-rose-100 { background-color: #ffe4e6; }
  .bg-rose-400 { background-color: #fb7185; }
  .bg-rose-600 { background-color: #e11d48; }
  .text-rose-700 { color: #be123c; }
  .text-rose-800 { color: #9f1239; }
  .text-rose-900 { color: #881337; }
  .border-rose-200 { border-color: #fecdd3; }
  .bg-sky-50 { background-color: #f0f9ff; }
  .bg-sky-500 { background-color: #0ea5e9; }
  .bg-sky-600 { background-color: #0284c7; }
  .text-sky-800 { color: #075985; }
  .text-sky-900 { color: #0c4a6e; }
  .border-sky-200 { border-color: #bae6fd; }
  .bg-indigo-50 { background-color: #eef2ff; }
  .bg-indigo-600 { background-color: #4f46e5; }
  .text-indigo-600 { color: #4f46e5; }
  .border-indigo-200 { border-color: #c7d2fe; }

  /* v3 rounded-2xl */
  .rounded-2xl { border-radius: 1rem; }

  :root { --page: #fafaf9; }
  html, body { font-family: 'Inter', ui-sans-serif, system-ui, sans-serif; background: var(--page); color: #1c1917; }
  .font-serif { font-family: 'Fraunces', ui-serif, Georgia, serif; font-optical-sizing: auto; letter-spacing: -0.015em; }
  input[type="date"] { color-scheme: light; }
  .scrollbar-thin::-webkit-scrollbar { width: 6px; height: 6px; }
  .scrollbar-thin::-webkit-scrollbar-thumb { background: #d6d3d1; border-radius: 3px; }
  .scrollbar-thin::-webkit-scrollbar-track { background: transparent; }
  .tab-active { background: #1c1917; color: white; border-color: #1c1917; }
  .tab-inactive { background: white; color: #44403c; border-color: #e7e5e4; }
  .tab-inactive:hover { border-color: #a8a29e; }
  .pane { display: none; }
  .pane.active { display: block; animation: fade 0.2s ease; }
  @keyframes fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
  .chip { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.1rem 0.5rem; font-size: 11px; font-weight: 600; border-radius: 4px; border: 1px solid; }
  .chip-stone { background:#f5f5f4; color:#44403c; border-color:#e7e5e4; }
  .chip-emerald { background:#ecfdf5; color:#047857; border-color:#a7f3d0; }
  .chip-amber { background:#fffbeb; color:#92400e; border-color:#fde68a; }
  .chip-rose { background:#fff1f2; color:#be123c; border-color:#fecdd3; }
  .chip-indigo { background:#eef2ff; color:#4338ca; border-color:#c7d2fe; }
  .chip-sky { background:#f0f9ff; color:#0369a1; border-color:#bae6fd; }
  .ms-dropdown { display: none; }
  .ms-dropdown.open { display: flex; }
  .interactive { cursor: pointer; transition: transform 0.12s ease, box-shadow 0.12s ease; }
  .interactive:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.06); }
  .row-interactive { cursor: pointer; }
  .row-interactive:hover { background: #f5f5f4; }
  .click-hint { opacity: 0; transition: opacity 0.15s; }
  .interactive:hover .click-hint { opacity: 1; }

  /* Drawer */
  .drawer-backdrop { position: fixed; inset: 0; background: rgba(28,25,23,0.4); z-index: 50; opacity: 0; pointer-events: none; transition: opacity 0.2s; }
  .drawer-backdrop.open { opacity: 1; pointer-events: auto; }
  .drawer { position: fixed; top: 0; right: 0; bottom: 0; width: 720px; max-width: 95vw; background: white; z-index: 51; transform: translateX(100%); transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1); display: flex; flex-direction: column; box-shadow: -8px 0 32px rgba(0,0,0,0.12); }
  .drawer.open { transform: translateX(0); }

  /* Toast */
  .toast-container { position: fixed; bottom: 24px; right: 24px; z-index: 100; display: flex; flex-direction: column; gap: 8px; }
  .toast { min-width: 320px; max-width: 420px; padding: 14px 16px; border-radius: 10px; display: flex; align-items: start; gap: 12px; border-left: 4px solid; background: white; box-shadow: 0 10px 25px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04); animation: slideIn 0.25s cubic-bezier(0.4, 0, 0.2, 1); }
  .toast.removing { animation: slideOut 0.2s forwards; }
  .toast-success { border-left-color: #059669; }
  .toast-error { border-left-color: #dc2626; }
  .toast-info { border-left-color: #2563eb; }
  .toast-warn { border-left-color: #d97706; }
  @keyframes slideIn { from { transform: translateX(420px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
  @keyframes slideOut { to { transform: translateX(440px); opacity: 0; } }
  .toast-icon { width: 20px; height: 20px; flex-shrink: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-top: 1px; }
  .toast-success .toast-icon { background: #d1fae5; color: #047857; }
  .toast-error .toast-icon { background: #fee2e2; color: #b91c1c; }
  .toast-info .toast-icon { background: #dbeafe; color: #1d4ed8; }
  .toast-warn .toast-icon { background: #fef3c7; color: #b45309; }

  /* Grouped row expander */
  .expand-row { background: #fafaf9; }
  details > summary { list-style: none; cursor: pointer; }
  details > summary::-webkit-details-marker { display: none; }
  details[open] .expand-icon { transform: rotate(90deg); }
  .expand-icon { transition: transform 0.15s; }
