@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Fira+Sans:wght@300;400;500;600;700&display=swap";
:root{--color-bg-primary:#f8fafc;--color-bg-secondary:#fff;--color-bg-card:#ffffffd9;--color-bg-card-hover:#fff;--color-border:#dbeafe;--color-border-hover:#3b82f633;--color-text-primary:#1e3a8a;--color-text-secondary:#475569;--color-text-tertiary:#94a3b8;--color-accent-primary:#1e40af;--color-accent-secondary:#3b82f6;--color-accent-tertiary:#f59e0b;--gradient-accent:linear-gradient(135deg,#1e40af 0%,#3b82f6 50%,#f59e0b 100%);--gradient-glow:linear-gradient(135deg,#1e40af26 0%,#3b82f626 50%,#f59e0b26 100%);--gradient-subtle:linear-gradient(180deg,#1e40af05 0%,#fff0 100%);--gradient-hero:var(--gradient-accent);--color-success:#059669;--color-warning:#d97706;--color-error:#dc2626;--color-info:#3b82f6;--color-success-bg:#05966914;--color-error-bg:#dc262614;--color-accent-subtle:#1e40af14;--color-accent-glow:#1e40af33;--color-bg-glass:#00000005;--color-bg-glass-hover:#0000000a;--color-bg-input:#00000008;--color-border-accent:#1e40af4d;--font-family:"Fira Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--radius-pill:9999px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #0000000f;--shadow-glass:0 4px 24px #0000000d;--shadow-lift:0 12px 32px #1e40af1f,0 4px 12px #0000000f;--shadow-glow:0 0 20px #1e40af26;--shadow-lg:0 8px 24px #0000001a;--transition-fast:.2s ease;--transition-spring:.3s cubic-bezier(.34,1.56,.64,1);--morph-duration:.4s;--blur-amount:15px;--font-size-xs:1rem;--font-size-sm:1rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--sidebar-width:260px;--header-height:72px;--max-content-width:1200px}@media (min-width:768px){:root{--font-size-xs:.75rem;--font-size-sm:.875rem}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}body{font-family:var(--font-family);background-color:var(--color-bg-primary);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(at 15% 20%,#1e40af0f,#0000 50%),radial-gradient(at 85% 80%,#f59e0b0a,#0000 50%);background-attachment:fixed;min-height:100vh;line-height:1.5}#root{min-height:100vh}a{color:var(--color-accent-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-secondary)}img{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:700;line-height:1.2}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}.text-gradient{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-xl);transition:all var(--transition-spring);box-shadow:var(--shadow-glass);-webkit-backdrop-filter:blur(var(--blur-amount))saturate(150%);position:relative;overflow:hidden}.glass-card:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#1e40af26,#0000);height:1px;position:absolute;top:0;left:0;right:0}.glass-card:hover{background:var(--color-bg-card-hover);box-shadow:var(--shadow-lift);border-color:#1e40af33;transform:translateY(-8px)scale(1.02)}@media (hover:none){.glass-card:hover{box-shadow:var(--shadow-glass);transform:none}.glass-card-interactive:hover{transform:none}}.glass-card-interactive:hover{border-color:var(--color-border-accent);box-shadow:var(--shadow-glow);transform:translateY(-4px)scale(1.01)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:0 var(--space-xl);border-radius:var(--radius-full);height:48px;font-size:var(--font-size-base);cursor:pointer;color:var(--color-text-primary);white-space:nowrap;letter-spacing:.01em;background:0 0;border:none;font-family:inherit;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";opacity:0;background:#0000000d;transition:opacity .2s;position:absolute;inset:0}.btn:hover:before{opacity:1}.btn:focus-visible{outline-offset:4px;outline:3px solid #fcd34d}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--gradient-accent);color:#fff;box-shadow:0 4px 15px #1e40af4d}.btn-primary:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 8px 25px #1e40af66}.btn-primary:active{transform:scale(.94)}.btn-secondary{border:1px solid var(--color-border);color:var(--color-text-primary);box-shadow:var(--shadow-sm);background:#fff}.btn-secondary:hover{background:var(--color-bg-primary);border-color:var(--color-border-hover);transform:translateY(-2px)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover{color:var(--color-text-primary);background:var(--color-bg-glass-hover)}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-sm{height:auto;font-size:var(--font-size-xs);padding:8px 16px}.btn-lg{font-size:var(--font-size-base);padding:16px 32px}.btn-full{width:100%}.input-group{gap:var(--space-sm);flex-direction:column;display:flex}.input-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.input{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);background:#fff;outline:none;padding:12px 16px}.input:focus{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-subtle)}.input::placeholder{color:var(--color-text-tertiary)}.stat-card{gap:var(--space-xs);padding:var(--space-lg);flex-direction:column;display:flex;position:relative;overflow:hidden}.stat-card .stat-label{color:var(--color-text-secondary);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;z-index:1;font-weight:500}.stat-card .stat-value{font-size:var(--font-size-3xl);color:var(--color-text-primary);letter-spacing:-.02em;z-index:1;font-weight:800;line-height:1.1}.stat-card .stat-change{margin-top:var(--space-sm);font-size:var(--font-size-xs);border-radius:var(--radius-pill);align-items:center;gap:4px;padding:2px 8px;font-weight:600;display:inline-flex}.stat-change.positive{color:var(--color-success);background:var(--color-success-bg)}.stat-change.negative{color:var(--color-error);background:var(--color-error-bg)}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-success{color:#059669;background:#0596691a}.badge-warning{color:#d97706;background:#d977061a}.badge-error{color:#dc2626;background:#dc26261a}.badge-info{color:#7c3aed;background:#7c3aed1a}.badge-neutral{color:var(--color-text-secondary);background:#0000000a}.table-container{border-radius:var(--radius-lg);border:1px solid var(--color-border);width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;padding:var(--space-md)var(--space-lg);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-tertiary);background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);font-weight:600}.table td{padding:var(--space-md)var(--space-lg);font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:#7c3aed05}.page-container{padding:var(--space-xl);max-width:var(--max-content-width);margin:0 auto;animation:.5s both fadeInUp}.page-header{margin-bottom:var(--space-2xl)}.page-header h1{margin-bottom:var(--space-sm)}.page-header p{color:var(--color-text-secondary);font-size:var(--font-size-lg)}.grid-2{gap:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px var(--color-accent-glow)}50%{box-shadow:0 0 40px var(--color-accent-glow),0 0 60px #7c3aed1a}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-in{animation:.7s cubic-bezier(.34,1.56,.64,1) both fadeInUp}.animate-in-delay-1{animation-delay:.15s}.animate-in-delay-2{animation-delay:.3s}.animate-in-delay-3{animation-delay:.45s}.animate-in-delay-4{animation-delay:.6s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:#0000001f}::-webkit-scrollbar-thumb:hover{background:#0003}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent-primary);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{background:var(--color-bg-primary);justify-content:center;align-items:center;min-height:100vh;display:flex}@media (max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){:root{--sidebar-width:0px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.page-container{padding:var(--space-md)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}}.empty-state{padding:var(--space-3xl);text-align:center;color:var(--color-text-tertiary);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state:hover{box-shadow:var(--shadow-glass)!important;transform:none!important}.empty-state svg{width:64px;height:64px;margin-bottom:var(--space-lg);opacity:.3}.empty-state h3{color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.toast{bottom:var(--space-lg);right:var(--space-lg);padding:var(--space-md)var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-size-sm);z-index:1000;box-shadow:var(--shadow-lg);font-weight:500;animation:.3s both slideInRight;position:fixed}.toast-success{background:var(--color-success);color:#fff}.toast-error{background:var(--color-error);color:#fff}.select{appearance:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-fast);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748b' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E") right 14px center no-repeat;outline:none;padding:12px 40px 12px 16px}.select:focus{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-subtle)}.grid-5{grid-template-columns:repeat(5,1fr);gap:20px;display:grid}@media (max-width:1400px){.grid-5{grid-template-columns:repeat(3,1fr)}}@media (max-width:1024px){.grid-5{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.grid-5{grid-template-columns:1fr}.input,.select{font-size:16px!important}.table-container{background:0 0;border:none;border-radius:0;overflow-x:visible}.table{width:100%;display:block}.table thead{display:none}.table tbody{gap:var(--space-md);flex-direction:column;display:flex}.table tr{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm);display:block}.table tr:hover td{background:0 0}.table td{padding:var(--space-xs)0;border-bottom:1px dotted var(--color-border);font-size:var(--font-size-sm);justify-content:space-between;align-items:center;display:flex}.table td:last-child{border-bottom:none}.table td:before{content:attr(data-label);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
