/* ==========================================================================
   Dashboard v2 — Tailwind-compat layer (GENERATED — do not edit by hand)

   Built by scripts/dashboard-v2/build-compat-css.js from the class names the
   shared tab scripts (public/js/tabs/*.js) and shared partials inject at
   runtime. /dashboard/v2 loads Skynet UI instead of the Tailwind CDN, so every
   Tailwind palette class those scripts still emit is expressed here with
   Skynet UI theme tokens: bg-gray-800 → --sk-surface, text-purple-400 →
   --sk-primary-text, hover:bg-red-700 → --sk-danger-hover, and so on.

   Regenerate after changing a tab script:  npm run build:dashboard-v2-compat
   Only classes Skynet UI does not define itself are emitted, so this file
   never overrides the framework.
   ========================================================================== */

/* Keyframes referenced by animate-* utilities */
@keyframes dv2-spin { to { transform: rotate(360deg); } }
@keyframes dv2-ping { 75%, 100% { transform: scale(2); opacity: 0; } }
@keyframes dv2-pulse { 50% { opacity: .5; } }
@keyframes dv2-bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(.8,0,1,1); } 50% { transform: none; animation-timing-function: cubic-bezier(0,0,.2,1); } }
@keyframes dv2-slide-in { from { opacity: 0; transform: translateX(1rem); } to { opacity: 1; transform: none; } }
@keyframes dv2-fade-in { from { opacity: 0; } to { opacity: 1; } }

/* Tailwind's bg-black/bg-white + bg-opacity-N pairing */
.bg-black.bg-opacity-50, .bg-black.bg-opacity-75, .bg-black.bg-opacity-60, .bg-black.bg-opacity-80, .bg-black.bg-opacity-90 { background-color: rgba(0, 0, 0, var(--dv2-bg-alpha, 1)); }


.bg-gray-700 { background-color: var(--sk-surface-2); }
.bg-gray-800 { background-color: var(--sk-surface); }
.bg-green-400\/10 { background-color: color-mix(in srgb, var(--sk-success) 10%, transparent); }
.bg-purple-600 { background-color: var(--sk-primary); }
.border-gray-700 { border-color: var(--sk-border); }
.hover\:bg-gray-600:hover { background-color: var(--sk-border-2); }
.hover\:bg-purple-700:hover { background-color: var(--sk-primary-hover); }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.text-amber-400 { color: var(--sk-warning-text); }
.text-blue-400 { color: var(--sk-info-text); }
.text-bluegray-400 { color: var(--sk-muted); }
.text-coolgray-400 { color: var(--sk-muted); }
.text-cyan-400 { color: var(--sk-info-text); }
.text-emerald-400 { color: var(--sk-success-text); }
.text-fuchsia-400 { color: var(--sk-primary-text); }
.text-gray-300 { color: var(--sk-text-2); }
.text-gray-400 { color: var(--sk-muted); }
.text-green-400 { color: var(--sk-success-text); }
.text-indigo-400 { color: var(--sk-primary-text); }
.text-lime-400 { color: var(--sk-success-text); }
.text-neutral-400 { color: var(--sk-muted); }
.text-orange-400 { color: var(--sk-warning-text); }
.text-pink-400 { color: var(--sk-primary-text); }
.text-purple-400 { color: var(--sk-primary-text); }
.text-red-400 { color: var(--sk-danger-text); }
.text-rose-400 { color: var(--sk-danger-text); }
.text-sky-400 { color: var(--sk-info-text); }
.text-slate-400 { color: var(--sk-muted); }
.text-stone-400 { color: var(--sk-muted); }
.text-teal-400 { color: var(--sk-success-text); }
.text-violet-400 { color: var(--sk-primary-text); }
.text-white { color: var(--sk-text); }
.text-yellow-400 { color: var(--sk-warning-text); }
.text-zinc-400 { color: var(--sk-muted); }

/* A white label on a solid accent fill stays white in both modes.
   1 fills, framework-owned and alpha variants included. */
.bg-purple-600.text-white { color: #fff; }

/* ...except where a `disabled:bg-*` class replaces that fill with a neutral. */
[class*="disabled:bg-"]:disabled.text-white { color: var(--sk-text); }

/* 34 rules from 105 distinct class tokens across 1 sources.
   41 tokens are Skynet UI classes and were skipped.
   Not generated (page-specific classes styled in dashboard-v2.css or by the tab scripts): 17.
   Not generated (Tailwind classes with no safe token mapping): text- */
