:root{--color-primary:#162530;--color-secondary:#33526b;--color-muted:#475569;--color-link:#33526b;--color-accent:#2fbf71;--color-success:#2fbf71;--color-warning:#f5a623;--color-error:#e5484d;--color-info:#3b82f6;--color-button:#fff;--color-system-heading:#162530;--font-family:"Outfit",sans-serif;--font-xs:clamp(.7rem,.65rem + .25vw,.8rem);--font-sm:clamp(.8rem,.75rem + .25vw,.9rem);--font-base:clamp(.9rem,.85rem + .25vw,1rem);--font-md:clamp(1.1rem,1rem + .5vw,1.4rem);--font-lg:clamp(1.4rem,1.1rem + 1vw,2.2rem);--font-xl:clamp(1.8rem,1.5rem + 1.5vw,3.5rem);--font-xxl:clamp(2.5rem,2rem + 2.5vw,5rem);--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:clamp(3.5rem,6vw,6rem);--bg-main:#f8fafc;--bg-surface:#fff;--text-main:#0f172a;--text-muted:#475569;--border-color:#0f172a14;--shadow-sm:0 2px 4px #00000005;--shadow-md:0 10px 25px #0000000d;--shadow-lg:0 25px 50px #00000014;--shadow-premium:0 20px 40px #2fbf711a;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-xl:40px;--transition:all .3s cubic-bezier(.16,1,.3,1);--bp-mobile-s:320px;--bp-mobile:375px;--bp-mobile-l:428px;--bp-tablet:768px;--bp-desktop:1024px;--bp-desktop-m:1366px;--bp-desktop-l:1536px;--bp-ultrawide:1920px;--header-height:clamp(50px,8vh,70px);--sidebar-width:clamp(240px,20vw,280px);--content-padding:clamp(1rem,3vw,2.5rem)}@media (max-width:1024px){:root{--content-padding:1.5rem}}@media (max-width:640px){:root{--content-padding:1rem}}[data-theme=dark]{--color-primary:#fff;--color-secondary:#d1d9e0;--color-muted:#9ba7b2;--color-link:#8aa6ba;--color-success:#3ddc84;--color-warning:#f7b955;--color-error:#ff6b6b;--color-info:#60a5fa;--bg-main:#0f172a;--bg-surface:#1e293b;--text-main:#f8fafc;--text-muted:#94a3b8;--border-color:#334155;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #00000080;--shadow-lg:0 10px 15px -3px #000000b3}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;line-height:1.6}button{cursor:pointer;font-family:inherit}a{color:var(--color-accent);transition:var(--transition);text-decoration:none}a:hover{filter:brightness(1.2)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}.animate-slide-up{animation:.5s cubic-bezier(.16,1,.3,1) forwards slideUp}
*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-main);font-family:Outfit,sans-serif;font-size:var(--font-base);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{display:none}h1,h2,h3,h4,h5,h6{margin-bottom:var(--space-sm);color:var(--color-primary);font-weight:700;line-height:1.25}h1{font-size:var(--font-xl)}h2{font-size:var(--font-lg)}h3{font-size:var(--font-md)}p{margin-bottom:var(--space-md);font-size:var(--font-base)}input,select,textarea{width:100%;padding:var(--space-2xs)var(--space-sm);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-surface);color:var(--text-main);font-size:var(--font-base);transition:var(--transition)}input:focus,select:focus,textarea:focus{border-color:var(--color-link);outline:none;box-shadow:0 0 0 3px #33526b1a}button{justify-content:center;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs)var(--space-md);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-sm);cursor:pointer;transition:var(--transition);border:none;display:inline-flex}button:active{transform:scale(.98)}img{max-width:100%;height:auto;display:block}.container-fluid{width:100%;max-width:var(--bp-ultrawide);padding:0 var(--content-padding);margin:0 auto}.grid-fluid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(clamp(250px,30vw,350px),1fr));display:grid}.table-fluid-wrapper{-webkit-overflow-scrolling:touch;width:100%;margin-bottom:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-surface);overflow-x:auto}.table-fluid-wrapper table{border-collapse:collapse;width:100%;min-width:700px}.recharts-wrapper:focus,.recharts-surface:focus,.recharts-wrapper :focus{outline:none}
#root{text-align:center;max-width:1280px;margin:0 auto;padding:2rem}.logo{will-change:filter;height:6em;padding:1.5em;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:20s linear infinite logo-spin}}.card{padding:2em}.read-the-docs{color:#888}
.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:12px;display:flex;position:fixed;top:24px;right:24px}.toast{pointer-events:auto;background:#fff;border-left:4px solid #ddd;border-radius:12px;align-items:flex-start;gap:12px;min-width:300px;max-width:450px;padding:16px;animation:.3s cubic-bezier(.16,1,.3,1) toast-slide-in;display:flex;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-message{color:#1f2937;flex:1;margin-right:8px;font-size:14px;font-weight:500;line-height:1.4}.toast-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px;transition:all .2s}.toast-close:hover{color:#111827;background:#f3f4f6}.toast-success{border-left-color:#10b981}.toast-success .toast-icon{color:#10b981}.toast-error{border-left-color:#ef4444}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon{color:#f59e0b}.toast-info{border-left-color:#3b82f6}.toast-info .toast-icon{color:#3b82f6}.confirm-overlay{z-index:9999;background:#111827d9;justify-content:center;align-items:center;padding:24px;animation:.2s ease-out confirm-fade-in;display:flex;position:fixed;inset:0}.confirm-modal{background:#fff;border-radius:16px;width:100%;max-width:440px;animation:.3s cubic-bezier(.16,1,.3,1) confirm-pop;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-pop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.confirm-header{justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.confirm-title{color:#111827;font-size:18px;font-weight:700}.confirm-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px}.confirm-close:hover{color:#111827;background:#f3f4f6}.confirm-body{color:#4b5563;padding:0 24px 24px;font-size:15px;line-height:1.5}.confirm-footer{background:#f9fafb;justify-content:flex-start;gap:12px;padding:16px 24px;display:flex}.confirm-btn-cancel{color:#4b5563;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:all .2s}.confirm-btn-cancel:hover{background:#f3f4f6;border-color:#d1d5db}.confirm-btn-action{color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:all .2s}.confirm-btn-action.primary{background:var(--color-primary);color:#fff}.confirm-btn-action.warning{color:#fff;background:#f59e0b}.confirm-btn-action.warning:hover{background:#d97706}.confirm-btn-action.full-width{flex:1;padding:12px;font-size:1rem;font-weight:600}.confirm-modal.is-alert{text-align:center;border:none;width:90%;max-width:550px;padding:2.5rem;box-shadow:0 25px 50px -12px #00000040}.confirm-modal.is-alert .confirm-header{border:none;flex-direction:column;margin-bottom:1.5rem;padding:0}.confirm-modal.is-alert .confirm-title{color:#1e293b;margin-top:1rem;font-size:1.5rem}.confirm-modal.is-alert .confirm-body{text-align:center;max-height:400px;margin-bottom:2rem;padding:0;overflow-y:auto}.confirm-modal.is-alert .confirm-body p{color:#475569;white-space:pre-wrap;word-break:break-word;font-size:1.1rem;line-height:1.6}.confirm-modal.is-alert .confirm-footer{border:none;padding:0}.confirm-modal.is-alert .alert-big-icon{border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto;display:flex}.confirm-modal.is-alert .alert-big-icon.primary{color:#4338ca;background:#e0e7ff}.confirm-modal.is-alert .alert-big-icon.danger{color:#b91c1c;background:#fee2e2}.confirm-modal.is-alert .alert-big-icon.warning{color:#b45309;background:#fef3c7}@keyframes alert-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.confirm-modal.is-alert .alert-big-icon{animation:2s ease-in-out infinite alert-bounce}.confirm-btn-action.primary:hover{background:#4338ca}.confirm-btn-action.danger{background:#ef4444}.confirm-btn-action.danger:hover{background:#dc2626}.maintenance-overlay{z-index:20000;color:#fff;text-align:center;background:#111827fc;flex-direction:column;justify-content:center;align-items:center;padding:24px;animation:.5s ease-out confirm-fade-in;display:flex;position:fixed;inset:0}.maintenance-card{text-align:center;flex-direction:column;align-items:center;max-width:600px;display:flex}.maintenance-icon{color:#f6ad55;margin-bottom:2rem}.maintenance-title{color:#fff;letter-spacing:-1px;margin-bottom:1rem;font-size:3rem;font-weight:800}.maintenance-subtitle{color:#ffffffb3;max-width:500px;margin-bottom:3rem;font-size:1.25rem;line-height:1.6}.maintenance-logout-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:12px;align-items:center;gap:10px;padding:12px 24px;font-weight:600;transition:all .2s;display:flex}.maintenance-logout-btn:hover{color:#ef4444;background:#ef444433;border-color:#ef4444;transform:translateY(-2px)}.restore-overlay{z-index:10000;color:#fff;text-align:center;background:#111827f2;flex-direction:column;justify-content:center;align-items:center;padding:24px;animation:.4s ease-out confirm-fade-in;display:flex;position:fixed;inset:0}.restore-title{letter-spacing:-1px;margin-bottom:12px;font-size:2.25rem;font-weight:800}.restore-subtitle{opacity:.8;max-width:500px;font-size:1.1rem;line-height:1.6}.spin{animation:2s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
