@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fade-in-up .8s cubic-bezier(.16,1,.3,1) forwards}:root{--app-bg: #f8fafc;--app-text: #0f172a;--panel-bg: #ffffff;--panel-muted: #f8fafc;--panel-border: #e2e8f0;--panel-text: #0f172a;--soft-text: #475569;--muted-text: #64748b;--sidebar-bg: #0f172a;--sidebar-panel: #020617;--sidebar-hover: #1e293b;--sidebar-border: #1e293b;--sidebar-text: #f8fafc;--sidebar-muted: #94a3b8}html[data-theme=dark]{--app-bg: #020617;--app-text: #e2e8f0;--panel-bg: #0f172a;--panel-muted: #020617;--panel-border: #1e293b;--panel-text: #f8fafc;--soft-text: #94a3b8;--muted-text: #64748b;--sidebar-bg: #020617;--sidebar-panel: #020617;--sidebar-hover: #111827;--sidebar-border: #1e293b;--sidebar-text: #f8fafc;--sidebar-muted: #94a3b8}html{scroll-behavior:smooth}body{margin:0;padding:0;background-color:var(--app-bg);color:var(--app-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#334155;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#475569}.text-gradient{background:linear-gradient(to right,#818cf8,#c084fc,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-size:200% auto;animation:shine 4s linear infinite}@keyframes shine{to{background-position:200% center}}.spinner{width:22px;height:22px;border-radius:9999px;border:2px solid rgba(148,163,184,.3);border-top-color:#6366f1;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media print{body{background:#fff!important;color:#000!important}body *{visibility:hidden!important}.print-area,.print-area *{visibility:visible!important}.print-area{position:absolute!important;left:0!important;top:0!important;width:100%!important;padding:0!important;margin:0!important}.print-area{overflow:visible!important}.print-area *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
