/* ============================================================================= * Multica shared base styles — imported by all apps * ============================================================================= */ /* Shiki dual themes: CSS-only light/dark switching via CSS variables */ /* @see https://shiki.style/guide/dual-themes */ .shiki, .shiki span { color: var(--shiki-light); } .dark .shiki, .dark .shiki span { color: var(--shiki-dark) !important; } /* Multica icon: entrance spin animation */ @keyframes entrance-spin { 0% { transform: rotate(0deg); opacity: 0; } 50% { opacity: 1; } 100% { transform: rotate(360deg); opacity: 1; } } .animate-entrance-spin { animation: entrance-spin 0.6s ease-out forwards; } /* Sidebar: open triggers (dropdown/popover) get active background */ [data-sidebar="menu-button"][data-popup-open] { background-color: var(--sidebar-accent); color: var(--sidebar-accent-foreground); } /* Sonner toast: align icon to first line of text, not vertically centered */ [data-sonner-toast] { align-items: flex-start !important; } [data-sonner-toast] [data-icon] { margin-top: 2.5px; } @layer base { * { @apply border-border outline-ring/50; scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); } *::-webkit-scrollbar { width: 6px; height: 6px; } *::-webkit-scrollbar-track { background: var(--scrollbar-track); } *::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: 3px; } *::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover); } body { @apply bg-background text-foreground; } html { @apply font-sans; } }