@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-gray-500:oklch(55.1% .027 264.364);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:1.42857;--font-weight-medium:500;--font-weight-bold:700;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{border-width:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}.absolute,.sr-only{position:absolute}.relative{position:relative}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mr-2{margin-right:calc(var(--spacing)*2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-9{height:calc(var(--spacing)*9);width:calc(var(--spacing)*9)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.w-8{width:calc(var(--spacing)*8)}.w-64{width:calc(var(--spacing)*64)}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.rounded{border-radius:.25rem}.rounded-md{border-radius:calc(var(--radius) - 2px)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-background{background-color:var(--background)}.bg-destructive{background-color:var(--destructive)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.p-1{padding:calc(var(--spacing)*1)}.p-4{padding:calc(var(--spacing)*4)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.text-neutral-700{color:var(--color-neutral-700)}.text-neutral-900{color:var(--color-neutral-900)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-md,.shadow-xs{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline:2px solid #0000;outline-offset:2px}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}@media(hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:transform:hover{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}@media(min-width:48rem){.md\:flex{display:flex}}.dark\:border-gray-500:is(.dark *){border-color:var(--color-gray-500)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}@media(hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\\\'size-\\\'\]\)\]\:size-4 svg:not([class*="'size-'"]){height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}}:root{--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--radius:.625rem;--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(14.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(14.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(98.5% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(39.6% .141 25.723);--destructive-foreground:oklch(63.7% .237 25.331);--border:oklch(26.9% 0 0);--input:oklch(26.9% 0 0);--ring:oklch(43.9% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(26.9% 0 0);--sidebar-ring:oklch(43.9% 0 0)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}:root{--app-max-width:1500px;--page-max-width:1480px;--navbar-max-width:1480px;--sidebar-left-width:280px;--sidebar-left-width-large:270px;--sidebar-left-width-medium:280px;--sidebar-left-width-small:260px;--sidebar-right-width:280px;--sidebar-right-width-large:270px;--sidebar-right-width-medium:280px;--sidebar-right-width-small:260px;--content-area-max-width:none;--content-area-max-width-large:none;--content-area-max-width-medium:none;--sidebar-width:var(--sidebar-left-width);--sidebar-width-large:var(--sidebar-left-width-large);--sidebar-width-medium:var(--sidebar-left-width-medium);--sidebar-width-small:var(--sidebar-left-width-small);--grid-gap:24px;--grid-gap-large:32px;--grid-gap-medium:20px;--grid-gap-small:16px;--breakpoint-xl:1500px;--breakpoint-lg:1400px;--breakpoint-md:1200px;--breakpoint-sm:1100px;--breakpoint-xs:768px}.app-container{margin:0 auto;max-width:var(--app-max-width);padding:0}.page-container{margin:0 auto;max-width:var(--page-max-width);padding:0 16px}.navbar-container{margin:0 auto;max-width:var(--navbar-max-width);padding:0 16px}.grid-layout-container{display:grid;gap:var(--grid-gap);grid-template-columns:var(--sidebar-width) 1fr var(--sidebar-width)}@media(min-width:1500px){:root{--page-max-width:1500px;--navbar-max-width:1460px;--sidebar-left-width:var(--sidebar-left-width-large);--sidebar-right-width:var(--sidebar-right-width-large);--sidebar-width:var(--sidebar-width-large);--grid-gap:var(--grid-gap-large);--content-area-max-width:var(--content-area-max-width-large)}}@media(max-width:1499px)and (min-width:1400px){:root{--page-max-width:1480px;--navbar-max-width:1480px;--sidebar-left-width:var(--sidebar-left-width);--sidebar-right-width:var(--sidebar-right-width);--sidebar-width:var(--sidebar-width);--grid-gap:var(--grid-gap);--content-area-max-width:var(--content-area-max-width)}}@media(max-width:1399px)and (min-width:1200px){:root{--page-max-width:1480px;--navbar-max-width:1280px;--sidebar-left-width:var(--sidebar-left-width-medium);--sidebar-right-width:var(--sidebar-right-width-medium);--sidebar-width:var(--sidebar-width-medium);--grid-gap:var(--grid-gap-medium);--content-area-max-width:var(--content-area-max-width-medium)}}@media(max-width:1199px)and (min-width:1100px){:root{--page-max-width:1480px;--navbar-max-width:1280px;--sidebar-left-width:var(--sidebar-left-width-small);--sidebar-right-width:var(--sidebar-right-width-small);--sidebar-width:var(--sidebar-width-small);--grid-gap:var(--grid-gap-small);--content-area-max-width:var(--content-area-max-width-medium)}}@media(max-width:1099px){.grid-layout-container{gap:12px;grid-template-columns:1fr}}@media(max-width:767px){.navbar-container{max-width:none;padding-left:1rem;padding-right:1rem;width:100%}}.w-app{max-width:var(--app-max-width)}.w-page{max-width:var(--page-max-width)}.w-navbar{max-width:var(--navbar-max-width)}.w-sidebar{width:var(--sidebar-width)}.mx-auto{margin-left:auto;margin-right:auto}.gap-grid{gap:var(--grid-gap)}.gap-grid-large{gap:var(--grid-gap-large)}.gap-grid-medium{gap:var(--grid-gap-medium)}.gap-grid-small{gap:var(--grid-gap-small)}:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--code-font-family:"JetBrains Mono Variable",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--hue:165;--primary:oklch(.7 .14 var(--hue));--primary-strong:oklch(.65 .14 var(--hue));--primary-soft:color-mix(in oklch,var(--primary) 28%,#fff);--page-bg:oklch(.95 .01 var(--hue));--surface:oklch(1 0 var(--hue));--surface-strong:oklch(.96 .01 var(--hue));--line:oklch(.9 .01 var(--hue));--title:#12212b;--muted:#7c8a97;--muted-strong:#526069;--card-shadow:0 18px 38px rgba(15,39,43,.08);--btn-plain-bg-hover:oklch(.95 .025 var(--hue));--btn-plain-bg-active:oklch(.98 .01 var(--hue));--toc-badge-bg:oklch(.9 .045 var(--hue));--toc-btn-hover:oklch(.92 .015 var(--hue));--toc-btn-active:oklch(.9 .015 var(--hue));transition:--primary .6s cubic-bezier(.4,0,.2,1),--primary-strong .6s cubic-bezier(.4,0,.2,1),--page-bg .6s cubic-bezier(.4,0,.2,1),--surface .6s cubic-bezier(.4,0,.2,1),--surface-strong .6s cubic-bezier(.4,0,.2,1),--line .6s cubic-bezier(.4,0,.2,1);--color-selection-bar:linear-gradient(90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);--hue-slider-bg:#f0f0f0;background:var(--page-bg);color:var(--title)}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:hidden;transition:background .6s cubic-bezier(.4,0,.2,1)}body,body.enable-banner{background:radial-gradient(circle at 20% 20%,oklch(.98 .01 var(--hue)),transparent 30%),radial-gradient(circle at 80% 0,oklch(.96 .01 var(--hue)),transparent 36%),var(--page-bg)}body:not(.enable-banner){background:var(--page-bg)}#__nuxt{margin:0 auto;max-width:var(--app-max-width);padding:0}.page{display:flex;flex-direction:column;margin:0 auto;max-width:var(--page-max-width);min-height:100vh;padding:0 16px;transition:margin .3s ease}.page__top{position:relative;z-index:5}.page__main{display:flex;flex:1;flex-direction:column;gap:20px}.content-shell{margin-top:12px;padding:0 6px 10px;transition:margin-top .3s ease}.content-shell--no-banner{margin-top:80px}.grid-layout{display:grid;gap:var(--grid-gap);grid-template-columns:var(--sidebar-left-width) 1fr var(--sidebar-right-width);padding-top:0;position:relative;transition:padding-top .3s ease,grid-template-columns .3s ease}.sidebar,.sidebar__normal,.sidebar__sticky{display:flex;flex-direction:column;gap:16px}.sidebar__sticky{align-self:flex-start;max-height:calc(100vh - 120px);overflow-y:auto;position:sticky;scroll-behavior:smooth;scrollbar-width:none;top:100px;-ms-overflow-style:none;width:100%}.sidebar__sticky::-webkit-scrollbar{display:none}.post-area{min-width:0}.post-area__header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:6px 0 18px}.post-area__header h2{font-size:22px;margin:0}.muted{color:var(--muted);margin:0 0 6px}.post-list{display:flex;flex-direction:column;gap:14px;transition:all .3s ease}.post-list--grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}@media(max-width:1100px){.grid-layout{grid-template-columns:1fr}.sidebar.left,.sidebar.right{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));order:-1}}@media(max-width:768px){.page{padding:0 12px}}.markdown-content{color:var(--title);font-size:15px;line-height:1.8;margin-bottom:24px;overflow-wrap:break-word}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{color:var(--title);font-weight:700;line-height:1.4;margin:32px 0 16px;position:relative;scroll-margin-top:96px}.markdown-content h1:first-child{margin-top:0}.markdown-content h1{font-size:28px;padding-left:0}.markdown-content h2{font-size:24px;padding-left:20px;position:relative}.markdown-content h2:before{background:var(--primary);border-radius:2px;content:"";height:20px;left:0;position:absolute;top:.5rem;width:4px}.markdown-content h3{font-size:20px;padding-left:36px;position:relative}.markdown-content h3:before{background:var(--primary);border-radius:2px;content:"";height:18px;left:16px;opacity:.6;position:absolute;top:.5rem;width:3px}.markdown-content h4{font-size:18px;padding-left:52px;position:relative}.markdown-content h4:before{background:var(--primary);border-radius:2px;content:"";height:16px;left:32px;opacity:.4;position:absolute;top:.5rem;width:3px}.markdown-content h5,.markdown-content h6{font-size:16px;padding-left:68px;position:relative}.markdown-content h5:before,.markdown-content h6:before{background:var(--primary);border-radius:2px;content:"";height:14px;left:48px;opacity:.3;position:absolute;top:.5rem;width:2px}.markdown-content p{color:var(--muted-strong);line-height:1.85;margin:16px 0}.markdown-content blockquote{background:var(--surface-strong);border-left:4px solid var(--primary);border-radius:0 8px 8px 0;color:var(--muted-strong);font-style:italic;margin:20px 0;padding:16px 20px}.markdown-content code{background:var(--surface-strong);border-radius:4px;color:var(--primary-strong);font-family:Consolas,Monaco,monospace;font-size:.9em;padding:2px 6px}.markdown-content pre{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:12px;box-shadow:0 2px 12px #00000014;font-family:var(--code-font-family);font-feature-settings:"liga" 1,"calt" 1;font-size:.875rem;font-variant-ligatures:common-ligatures;line-height:1.5rem;margin:20px 0;overflow:hidden;padding:0;position:relative;transition:box-shadow .2s ease}.markdown-content pre:hover{box-shadow:0 4px 12px #00000026}:root.dark .markdown-content pre{background:#1e1e1e;border-color:#ffffff1a}.markdown-content pre:before{background:#ff5f56;border-radius:50%;box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;content:"";height:12px;left:16px;opacity:.9;position:absolute;top:12px;width:12px;z-index:2}.markdown-content pre code{background:none;color:#383a42;display:block;font-size:inherit;line-height:inherit;overflow-x:auto;padding:42px 14px 18px;-moz-tab-size:2;-o-tab-size:2;tab-size:2;white-space:pre}:root.dark .markdown-content pre code{color:#abb2bf}.markdown-content pre code ::-moz-selection,.markdown-content pre code::-moz-selection{background:#007bff40;color:inherit}.markdown-content pre code ::selection,.markdown-content pre code::selection{background:#007bff40;color:inherit}:root.dark .markdown-content pre code ::-moz-selection,:root.dark .markdown-content pre code::-moz-selection{background:#64b5f64d;color:#fff}:root.dark .markdown-content pre code ::selection,:root.dark .markdown-content pre code::selection{background:#64b5f64d;color:#fff}.markdown-content pre code{scrollbar-color:rgba(0,0,0,.2) transparent;scrollbar-width:thin}.markdown-content pre code::-webkit-scrollbar{height:8px}.markdown-content pre code::-webkit-scrollbar-track{background:transparent}.markdown-content pre code::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.markdown-content pre code::-webkit-scrollbar-thumb:hover{background:#0000004d}:root.dark .markdown-content pre code{scrollbar-color:hsla(0,0%,100%,.2) transparent}:root.dark .markdown-content pre code::-webkit-scrollbar-thumb{background:#fff3}:root.dark .markdown-content pre code::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.markdown-content pre.line-numbers{padding-left:0;position:relative}.markdown-content pre.line-numbers .line-numbers-rows{border-right:1px solid rgba(0,0,0,.1);box-sizing:border-box;counter-reset:linenumber;display:block;font-size:.875rem;left:0;letter-spacing:0;line-height:1.5rem;padding-left:.5em;padding-right:.5em;pointer-events:none;position:absolute;top:44px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:2.8em}:root.dark .markdown-content pre.line-numbers .line-numbers-rows{border-right-color:#ffffff1a}.markdown-content pre.line-numbers .line-numbers-rows>span{counter-increment:linenumber;display:block;height:1.5rem;line-height:1.5rem;min-height:1.5rem;position:relative}.markdown-content pre.line-numbers .line-numbers-rows>span:before{color:var(--muted);content:counter(linenumber);display:block;font-variant-numeric:tabular-nums;text-align:right;width:100%}.markdown-content pre[class*=language-].line-numbers{padding-left:2em}.markdown-content pre[class*=language-].line-numbers>code{padding-left:2.6em}.markdown-content pre[class*=language-].line-numbers .line-numbers-rows{padding-left:.35em;padding-right:.35em;top:44px;width:2em}.markdown-content .code-language-label{align-items:center;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:6px;color:var(--muted);display:flex;font-size:.75rem;font-weight:500;height:32px;justify-content:center;line-height:1;padding:0 12px;pointer-events:none;position:absolute;right:52px;top:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2}:root.dark .markdown-content .code-language-label{background:#ffffff1a;border-color:#ffffff26;color:var(--muted)}.markdown-content .copy-btn{align-items:center;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:6px;cursor:pointer;display:flex;height:32px;justify-content:center;opacity:.7;padding:0;position:absolute;right:12px;top:12px;transition:all .2s ease;width:32px;z-index:3}.markdown-content .copy-btn:hover{background:#0000001a;border-color:#0003;opacity:1}:root.dark .markdown-content .copy-btn{background:#ffffff1a;border-color:#ffffff26}:root.dark .markdown-content .copy-btn:hover{background:#ffffff26;border-color:#ffffff40}.markdown-content .copy-btn .copy-icon,.markdown-content .copy-btn .success-icon{color:var(--muted-strong);fill:currentColor;height:16px;transition:all .2s ease;width:16px}.markdown-content .copy-btn .success-icon,.markdown-content .copy-btn.copied .copy-icon{display:none}.markdown-content .copy-btn.copied .success-icon{color:var(--primary);display:block}.code-theme-light .markdown-content pre{background:#fff;border-color:#0000001a}.code-theme-light .markdown-content pre code{color:#383a42}.code-theme-light .markdown-content pre code .token.comment{color:#a0a1a7}.code-theme-light .markdown-content pre code .token.string{color:#50a14f}.code-theme-light .markdown-content pre code .token.keyword{color:#a626a4}.code-theme-light .markdown-content pre code .token.function{color:#c18401}.code-theme-light .markdown-content pre code .token.number{color:#e45649}.code-theme-light .markdown-content pre code .token.operator{color:#0184bc}.code-theme-light .markdown-content pre code .token.punctuation{color:#383a42;opacity:1}.code-theme-light .markdown-content pre code ::-moz-selection,.code-theme-light .markdown-content pre code::-moz-selection{background:#007bff33;color:inherit}.code-theme-light .markdown-content pre code ::selection,.code-theme-light .markdown-content pre code::selection{background:#007bff33;color:inherit}.code-theme-dark .markdown-content pre{background:#282c34;border-color:#ffffff1a}.code-theme-dark .markdown-content pre code{color:#abb2bf}.code-theme-dark .markdown-content pre code .token.comment{color:#5c6370}.code-theme-dark .markdown-content pre code .token.string{color:#98c379}.code-theme-dark .markdown-content pre code .token.keyword{color:#c678dd}.code-theme-dark .markdown-content pre code .token.function{color:#61afef}.code-theme-dark .markdown-content pre code .token.number{color:#e06c75}.code-theme-dark .markdown-content pre code .token.operator{color:#56b6c2}.code-theme-dark .markdown-content pre code .token.punctuation{color:#e5e7eb;opacity:1}.code-theme-dark .markdown-content pre code ::-moz-selection,.code-theme-dark .markdown-content pre code::-moz-selection{background:#64b5f659;color:#fff}.code-theme-dark .markdown-content pre code ::selection,.code-theme-dark .markdown-content pre code::selection{background:#64b5f659;color:#fff}.code-theme-github .markdown-content pre{background:#f6f8fa;border-color:#0000001f}.code-theme-github .markdown-content pre code{color:#24292e}.code-theme-github .markdown-content pre code .token.comment{color:#6a737d}.code-theme-github .markdown-content pre code .token.string{color:#032f62}.code-theme-github .markdown-content pre code .token.keyword{color:#d73a49}.code-theme-github .markdown-content pre code .token.function{color:#6f42c1}.code-theme-github .markdown-content pre code .token.number{color:#005cc5}.code-theme-github .markdown-content pre code .token.operator{color:#d73a49}.code-theme-github .markdown-content pre code .token.punctuation{color:#24292e;opacity:1}.code-theme-github .markdown-content pre code ::-moz-selection,.code-theme-github .markdown-content pre code::-moz-selection{background:#007bff33;color:inherit}.code-theme-github .markdown-content pre code ::selection,.code-theme-github .markdown-content pre code::selection{background:#007bff33;color:inherit}.code-theme-vscode .markdown-content pre{background:#1e1e1e;border-color:#ffffff1a}.code-theme-vscode .markdown-content pre code{color:#d4d4d4}.code-theme-vscode .markdown-content pre code .token.comment{color:#6a9955}.code-theme-vscode .markdown-content pre code .token.string{color:#ce9178}.code-theme-vscode .markdown-content pre code .token.keyword{color:#569cd6}.code-theme-vscode .markdown-content pre code .token.function{color:#dcdcaa}.code-theme-vscode .markdown-content pre code .token.number{color:#b5cea8}.code-theme-vscode .markdown-content pre code .token.operator{color:#d4d4d4}.code-theme-vscode .markdown-content pre code .token.punctuation{color:#d4d4d4;opacity:1}.code-theme-vscode .markdown-content pre code ::-moz-selection,.code-theme-vscode .markdown-content pre code::-moz-selection{background:#0e639c66;color:#fff}.code-theme-vscode .markdown-content pre code ::selection,.code-theme-vscode .markdown-content pre code::selection{background:#0e639c66;color:#fff}.code-theme-monokai .markdown-content pre{background:#272822;border-color:#ffffff1a}.code-theme-monokai .markdown-content pre code{color:#f8f8f2}.code-theme-monokai .markdown-content pre code .token.comment{color:#75715e}.code-theme-monokai .markdown-content pre code .token.string{color:#e6db74}.code-theme-monokai .markdown-content pre code .token.keyword{color:#f92672}.code-theme-monokai .markdown-content pre code .token.function{color:#66d9ef}.code-theme-monokai .markdown-content pre code .token.number{color:#ae81ff}.code-theme-monokai .markdown-content pre code .token.operator{color:#f92672}.code-theme-monokai .markdown-content pre code .token.punctuation{color:#f8f8f2;opacity:1}.code-theme-monokai .markdown-content pre code ::-moz-selection,.code-theme-monokai .markdown-content pre code::-moz-selection{background:#f926724d;color:#fff}.code-theme-monokai .markdown-content pre code ::selection,.code-theme-monokai .markdown-content pre code::selection{background:#f926724d;color:#fff}.code-theme-dracula .markdown-content pre{background:#282a36;border-color:#ffffff1a}.code-theme-dracula .markdown-content pre code{color:#f8f8f2}.code-theme-dracula .markdown-content pre code .token.comment{color:#6272a4}.code-theme-dracula .markdown-content pre code .token.string{color:#f1fa8c}.code-theme-dracula .markdown-content pre code .token.keyword{color:#ff79c6}.code-theme-dracula .markdown-content pre code .token.function{color:#50fa7b}.code-theme-dracula .markdown-content pre code .token.number{color:#bd93f9}.code-theme-dracula .markdown-content pre code .token.operator{color:#ff79c6}.code-theme-dracula .markdown-content pre code .token.punctuation{color:#f8f8f2;opacity:1}.code-theme-dracula .markdown-content pre code ::-moz-selection,.code-theme-dracula .markdown-content pre code::-moz-selection{background:#bd93f959;color:#fff}.code-theme-dracula .markdown-content pre code ::selection,.code-theme-dracula .markdown-content pre code::selection{background:#bd93f959;color:#fff}.code-theme-nord .markdown-content pre{background:#2e3440;border-color:#ffffff1a}.code-theme-nord .markdown-content pre code{color:#d8dee9}.code-theme-nord .markdown-content pre code .token.comment{color:#616e88}.code-theme-nord .markdown-content pre code .token.string{color:#a3be8c}.code-theme-nord .markdown-content pre code .token.keyword{color:#81a1c1}.code-theme-nord .markdown-content pre code .token.function{color:#88c0d0}.code-theme-nord .markdown-content pre code .token.number{color:#b48ead}.code-theme-nord .markdown-content pre code .token.operator{color:#81a1c1}.code-theme-nord .markdown-content pre code .token.punctuation{color:#eceff4;opacity:1}.code-theme-nord .markdown-content pre code ::-moz-selection,.code-theme-nord .markdown-content pre code::-moz-selection{background:#88c0d059;color:#fff}.code-theme-nord .markdown-content pre code ::selection,.code-theme-nord .markdown-content pre code::selection{background:#88c0d059;color:#fff}.code-theme-solarized-light .markdown-content pre{background:#fdf6e3;border-color:#0000001a}.code-theme-solarized-light .markdown-content pre code{color:#657b83}.code-theme-solarized-light .markdown-content pre code .token.comment{color:#93a1a1}.code-theme-solarized-light .markdown-content pre code .token.string{color:#2aa198}.code-theme-solarized-light .markdown-content pre code .token.keyword{color:#859900}.code-theme-solarized-light .markdown-content pre code .token.function{color:#b58900}.code-theme-solarized-light .markdown-content pre code .token.number{color:#d33682}.code-theme-solarized-light .markdown-content pre code .token.operator{color:#859900}.code-theme-solarized-light .markdown-content pre code .token.punctuation{color:#657b83;opacity:1}.code-theme-solarized-light .markdown-content pre code ::-moz-selection,.code-theme-solarized-light .markdown-content pre code::-moz-selection{background:#268bd233;color:inherit}.code-theme-solarized-light .markdown-content pre code ::selection,.code-theme-solarized-light .markdown-content pre code::selection{background:#268bd233;color:inherit}.code-theme-solarized-dark .markdown-content pre{background:#002b36;border-color:#ffffff1a}.code-theme-solarized-dark .markdown-content pre code{color:#839496}.code-theme-solarized-dark .markdown-content pre code .token.comment{color:#586e75}.code-theme-solarized-dark .markdown-content pre code .token.string{color:#2aa198}.code-theme-solarized-dark .markdown-content pre code .token.keyword{color:#859900}.code-theme-solarized-dark .markdown-content pre code .token.function{color:#b58900}.code-theme-solarized-dark .markdown-content pre code .token.number{color:#d33682}.code-theme-solarized-dark .markdown-content pre code .token.operator{color:#859900}.code-theme-solarized-dark .markdown-content pre code .token.punctuation{color:#93a1a1;opacity:1}.code-theme-solarized-dark .markdown-content pre code ::-moz-selection,.code-theme-solarized-dark .markdown-content pre code::-moz-selection{background:#268bd259;color:#fff}.code-theme-solarized-dark .markdown-content pre code ::selection,.code-theme-solarized-dark .markdown-content pre code::selection{background:#268bd259;color:#fff}.code-theme-tomorrow-night .markdown-content pre{background:#1d1f21;border-color:#ffffff1a}.code-theme-tomorrow-night .markdown-content pre code{color:#c5c8c6}.code-theme-tomorrow-night .markdown-content pre code .token.comment{color:#969896}.code-theme-tomorrow-night .markdown-content pre code .token.string{color:#b5bd68}.code-theme-tomorrow-night .markdown-content pre code .token.keyword{color:#b294bb}.code-theme-tomorrow-night .markdown-content pre code .token.function{color:#81a2be}.code-theme-tomorrow-night .markdown-content pre code .token.number{color:#de935f}.code-theme-tomorrow-night .markdown-content pre code .token.operator{color:#8abeb7}.code-theme-tomorrow-night .markdown-content pre code .token.punctuation{color:#c5c8c6;opacity:1}.code-theme-tomorrow-night .markdown-content pre code ::-moz-selection,.code-theme-tomorrow-night .markdown-content pre code::-moz-selection{background:#8abeb759;color:#fff}.code-theme-tomorrow-night .markdown-content pre code ::selection,.code-theme-tomorrow-night .markdown-content pre code::selection{background:#8abeb759;color:#fff}.code-theme-material .markdown-content pre{background:#263238;border-color:#ffffff1a}.code-theme-material .markdown-content pre code{color:#eff}.code-theme-material .markdown-content pre code .token.comment{color:#546e7a}.code-theme-material .markdown-content pre code .token.string{color:#c3e88d}.code-theme-material .markdown-content pre code .token.keyword{color:#c792ea}.code-theme-material .markdown-content pre code .token.function{color:#82aaff}.code-theme-material .markdown-content pre code .token.number{color:#f78c6c}.code-theme-material .markdown-content pre code .token.operator{color:#89ddff}.code-theme-material .markdown-content pre code .token.punctuation{color:#eff;opacity:1}.code-theme-material .markdown-content pre code ::-moz-selection,.code-theme-material .markdown-content pre code::-moz-selection{background:#82aaff59;color:#fff}.code-theme-material .markdown-content pre code ::selection,.code-theme-material .markdown-content pre code::selection{background:#82aaff59;color:#fff}.code-theme-atom-one-light .markdown-content pre{background:#fafafa;border-color:#0000001a}.code-theme-atom-one-light .markdown-content pre code{color:#383a42}.code-theme-atom-one-light .markdown-content pre code .token.comment{color:#a0a1a7}.code-theme-atom-one-light .markdown-content pre code .token.string{color:#50a14f}.code-theme-atom-one-light .markdown-content pre code .token.keyword{color:#a626a4}.code-theme-atom-one-light .markdown-content pre code .token.function{color:#4078f2}.code-theme-atom-one-light .markdown-content pre code .token.number{color:#986801}.code-theme-atom-one-light .markdown-content pre code .token.operator{color:#0184bc}.code-theme-atom-one-light .markdown-content pre code .token.punctuation{color:#383a42;opacity:1}.code-theme-atom-one-light .markdown-content pre code ::-moz-selection,.code-theme-atom-one-light .markdown-content pre code::-moz-selection{background:#007bff33;color:inherit}.code-theme-atom-one-light .markdown-content pre code ::selection,.code-theme-atom-one-light .markdown-content pre code::selection{background:#007bff33;color:inherit}.code-theme-atom-one-dark .markdown-content pre{background:#282c34;border-color:#ffffff1a}.code-theme-atom-one-dark .markdown-content pre code{color:#abb2bf}.code-theme-atom-one-dark .markdown-content pre code .token.comment{color:#5c6370}.code-theme-atom-one-dark .markdown-content pre code .token.string{color:#98c379}.code-theme-atom-one-dark .markdown-content pre code .token.keyword{color:#c678dd}.code-theme-atom-one-dark .markdown-content pre code .token.function{color:#61afef}.code-theme-atom-one-dark .markdown-content pre code .token.number{color:#d19a66}.code-theme-atom-one-dark .markdown-content pre code .token.operator{color:#56b6c2}.code-theme-atom-one-dark .markdown-content pre code .token.punctuation{color:#abb2bf;opacity:1}.code-theme-atom-one-dark .markdown-content pre code ::-moz-selection,.code-theme-atom-one-dark .markdown-content pre code::-moz-selection{background:#61afef59;color:#fff}.code-theme-atom-one-dark .markdown-content pre code ::selection,.code-theme-atom-one-dark .markdown-content pre code::selection{background:#61afef59;color:#fff}.code-theme-gruvbox .markdown-content pre{background:#282828;border-color:#ffffff1a}.code-theme-gruvbox .markdown-content pre code{color:#ebdbb2}.code-theme-gruvbox .markdown-content pre code .token.comment{color:#928374}.code-theme-gruvbox .markdown-content pre code .token.string{color:#b8bb26}.code-theme-gruvbox .markdown-content pre code .token.keyword{color:#fb4934}.code-theme-gruvbox .markdown-content pre code .token.function{color:#fabd2f}.code-theme-gruvbox .markdown-content pre code .token.number{color:#d3869b}.code-theme-gruvbox .markdown-content pre code .token.operator{color:#fe8019}.code-theme-gruvbox .markdown-content pre code .token.punctuation{color:#ebdbb2;opacity:1}.code-theme-gruvbox .markdown-content pre code ::-moz-selection,.code-theme-gruvbox .markdown-content pre code::-moz-selection{background:#fb49344d;color:#fff}.code-theme-gruvbox .markdown-content pre code ::selection,.code-theme-gruvbox .markdown-content pre code::selection{background:#fb49344d;color:#fff}.markdown-content pre code .token.cdata,.markdown-content pre code .token.comment,.markdown-content pre code .token.doctype,.markdown-content pre code .token.prolog{color:#a0a1a7;font-style:italic}:root.dark .markdown-content pre code .token.cdata,:root.dark .markdown-content pre code .token.comment,:root.dark .markdown-content pre code .token.doctype,:root.dark .markdown-content pre code .token.prolog{color:#5c6370}.markdown-content pre code .token.punctuation{color:#383a42;opacity:1}:root.dark .markdown-content pre code .token.punctuation{color:#e5e7eb;opacity:1}.markdown-content pre code .token.boolean,.markdown-content pre code .token.constant,.markdown-content pre code .token.deleted,.markdown-content pre code .token.number,.markdown-content pre code .token.property,.markdown-content pre code .token.symbol,.markdown-content pre code .token.tag{color:#e45649}:root.dark .markdown-content pre code .token.boolean,:root.dark .markdown-content pre code .token.constant,:root.dark .markdown-content pre code .token.deleted,:root.dark .markdown-content pre code .token.number,:root.dark .markdown-content pre code .token.property,:root.dark .markdown-content pre code .token.symbol,:root.dark .markdown-content pre code .token.tag{color:#e06c75}.markdown-content pre code .token.attr-name,.markdown-content pre code .token.builtin,.markdown-content pre code .token.char,.markdown-content pre code .token.inserted,.markdown-content pre code .token.selector,.markdown-content pre code .token.string{color:#50a14f}:root.dark .markdown-content pre code .token.attr-name,:root.dark .markdown-content pre code .token.builtin,:root.dark .markdown-content pre code .token.char,:root.dark .markdown-content pre code .token.inserted,:root.dark .markdown-content pre code .token.selector,:root.dark .markdown-content pre code .token.string{color:#98c379}.markdown-content pre code .language-css .token.string,.markdown-content pre code .style .token.string,.markdown-content pre code .token.entity,.markdown-content pre code .token.operator,.markdown-content pre code .token.url{color:#0184bc}:root.dark .markdown-content pre code .language-css .token.string,:root.dark .markdown-content pre code .style .token.string,:root.dark .markdown-content pre code .token.entity,:root.dark .markdown-content pre code .token.operator,:root.dark .markdown-content pre code .token.url{color:#56b6c2}.markdown-content pre code .token.atrule,.markdown-content pre code .token.attr-value,.markdown-content pre code .token.keyword{color:#a626a4}:root.dark .markdown-content pre code .token.atrule,:root.dark .markdown-content pre code .token.attr-value,:root.dark .markdown-content pre code .token.keyword{color:#c678dd}.markdown-content pre code .token.class-name,.markdown-content pre code .token.function{color:#c18401}:root.dark .markdown-content pre code .token.class-name,:root.dark .markdown-content pre code .token.function{color:#61afef}.markdown-content pre code .token.important,.markdown-content pre code .token.regex,.markdown-content pre code .token.variable{color:#986801}:root.dark .markdown-content pre code .token.important,:root.dark .markdown-content pre code .token.regex,:root.dark .markdown-content pre code .token.variable{color:#e5c07b}.markdown-content pre code .token.namespace{opacity:.8}.markdown-content pre code .token.bold,.markdown-content pre code .token.important{font-weight:700}.markdown-content pre code .token.italic{font-style:italic}.markdown-content table{border-collapse:collapse;font-size:14px;margin:18px 0;width:100%}.markdown-content td,.markdown-content th{border:1px solid var(--line);padding:10px 12px}.markdown-content th{background:color-mix(in srgb,var(--surface-strong) 88%,#0f1a18 12%);color:var(--title);font-weight:600;text-align:left}.markdown-content img{border-radius:12px;box-shadow:0 10px 30px #0000002e;display:block;margin:16px auto;max-width:100%}.markdown-content ol,.markdown-content ul{margin:16px 0;padding-left:24px}.markdown-content li{color:var(--muted-strong);line-height:1.8;margin:8px 0}.markdown-content a{border-bottom:1px solid transparent;color:var(--primary);text-decoration:none;transition:border-color .2s ease,color .2s ease}.markdown-content a:hover{border-bottom-color:var(--primary);color:var(--primary)}.markdown-content strong{color:var(--title);font-weight:600}.markdown-content hr{border:none;border-top:1px dashed var(--line);margin:32px 0}.markdown-content ul{list-style-type:disc;margin:16px 0;padding-left:24px}.markdown-content ol{list-style-type:decimal;margin:16px 0;padding-left:24px}@media(max-width:768px){.markdown-content pre{border-radius:8px;font-size:.8125rem;line-height:1.4rem;margin:16px 0}.markdown-content pre code{padding:44px 16px 16px}.markdown-content pre.line-numbers code{padding-left:4em}.markdown-content pre.line-numbers .line-numbers-rows{font-size:.8125rem;top:44px;width:3em}}:root.dark{--primary:oklch(.75 .14 var(--hue));--primary-strong:oklch(.7 .14 var(--hue));--primary-soft:color-mix(in oklch,var(--primary) 28%,#000);--page-bg:oklch(.16 .014 var(--hue));--surface:oklch(.23 .015 var(--hue));--surface-strong:oklch(.28 .02 var(--hue));--line:oklch(.3 .02 var(--hue));--color-selection-bar:linear-gradient(90deg,oklch(.7 .1 0),oklch(.7 .1 30),oklch(.7 .1 60),oklch(.7 .1 90),oklch(.7 .1 120),oklch(.7 .1 150),oklch(.7 .1 180),oklch(.7 .1 210),oklch(.7 .1 240),oklch(.7 .1 270),oklch(.7 .1 300),oklch(.7 .1 330),oklch(.7 .1 360));--hue-slider-bg:oklch(.25 .01 var(--hue));--title:#e4e7eb;--muted:#9ca3af;--muted-strong:#d1d5db;--btn-plain-bg-hover:oklch(.3 .035 var(--hue));--btn-plain-bg-active:oklch(.27 .025 var(--hue));--toc-badge-bg:oklch(.33 .035 var(--hue));--toc-btn-hover:oklch(.28 .04 var(--hue));--toc-btn-active:oklch(.32 .05 var(--hue))}:root.dark .navbar.scrolled .navbar__inner{background:#0000008c;border-color:#ffffff1a;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}:root.dark .navbar__action-btn,:root.dark .navbar__link{color:#ffffffbf}:root.dark .navbar__title{color:var(--title)}:root.dark body{background:radial-gradient(circle at 20% 20%,color-mix(in oklch,oklch(.18 .014 var(--hue)) 50%,transparent),transparent 30%),radial-gradient(circle at 80% 0,color-mix(in oklch,oklch(.2 .015 var(--hue)) 50%,transparent),transparent 36%),var(--page-bg);transition:background .6s cubic-bezier(.4,0,.2,1)}:root.dark body:not(.enable-banner){background:var(--page-bg)}.markdown-content pre[class*=language-java]{position:relative}.markdown-content pre code.language-java .token.annotation{color:#c678dd;font-weight:500}:root.dark .markdown-content pre code.language-java .token.annotation{color:#c792ea}.markdown-content pre code.language-java .token.import,.markdown-content pre code.language-java .token.package{color:#0184bc;font-weight:500}:root.dark .markdown-content pre code.language-java .token.import,:root.dark .markdown-content pre code.language-java .token.package{color:#82aaff}.markdown-content pre code.language-java .token.class-name{color:#c18401;font-weight:500}:root.dark .markdown-content pre code.language-java .token.class-name{color:#61afef}.markdown-content pre code.language-java .token.namespace{color:#50a14f;opacity:.9}:root.dark .markdown-content pre code.language-java .token.namespace{color:#98c379}.markdown-content pre code.language-java .token.keyword{font-weight:600}.markdown-content pre code.language-java .token.string{font-style:normal}.code-theme-light .markdown-content pre code.language-java .token.annotation{color:#a626a4}.code-theme-light .markdown-content pre code.language-java .token.import,.code-theme-light .markdown-content pre code.language-java .token.package{color:#0184bc}.code-theme-dark .markdown-content pre code.language-java .token.annotation{color:#c678dd}.code-theme-dark .markdown-content pre code.language-java .token.import,.code-theme-dark .markdown-content pre code.language-java .token.package{color:#61afef}.code-theme-vscode .markdown-content pre code.language-java .token.annotation{color:#569cd6}.code-theme-vscode .markdown-content pre code.language-java .token.class-name,.code-theme-vscode .markdown-content pre code.language-java .token.import,.code-theme-vscode .markdown-content pre code.language-java .token.package{color:#4ec9b0}.code-theme-monokai .markdown-content pre code.language-java .token.annotation{color:#f92672}.code-theme-monokai .markdown-content pre code.language-java .token.import,.code-theme-monokai .markdown-content pre code.language-java .token.package{color:#66d9ef}.code-theme-dracula .markdown-content pre code.language-java .token.annotation{color:#ff79c6}.code-theme-dracula .markdown-content pre code.language-java .token.import,.code-theme-dracula .markdown-content pre code.language-java .token.package{color:#8be9fd}.code-theme-nord .markdown-content pre code.language-java .token.annotation{color:#81a1c1}.code-theme-nord .markdown-content pre code.language-java .token.import,.code-theme-nord .markdown-content pre code.language-java .token.package{color:#88c0d0}.code-theme-material .markdown-content pre code.language-java .token.annotation{color:#c792ea}.code-theme-material .markdown-content pre code.language-java .token.import,.code-theme-material .markdown-content pre code.language-java .token.package{color:#82aaff}.code-theme-material .markdown-content pre code.language-java .token.class-name{color:#ffcb6b}.markdown-content pre[class*=language-sql]{position:relative}.markdown-content pre code.language-sql .token.keyword{color:#a626a4;font-weight:600}:root.dark .markdown-content pre code.language-sql .token.keyword{color:#c678dd;font-weight:600}.markdown-content pre code.language-sql .token.function{color:#c18401;font-weight:500}:root.dark .markdown-content pre code.language-sql .token.function{color:#61afef;font-weight:500}.markdown-content pre code.language-sql .token.string{color:#50a14f}:root.dark .markdown-content pre code.language-sql .token.string{color:#98c379}.markdown-content pre code.language-sql .token.number{color:#e45649}:root.dark .markdown-content pre code.language-sql .token.number{color:#e06c75}.markdown-content pre code.language-sql .token.operator{color:#0184bc;font-weight:500}:root.dark .markdown-content pre code.language-sql .token.operator{color:#56b6c2;font-weight:500}.markdown-content pre code.language-sql .token.comment{color:#a0a1a7;font-style:italic}:root.dark .markdown-content pre code.language-sql .token.comment{color:#5c6370;font-style:italic}.markdown-content pre code.language-sql .token.punctuation{opacity:.8}.code-theme-light .markdown-content pre code.language-sql .token.keyword{color:#a626a4}.code-theme-light .markdown-content pre code.language-sql .token.function{color:#c18401}.code-theme-light .markdown-content pre code.language-sql .token.string{color:#50a14f}.code-theme-dark .markdown-content pre code.language-sql .token.keyword{color:#c678dd}.code-theme-dark .markdown-content pre code.language-sql .token.function{color:#61afef}.code-theme-dark .markdown-content pre code.language-sql .token.string{color:#98c379}.code-theme-vscode .markdown-content pre code.language-sql .token.keyword{color:#569cd6}.code-theme-vscode .markdown-content pre code.language-sql .token.function{color:#dcdcaa}.code-theme-vscode .markdown-content pre code.language-sql .token.string{color:#ce9178}.code-theme-monokai .markdown-content pre code.language-sql .token.keyword{color:#f92672}.code-theme-monokai .markdown-content pre code.language-sql .token.function{color:#66d9ef}.code-theme-monokai .markdown-content pre code.language-sql .token.string{color:#e6db74}.code-theme-dracula .markdown-content pre code.language-sql .token.keyword{color:#ff79c6}.code-theme-dracula .markdown-content pre code.language-sql .token.function{color:#50fa7b}.code-theme-dracula .markdown-content pre code.language-sql .token.string{color:#f1fa8c}.code-theme-nord .markdown-content pre code.language-sql .token.keyword{color:#81a1c1}.code-theme-nord .markdown-content pre code.language-sql .token.function{color:#88c0d0}.code-theme-nord .markdown-content pre code.language-sql .token.string{color:#a3be8c}.code-theme-material .markdown-content pre code.language-sql .token.keyword{color:#c792ea}.code-theme-material .markdown-content pre code.language-sql .token.function{color:#82aaff}.code-theme-material .markdown-content pre code.language-sql .token.string{color:#c3e88d}pre[class*=language-].line-numbers{counter-reset:linenumber;padding-left:3.8em;position:relative}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{border-right:1px solid #999;font-size:100%;left:-3.8em;letter-spacing:-1px;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:3em}.line-numbers-rows>span{counter-increment:linenumber;display:block}.line-numbers-rows>span:before{color:#999;content:counter(linenumber);display:block;padding-right:.8em;text-align:right}
