:root{--background:0 0% 100%;--foreground:173 40% 10%;--card:0 0% 100%;--card-foreground:173 40% 10%;--popover:0 0% 100%;--popover-foreground:173 40% 10%;--primary:173 60% 50%;--primary-foreground:0 0% 100%;--secondary:173 30% 96%;--secondary-foreground:173 60% 20%;--muted:173 20% 96%;--muted-foreground:173 15% 45%;--accent:173 30% 94%;--accent-foreground:173 80% 25%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:173 20% 92%;--input:173 20% 92%;--ring:173 80% 40%;--success:142 76% 36%;--success-foreground:0 0% 100%;--warning:38 92% 50%;--warning-foreground:0 0% 100%;--info:217 91% 60%;--info-foreground:0 0% 100%;--radius:.25rem;--radius-lg:.5rem;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-12:3rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a}.dark{--background:173 40% 4%;--foreground:173 10% 98%;--card:173 30% 8%;--card-foreground:173 10% 98%;--popover:173 40% 4%;--popover-foreground:173 10% 98%;--primary:173 60% 50%;--primary-foreground:0 0% 100%;--secondary:173 30% 12%;--secondary-foreground:173 10% 98%;--muted:173 30% 12%;--muted-foreground:173 10% 65%;--accent:173 30% 15%;--accent-foreground:173 10% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:210 40% 98%;--border:173 30% 15%;--input:173 30% 15%;--ring:171 77% 55%;--success:142 71% 45%;--success-foreground:173 40% 4%;--warning:38 92% 50%;--warning-foreground:173 40% 4%;--info:217 91% 60%;--info-foreground:173 40% 4%;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006;--shadow-lg:0 10px 15px -3px #00000080;--shadow-xl:0 20px 25px -5px #0009}*{box-sizing:border-box;border-color:hsl(var(--border))}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"rlig" 1, "calt" 1;background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5}#root{flex-direction:column;width:100vw;height:100vh;display:flex}button:focus-visible,input:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}@media (hover:none) and (pointer:coarse){button:active{transform:scale(.98)}}button{cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s}button:hover{opacity:.9}button:disabled{opacity:.5;cursor:not-allowed}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-4{gap:16px}.h-screen{height:100vh}.h-full{height:100%}.h-12{height:48px}.h-8{height:32px}.h-5{height:20px}.w-full{width:100%}.w-8{width:32px}.w-5{width:20px}.w-4{width:16px}.min-h-0{min-height:0}.min-h-12{min-height:48px}.min-w-0{min-width:0}.p-1{padding:4px}.p-2{padding:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.px-6{padding-left:24px;padding-right:24px}.py-2{padding-top:8px;padding-bottom:8px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.mb-1{margin-bottom:4px}.page-container{flex-direction:column;gap:1.5rem;width:100%;max-width:1600px;height:100%;margin:0 auto;padding:1.5rem;display:flex;overflow-y:auto}.page-header{flex-direction:column;gap:.25rem;margin-bottom:.5rem;display:flex}.page-title{letter-spacing:-.025em;color:hsl(var(--foreground));font-size:1.875rem;font-weight:700;line-height:2.25rem}.page-description{color:hsl(var(--muted-foreground));font-size:.875rem}.text-center{text-align:center}.text-right{text-align:right}.text-lg{font-size:18px;line-height:28px}.text-sm{font-size:14px;line-height:20px}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-bold{font-weight:700}.bg-background{background-color:hsl(var(--background))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-card{background-color:hsl(var(--card))}.text-foreground{color:hsl(var(--foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-primary{color:hsl(var(--primary))}.text-secondary{color:hsl(var(--secondary))}.border-border{border-color:hsl(var(--border))}.border-muted-foreground{border-color:hsl(var(--muted-foreground))}.border-primary{border-color:hsl(var(--primary))}.bg-success{background-color:hsl(var(--success))}.bg-warning{background-color:hsl(var(--warning))}.bg-info{background-color:hsl(var(--info))}.text-success{color:hsl(var(--success))}.text-warning{color:hsl(var(--warning))}.text-info{color:hsl(var(--info))}.text-success-foreground{color:hsl(var(--success-foreground))}.text-warning-foreground{color:hsl(var(--warning-foreground))}.text-info-foreground{color:hsl(var(--info-foreground))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-muted-foreground\/30{border-color:hsl(var(--muted-foreground) / .3)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.border{border-style:solid;border-width:1px}.border-b{border-bottom-style:solid;border-bottom-width:1px}.border-2{border-style:solid;border-width:2px}.border-dashed{border-style:dashed}.rounded-md{border-radius:4px}.rounded-none{border-radius:0}.rounded-full{border-radius:9999px}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.z-10{z-index:10}.z-1{z-index:1}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.hidden{display:none}.transition-colors{transition-property:color,background-color,border-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.animate-in{animation-name:enter;animation-duration:.15s;animation-timing-function:ease-out;animation-fill-mode:both}.fade-in-0{animation-name:fade-in}.zoom-in-95{animation-name:zoom-in}@keyframes enter{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes zoom-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-from-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slide-in-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes loading-spin{to{transform:rotate(360deg)}}.rotate-180{transform:rotate(180deg)}.loading-screen{background-color:hsl(var(--background));width:100vw;height:100vh;color:hsl(var(--foreground));z-index:9999;flex-direction:column;justify-content:center;align-items:center;font-family:inherit;transition:opacity .4s ease-out,visibility .4s;display:flex;position:fixed;top:0;left:0}.loading-screen.fade-out{opacity:0;visibility:hidden}.spinner{border:3px solid hsl(var(--primary) / .15);border-top-color:hsl(var(--primary));width:42px;height:42px;box-shadow:0 0 15px -5px hsl(var(--primary) / .3);border-radius:50%;animation:.8s cubic-bezier(.4,0,.2,1) infinite loading-spin}.spinner-container{justify-content:center;align-items:center;display:flex;position:relative}.spinner-pulse{background-color:hsl(var(--primary));opacity:.1;border-radius:50%;width:42px;height:42px;animation:2s ease-in-out infinite pulse;position:absolute}@keyframes pulse{0%{opacity:.1;transform:scale(1)}50%{opacity:0;transform:scale(1.5)}to{opacity:.1;transform:scale(1)}}.ag-right-aligned-cell{text-align:right!important}.ring-8{box-shadow:0 0 0 8px hsl(var(--card))}.flow-root{display:flow-root}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-none{box-shadow:none}
