:root{--font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji';--background:222 47% 97%;--foreground:240 6% 9%;--card:0 0% 100%;--card-foreground:240 6% 9%;--popover:0 0% 100%;--popover-foreground:240 6% 9%;--muted:228 11% 93%;--muted-foreground:240 5% 33%;--primary:221 100% 48%;--primary-foreground:0 0% 98%;--primary-hover:217 100% 38%;--destructive:359 100% 63%;--destructive-foreground:0 0% 98%;--success:144 55% 50%;--success-foreground:0 0% 98%;--warning:42 92% 56%;--warning-foreground:240 6% 10%;--secondary:228 11% 93%;--secondary-foreground:240 6% 10%;--accent:228 11% 93%;--accent-hover:228 8% 91%;--accent-active:221 100% 94%;--accent-foreground:240 6% 10%;--border:228 11% 93%;--border-light:226 12% 94%;--input-bg:0 0% 100%;--input:228 11% 93%;--input-placeholder:228 6% 66%;--ring:221 100% 48%;--radius:0.75rem;--overlay:0 0% 0%/40%;--font-size-base:16px;--sidebar-bg:0 0% 100%;--sidebar-border:228 11% 93%;color-scheme:light}*,::after,::before{box-sizing:border-box;border-style:solid;border-width:0}html{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;color:hsl(var(--foreground));background:#fff;width:100%;max-width:100vw;overflow-x:hidden}body,html{margin:0;padding:0;overflow-x:hidden;width:100%;max-width:100vw}a,a:active,a:hover,a:link,a:visited{text-decoration:none;color:inherit}button{font-family:inherit}button:not(:disabled){cursor:pointer}input::placeholder,textarea::placeholder{opacity:1;color:hsl(var(--input-placeholder))}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:3px}::-webkit-scrollbar-track{background:0 0}.bg-background{background-color:hsl(var(--background))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-card{background-color:hsl(var(--card))}.bg-popover{background-color:hsl(var(--popover))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-accent{background-color:hsl(var(--accent))}.bg-accent-hover{background-color:hsl(var(--accent-hover))}.bg-accent-active{background-color:hsl(var(--accent-active))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .08)}.bg-success{background-color:hsl(var(--success))}.bg-success\/10{background-color:hsl(var(--success) / .08)}.bg-warning{background-color:hsl(var(--warning))}.bg-warning\/10{background-color:hsl(var(--warning) / .08)}.bg-sidebar{background-color:hsl(var(--sidebar-bg))}.bg-overlay{background-color:hsl(var(--overlay))}.text-foreground{color:hsl(var(--foreground))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-success{color:hsl(var(--success))}.text-warning{color:hsl(var(--warning))}.border-border{border-color:hsl(var(--border))}.border-border-light{border-color:hsl(var(--border-light))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-destructive{border-color:hsl(var(--destructive))}.border-success{border-color:hsl(var(--success))}.border-warning{border-color:hsl(var(--warning))}.border{border-width:1px;border-style:solid;border-color:hsl(var(--border))}.border-t{border-top-width:1px;border-top-color:hsl(var(--border))}.border-b{border-bottom-width:1px;border-bottom-color:hsl(var(--border))}.border-r{border-right-width:1px;border-right-color:hsl(var(--border))}.border-l{border-left-width:1px;border-left-color:hsl(var(--border))}.card-box{background-color:hsl(var(--card));color:hsl(var(--card-foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 2px 8px hsl(var(--foreground) / .04),0 1px 3px hsl(var(--foreground) / .04);overflow:hidden;position:relative}.vben-link{color:hsl(var(--primary));cursor:pointer;transition:color .15s}.vben-link:hover{color:hsl(var(--primary-hover))}.vben-link:active{color:hsl(var(--primary) / .8)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;height:3rem;padding:0 1.25rem;font-size:.875rem;font-weight:500;border-radius:var(--radius);border:1px solid transparent;transition:background-color .15s,border-color .15s,box-shadow .15s;user-select:none;white-space:nowrap;cursor:pointer;line-height:1}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:0;box-shadow:0 0 0 3px hsl(var(--primary) / .15)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn-primary{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:hover:not(:disabled){background-color:hsl(var(--primary-hover))}.btn-secondary{background-color:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border-color:hsl(var(--border))}.btn-secondary:hover:not(:disabled){background-color:hsl(var(--accent-hover))}.btn-destructive{background-color:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.btn-destructive:hover:not(:disabled){opacity:.9}.btn-outline{background-color:hsl(var(--card));color:hsl(var(--foreground));border-color:hsl(var(--border))}.btn-outline:hover:not(:disabled){background-color:hsl(var(--accent-hover));border-color:hsl(var(--border-light))}.btn-ghost{background-color:transparent;color:hsl(var(--foreground))}.btn-ghost:hover:not(:disabled){background-color:hsl(var(--accent-hover))}.btn-link{background-color:transparent;color:hsl(var(--primary));padding:0;height:auto}.btn-link:hover:not(:disabled){text-decoration:underline}.btn-sm{height:2rem;padding:0 .625rem;font-size:.75rem}.btn-lg{height:3.5rem;padding:0 1.5rem;font-size:1rem}.btn-icon{width:3rem;padding:0}.btn-icon.btn-sm{width:2rem}.btn-icon.btn-lg{width:3.5rem}.input{display:block;width:100%;height:3rem;padding:0 1rem;font-size:.875rem;font-family:inherit;color:hsl(var(--foreground));background-color:hsl(var(--input-bg));border:1px solid hsl(var(--input));border-radius:var(--radius);outline:0;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none}.input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .1)}.input:disabled{opacity:.6;cursor:not-allowed}.label{display:block;font-size:.875rem;font-weight:500;color:hsl(var(--foreground));margin-bottom:.375rem}.table-card{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden}.table{width:100%;font-size:.875rem;border-collapse:collapse}.table th{text-align:left;padding:.75rem 1rem;font-weight:500;color:hsl(var(--muted-foreground));background-color:hsl(var(--background));border-bottom:1px solid hsl(var(--border));font-size:.8125rem;white-space:nowrap}.table td{padding:.75rem 1rem;font-size:.8125rem;border-bottom:1px solid hsl(var(--border));color:hsl(var(--foreground));vertical-align:middle}.table tbody tr{transition:background-color .12s}.table tbody tr:hover{background-color:hsl(var(--accent-hover))}.table tbody tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;padding:.0625rem .5rem;height:1.5rem;font-size:.75rem;font-weight:500;border-radius:calc(var(--radius) - 4px);border:1px solid transparent;white-space:nowrap}.badge-primary{color:hsl(var(--primary));background-color:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .2)}.badge-secondary{color:hsl(var(--secondary-foreground));background-color:hsl(var(--secondary));border-color:hsl(var(--border))}.badge-success{color:hsl(var(--success));background-color:hsl(var(--success) / .1);border-color:hsl(var(--success) / .2)}.badge-warning{color:hsl(var(--warning));background-color:hsl(var(--warning) / .1);border-color:hsl(var(--warning) / .2)}.badge-destructive{color:hsl(var(--destructive));background-color:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .2)}.modal-overlay{position:fixed;inset:0;background:hsl(var(--overlay));z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade-in .15s ease-out}@keyframes fade-in{from{opacity:0}to{opacity:1}}.modal-content{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 25px 50px -12px hsl(var(--foreground) / .2);max-height:90vh;overflow-y:auto;animation:enter-y .2s ease-out}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid hsl(var(--border))}.modal-body{padding:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid hsl(var(--border))}.modal-close{background:0 0;border:0;color:hsl(var(--muted-foreground));cursor:pointer;padding:.375rem;border-radius:calc(var(--radius) - 4px);display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.modal-close:hover{background:hsl(var(--accent-hover));color:hsl(var(--foreground))}.toast{position:fixed;top:1.5rem;left:50%;transform:translateX(-50%);padding:.625rem 1.25rem;border-radius:var(--radius);background:hsl(var(--foreground));color:hsl(var(--background));font-size:.875rem;box-shadow:0 10px 15px -3px hsl(var(--foreground) / .15);z-index:100;display:none;animation:enter-y .2s ease-out;white-space:nowrap}.toast.show{display:block}.toast.error{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.toast.success{background:hsl(var(--success));color:hsl(var(--success-foreground))}.toast.info{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}@keyframes enter-y{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes enter-x{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}.enter-y{animation:enter-y .2s ease-out forwards}.enter-x{animation:enter-x .2s ease-out forwards}.flex-center{display:flex;align-items:center;justify-content:center}.flex-col-center{display:flex;flex-direction:column;align-items:center;justify-content:center}.hidden{display:none!important}.block{display:block}.inline-flex{display:inline-flex}.flex{display:flex}.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.relative{position:relative}.fixed{position:fixed}.absolute{position:absolute}.inset-0{top:0;right:0;bottom:0;left:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-100{z-index:100}.transition-colors{transition:background-color .15s,color .15s,border-color .15s}.transition-all{transition:all .15s}.transition-transform{transition:transform .2s}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-normal{font-weight:400}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.m-1{margin:.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:calc(var(--radius) - 4px)}.rounded-lg{border-radius:var(--radius)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-full{border-radius:9999px}.shadow-sm{box-shadow:0 1px 2px hsl(var(--foreground) / .05)}.shadow{box-shadow:0 2px 8px hsl(var(--foreground) / .06)}.shadow-md{box-shadow:0 4px 12px hsl(var(--foreground) / .08)}.shadow-lg{box-shadow:0 10px 25px hsl(var(--foreground) / .1)}.shadow-xl{box-shadow:0 20px 40px hsl(var(--foreground) / .12)}.shadow-2xl{box-shadow:0 25px 50px hsl(var(--foreground) / .2)}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.disabled{opacity:.5;cursor:not-allowed}.divide-y>*+*{border-top:1px solid hsl(var(--border))}.divide-x>*+*{border-left:1px solid hsl(var(--border))}@media (min-width:1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}}@media (min-width:640px){.sm\:inline{display:inline}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}}