@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--color-bg-base:#fff;--color-bg-surface:#f1f5f9cc;--color-bg-glass:#fffc;--color-border:#0000001a;--color-text-primary:#0f172a;--color-text-secondary:#334155;--color-text-muted:#64748b;--color-accent:#16a34a;--color-accent-hover:#15803d;--color-success:#16a34a;--color-warning:#eab308;--color-danger:#dc2626;--gradient-primary:linear-gradient(135deg, #22c55e, #16a34a);--gradient-danger:linear-gradient(135deg, #ef4444, #dc2626);--gradient-success:linear-gradient(135deg, #22c55e, #16a34a);--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-glow:0 0 20px #16a34a4d;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:1rem;--radius-xl:1.5rem}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg-base);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;background-image:radial-gradient(at 0 0,#16a34a14 0,#0000 50%),radial-gradient(at 100% 0,#16a34a0d 0,#0000 50%),radial-gradient(at 100% 100%,#00000005 0,#0000 50%);background-attachment:fixed;min-height:100vh;font-family:Inter,sans-serif;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:600;line-height:1.2}a{color:var(--color-accent);text-decoration:none;transition:color .2s}a:hover{color:var(--color-accent-hover)}.glass-panel{background:var(--color-bg-surface);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.glass-card{-webkit-backdrop-filter:blur(8px);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:linear-gradient(145deg,#ffffffe6,#f1f5f999);border:1px solid #0000000d;transition:transform .3s,box-shadow .3s,border-color .3s}.glass-card:hover{box-shadow:var(--shadow-md);border-color:#00000026;transform:translateY(-4px)}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);background-color:#fffc;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s}input:focus,select:focus,textarea:focus{border-color:var(--color-accent);background-color:#fff;outline:none;box-shadow:0 0 0 2px #16a34a33}label{color:var(--color-text-secondary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover{box-shadow:var(--shadow-glow);filter:brightness(1.1)}.btn-outline{border:1px solid var(--color-border);color:var(--color-text-primary);background:0 0}.btn-outline:hover{background:#ffffff0d;border-color:#fff3}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}.flex-center{justify-content:center;align-items:center;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.5s forwards fadeIn}@keyframes pulse-glow{0%{box-shadow:0 0 #0ea5e966}70%{box-shadow:0 0 0 10px #0ea5e900}to{box-shadow:0 0 #0ea5e900}}.animate-pulse-glow{animation:2s infinite pulse-glow}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-base)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:.4s forwards slideUp}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-float{animation:3s ease-in-out infinite float}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.shimmer{background:linear-gradient(90deg,#ffffff08 25%,#ffffff14 50%,#ffffff08 75%) 0 0/800px 100%;animation:2s infinite shimmer}.gradient-border{background-clip:padding-box;border:1px solid #0000;position:relative}.gradient-border:before{content:"";border-radius:inherit;background:var(--gradient-primary);z-index:-1;position:absolute;inset:-1px}.badge{letter-spacing:.02em;border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.7rem;font-weight:700;display:inline-flex}a.nav-link:hover{color:var(--color-accent)!important;background:#0ea5e914!important}.recharts-tooltip-wrapper .recharts-default-tooltip{background:#0f172af2!important;border:1px solid #ffffff1a!important;border-radius:10px!important;font-family:Inter,sans-serif!important}@keyframes pulseRing{0%{opacity:.8;transform:scale(.8)}80%,to{opacity:0;transform:scale(2)}}.pulse-ring{position:relative}.pulse-ring:after{content:"";background:var(--color-danger);border-radius:50%;animation:1.5s ease-out infinite pulseRing;position:absolute;inset:0}.text-glow-blue{text-shadow:0 0 20px #0ea5e980}.text-glow-green{text-shadow:0 0 20px #10b98180}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex;position:relative;overflow:hidden}.auth-orb{filter:blur(80px);pointer-events:none;z-index:0;border-radius:50%;position:fixed}.auth-orb-1{background:radial-gradient(circle,#8b5cf62e 0%,#0000 70%);width:480px;height:480px;animation:8s ease-in-out infinite float;top:-140px;left:-140px}.auth-orb-2{background:radial-gradient(circle,#06b6d426 0%,#0000 70%);width:380px;height:380px;animation:10s ease-in-out infinite reverse float;bottom:-100px;right:-100px}.auth-card{z-index:1;-webkit-backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #0000001a;border-radius:1.5rem;width:100%;max-width:480px;padding:2.5rem 2rem;animation:.4s forwards slideUp;position:relative;box-shadow:0 10px 30px #0000001a,inset 0 0 0 1px #00000008}.auth-card--wide{max-width:640px}.auth-logo{align-items:center;gap:.75rem;margin-bottom:1.75rem;display:flex}.auth-logo-icon{font-size:2rem;line-height:1}.auth-logo-sub{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.1rem;font-size:.7rem;font-weight:600}.auth-logo-title{color:var(--color-text-primary);margin:0;font-size:1.1rem;font-weight:700;line-height:1}.auth-heading{color:var(--color-text-primary);margin-bottom:.35rem;font-size:1.6rem;font-weight:700}.auth-subheading{color:var(--color-text-muted);margin-bottom:1.75rem;font-size:.9rem}.auth-role-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.75rem;display:grid}.auth-role-card{cursor:pointer;text-align:left;background:#f1f5f9cc;border:1.5px solid #00000012;border-radius:.875rem;flex-direction:column;align-items:flex-start;gap:.25rem;padding:1rem;transition:all .25s;display:flex}.auth-role-card:hover{background:#f1f5f9;border-color:#00000026;transform:translateY(-2px)}.auth-role-card--active{background:var(--role-gradient,linear-gradient(135deg, #8b5cf6, #6d28d9));box-shadow:0 8px 24px var(--role-glow,#8b5cf659);border-color:#0000}.auth-role-icon{margin-bottom:.2rem;font-size:1.6rem}.auth-role-label{color:var(--color-text-primary);font-size:.875rem;font-weight:600}.auth-role-desc{color:var(--color-text-muted);font-size:.72rem;line-height:1.4}.auth-role-card--active .auth-role-desc{color:#ffffffe6}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=520px){.auth-form-row{grid-template-columns:1fr}}.auth-field{flex-direction:column;gap:.4rem;display:flex}.auth-field label{color:var(--color-text-secondary);margin:0;font-size:.8rem;font-weight:500}.auth-field input{color:var(--color-text-primary);background:#fffc;border:1px solid #00000026;border-radius:.6rem;padding:.7rem .9rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.auth-field input:focus{border-color:#8b5cf699;outline:none;box-shadow:0 0 0 3px #8b5cf626}.auth-pwd-wrap{position:relative}.auth-pwd-wrap input{padding-right:2.8rem}.auth-pwd-toggle{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:.25rem;font-size:1rem;line-height:1;transition:color .2s;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.auth-pwd-toggle:hover{color:var(--color-text-primary)}.auth-strength{background:#ffffff14;border-radius:99px;height:3px;margin-top:-.4rem;overflow:hidden}.auth-strength-bar{border-radius:99px;height:100%;transition:width .3s,background .3s}.auth-error{color:#f87171;background:#ef44441f;border:1px solid #ef444440;border-radius:.5rem;padding:.6rem .9rem;font-size:.82rem}.auth-success{color:#6ee7b7;background:#10b9811f;border:1px solid #10b98140;border-radius:.5rem;padding:.6rem .9rem;font-size:.82rem}.auth-submit-btn{cursor:pointer;background:var(--role-gradient,linear-gradient(135deg, #8b5cf6, #6d28d9));color:#fff;width:100%;box-shadow:0 8px 24px var(--role-glow,#8b5cf64d);border:none;border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;margin-top:.25rem;padding:.85rem 1.5rem;font-size:.95rem;font-weight:600;transition:filter .2s,transform .15s,box-shadow .2s;display:flex}.auth-submit-btn:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 12px 32px var(--role-glow,#8b5cf673);transform:translateY(-1px)}.auth-submit-btn:active:not(:disabled){transform:scale(.98)}.auth-submit-btn:disabled{opacity:.65;cursor:not-allowed}.auth-btn-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:1rem;height:1rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-footer-link{text-align:center;color:var(--color-text-muted);margin-top:1.25rem;font-size:.82rem}.auth-footer-link a{color:var(--color-accent);font-weight:500}.auth-footer-link a:hover{text-decoration:underline}.auth-disclaimer{text-align:center;color:var(--color-text-muted);opacity:.7;margin-top:1rem;font-size:.7rem;line-height:1.5}.auth-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-loading-spinner{border:3px solid #ffffff1a;border-top-color:var(--color-accent);border-radius:50%;width:2.5rem;height:2.5rem;animation:.8s linear infinite spin}@media (width<=520px){.auth-card{border-radius:1rem;padding:2rem 1.25rem}.auth-role-grid{grid-template-columns:1fr 1fr}.auth-heading{font-size:1.35rem}}
